/* V39: lightweight extensions; no external fonts or framework. */
.expandedNav{gap:20px}.expandedNav nav{gap:18px}.expandedNav nav a{white-space:nowrap;font-size:13px}.mobileMenu{display:none}.subpage{background:#f7f6f0;color:#163b3a}.subpage .nav{position:relative;background:#fff}.routeHero{padding:52px max(6vw,24px) 64px;background:#173e3b;color:#fff}.routeHero h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,64px);line-height:1.12;max-width:850px;margin:20px 0}.routeHero>p:last-child{max-width:700px;font-size:19px;line-height:1.65}.breadcrumbs{font-size:13px;margin-bottom:35px}.breadcrumbs a{color:inherit}.routeHero .eyebrow{color:#d6d8a7}.routeSection{max-width:1180px;padding:55px 30px;margin:auto}.routeSection h2,.beachSection h2{font-family:Georgia,serif;font-size:clamp(27px,3vw,38px);font-weight:400;line-height:1.25;margin:0 0 22px}.routeSection p,.routeSection li,.beachSection p{line-height:1.75}.routeSection a:not(.button),.beachSection a{color:#175841;text-underline-offset:3px}.choiceGrid,.valuesGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.choiceCard{border:1px solid #c9d3c9;border-radius:16px;padding:34px;background:#fff}.choiceCard.recommended{border:2px solid #327653;background:#edf4e9}.choiceCard h3{font-size:36px;margin:10px 0 20px}.choiceCard li{margin:9px 0}.choiceCard ul{padding-left:20px}.choiceCard .button{margin-top:20px}.secondaryLink{display:block;margin-top:20px}.muted{color:#53655e;font-size:14px}.bankAlternative{border-top:1px solid #d4decf;margin-top:20px;padding-top:20px;font-size:15px}.bankAlternative p{margin:6px 0}.bankAlternative a,.inkLink{font-weight:700;color:#175841}.historyLink{grid-column:1/-1}.siteMap{grid-column:1/-1;border-top:1px solid #60766d;margin-top:26px;padding-top:20px}.siteMap summary{cursor:pointer;text-decoration:underline;text-underline-offset:5px;list-style:none;font-weight:600}.siteMap summary:after{content:' +';margin-left:8px}.siteMap[open] summary:after{content:' −'}.siteMap nav{display:flex;flex-wrap:wrap;gap:16px 28px;padding:20px 0}.siteMap nav a{color:inherit;font-size:14px}.routeCallout{padding:40px 5%;background:#edf3e9}.routeCallout h2{font-size:30px}.historyStory{display:grid;grid-template-columns:1fr 280px;gap:65px;align-items:center}.ownerPortrait{margin:0}.ownerPortrait img{width:100%;height:auto;border-radius:16px;display:block}.ownerPortrait figcaption{font-size:13px;margin:12px 0;color:#53655e}.valuesGrid{grid-template-columns:repeat(3,minmax(0,1fr));margin:35px 0}.valuesGrid article{border-top:2px solid #7c9a78;padding-top:12px}.valuesGrid h3{font-size:21px}.beachIndex{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.beachIndex a{padding:10px 15px;border:1px solid #a0b4a4;border-radius:24px}.beachSection{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1120px;margin:0 auto;padding:36px 0;border-top:1px solid #d1dbcf;scroll-margin-top:100px}.beachSection figure{margin:0}.beachSection img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;background:#dce6df}.beachSection figcaption{font-size:12px;line-height:1.5;margin-top:10px;color:#53655e}.beachTip{border-left:3px solid #8aa881;padding-left:16px;font-size:15px}.formLayout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:40px;align-items:start}.formAside{background:#e8efdf;padding:26px;border-radius:12px;position:sticky;top:25px}.formAside h2{font-size:29px}.bankCard{padding:26px;border:1px solid #b5c6b2;border-radius:12px;background:#edf4e8;margin-bottom:22px}.bankCard h2{font-size:23px}.bankText{font-family:inherit;font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0}.secondaryButton{display:inline-block;border:1px solid #235d43;background:#fff;color:#235d43;padding:12px 16px;border-radius:5px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.secondaryButton:hover{background:#d9e9d2}.copyStatus{display:block;font-size:13px;margin-top:8px}.reservationForm fieldset{border:0;border-bottom:1px solid #c9d5c7;margin:28px 0;padding:0 0 24px}.reservationForm legend{font-size:22px;font-weight:600;margin-bottom:22px}.fieldGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reservationForm label{display:block;font-size:15px;line-height:1.5;font-weight:600;margin:0 0 18px}.reservationForm input:not([type=checkbox]),.reservationForm select,.reservationForm textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #91a492;border-radius:5px;background:white;color:#193d31;font:inherit;font-weight:400;padding:12px;margin-top:7px;min-height:48px}.reservationForm input[type=file]{font-size:14px}.reservationForm .checkLabel{display:flex;gap:12px;font-weight:400;align-items:flex-start}.checkLabel input{margin-top:5px;min-width:20px;height:20px;accent-color:#235d43}.contractRules{padding-left:22px}.contractRules li{margin-bottom:15px}.formActions{display:flex;gap:12px;flex-wrap:wrap}.formActions .button{border:0;cursor:pointer;font:inherit;font-weight:600}.formActions button:disabled{opacity:.55;cursor:not-allowed}.reviewPanel{padding:26px;background:#edf4e8;border:1px solid #91aa88;border-radius:12px;margin-top:24px}.reviewPanel[hidden]{display:none}.reviewPanel dl{display:grid;grid-template-columns:145px 1fr;gap:8px}.reviewPanel dt{font-weight:700}.reviewPanel dd{margin:0;overflow-wrap:anywhere}.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}#reservationStatus,#deliveryStatus{line-height:1.6}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d39938;outline-offset:4px}.button.dark{color:#fff;background:#164938}.subpage .button{display:inline-block;padding:14px 22px;border-radius:5px;text-decoration:none;text-align:center}.subpage footer{margin-top:30px}.subpage .eyebrow{letter-spacing:1.5px;font-size:12px}
@media(max-width:1050px){.expandedNav>nav{display:none}.expandedNav .mobileMenu{display:block;position:relative;margin-left:auto}.mobileMenu summary{cursor:pointer;padding:12px;font-weight:600}.mobileMenu nav{position:absolute;right:0;top:45px;z-index:50;display:flex;flex-direction:column;gap:0;background:#fff;box-shadow:0 8px 25px #1233;border-radius:8px;min-width:210px;padding:12px}.mobileMenu nav a{padding:12px;color:#164938}.expandedNav{flex-wrap:wrap}.beachSection{margin:0 30px}.formLayout{grid-template-columns:1fr}.formAside{position:static}.historyStory{gap:30px}.expandedNav .navReserve{margin-left:0}}
@media(max-width:650px){.routeHero{padding:25px 22px 38px}.routeHero>p:last-child{font-size:17px}.routeSection{padding:35px 22px}.choiceGrid,.valuesGrid,.historyStory,.beachSection{grid-template-columns:1fr}.choiceCard{padding:24px}.choiceCard h3{font-size:32px}.ownerPortrait{max-width:240px}.fieldGrid{grid-template-columns:1fr;gap:0}.beachSection{gap:20px;margin:0 22px;padding:30px 0}.bankCard{padding:20px}.reservationForm legend{font-size:20px}.formActions>*{width:100%}.reviewPanel{padding:20px}.reviewPanel dl{display:block}.reviewPanel dd{margin:3px 0 12px}.siteMap nav{flex-direction:column;gap:16px}.expandedNav .logoBrand{max-width:155px}.expandedNav{padding:12px 18px!important;gap:8px}.subpage .nav{min-height:80px}.historyValues .button{width:100%}}
.skipLink{position:absolute;top:-80px;left:20px;z-index:1000;padding:15px;background:#fff;color:#164938}.skipLink:focus{top:10px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


#bombinhas img{filter:saturate(1.07) contrast(1.02)}#zimbros img{aspect-ratio:3/1;object-fit:cover}
/* V34 coastal palette across subpages. */
.subpage{background:#f8fcfb;color:#0d353d}
.subpage .nav{background:#fff}
.routeHero{background:linear-gradient(135deg,#0c515f,#08778a);color:#fff}
.routeHero .eyebrow{color:#ffe5b4}
.routeSection a:not(.button),.beachSection a{color:#0d6571}
.choiceCard{border-color:#afd3d0;background:#fff}
.choiceCard.recommended,.bankCard,.reviewPanel{background:#e7f6f2;border-color:#76bab7}
.routeCallout,.formAside{background:#e0f2ee}
.beachIndex a{border-color:#8bbfbc}
.beachTip{border-color:#0c8290}
.secondaryButton{border-color:#0c515f;color:#0c515f}
.secondaryButton:hover{background:#d7efea}
.button.dark,.subpage .button.dark{background:#0c515f;color:#fff}
.button.dark:hover,.subpage .button.dark:hover{background:#086b78}
.pixWarning,.routePix{display:block;color:#a43c21;font-weight:800;letter-spacing:.025em;line-height:1.5}
.bankCard .pixWarning{font-size:1.16rem;background:#fff2e5;padding:12px 14px;border-left:4px solid #b34d2b;margin-bottom:0}
.routePix{font-size:1.1rem;margin-top:18px;color:#fff9eb}
.choiceCard .pixWarning{font-size:1.05rem;margin:12px 0}
.noRefund{border-left:4px solid #b34d2b;padding:8px 14px;background:#fff4e9}
.contractRules li:first-child,.contractRules li:nth-child(5){font-weight:700;color:#9b4027}
#bombinhas img,#quatro-ilhas img{filter:saturate(1.12) contrast(1.025) brightness(1.02)}
@media(max-width:800px){
 .subpage,.subpage main,.subpage footer{max-width:100%;min-width:0;overflow-x:clip}
 .expandedNav{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
 .expandedNav .logoBrand{flex:0 1 145px;min-width:0}
 .expandedNav .navReserve{flex:0 1 120px;margin-left:0;min-width:0}
 .mobileMenu nav{right:0;max-width:calc(100vw - 32px)}
 .routeSection,.beachSection,.routeHero,.formLayout,.choiceGrid,.choiceCard,.bankCard,.reservationForm,.fieldGrid{min-width:0;max-width:100%;box-sizing:border-box}
 .routeSection,.beachSection{overflow-wrap:anywhere}
 .beachSection{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:650px){
 .beachSection,.choiceGrid,.formLayout{grid-template-columns:minmax(0,1fr)}
 .beachSection{width:calc(100% - 44px);margin:0 22px}
 .routeSection{width:100%;padding-left:22px;padding-right:22px}
 .choiceCard .button{max-width:100%;white-space:normal}
 .bankText{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
}

/* V36: payment conditions and width-safe layouts. */
.reservationChoices{grid-template-columns:minmax(0,1fr);gap:44px}
.bookingMethod{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:30px;align-items:start}
.bookingMethod.noAside{grid-template-columns:minmax(0,1fr)}
.bookingMethod>div,.bookingMethod aside{min-width:0}
.bookingMethod h4{font:500 23px/1.3 Georgia,serif;margin:24px 0 14px}
.bookingMethod aside h4{margin-top:10px}
.bookingMethod .formAside{position:static}
.bookingConditions{padding-left:24px}
.bookingConditions li{padding:10px 14px;margin-bottom:16px}
.bookingConditions li:first-child{border-left:4px solid #b34d2b;background:#fff4e9}
.paymentRule{font-weight:750;background:#daf1e9;color:#0c515f;border-left:4px solid #08778a;padding:12px 14px;border-radius:0 5px 5px 0}
.paymentWarning{font-weight:800;color:#9b4027;background:#fff4e9;border-left:4px solid #b34d2b;padding:12px 14px}
.contractRules li.paymentRule{font-weight:750;color:#0c515f}
.freeChildRule{font-weight:800;background:#fff7dc;color:#0c515f;border-left:4px solid #d39938;padding:12px 14px;border-radius:0 5px 5px 0}
.freeChildNote{font-weight:700;color:#0c6571}
@media(max-width:1050px){.bookingMethod{grid-template-columns:minmax(0,1fr)}.bookingMethod .formAside{margin-top:8px}}
@media(max-width:800px){
 .expandedNav{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:0;height:auto;min-height:104px;padding:40px 18px 12px!important}
 .expandedNav .logoBrand{width:135px;max-width:100%;height:56px;grid-column:1;grid-row:1/3}
 .expandedNav .mobileMenu{grid-column:2;grid-row:1;margin:0;justify-self:end}
 .expandedNav .mobileMenu summary{padding:8px 4px}
 .expandedNav .navReserve{grid-column:2;grid-row:2;width:auto;max-width:135px;justify-self:end;margin:0;font-size:10px;white-space:normal}
 .expandedNav .mobileMenu nav{min-width:0;width:220px;max-width:calc(100vw - 36px);display:flex;right:0;top:38px}
 .subpage .expandedNav .logoBrand{grid-row:1}
 .subpage .expandedNav{min-height:104px}
 .routeHero,.routeSection,.beachSection,.formAside,.reviewPanel{overflow-wrap:anywhere}
 .routeHero h1{font-size:clamp(30px,8vw,48px)}
 .historyStory,.valuesGrid,.beachSection,.fieldGrid,.choiceGrid,.bookingMethod,.formLayout{grid-template-columns:minmax(0,1fr)}
 .historyStory>*{min-width:0}
 .subpage .formActions>*{width:100%;max-width:100%;white-space:normal}
 .reservationForm legend{max-width:100%;white-space:normal}
 .subpage .button,.secondaryButton{max-width:100%;white-space:normal;overflow-wrap:anywhere}
 .reservationChoices{gap:50px}
 .reservationChoices .bookingMethod{box-shadow:0 12px 28px rgba(12,81,95,.1)}
}
@media(max-width:800px){.nav.tiled.expandedNav{height:auto;min-height:108px}}
#bombinhas img{aspect-ratio:16/9;object-position:center}
@media(max-width:800px){
 .beachSection figcaption,.choiceCard,.routeHero,.routeSection{overflow-wrap:anywhere}
}
@media(max-width:480px){
 .expandedNav{grid-template-columns:minmax(0,118px) minmax(0,1fr);padding-inline:14px!important}
 .expandedNav .logoBrand{width:118px}.expandedNav .navReserve{max-width:128px;font-size:9.5px;padding-inline:10px}
 .routeHero{padding-inline:18px}.routeSection{padding-inline:18px}.beachSection{width:calc(100% - 36px);margin-inline:18px}
 .choiceCard{padding:20px}.bookingConditions{padding-left:20px}.bookingConditions li{padding-inline:10px}
}

/* V39: separate 48px tap areas; header remains within narrow viewports. */
.expandedNav .mobileMenu summary{display:flex;align-items:center;justify-content:center;min-width:64px;min-height:48px;padding:12px;line-height:24px;box-sizing:border-box}
.expandedNav .navReserve{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 10px;font-size:12px;line-height:1.3;letter-spacing:.04em;box-sizing:border-box}
.siteMap summary{display:inline-flex;align-items:center;min-height:48px}
@media(max-width:1050px){.mobileMenu nav{top:100%;margin-top:8px}.mobileMenu nav a{min-height:48px;display:flex;align-items:center}}
@media(max-width:800px){
 .expandedNav{row-gap:8px;padding-top:40px!important;padding-bottom:12px!important}
 .expandedNav .mobileMenu summary{min-height:48px;padding:12px}
 .expandedNav .navReserve{font-size:12px;min-height:48px;max-width:145px;padding:10px;line-height:1.3}
 .expandedNav .mobileMenu nav{top:100%;margin-top:8px}
 .subpage .expandedNav .logoBrand{grid-row:1}
}
