/* Bloco 2: composição, grid e interações são propostas digitais.
   Paleta oficial e geometria dos SVGs preservadas. Poppins local provisória;
   Aminute depende de webfont licenciada. Texto sempre fora das fotografias. */
main>.section.stay-section{padding-block:clamp(34px,6svh,77px) clamp(53px,8.4svh,96px)}
.stay-section .section-heading{gap:8px 32px;margin-bottom:clamp(16px,3svh,28px)}
.stay-section .section-heading h2{font-size:clamp(30px,3.2vw,48px)}
.stay-layout{
 display:grid;
 grid-template:"photo options" auto "photo detail" 1fr / minmax(0,1fr) minmax(0,1fr);
 gap:28px clamp(34px,6vw,86px);
 align-items:start;
}
.stay-figure{grid-area:photo;min-width:0}
.stay-photo{height:clamp(480px,75.6svh,744px);border-radius:0;overflow:hidden}
.stay-photo img{object-position:50% 50%}
.mode-options{grid-area:options;gap:6px;margin:0;min-width:0}
.mode-options legend{font-size:13px;margin-bottom:6px}
.mode-options label{font-size:13px;min-height:44px;border-radius:0;padding:8px 10px}
.mode-options label:has(input:checked){padding:7px 9px;background:var(--brand-blue);color:white}
.mode-options label:has(input:focus-visible){outline:3px solid var(--focus-outer);outline-offset:4px;box-shadow:0 0 0 3px var(--focus-inner);position:relative;z-index:1}
.stay-content{grid-area:detail;padding:0;overflow:visible;min-width:0}
.stay-content h3{font-size:clamp(24px,2.4vw,34px);margin-top:3px}
.stay-content #stay-description{font-size:15px;line-height:1.6;margin-top:14px;max-width:52ch}
.stay-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 0;padding:16px 0;border-block:1px solid var(--brand-sand)}
.stay-facts dt{font-size:12px;color:var(--text-secondary)}
.stay-facts dd{margin:1px 0 0;font-size:18px;color:var(--brand-blue);line-height:1.35}
.stay-capacity{border:0;padding:0;margin-top:16px;font-size:13px;line-height:1.55;max-width:58ch}
.stay-amenities{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px;margin-top:24px;font-size:13px;line-height:1.55}
.stay-amenities img{width:40px;height:auto}
.stay-amenities p{font-weight:600}
.stay-amenities ul{display:flex;flex-wrap:wrap;gap:2px 24px;margin:3px 0 0;padding-left:17px}
.stay-amenities li::marker{color:var(--brand-blue)}
.stay-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;margin-top:24px}
.stay-content .button{margin:0}
@media(max-width:767px){
 main>.section.stay-section{padding-block:24px 48px}
 .stay-section .section-heading{margin-bottom:12px}
 .stay-actions .button{width:auto;padding-inline:12px;gap:8px}
 .stay-layout{grid-template:"options" auto "photo" auto "detail" auto / minmax(0,1fr);gap:20px}
 .stay-photo{height:clamp(230px,31.2svh,300px)}
}

