/* 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',Georgia,serif;--ss-font-body:Inter,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,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);line-height:1.6;background:#fff}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;color:var(--navy);line-height:1.2}a{color:var(--sea)}
.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';font-weight:700;color:var(--navy);text-decoration:none;font-size:1.2rem}.brand small{display:block;font:500 .7rem Inter;color:var(--sea);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'}
.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}
section:not(#family):not(#why):not(#about):not(#quote){content-visibility:auto;contain-intrinsic-size:auto 800px}
.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:var(--sea);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}
