/* Shared visual language for traveler and resort-partner pages. */
:root{--navy:#083965;--blue:#0c4e90;--lime:#a3d78e;--green:#426b2b;--ink:#102b3c;--muted:#4d626f;--line:#d8e2e7;--surface:#f1f6f7;--radius-card:16px;--radius-control:8px}
body{font-size:16px;line-height:1.65;color:var(--ink);background:#fff}
h1,h2,h3{line-height:1.18;text-wrap:pretty;overflow-wrap:break-word}h2{letter-spacing:-.035em}h3{letter-spacing:-.02em}
p,li{overflow-wrap:break-word}.eyebrow{line-height:1.6;letter-spacing:.13em}.text-link{color:var(--blue);text-underline-offset:4px}.text-link:hover{text-decoration:underline}
.button{border-radius:var(--radius-control);min-height:48px;font-size:15px;line-height:1.4;gap:20px}.button.navy{background:var(--navy);color:white}.button.lime{background:var(--lime);color:var(--navy)}.button:hover{transform:none}.button.navy:hover{background:#052c4e}.button.lime:hover{background:#b5e3a3}
header{border-bottom:1px solid var(--line)}.nav{gap:20px}header #navigation a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.menu-button{min-height:44px;min-width:52px;border-radius:var(--radius-control)}
:where(input:not([type=checkbox]):not([type=hidden]),select,textarea){font-size:16px;line-height:1.5;border-radius:var(--radius-control)}input[type=checkbox]{accent-color:var(--navy);min-width:18px;min-height:18px}summary{min-height:44px;line-height:1.5}button{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1476ad;outline-offset:4px}.button.navy:focus-visible,.rs-excellence a:focus-visible,.club-section a:focus-visible{outline-color:var(--lime)}
.home-book-card,.rs-hero,.rs-soft,.guide-method,.guide-facts,.cert-soft,.atlas-detail-lead,.bs-preview-section{background:var(--surface)}
.home-book-card,.rs-hero img,.rs-overview-grid article,.guide-list article,.cert-card,.native-form-card,.join-box,.rf-card,.bs-demo,.atlas-detail{border-radius:var(--radius-card)}
.rs-overview-grid article,.guide-list article,.cert-card,.native-form-card,.join-box{box-shadow:none;border:1px solid var(--line)}
.rs-overview>p,.rs-sub-intro>p,.rs-related>p,.home-book-copy>p:not(.eyebrow),.cert-intro{max-width:65ch}.rs-section h2,.rs-related h2,.cert-section h2{max-width:24ch}.rs-section .rs-heading{margin-bottom:32px}
.rs-page-nav{gap:8px;padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.rs-page-nav a{font-size:14px;min-height:44px;border-radius:var(--radius-control);color:var(--navy)}.rs-page-nav a[aria-current]{color:#fff;background:var(--navy)}
.rs-sub-intro{max-width:1280px}.rs-sub-intro h1{max-width:24ch}.rs-sub-intro .text-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.rs-sub-intro+.rs-section,.rs-sub-intro+.rs-soft .rs-section{padding-top:32px}.rs-phases article{gap:28px}.rs-letter{color:var(--navy);background:var(--surface)}
.cert-hero{background:var(--surface)}.cert-hero h1{max-width:23ch}.cert-list{line-height:1.75}.cert-list li{margin-bottom:10px}.cert-card h3{font-size:22px}
.bs-demo-notice{background:#edf4e8;color:#304d29}.bs-demo-results p,.bs-demo-results>span,.bs-rate-note,.bs-details,.guide-evidence{font-size:14px}.bs-tools>button,.bs-save{min-height:44px}.bs-details summary{padding:12px 0}.bs-demo-card-footer span{font-size:13px}
.footer-invitation p{font-size:24px;line-height:1.3;max-width:24ch}.footer-top{gap:36px}.footer-top a:not(.brand):not(.button){display:inline-flex;align-items:center;min-height:44px}.footer-top>div:last-child{display:flex;flex-direction:column;align-items:flex-start}.footer-socials{padding-top:24px;padding-bottom:24px}.footer-socials p{margin-bottom:0}
@media(min-width:761px) and (max-width:1100px){.nav{padding-left:24px;padding-right:24px;gap:12px}header .nav #navigation{gap:14px;font-size:13px}.nav>.button{padding-left:14px;padding-right:14px;font-size:13px}.nav .official-logo{width:90px}}
@media(max-width:760px){body{font-size:16px}.wrap{padding-left:22px;padding-right:22px}.nav{padding-left:18px;padding-right:18px;gap:10px}.nav>.button{font-size:13px;padding:10px 12px;min-height:44px}.rs-page-nav{gap:6px}.rs-page-nav a{padding:10px 12px;font-size:13px}.rs-overview-grid article,.guide-list article,.cert-card{padding:24px}.rs-overview-grid h3,.guide-list h3,.cert-card h3{font-size:22px}.rs-sub-intro h1{font-size:clamp(2rem,8vw,2.5rem)}.rs-sub-intro>p{font-size:18px}.rs-phases article{gap:18px}.footer-top{gap:28px}.footer-invitation p{font-size:23px}.club-profile-row{grid-template-columns:1fr}.bs-demo-controls{gap:16px}.bs-tools{align-items:center}.join-box .join-fine{font-size:14px}.hero .hero-content>p{font-size:18px}}
@media(max-width:380px){.nav .official-logo{width:76px}.nav>.button{font-size:12px;padding-left:10px;padding-right:10px}.nav{gap:6px}.wrap{padding-left:18px;padding-right:18px}.rs-page-nav a{padding:9px 10px}.hero h1{font-size:2.5rem!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Let visitors use the full mobile screen without a fixed signup overlay. */
@media(max-width:760px){body[data-page]{padding-bottom:0}}
.rs-expanded-phases .rs-phase-detail{max-width:74ch}.rs-phase-detail h4{font-size:15px;line-height:1.5;color:var(--navy);margin:22px 0 8px}.rs-phase-detail p{color:var(--muted);margin:0;line-height:1.75}.rs-expanded-phases article{padding:32px 0}.rs-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin:28px 0}.rs-scope-grid article{border-top:1px solid var(--line);padding-top:22px}.rs-scope-grid p{color:var(--muted)}.rs-found-money{border-top:1px solid var(--line)}.rs-found-money h3{margin-top:32px}.rs-guarantee-summary{background:var(--surface);border-radius:var(--radius-card);margin-top:12px;margin-bottom:24px;padding-top:32px;padding-bottom:32px}
@media(max-width:760px){.rs-scope-grid{grid-template-columns:1fr;gap:12px}.rs-expanded-phases article{padding:26px 0}.rs-phase-detail h4{margin-top:18px}.rs-guarantee-summary{border-radius:0}}

/* Optional resort inquiry context */
#resort-details{margin:20px 0;padding:20px;border:1px solid var(--line,#d8e2e7);border-radius:12px;min-width:0}#resort-details legend{font-weight:700;padding:0 6px}#resort-details legend span{font-weight:400}#resort-details label{display:block;margin:12px 0}#resort-details[hidden]{display:none}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Compact the mobile booking journey without hiding important terms. */
@media(max-width:600px){
.bs-intro{padding-top:28px;padding-bottom:22px;gap:14px}.bs-intro h1{margin-bottom:12px}
.bs-partner{margin-bottom:28px}.bs-partner-main{padding:24px 22px 8px}.bs-partner-aside{padding:8px 22px 22px}.bs-partner h2{font-size:25px;margin-bottom:12px}.bs-partner .button{margin-top:0}
.bs-preview-section{padding-top:28px}.bs-preview-intro{gap:12px;margin-bottom:18px}.bs-preview-intro h2{font-size:28px}
.bs-demo-body{padding:16px}.bs-demo-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px;margin:12px 0 18px}.bs-demo-controls>label:first-of-type{grid-column:1/-1}.bs-demo-controls>label{font-size:14px}.bs-demo-controls input,.bs-demo-controls select{width:100%;min-width:0;font-size:16px}.bs-demo-controls>button{align-self:end;min-height:44px}
.bs-tools{gap:12px}.bs-demo-notice{padding:14px 16px;gap:6px}.bs-demo-results{flex-wrap:wrap;gap:8px}
}

/* Compact, consistent navigation and comfortable reading widths. */
body>header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 12px #08396508}
body>header .nav{height:96px;min-height:0;gap:20px;transition:height .18s ease}
body>header .nav .official-logo{width:80px;height:80px;transition:width .18s ease,height .18s ease}
body>header.is-compact .nav{height:64px;min-height:0}
body>header.is-compact .nav .official-logo{width:48px;height:48px}
body>header .brand-official{min-width:44px;min-height:44px;align-items:center;justify-content:center}
body>header .nav>.button{min-height:44px}
html{scroll-padding-top:80px}main [id]{scroll-margin-top:80px}
.story p,.resort-guide p,.rs-phase-detail p,.cert-section p,.cert-section li{max-width:68ch;line-height:1.75}
.rs-phase-detail h4{margin-bottom:8px}.rs-phase-detail p+h4{margin-top:22px}
@media(max-width:1000px){
 body>header .nav{gap:12px}body>header #navigation{gap:16px}body>header .nav>.button{gap:8px;padding-left:14px;padding-right:14px}
}
@media(max-width:760px){
 body>header .nav{height:88px;min-height:0;padding-left:18px;padding-right:18px;gap:12px}
 body>header .nav .official-logo{width:72px;height:72px}
 body>header.is-compact .nav{height:60px}
 body>header.is-compact .nav .official-logo{width:44px;height:44px}
 body>header .menu-button{margin-left:auto;min-width:56px;min-height:44px;font-size:14px;padding:10px}
 body>header .nav>.button{font-size:13px;min-height:44px;padding:10px 12px;gap:6px}
 body>header #navigation{top:100%;left:0;right:0;padding:12px 18px 18px;max-height:calc(100dvh - 88px);overflow-y:auto;box-shadow:0 14px 24px #08396512}
 body>header #navigation.open{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
 body>header #navigation a{padding:10px 12px;white-space:normal;min-height:48px;border-radius:8px;font-size:16px}
 body>header #navigation a[aria-current]{background:var(--surface);color:var(--navy);border-bottom:0}
 main p,main li{line-height:1.7}main .eyebrow{line-height:1.5}
 .rs-phase-detail p,.resort-guide p,.cert-list li,.guide-list p{font-size:16px}
 .rs-phases h3,.cert-card h3{line-height:1.3}.rs-phases article{padding-top:26px;padding-bottom:26px}
 .join-fine,.join-consent,.bs-rate-note,.bs-demo-footnote{font-size:14px;line-height:1.65}
 html{scroll-padding-top:76px}main [id]{scroll-margin-top:76px}
}
@media(prefers-reduced-motion:reduce){body>header .nav,body>header .official-logo{transition:none}}
@media(max-width:600px){.rs-phases article{grid-template-columns:minmax(0,1fr);gap:0}.rs-phases .rs-letter{display:none}.rs-phase-detail p{max-width:none}}
/* Book: compact introduction and progressive filter disclosure. */
.bs-search-row label,.bs-demo-results>label{display:grid;gap:6px;font-size:14px;font-weight:700}
.bs-search-row input,.bs-demo-results select{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #cedce3;border-radius:8px;background:white;color:var(--ink);font:inherit;font-size:16px}
.bs-filter-panel{margin:10px 0;border-bottom:1px solid var(--line)}
.bs-filter-panel>summary{cursor:pointer;padding:12px 0;min-height:44px;font-weight:700;color:var(--navy)}
.bs-filter-panel .bs-demo-controls{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 12px}
.bs-filter-panel .bs-demo-controls>label:first-of-type{grid-column:auto}
.bs-active-row{display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.5;margin:8px 0}
.bs-active-row:has(#bs-reset[hidden]){display:none}
.bs-active-row>span{flex:1;overflow-wrap:anywhere}
.bs-active-row button{border:0;background:none;min-height:44px;cursor:pointer;flex-shrink:0}
.bs-demo-results{display:flex;flex-direction:row;align-items:center;gap:12px;margin:12px 0}
.bs-demo-results>div{flex:1;font-size:14px}.bs-demo-results>label{max-width:55%;font-size:13px}
.bs-information{font-size:14px;line-height:1.6;margin:0 0 16px;color:var(--muted)}
.bs-information summary{cursor:pointer;min-height:44px;color:var(--navy)}
.bs-information summary span{display:block;font-size:13px;text-decoration:underline}
.bs-information p{margin:10px 0}
@media(max-width:700px){
.bs-intro{padding-top:18px;padding-bottom:16px}.bs-intro .eyebrow,.bs-preview-link{display:none}
.bs-intro h1{font-size:30px;margin:0 0 8px}.bs-intro p:not(.eyebrow){font-size:16px;line-height:1.5;margin:0}
.bs-partner{margin-bottom:18px}.bs-partner-main{padding:16px 18px 8px}.bs-partner h2{font-size:20px;margin:0 0 6px}
.bs-partner-main>p{font-size:14px;line-height:1.5;margin:0}.bs-partner-aside{padding:4px 18px 14px}
.bs-partner .button{min-height:44px;padding:10px 14px}.bs-partner .bs-external{margin:6px 0 0;font-size:12px}
.bs-preview-section{padding-top:18px}.bs-preview-intro{margin-bottom:12px}.bs-preview-intro h2{font-size:25px}
.bs-demo-notice{padding:10px 14px;font-size:14px;line-height:1.5}.bs-demo-notice strong{font-size:14px;letter-spacing:0}
.bs-demo-body{padding:14px}.bs-filter-panel .bs-tools>label:first-child{width:auto}
}