.gallery-section{border-bottom:1px solid var(--brand-sand)}
.gallery-intro{display:flex;gap:24px;align-items:flex-start}
.gallery-intro img{width:48px;height:48px;object-fit:contain;flex:none}
.gallery-intro p{font-size:14px;line-height:1.9;color:var(--text-secondary);max-width:36ch}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;list-style:none;padding:0;margin:0}
.gallery-open{display:block;aspect-ratio:4/5;background:var(--brand-sand);outline-offset:5px;overflow:hidden}
.gallery-open img{width:100%;height:100%;object-fit:cover;transition:transform 200ms var(--ease)}
.gallery-grid li:nth-child(n+4) .gallery-open{aspect-ratio:4/3}
.gallery-grid li:nth-child(5) .gallery-open img{object-position:center 65%}
.gallery-open:hover img{transform:scale(1.025)}
.gallery-grid figcaption{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;font-size:13px;line-height:1.7;padding-top:14px;color:var(--text-primary)}
.gallery-number{font-size:10px;color:var(--brand-blue);font-weight:600}
.gallery-enlarge{color:var(--brand-blue);font-size:19px}
.gallery-dialog{border:1px solid var(--brand-sand);background:var(--surface-page);color:var(--text-primary);width:min(1000px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:24px;margin:auto;overflow:auto}
.gallery-dialog::backdrop{background:#161616dd}
.gallery-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.gallery-dialog h2{font-size:20px;letter-spacing:-.02em;line-height:1.4}
.gallery-dialog button{min-height:48px;min-width:48px;padding:10px 16px;background:transparent;color:var(--brand-blue);border:1px solid var(--brand-blue);font-size:14px;line-height:1.5}
.gallery-dialog button:hover{background:var(--brand-blue);color:white}
.gallery-close{display:flex;align-items:center;gap:16px}
.gallery-close span{font-size:24px;line-height:1}
.gallery-view img{width:100%;height:auto;max-height:clamp(100px,calc(100dvh - 300px),760px);object-fit:contain}
.gallery-view figcaption{text-align:center;font-size:14px;padding-top:14px;line-height:1.5}
.gallery-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-top:20px}
.gallery-controls button:first-child{justify-self:start}
.gallery-controls button:last-child{justify-self:end}
#gallery-status{font-size:13px;color:var(--text-secondary);text-align:center}
#gallery-help{font-size:12px;color:var(--text-secondary);text-align:center;margin-top:16px}
#gallery-error{font-size:14px;color:var(--feedback-error);margin-top:16px;text-align:center}
@media(max-width:999px){.gallery-grid{gap:28px 16px}}
@media(max-width:767px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.gallery-intro{gap:20px}.gallery-intro p{max-width:42ch}.gallery-dialog{padding:16px}.gallery-dialog h2{font-size:17px}.gallery-dialog button{padding-inline:12px}.gallery-dialog-header{gap:12px}.gallery-controls{gap:20px}.gallery-controls button{font-size:12px}.gallery-dialog .gallery-close{font-size:12px;gap:20px}}
@media(max-width:539px){.gallery-grid{grid-template-columns:1fr;gap:32px}.gallery-open{aspect-ratio:4/5}.gallery-grid li:nth-child(4) .gallery-open,.gallery-grid li:nth-child(6) .gallery-open{aspect-ratio:16/9}.gallery-grid figcaption{font-size:14px}.gallery-intro img{width:40px;height:40px}}
@media(max-width:359px){.mode-options{grid-template-columns:1fr}.stay-facts{gap:12px}.gallery-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:12px}.gallery-dialog h2{font-size:15px}.gallery-controls{gap:6px}.gallery-controls button{padding:10px 8px}#gallery-status{font-size:11px}}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none}.gallery-open:hover img{transform:none}}
@media(forced-colors:active){.gallery-open{border:1px solid LinkText}.gallery-dialog button{border:2px solid ButtonText}.mode-options label:has(input:checked){outline:2px solid Highlight}}

/* Revisão solicitada: exibir a fotografia vertical completa em A Vila. */
.structure-photo{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px)}
.structure-photo>img{width:100%;max-width:420px;height:auto;object-fit:contain;justify-self:center}
.location-section .location-address{margin-top:16px;font-style:normal;font-size:14px;line-height:1.8;color:var(--text-secondary)}
@media(max-width:767px){.structure-photo{grid-template-columns:1fr}}

/* A Vila */
main>.section.structure-section{
 background:#9e4428;
 color:#fff;
 padding-block:clamp(44px,7vw,96px);
}
main>.section.structure-section::before{background:var(--brand-sand)}
.villa-layout{max-width:1320px;margin-inline:auto}
.villa-heading .eyebrow{color:inherit;margin-bottom:14px}
.villa-heading h2{max-width:18ch}
.villa-heading>p:last-child{max-width:47ch;margin-top:16px;line-height:1.7}
.villa-amenities{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:clamp(22px,4vw,48px) clamp(16px,3vw,36px);
 list-style:none;
 margin:28px 0 0;
 padding:26px 0 0;
 border-top:1px solid #fff8;
}
.villa-amenities li{display:grid;align-content:start;gap:10px;font-size:clamp(15px,1.6vw,21px);line-height:1.35}
.villa-icon{
 width:44px;
 height:44px;
 background:currentColor;
 mask:var(--villa-icon) center / contain no-repeat;
}
@media(min-width:768px){
 .villa-amenities{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.villa-icon--quartos{--villa-icon:url('../../assets/brand/comodidade-quartos.svg')}
.villa-icon--wifi{--villa-icon:url('../../assets/brand/comodidade-wifi.svg')}
.villa-icon--praia{--villa-icon:url('../../assets/brand/comodidade-praia.svg')}
.villa-icon--piscina{--villa-icon:url('../../assets/brand/comodidade-piscina.svg')}
.villa-icon--esportes{--villa-icon:url('../../assets/brand/comodidade-esportes.svg')}
.villa-icon--varanda{--villa-icon:url('../../assets/brand/comodidade-varanda.svg')}
.villa-icon--cozinha{--villa-icon:url('../../assets/brand/comodidade-cozinha.svg')}
.villa-icon--churrasqueira{--villa-icon:url('../../assets/brand/comodidade-churrasqueira.svg')}