@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Arimo'),local('Liberation Sans'),local('Roboto');font-weight:300 500;size-adjust:107.1%;ascent-override:90.4%;descent-override:22.6%;line-gap-override:0%}@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Arimo Bold'),local('Liberation Sans Bold'),local('Roboto Bold'),local('Roboto-Bold');font-weight:600 800;size-adjust:101.2%;ascent-override:95.7%;descent-override:23.9%;line-gap-override:0%}@font-face{font-family:'Playfair Fallback';src:local('Times New Roman Bold'),local('TimesNewRomanPS-BoldMT'),local('Tinos Bold'),local('Liberation Serif Bold');font-weight:600 800;size-adjust:106%;ascent-override:102.1%;descent-override:23.7%;line-gap-override:0%}@font-face{font-family:'Playfair Fallback';src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Tinos'),local('Liberation Serif');font-weight:300 500;size-adjust:106%;ascent-override:102.1%;descent-override:23.7%;line-gap-override:0%}
/* Palette source: brand/rollout/tokens.css (v2). Site aliases below. */
:root{--ss-navy:#0B2545;--ss-deep:#13315C;--ss-sea:#0E8C8C;--ss-aqua:#4FB3BF;--ss-aqua-hover:#1CC6C6;--ss-gold:#C9A04A;--ss-sand:#F6F1E9;--ss-ink:#1D2A36;--ss-muted:#5B6B7A;--ss-white:#FFFFFF;--ss-font-heading:'Playfair Display','Playfair Fallback',Georgia,serif;--ss-font-body:Inter,'Inter Fallback',system-ui,-apple-system,"Segoe UI",sans-serif;--ss-weight-heading:700;--ss-weight-body:400;--ss-weight-ui:600;}
:root{--navy:var(--ss-navy);--deep:var(--ss-deep);--sea:var(--ss-sea);--aqua:var(--ss-aqua);--aqua-hover:var(--ss-aqua-hover);--gold:var(--ss-gold);--sand:var(--ss-sand);--ink:var(--ss-ink);--muted:var(--ss-muted);--line:#e6edf2}
*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,'Inter Fallback',system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);line-height:1.6;background:#fff}
h1,h2,h3{font-family:'Playfair Display','Playfair Fallback',Georgia,serif;color:var(--navy);line-height:1.2}a{color:#0A7575}
.wrap{max-width:1120px;margin:auto;padding:0 20px}section{padding:80px 0}h2{font-size:2.2rem;margin-bottom:12px;text-align:center}.lead{text-align:center;color:var(--muted);max-width:640px;margin:0 auto 44px}
nav{position:sticky;top:0;z-index:9;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-bottom:1px solid #e6edf2}nav .wrap{display:flex;justify-content:space-between;align-items:center;height:64px}
.brand{font-family:'Playfair Display','Playfair Fallback';font-weight:700;color:var(--navy);text-decoration:none;font-size:1.2rem}.brand small{display:block;font:500 .7rem Inter,'Inter Fallback';color:#0A7575;letter-spacing:.08em;text-transform:uppercase}
nav ul{display:flex;gap:22px;list-style:none}nav ul a{text-decoration:none;color:var(--ink);font-size:.92rem}
.btn{display:inline-block;background:var(--aqua);color:var(--navy);padding:14px 28px;border-radius:40px;font-weight:600;text-decoration:none;border:0;cursor:pointer;font-size:1rem}.btn:hover{background:var(--aqua-hover)}
.hero{min-height:88vh;display:flex;align-items:center;color:#fff;background:linear-gradient(100deg,rgba(11,37,69,.85),rgba(19,49,92,.35)),url("https://images.unsplash.com/photo-1548574505-5e239809ee19?w=1800&q=70&auto=format") center/cover}
.hero h1{color:#fff;font-size:clamp(2.4rem,6vw,4.2rem);max-width:720px}.hero p{font-size:1.2rem;max-width:560px;margin:20px 0 32px;opacity:.92}.hero .tag{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;color:var(--aqua)}
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:#fff;border-radius:16px;padding:28px;box-shadow:0 8px 30px rgba(11,37,69,.08)}.card h3{margin-bottom:8px;font-size:1.25rem}.card p{color:var(--muted)}
.alt{background:var(--sand)}.ico{font-size:2rem;margin-bottom:10px}
.style{border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 30px rgba(11,37,69,.08)}.style .img{height:170px;background-size:cover;background-position:center}.style div.t{padding:20px}.style p{color:var(--muted);font-size:.95rem}
.steps{counter-reset:s}.step{position:relative;padding-top:64px}.step:before{counter-increment:s;content:counter(s);position:absolute;top:0;left:28px;width:48px;height:48px;border-radius:50%;background:var(--sea);color:#fff;display:grid;place-items:center;font:700 1.3rem 'Playfair Display','Playfair Fallback'}
.deal{border:2px dashed var(--aqua);text-align:center}.badge{display:inline-block;background:var(--navy);color:#fff;font-size:.75rem;padding:4px 12px;border-radius:20px;margin-bottom:12px}
.about{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:center}.photo{aspect-ratio:4/5;border-radius:20px;background:linear-gradient(160deg,var(--aqua),var(--deep));display:grid;place-items:center;color:#fff;font-weight:600}
.quote{background:linear-gradient(135deg,var(--navy),var(--sea));color:#fff}.quote h2{color:#fff}.quote .lead{color:#d7ecf0}
form{max-width:760px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}form label{font-size:.85rem;font-weight:500}form .full{grid-column:1/-1}
input,select,textarea{width:100%;padding:12px 14px;border-radius:10px;border:0;font:inherit;margin-top:4px}textarea{min-height:120px}
details{background:#fff;border-radius:12px;padding:18px 22px;margin-bottom:12px;box-shadow:0 4px 16px rgba(11,37,69,.06)}summary{font-weight:600;cursor:pointer}details p{margin-top:10px;color:var(--muted)}
footer{background:var(--navy);color:#c9d6e2;padding:48px 0;font-size:.92rem}footer a{color:#fff}footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px}.fine{margin-top:28px;border-top:1px solid #23406a;padding-top:18px;font-size:.82rem}
@media(max-width:760px){nav ul{display:none}.about,form{grid-template-columns:1fr}section{padding:60px 0}}
.style img.img{display:block;width:100%;object-fit:cover}
.fam{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}.fam ul{list-style:none}.fam li{padding:10px 0 10px 34px;position:relative;border-bottom:1px solid #e6edf2}.fam li:before{content:"\2713";position:absolute;left:4px;color:#0A7575;font-weight:700}
@media(max-width:760px){.hero{background:linear-gradient(100deg,rgba(11,37,69,.85),rgba(19,49,92,.35)),url("https://images.unsplash.com/photo-1548574505-5e239809ee19?w=1000&q=60&auto=format") center/cover}.fam{grid-template-columns:1fr}}
/* port guide pages */
.phero{padding:110px 0 70px;color:#fff;background:linear-gradient(120deg,var(--navy),var(--sea) 60%,var(--aqua))}.phero h1{color:#fff;font-size:clamp(2.1rem,5vw,3.4rem);max-width:820px}.phero p{max-width:640px;margin-top:14px;font-size:1.1rem;opacity:.93}.phero .tag{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;color:#bfeef3}
.crumbs{font-size:.85rem;margin-bottom:14px}.crumbs a{color:#d7ecf0}.crumbs span{opacity:.8}
article{max-width:780px;margin:auto;padding:56px 20px}article h2{text-align:left;font-size:1.7rem;margin:38px 0 10px}article h3{font-size:1.2rem;margin:20px 0 6px}article p,article li{margin-bottom:10px}article ul{padding-left:22px}
.facts{background:var(--sand);border-radius:16px;padding:22px 26px;margin:8px 0 10px}.facts li{margin-bottom:6px}
.cta{background:linear-gradient(135deg,var(--navy),var(--sea));color:#fff;border-radius:18px;padding:32px;text-align:center;margin:44px 0}.cta h2{color:#fff;text-align:center;margin-top:0}.cta p{color:#d7ecf0}
.pcard{display:block;text-decoration:none;color:inherit;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 30px rgba(11,37,69,.08)}.pcard .g{height:110px}.pcard .t{padding:20px}.pcard h3{margin-bottom:6px}.pcard p{color:var(--muted);font-size:.95rem}
.g1{background:linear-gradient(135deg,var(--aqua),var(--sea))}.g2{background:linear-gradient(135deg,#f3c98b,var(--sea))}.g3{background:linear-gradient(135deg,#7fd1c7,var(--deep))}.g4{background:linear-gradient(135deg,#9fb8c9,var(--navy))}.g5{background:linear-gradient(135deg,#f0a868,var(--deep))}.g6{background:linear-gradient(135deg,#e8f1f8,#2d6fb3)}
.note{font-size:.85rem;color:var(--muted);border-top:1px solid #e6edf2;padding-top:14px;margin-top:30px}
nav .btn{white-space:nowrap}@media(max-width:420px){nav .brand small{font-size:.6rem}}

/* Sail Gold accent (brand guide v1) */
nav{border-top:3px solid var(--gold)}.tag{color:var(--gold)}footer strong{border-bottom:2px solid var(--gold)}article h2{border-left:4px solid var(--gold);padding-left:12px}

.brand{display:flex;align-items:center;gap:10px}.brand img{width:40px;height:40px;flex:none}
.btags{margin-bottom:16px}.btag{display:inline-block;background:var(--sand);color:var(--navy);border:1px solid var(--gold);font-size:.78rem;padding:2px 10px;border-radius:14px;margin:0 6px 6px 0}.bdate{font-size:.82rem;color:var(--muted);margin-bottom:4px}
.cta h2{border-left:0;padding-left:0}

@media(max-width:760px){nav .wrap{height:auto;min-height:64px;padding-top:8px;padding-bottom:8px}.brand{font-size:1rem}.brand img{width:34px;height:34px}nav .wrap>.btn{display:none}}
.brand small{white-space:normal}

/* v2 shared: compact quote form, logo, blog hero (gen/common.py) */
.qbox{background:var(--navy);color:#fff;padding:56px 0}.qbox h2{color:#fff}.qbox .lead{color:#d7ecf0;margin-bottom:24px}
.qc{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:auto}.qc .full{grid-column:1/-1}.qc label{display:block;font-size:.95rem;color:#d7ecf0}
.qc input,.qc select,.qc textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;min-height:48px;padding:10px 14px;border-radius:10px;border:1px solid #c9d6e0;background:#fff;color:var(--ink)}.qc textarea{min-height:110px}
.qc input:focus-visible,.qc select:focus-visible,.qc textarea:focus-visible{outline:3px solid #C9A04A;outline-offset:2px}.qc .fine-q{font-size:.82rem;color:#d7ecf0;text-align:center}
.qc .qf-submit{text-align:center}.qc .qf-submit .btn{min-height:52px;min-width:240px}
@media(max-width:760px){.qc{grid-template-columns:1fr;gap:14px}.qc>*{grid-column:1/-1;min-width:0}.qc .qf-submit .btn{display:block;width:100%;min-width:0}}
.brand .wm{width:176px;height:44px;display:block}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:0}.brand small{margin-top:-2px}
.wm-rev{width:176px;height:44px}@media(max-width:760px){.brand .wm{width:144px;height:36px}}
.bhero{max-width:860px;margin:0 auto 28px;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--sea));display:grid;place-items:center}
.bhero img{width:100%;height:100%;object-fit:cover;display:block}.bhero.ph img{width:96px;height:96px;opacity:.9}
.bhero picture{display:block;width:100%;height:100%}.binl{margin:28px 0}.binl img{width:100%;height:auto;border-radius:14px;display:block}.pcard .pthumb{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.lf{background:var(--navy);color:#fff;border-radius:16px;padding:28px 22px;margin:32px 0}.lf h2{color:#fff;margin-top:0}.lf .lf-lead{color:#d7ecf0;margin-bottom:16px}
.qc .rads{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px;color:#d7ecf0}.qc .rads legend{padding:0;margin-bottom:4px;font-size:.95rem}
.qc .rad{display:flex;align-items:center;gap:8px;min-height:48px;cursor:pointer}.qc .rad input{width:22px;height:22px;min-height:0;margin:0;padding:0;accent-color:#C9A04A}
.btn-ghost{background:transparent;border:2px solid var(--navy);margin-top:10px}.dl .btn{min-height:48px}

/* v2 insurance checkbox (gen/common.py) */
form .ins{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:4px}
form .ins input.ins-cb{width:24px;height:24px;min-height:0;margin:12px;padding:0;accent-color:#C9A04A;display:block}
form .ins .ins-l{display:flex;align-items:center;min-height:48px;cursor:pointer;font-size:.95rem}
form .ins .ins-d{grid-column:1/-1;font-size:.8rem;line-height:1.45;margin:2px 0 0;color:#d7ecf0}

/* legal (gen/legal.py) */.comm{font-size:.82rem;color:#d7ecf0;text-align:center;margin:0}footer .comm,footer .legal-links{margin-top:8px}footer .legal-links a{color:inherit;text-decoration:underline}.hotel-legal{margin-top:24px;padding:20px;border-radius:14px;background:#fff;color:var(--ink)}.fine-nf{font-size:.85rem;margin:6px 0 0}.badge-nf{display:inline-block;font-weight:600;padding:6px 12px;border-radius:999px;background:#0b2545;color:#fff;font-size:.9rem}

/* checklist signup (gen/signup.py) */
.cl{background:#eef5f7;padding:40px 0}.cl .wrap{max-width:760px}.cl h2{margin:0 0 6px}.cl p.cl-lead{margin:0 0 16px}
.clf{display:grid;grid-template-columns:1fr 1fr;gap:14px}.clf .full{grid-column:1/-1}.clf label{display:block;font-size:.95rem}
.clf input[type=email],.clf input[type=text]{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;min-height:48px;padding:10px 14px;border-radius:10px;border:1px solid #c9d6e0;background:#fff;color:#0b2545}
.clf .cons{display:flex;align-items:center;gap:10px;min-height:48px;cursor:pointer}.clf .cons input{width:24px;height:24px;margin:0;flex:none;accent-color:#C9A04A}
.clf .btn{min-height:48px;min-width:220px;cursor:pointer}.clf .cl-fine{font-size:.82rem;margin:0}
.clf input:focus-visible{outline:3px solid #C9A04A;outline-offset:2px}
footer .cl-foot{border-bottom:1px solid rgba(255,255,255,.2);padding:0 0 20px;margin:0 0 20px}footer .cl-foot h2{color:#fff;font-size:1.15rem;margin:0 0 10px}
footer .clf{grid-template-columns:1fr 1fr auto;align-items:end}footer .clf label{color:#d7ecf0}footer .clf .cl-fine{color:#d7ecf0}
@media(max-width:760px){.clf,footer .clf{grid-template-columns:1fr}.clf>*{grid-column:1/-1}.clf .btn{width:100%;min-width:0}}

/* nav-fit: desktop header wraps cleanly, no horizontal scroll */
@media(min-width:761px){nav .wrap{gap:16px;height:auto;min-height:64px;padding-top:8px;padding-bottom:8px}nav .brand{flex:0 1 270px;min-width:0}nav .brand small{white-space:normal;line-height:1.3;font-size:.6rem;letter-spacing:.05em}nav ul{flex:1 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:4px 18px;margin:0;padding:0}nav ul a{white-space:nowrap}nav .wrap>.btn{flex:none}}@media(min-width:761px) and (max-width:1100px){nav ul{gap:4px 12px}nav ul a{font-size:.84rem}}
article p,article li{overflow-wrap:break-word}
/* uxfix (gen/uxfix.py): sticky-header anchor offset, mobile menu, chat bubble vs forms */
html{scroll-padding-top:96px}
@media(max-width:760px){html{scroll-padding-top:88px}}
.nav-toggle{display:none}
.nav-toggle[hidden]{display:none!important}
@media(max-width:760px){
nav .nav-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1.5px solid var(--navy,#0B2545);border-radius:999px;background:#fff;color:var(--navy,#0B2545);font:600 .95rem Inter,'Inter Fallback',system-ui,sans-serif;cursor:pointer;flex:none}
nav .nav-toggle:focus-visible{outline:3px solid #13315C;outline-offset:2px}
nav.nav-open{z-index:60}
nav.nav-open ul{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;margin:0;padding:6px 0;list-style:none;background:#fff;border-bottom:1px solid #e6edf2;box-shadow:0 14px 28px rgba(11,37,69,.16);max-height:calc(100vh - 90px);overflow-y:auto;overscroll-behavior:contain}
nav.nav-open ul li+li{border-top:1px solid #eef2f5}
nav.nav-open ul a{display:flex;align-items:center;min-height:48px;padding:10px 20px;font-size:1rem;color:var(--ink,#1D2A36)}
nav.nav-open ul a:focus-visible{outline:3px solid #13315C;outline-offset:-3px}
body.ux-typing #cb-btn,body.ux-form-low #cb-btn{opacity:0;visibility:hidden;pointer-events:none}
body.ux-typing .qbar{opacity:0;visibility:hidden;pointer-events:none}
}
@media print{.nav-toggle{display:none!important}}

/* phone (gen/phone.py) */.tel-link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-weight:600;color:inherit;text-decoration:underline}footer .tel-foot{margin-top:8px;border-top:0;padding-top:0;font-size:.95rem}.tel-alt{margin:10px 0 0;font-size:.9rem;text-align:center}
/* ux2: consent checkbox aligned to first line; 44px tap targets */
form .ins.sms{align-items:start}
form .ins.sms .ins-l{align-items:flex-start;padding:12px 0}
summary{padding:10px 0;margin:-10px 0}
.crumbs a{display:inline-block;padding:12px 0;margin:-12px 0}
@media(max-width:760px){footer .row>div>a{display:inline-block;padding:10px 0}}
/* ux2: uppercase header labels use a narrower fallback so they wrap the same before and after the web font loads */
@font-face{font-family:'Inter Caps Fallback';src:local('Arial'),local('ArialMT'),local('Arimo'),local('Liberation Sans'),local('Roboto');size-adjust:99.5%;ascent-override:97.3%;descent-override:24.3%;line-gap-override:0%} .brand small,.hero .tag,.phero .tag{font-family:Inter,'Inter Caps Fallback',sans-serif}
/* footer social icon row (see team/web/add-social-row-20261027.py) */
.soc{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:20px 0 8px;padding:0} .soc li{margin:0;padding:0} .soc a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:#fff;background:rgba(255,255,255,.08);transition:color .15s,background .15s} .soc a:hover{color:#C9A04A;background:rgba(255,255,255,.14)} .soc a:focus-visible{outline:3px solid #C9A04A;outline-offset:2px} .soc svg{display:block} .soc-light{justify-content:center;margin:24px auto 0} .soc-light a{color:#0B2545;background:rgba(11,37,69,.06)} .soc-light a:hover{color:#0B2545;background:rgba(201,160,74,.25)} @media(max-width:360px){.soc{gap:2px}}
/* ux3: header tagline readable (12px), wording unchanged */
nav .brand small,.brand small{font-size:.75rem}

/* ux15 Skye footer disclosure */
footer .skye-foot{margin-top:8px;margin-bottom:0;border-top:0;padding-top:0;font-size:.78rem;color:#c9d6e2}
