/* Hospedagem: the shared brand tokens remain the single source of visual values. */
.stay-section { margin-block: var(--e-10); }
.stay-detail-grid .contact-card { position: static; }
.stay-section h2 { font-size: var(--texto-xl); margin-bottom: var(--e-5); }
.stay-section h3 { font-size: var(--texto-m); }
.stay-section > p { margin-block: var(--e-4); }
.resource-group { margin-top: var(--e-8); }
.resource-list { margin: var(--e-4) 0; }
.resource-list > div { display: grid; grid-template-columns: 1fr 1.3fr; gap: var(--e-4); padding-block: var(--e-4); border-bottom: var(--borda); }
.resource-list dt { font-size: var(--texto-s); font-weight: 500; }
.resource-list dd { margin: 0; font-size: var(--texto-xs); }
.resource-list dd p { margin-top: var(--e-2); }
.resource-list details { margin-top: var(--e-2); }
.resource-list summary { font-size: var(--texto-xxs); padding-block: var(--e-2); }
.resource-list a,.resource-editor { overflow-wrap: anywhere; }
.resource-state { color: var(--cor-tinta-suave); }
.state-sim { color: var(--cor-tinta); font-weight: 600; }
.state-sim::before { content: '✓ '; }
.muted { color: var(--cor-tinta-suave); font-size: var(--texto-xs); }
.resource-editor { padding: var(--e-4); border: var(--borda); border-radius: var(--raio-m); margin-block: var(--e-3); }
.resource-editor summary { cursor: pointer; min-height: var(--e-8); }
.resource-editor[open] summary { margin-bottom: var(--e-4); }
.stay-inquiry { margin-top: var(--e-6); padding-top: var(--e-6); border-top: var(--borda); scroll-margin-top: var(--e-24); }
.stay-inquiry h3 { font-size: var(--texto-l); margin-bottom: var(--e-3); }
.stay-inquiry p { font-size: var(--texto-xs); }
.stay-inquiry form { display: grid; gap: var(--e-4); margin-top: var(--e-5); }
.stay-inquiry small { font-size: var(--texto-xxs); color: var(--cor-tinta-suave); display: block; }
.stay-inquiry label { min-width: 0; }
.inquiry-dates { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2); }
.inquiry-dates input { min-width: 0; max-width: 100%; padding-inline: var(--e-2); font-size: var(--texto-xs); }
.inquiry-preview { background: var(--cor-base); padding: var(--e-3); border-radius: var(--raio-s); }
.inquiry-preview summary { cursor: pointer; font-size: var(--texto-xs); min-height: var(--e-8); }
.inquiry-preview p { margin-top: var(--e-2); }
.stay-inquiry .text-button { font-size: var(--texto-xs); min-height: var(--e-12); }
#contato-hospedagem { scroll-margin-top: var(--e-24); }
.stay-mobile-contact { display: none; }
.stay-gallery { margin-block: var(--e-8); }
.stay-gallery h2 { font-size: var(--texto-xl); }
.gallery-thumbnails { display: flex; gap: var(--e-4); overflow-x: auto; padding-bottom: var(--e-4); scroll-snap-type: x proximity; }
.gallery-thumbnails figure { flex: 0 0 240px; min-width: 0; margin: 0; scroll-snap-align: start; }
.gallery-thumbnails a { display: block; position: relative; border-radius: var(--raio-m); overflow: hidden; }
.gallery-thumbnails img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; transition: transform var(--t-editorial) var(--curva); }
.gallery-thumbnails a:hover img { transform: scale(1.03); }
.gallery-thumbnails figcaption { font-size: var(--texto-xxs); margin-top: var(--e-2); }
.gallery-enlarge { position: absolute; right: var(--e-3); bottom: var(--e-3); background: var(--vidro-fundo); backdrop-filter: blur(var(--vidro-blur)); border-radius: var(--raio-pill); padding: var(--e-2) var(--e-3); }
.gallery-dialog,.filter-dialog { border: var(--borda); border-radius: var(--raio-g); padding: var(--e-6); color: var(--cor-tinta); background: var(--cor-superficie); box-shadow: var(--sombra-flutuante); max-height: 92dvh; overflow: auto; overscroll-behavior: contain; }
dialog::backdrop { background: var(--cor-foto-sombra); backdrop-filter: blur(var(--e-1)); }
body:has(dialog[open]) { overflow: hidden; }
.gallery-dialog { width: min(1100px,94vw); }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); margin-bottom: var(--e-6); }
.dialog-heading h2 { font-size: var(--texto-l); }
.dialog-heading .button { flex-shrink: 0; }
.gallery-main { display: grid; place-items: center; min-height: 35dvh; }
.gallery-main img { width: 100%; height: 55dvh; object-fit: contain; }
.gallery-controls { display: flex; align-items: center; justify-content: center; gap: var(--e-6); margin-block: var(--e-4); }
.gallery-controls .button { min-width: var(--e-12); }
.gallery-credit { display: flex; flex-wrap: wrap; gap: var(--e-3); font-size: var(--texto-xs); margin-top: var(--e-3); }
.gallery-dialog > p { font-size: var(--texto-s); }
.filter-panel:has(.stay-advanced),.filter-panel:has(.stay-filter-fallback) { flex-wrap: wrap; }
.stay-advanced { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: var(--e-4); align-items: center; border-top: var(--borda); padding-top: var(--e-4); }
.active-filters { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.filter-chip { border: var(--borda); background: var(--cor-base); border-radius: var(--raio-pill); padding: var(--e-3) var(--e-4); font-size: var(--texto-xs); min-height: var(--e-12); }
.filter-dialog { width: min(560px,94vw); margin: auto var(--e-4) auto auto; }
.filter-dialog p { font-size: var(--texto-xs); margin-block: var(--e-4); }
.filter-resource-list { margin-block: var(--e-6); }
.filter-resource-list .check-label { padding-block: var(--e-4); border-bottom: var(--borda); display: flex; }
.filter-resource-list span { flex: 1; }
.filter-resource-list input { flex: 0 0 auto; }
.dialog-actions { display: flex; justify-content: space-between; align-items: center; gap: var(--e-4); padding-block: var(--e-4); position: sticky; bottom: 0; background: var(--cor-superficie); border-top: var(--borda); }
.filter-dialog .dialog-heading { position: sticky; top: 0; background: var(--cor-superficie); z-index: 1; padding-bottom: var(--e-3); }
.stay-filter-fallback { flex-basis: 100%; padding-top: var(--e-3); }
.stay-filter-fallback summary { min-height: var(--e-12); cursor: pointer; }
.stay-filter-fallback p { font-size: var(--texto-xs); margin-block: var(--e-4); }
.card-stay-facts { border-top: var(--borda); padding-top: var(--e-3); margin-top: var(--e-3); font-size: var(--texto-xs); }
.card-stay-facts p { font-size: inherit; margin: var(--e-2) 0; }
@media(max-width:700px) {
  .stay-detail-grid .contact-card { order: 0; }
  .stay-mobile-contact:not([hidden]) { position: fixed; bottom: 76px; left: 0; right: 0; z-index: 45; display: flex; align-items: center; gap: var(--e-4); padding: var(--e-3) var(--e-4); background: var(--vidro-fundo); backdrop-filter: blur(var(--vidro-blur)); border-top: var(--borda); box-shadow: var(--sombra-suave); }
  .stay-mobile-contact > span { min-width: 0; flex: 1; font-size: var(--texto-xs); font-weight: 600; }
  .stay-mobile-contact small { display: block; font-size: var(--texto-xxs); font-weight: 400; color: var(--cor-tinta-suave); }
  .stay-mobile-contact .button { min-height: var(--e-12); font-size: var(--texto-xs); padding-inline: var(--e-4); }
  body:has([data-stay-contact]) { padding-bottom: 160px; }
  .stay-advanced,.stay-filter-fallback { grid-column: 1/-1; }
  .stay-advanced > .button { width: 100%; }
  .filter-dialog { margin: auto; width: calc(100vw - var(--e-4)); max-height: 90dvh; padding: var(--e-5); }
  .gallery-dialog { padding: var(--e-4); }
  .gallery-thumbnails figure { flex-basis: 48%; }
  .gallery-main img { height: 43dvh; }
  .resource-list > div { grid-template-columns: 1fr 1.15fr; }
  .stay-section h2 { font-size: var(--texto-l); }
  .inquiry-dates input { font-size: var(--texto-m); }
}
@media(prefers-reduced-motion:reduce) { .gallery-thumbnails img { transition: none; transform: none; } }
@media(max-width:420px) { .inquiry-dates { grid-template-columns: 1fr; } }
@media(min-width:701px) and (max-width:1024px) { .inquiry-dates { grid-template-columns: 1fr; } }
