/* Readable type scale. rem units respect the reader's default font size. */
:root{--text-body:1.125rem;--text-ui:1rem;--text-note:.875rem;--text-label:.8125rem;--reading-width:68ch}
html{scroll-padding-top:7rem;scrollbar-gutter:stable}body{font-size:var(--text-body);line-height:1.7;overflow-wrap:break-word}
button,input,select,textarea{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #0871a1;outline-offset:4px}
.ocean-hero :is(a,button):focus-visible,.home .site-header:not(.is-scrolled) :is(a,button):focus-visible{outline-color:#ffda38}
[data-theme=dark] :is(a,button,input,select,summary):focus-visible{outline-color:#ffda38}
section[id],h2[id],.guide-toc{scroll-margin-top:7rem}
.header-inner{min-height:5.5rem;height:auto;padding-block:.8rem;gap:1rem}
.desktop-nav{gap:1.25rem}.desktop-nav a{font-size:.875rem;padding-block:.75rem;line-height:1.4}
.logo-word small,.footer-brand .logo-word small{font-size:.625rem;letter-spacing:.1em}
.header-actions{gap:.5rem}.icon-button,.save-button,.mobile-toggle{min-width:44px;min-height:44px;flex-shrink:0}
.trip-button{font-size:.875rem;min-height:44px}.trip-button b{font-size:.75rem;min-width:22px;min-height:22px}
.mobile-nav{max-height:calc(100dvh - 5.5rem);overflow-y:auto;overscroll-behavior:contain}.mobile-nav a{font-size:1.125rem;min-height:48px}
.eyebrow,.section-heading .eyebrow,.chapter-card .eyebrow,.compare-pick>.eyebrow,.compare-card .eyebrow{font-size:var(--text-label);line-height:1.6;letter-spacing:.1em}
.small,.source-note,.section-note,.editorial-date,.breadcrumbs,.map-caption,.photo-chip,.mini-pill,.mood-tags span,.compare-source,.export-budget-status,.motion-control,.footer-bottom,.receipt-tag{font-size:var(--text-note)!important;line-height:1.65!important}
.source-note a,.prose a:not(.button),.fx-note a,.fx-settings a,.tour-detail p a{text-decoration:underline;text-underline-offset:3px}
.source-note{max-width:var(--reading-width)}
.button,.button.ocean-primary,.finder>.button,.tour-content>.button,.booking-panel .button,.blue-care .button,.map-place .button,.summer-tool-card>.button,.destination-decisions .button,.beach-next .button,.tour-money-note>.button,.summer-signoff .button,.cost-story .button,.trip-dialog .button,.budget-result>.button{font-size:var(--text-ui);min-height:48px;line-height:1.45;gap:1rem}
.text-link,.section-heading>.text-link,.compare-link,.chapter-card>.text-link,.compare-card .text-link{font-size:var(--text-ui);line-height:1.5;min-height:44px}
.text-button,.footer-bottom .text-button{font-size:var(--text-note);min-height:44px}
.breadcrumbs{gap:.5rem}.breadcrumbs a{min-height:32px;display:inline-flex;align-items:center}
:is(.section-heading,.planning-grid .section-heading,.summer-tools .section-heading,.faq-section) h2,.tour-journey>h2{font-size:clamp(2rem,3.6vw,3.25rem);line-height:1.12;letter-spacing:-.04em}
.section-heading p:not(.eyebrow),.summer-tools .section-heading p{font-size:var(--text-body);line-height:1.7;max-width:var(--reading-width)}
.page-intro>p:not(.eyebrow),.destination-hero .answer,.article-intro .answer{font-size:1.25rem;line-height:1.65;max-width:65ch}
.prose{max-width:min(75rem,calc(100% - 3rem))}.prose>p,.prose>h2,.prose>ul,.prose>ol{max-width:var(--reading-width)}
.prose p,.tour-detail p,.chapter-card p,.decision-grid p,.deeper-notes p,.beach-soul p,.beach-reading p,.beach-decision-box p,.travel-facts p,.journey-line p,.journey-intro,.tour-money-note p,.guide-card p,.stay-card p{font-size:var(--text-body);line-height:1.75}
.prose .answer{font-size:1.25rem}.prose h2{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.2}
.chips{flex-wrap:wrap}.chips a{font-size:var(--text-ui);min-height:44px;padding:.65rem 1rem;line-height:1.4}
.chapter-card h3,.travel-facts h3,.guide-card h3,.summer-tool-card h3,.journey-line h3{font-size:clamp(1.5rem,2.2vw,1.875rem);line-height:1.2}
.fact-list dt,.compare-card dt{font-size:var(--text-note);line-height:1.6}.fact-list dd,.compare-card dd{font-size:var(--text-body);line-height:1.7}
.filter-tabs{flex-wrap:wrap}.filter-tabs button,.palette-tabs button{font-size:var(--text-ui);min-height:44px;line-height:1.5}
.finder label>span{font-size:var(--text-note)}.finder select{font-size:var(--text-ui);min-height:44px}
.ocean-hero{min-height:54rem;height:auto;max-height:none}.ocean-hero-inner{min-height:54rem;padding-top:10rem;padding-bottom:6.5rem;grid-template-columns:minmax(0,1fr) 21rem;gap:0 3rem}
.ocean-hero-copy{padding-bottom:3.5rem}.ocean-hero h1{font-size:clamp(5rem,9vw,9rem);line-height:.95;max-width:100%;margin-bottom:2rem}
.ocean-eyebrow,.ocean-hero-explore>.ocean-eyebrow{font-size:.75rem;line-height:1.7;letter-spacing:.12em}
.ocean-description{font-size:1.125rem;line-height:1.7;max-width:32rem}.ocean-secondary{font-size:1rem;line-height:1.6;min-height:44px;max-width:none}
.ocean-actions{gap:.75rem 1.5rem}.ocean-hero-explore{max-width:none;width:100%;padding-bottom:3.5rem}
.ocean-scene-list small{font-size:.6875rem;line-height:1.5;letter-spacing:.04em}.ocean-scene-list b{font-size:1.125rem;line-height:1.25}.ocean-scene-list>button{min-height:88px}
.ocean-hero-bottom #ocean-place>span{font-size:1rem}.ocean-hero-bottom #ocean-place small{font-size:.875rem;line-height:1.6;max-width:26rem}
.ocean-scroll{font-size:.875rem}.ocean-edition{font-size:.75rem;max-width:12rem}
.intro-strip>span{font-size:.75rem}.intro-strip p{font-size:var(--text-note)}.summer-ribbon>div{font-size:.875rem}.ribbon-pause{font-size:.875rem;max-width:12rem}
.tour-content>p,.beach-content>p{font-size:var(--text-body);line-height:1.7}.tour-rating,.tour-rating>span:nth-child(2),.tour-rating>span:last-child{font-size:var(--text-note);line-height:1.6}
.tour-rating>strong{font-size:1rem}.tour-rating small{font-size:.8125rem}.tour-content h3{font-size:1.875rem;line-height:1.2}
.tour-price{display:block}.price-ars{display:block;font-size:1.875rem;line-height:1.25;font-family:Bricolage,Arial,sans-serif;color:var(--navy);font-weight:600;letter-spacing:-.03em}
.price-ars small{display:block;font-family:Nunito,Arial,sans-serif;font-weight:400;font-size:.875rem;line-height:1.6;letter-spacing:0;margin-top:.35rem}
.price-original{display:block;font-size:.875rem;line-height:1.7;margin-top:.5rem;color:var(--muted)}.price-method{font-size:.875rem;text-decoration:underline;display:inline-block;margin:.5rem 0 1rem;text-underline-offset:3px}
.local-fee,.local-fee strong,.plain-provider{font-size:var(--text-note);line-height:1.7}.local-fee strong{display:block}
.fx-note{font-size:var(--text-note)!important;line-height:1.7!important;color:var(--muted);max-width:65ch;margin-block:1rem}
.booking-panel .booking-price{margin-bottom:1rem}.booking-panel{top:7rem}.booking-panel .text-link{margin-top:1rem}
.faq-list summary,.questions-extra summary{font-size:var(--text-body);line-height:1.6;min-height:48px;gap:1rem;padding-block:1.25rem}.faq-number{font-size:.875rem;min-width:1.5rem}
.faq-list details p,.questions-extra details p{font-size:var(--text-body);line-height:1.75;max-width:var(--reading-width);margin-left:2.5rem}
.footer-top a{font-size:1rem;line-height:1.6;min-height:36px;display:flex;align-items:center}.footer-top h3{font-size:1.125rem}.footer-brand p{font-size:1rem;line-height:1.7}.footer-bottom>div{gap:1rem;flex-wrap:wrap}
dialog{padding:2rem;max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}dialog p{font-size:1rem;line-height:1.7}.search-input input{font-size:1.125rem;min-width:0}#search-results a,.trip-item a,.trip-item button{font-size:1rem;line-height:1.5;min-height:44px}.trip-item{align-items:flex-start;flex-wrap:wrap}
.guide-toc{margin-block:0 2rem}.guide-toc details{border:1px solid var(--line);background:var(--paper);border-radius:1.25rem;padding:1rem 1.25rem}.guide-toc summary{font-size:1rem;font-weight:800;cursor:pointer;min-height:44px;line-height:1.6}.guide-toc summary>span{color:var(--muted);font-weight:400;font-size:.875rem;margin-left:.75rem}.guide-toc ol{padding-left:1.5rem;margin:1rem 0 .25rem;columns:2;column-gap:2rem}.guide-toc li{break-inside:avoid;margin-bottom:.5rem}.guide-toc a{font-size:1rem;line-height:1.6;display:inline-block;padding-block:.35rem}
.chapter-nav{flex-wrap:wrap}.chapter-nav a{font-size:1rem;min-height:44px;line-height:1.5}
.calculator-controls label,.budget-fields label,.budget-tour-label{font-size:1rem;line-height:1.6}.budget-fields input,.calculator-controls input,.calculator-controls select,.budget-tour-label select{font-size:1.125rem;min-height:50px;padding:.75rem;line-height:1.5}
.budget-fields input{padding-right:3.5rem}.budget-fields input::placeholder{font-size:1rem}.budget-fields label>span{font-size:.875rem;bottom:1rem}
.budget-step p,.budget-step .small,.match-form fieldset .small,.compare-pick>.small{font-size:.875rem;line-height:1.75}.budget-step h2{font-size:1.875rem;line-height:1.2}
.illustrated-options b,.choice-pills span,.compare-options span{font-size:1rem;line-height:1.55}.illustrated-options label>span,.compare-options small{font-size:.875rem;line-height:1.65}.choice-pills span{min-height:44px}.compare-options label{min-height:80px}
.illustrated-options input,.compare-options input,.travel-checklist input{width:22px;height:22px;flex-shrink:0}.match-form legend{font-size:1.875rem;line-height:1.2}.match-form legend>span{font-size:1rem}
.match-pick p,.match-pick .match-access{font-size:1rem;line-height:1.75}.match-pick .text-link{font-size:1rem}
.compare-card h2,.beach-comparison:has(>.compare-card:nth-child(3)) .compare-card h2{font-size:1.75rem;line-height:1.2;min-height:0}.compare-card dl>div{min-height:0;padding-block:1rem}.beach-comparison:has(>.compare-card:nth-child(3)) .compare-card dd{font-size:1.125rem}
.compare-card .compare-source{font-size:.875rem}.compare-card .text-link{font-size:1rem}.budget-result h2{font-size:clamp(2rem,4vw,3rem);line-height:1.2;color:#ffdf69}.budget-result h3{font-size:1.5rem;line-height:1.3}
.budget-result>p,.budget-reservation p,.budget-result .budget-footnote{font-size:1rem;line-height:1.75}.budget-result dl>div{font-size:1rem;line-height:1.65;flex-wrap:wrap}.budget-result dd{margin:0}.budget-result>.eyebrow{font-size:.8125rem}
.fx-settings{border:1px solid var(--line);border-radius:1rem;padding:1rem;margin:1rem 0 1.5rem;scroll-margin-top:7rem}.fx-settings summary{cursor:pointer;font-size:1rem;line-height:1.6;min-height:44px;font-weight:800}.fx-settings p{font-size:.875rem;line-height:1.75;margin:1rem 0}.fx-settings .budget-fields input{padding-right:.75rem}.fx-settings:target{border-color:var(--teal)}
.budget-estimate{border-top:1px solid #ffffff40;padding-top:1.25rem;margin-top:1.25rem}.budget-estimate>p{font-size:.875rem;line-height:1.75;color:#e4f5f5}.budget-estimate a{color:#adf1ed;text-decoration:underline}.currency-choice{margin-bottom:1rem}
.page-intro h1,.article-intro h1,.destination-hero h1{overflow-wrap:normal;hyphens:manual}
@media(max-width:1359px){.desktop-nav{display:none}.mobile-toggle{display:flex}.header-inner{padding-inline:1.5rem}.ocean-hero-inner{grid-template-columns:minmax(0,1fr) 19rem}.ocean-hero h1{font-size:clamp(4.75rem,9vw,7.5rem)}}
@media(min-width:1360px){.mobile-toggle{display:none}}
@media(max-width:900px){.ocean-hero-inner{grid-template-columns:minmax(0,1fr) 16rem;gap:0 1.5rem}.ocean-scene-list img{display:none}.ocean-hero h1{font-size:clamp(4.25rem,10vw,6rem)}.ocean-hero-explore>.ocean-eyebrow{font-size:.75rem}.ocean-actions{flex-direction:column;align-items:flex-start}.article-grid,.budget-tool,.match-tool{grid-template-columns:1fr}.booking-panel,.budget-output,.match-result{position:static}.chapter-nav{gap:.5rem 1rem}.chapter-nav a{font-size:.875rem}}
@media(max-width:700px){.beach-comparison,.beach-comparison:has(>.compare-card:nth-child(3)){display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;gap:1.5rem}.compare-card,.beach-comparison:has(>.compare-card:nth-child(3)) .compare-card{width:100%;flex:none}.compare-card>img{height:220px}.compare-card>div,.beach-comparison:has(>.compare-card:nth-child(3)) .compare-card>div{padding:1.5rem}.compare-card dd,.beach-comparison:has(>.compare-card:nth-child(3)) .compare-card dd{font-size:1.125rem}.guide-toc ol{columns:1}.tour-money-note{flex-wrap:wrap}}
@media(max-width:600px){
 :root{--text-body:1.0625rem}.wrap{width:calc(100% - 2.5rem)}.header-inner{min-height:5rem;padding:.75rem 1rem;gap:.5rem}.home .header-inner{height:auto}.header-actions{gap:.125rem}.home .site-header .logo-word,.logo-word{font-size:2rem}.logo-word small,.footer-brand .logo-word small{font-size:.5625rem}.trip-button{padding:0}.trip-button b{font-size:.75rem}.mobile-nav{max-height:calc(100dvh - 5rem)}
 .ocean-hero{min-height:54rem;height:auto;max-height:none}.ocean-hero-inner{display:flex;width:calc(100% - 2.5rem);min-height:54rem;padding-top:8rem;padding-bottom:6rem;gap:0}.ocean-hero-copy{padding-bottom:1.5rem}.ocean-hero h1{font-size:clamp(3.7rem,17vw,6rem);line-height:.98;margin-bottom:1.5rem}.ocean-eyebrow,.ocean-hero-explore>.ocean-eyebrow{font-size:.75rem;letter-spacing:.07em}.ocean-description{font-size:1.0625rem;line-height:1.7;max-width:none;margin-bottom:1.5rem}.ocean-actions{align-items:flex-start;gap:.5rem}.ocean-secondary{font-size:1rem;line-height:1.6;max-width:100%}.ocean-hero-explore{padding:1.5rem 0;margin-top:auto}.ocean-scene-list{gap:.5rem}.ocean-scene-list>button{min-height:76px;padding:.875rem .65rem}.ocean-scene-list small{display:none}.ocean-scene-list b{font-size:.9375rem;line-height:1.35}.ocean-hero-bottom{gap:1rem}.ocean-hero-bottom #ocean-place>span{font-size:.9375rem}.ocean-hero-bottom #ocean-place small{font-size:.8125rem;line-height:1.6;max-width:18rem}.ocean-hero-bottom .ocean-scroll{min-height:44px;min-width:44px;flex-basis:44px}.ocean-scroll>span{min-width:36px;min-height:36px}.ocean-edition{display:none}
 .page-intro>p:not(.eyebrow),.destination-hero .answer,.article-intro .answer,.prose .answer{font-size:1.125rem;line-height:1.75}.page-intro h1,.article-intro h1,.prose h1{font-size:clamp(2.5rem,10.8vw,3.5rem);line-height:1.08}.destination-hero h1{font-size:clamp(2.75rem,12vw,4rem);line-height:1.05}.section-heading h2,.faq-section h2,.summer-tools .section-heading h2,.planning-grid .section-heading h2{font-size:2.25rem;line-height:1.15}
 .summer-tool-card>.button{grid-column:auto}.summer-tool-card p,.summer-tool-card .mini-pill{font-size:1rem}.chapter-card .text-link,.cost-story .button,.tour-money-note>.button,.summer-signoff .button{font-size:1rem}.faq-list details p,.questions-extra details p{margin-left:0;margin-right:0}.faq-list summary{font-size:1.0625rem}.ribbon-pause{font-size:.8125rem;padding-inline:1rem}.summer-ribbon>div{font-size:.875rem}
 .budget-fields{grid-template-columns:1fr;gap:1.25rem}.budget-step h2{font-size:1.75rem}.budget-form{padding:1.5rem}.budget-step{display:block}.budget-step>.step-circle{margin-bottom:1rem}.budget-result{padding:1.5rem}.budget-result h2{font-size:2.25rem}.budget-result dl>div{gap:.5rem}.budget-result h3{font-size:1.5rem}.budget-tour-label select{width:100%;min-width:0}.match-form legend{font-size:1.75rem}.illustrated-options{grid-template-columns:1fr}.compare-options{grid-template-columns:1fr}.compare-options span{font-size:1rem}.compare-options small{font-size:.875rem}.compare-pick{padding:1.5rem}
 .chapter-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;padding-block:1rem}.chapter-nav a{font-size:1rem;white-space:normal}.chapter-nav>b,.chapter-nav>strong{grid-column:1/-1}.finder label>span{font-size:.875rem}.footer-top a{font-size:1rem;min-height:44px}.footer-bottom .text-button{font-size:.875rem}.footer-bottom{gap:1rem}.tour-rating>span:last-child{margin-left:0}.source-note{font-size:.875rem!important}.travel-checklist label{font-size:1.0625rem;line-height:1.7}.prose{max-width:none}.guide-toc{margin-top:1rem}.guide-toc details{padding:.75rem 1rem}dialog{padding:1.5rem;border-radius:1.25rem}dialog h2{font-size:1.875rem}.search-input input{font-size:1rem}
}
@media(max-width:359px){.header-inner{padding-inline:.75rem}.logo-word,.home .site-header .logo-word{font-size:1.8rem}.logo-mark,.home .site-header .logo-mark{width:32px;height:32px}.header-actions .trip-button b{display:none}.ocean-hero h1{font-size:3.5rem}.ocean-hero-inner{padding-top:7.5rem}.ocean-scene-list b{font-size:.875rem}.ocean-hero-bottom #ocean-place small{max-width:13rem}.ocean-hero{min-height:58rem}.ocean-hero-inner{min-height:58rem}.wrap{width:calc(100% - 2rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.will-reveal{opacity:1!important;transform:none!important}}

/* Give inline descriptive links and map controls the same readable floor. */
.card-index,.card-bottom,.destination-content>.eyebrow,.filter-result,.wide-photo figcaption,.beach-photo-caption,.budget-status,.palette-photo figcaption,.collage-place,.guide-toc summary>span{font-size:.875rem;line-height:1.65}
.map-pin b{font-size:.875rem;line-height:1.4}.map-pin{min-height:44px}.map-pin span{min-width:32px;min-height:32px;font-size:.8125rem}.beach-content .eyebrow{font-size:.8125rem}.guide-toc:has(details[open]){scroll-margin-top:7rem}
.calculator-result>p,.calculator-result li,.calculator-result .result-divider p{font-size:1rem;line-height:1.75}.calculator-result h2{font-size:clamp(2rem,4vw,3rem);line-height:1.2;overflow-wrap:anywhere}
.guide-toc:where(article nav){width:100%;margin-inline:0}
