*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg-warm:#F6F8F9;--bg-deep:#023653;--bg-deeper:#022A42;--bg-sand:#E7E0DA;--bg-surface:#EDF1F2;
  --text-dark:#102A3C;--text-body:#4C5A64;--text-light:#F6F8F9;--text-light-mute:rgba(246,248,249,.74);
  --sea:#2C7A93;--sea-deep:#1F5E74;--sea-light:#C3E4E9;--brown:#99736A;--sand-solid:#BAAFAB;
  --sun-gold:#C99A46;--sun-gold-soft:rgba(201,154,70,.14);--sun-gold-hover:#B68637;
  --radius:20px;--radius-pill:999px;--serif:'Lora',Georgia,serif;--sans:'Plus Jakarta Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--text-body);background:var(--bg-warm);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
/* nav — frosted full-bleed band at the top of the page, solid once scrolled.
   Matches index.html. The frost sits on ::before so the mask can fade it out;
   backdrop-filter clips hard at its element edge and would otherwise draw a
   seam across the hero. The scrim carries the contrast on its own, so a
   browser without backdrop-filter still gets legible links. */
.nav{position:fixed;top:0;left:0;right:0;z-index:999;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;transition:background .4s,box-shadow .4s,padding .3s}
.nav::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(8,32,45,.52),rgba(8,32,45,.24));backdrop-filter:blur(10px) saturate(118%);-webkit-backdrop-filter:blur(10px) saturate(118%);-webkit-mask-image:linear-gradient(to bottom,#000 58%,transparent);mask-image:linear-gradient(to bottom,#000 58%,transparent);transition:opacity .4s}
.nav.scrolled{background:var(--bg-warm);box-shadow:0 1px 12px rgba(0,0,0,.06);padding:12px 40px}
.nav.scrolled::before{opacity:0}
/* The logo is a raster lockup and carries its own ink, so both the hero and
   the scrolled ink ship and crossfade. Mirrors index.html — keep in step. */
.nav-wordmark{display:block;position:relative;line-height:0;text-decoration:none;flex:none}
.nav-wordmark img{display:block;height:40px;width:auto;transition:opacity .3s,height .3s}
.nav-wordmark .logo-dark{position:absolute;top:0;left:0;opacity:0}
.nav.scrolled .nav-wordmark .logo-light{opacity:0}
.nav.scrolled .nav-wordmark .logo-dark{opacity:1}
.nav.scrolled .nav-wordmark img{height:36px}
.nav-links{display:flex;align-items:center;gap:32px;list-style:none}
.nav-links a{font-size:14px;font-weight:500;color:rgba(246,248,249,.7);text-decoration:none;transition:color .25s}
.nav-links a:hover,.nav-links a.here{color:var(--text-light)}
.nav.scrolled .nav-links a{color:rgba(16,42,60,.7)}
.nav.scrolled .nav-links a:hover,.nav.scrolled .nav-links a.here{color:var(--text-dark)}
.nav-ig{display:inline-flex;align-items:center;color:rgba(246,248,249,.72)}
.nav-ig:hover{color:var(--text-light)}
.nav.scrolled .nav-ig{color:rgba(16,42,60,.7)}
.nav-ig svg{width:20px;height:20px}
.nav-cta{display:inline-block;padding:10px 24px;background:var(--sun-gold);color:var(--text-dark)!important;font-size:14px;font-weight:600;border-radius:var(--radius-pill);text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s}
.nav-cta:hover{background:var(--sun-gold-hover);transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,154,70,.35)}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--text-light)}
.nav.scrolled .nav-hamburger span{background:var(--text-dark)}
.mobile-menu{position:fixed;inset:0;z-index:1001;background:var(--bg-warm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .3s}
.mobile-menu.open{opacity:1;pointer-events:all}
.mobile-menu a{font-family:var(--serif);font-size:26px;color:var(--text-dark);text-decoration:none;font-weight:500}
.mobile-menu-close{position:absolute;top:24px;right:24px;background:none;border:none;font-size:32px;color:var(--text-dark);cursor:pointer;line-height:1}
/* buttons */
.btn-primary{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;background:var(--sun-gold);color:var(--text-dark);font-size:15px;font-weight:600;border-radius:var(--radius-pill);text-decoration:none;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.btn-primary:hover{background:var(--sun-gold-hover);transform:translateY(-2px);box-shadow:0 8px 24px rgba(201,154,70,.35)}
.btn-outline{display:inline-flex;align-items:center;gap:10px;padding:13px 30px;background:transparent;color:var(--text-light);font-size:15px;font-weight:600;border-radius:var(--radius-pill);text-decoration:none;border:1.5px solid rgba(246,248,249,.4);transition:border-color .25s,background .25s}
.btn-outline:hover{border-color:var(--text-light);background:rgba(246,248,249,.08)}
/* hero banner */
.banner{position:relative;background:var(--bg-deep);color:var(--text-light);padding:150px 0 70px;overflow:hidden}
.banner::after{content:'';position:absolute;inset:0;background:radial-gradient(900px 380px at 80% -10%,rgba(195,228,233,.12),transparent 60%);pointer-events:none}
.banner .wrap{position:relative;z-index:2}
.crumbs{font-size:13px;color:var(--text-light-mute);margin-bottom:20px}
.crumbs a{color:var(--sea-light);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{margin:0 8px;opacity:.5}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sun-gold);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--sun-gold)}
.banner h1{font-family:var(--serif);font-size:clamp(36px,5vw,58px);font-weight:500;line-height:1.08;letter-spacing:-.015em;max-width:18ch;margin-bottom:14px}
.banner .sub{font-size:16px;color:var(--text-light-mute);max-width:60ch;margin-bottom:30px}
.banner .lede{font-size:clamp(16px,1.7vw,19px);color:rgba(246,248,249,.92);max-width:64ch;line-height:1.65;margin-bottom:34px}
.banner-ctas{display:flex;gap:14px;flex-wrap:wrap}
.wave-divider{display:block;width:100%;height:auto;margin-bottom:-1px}
/* article */
.article{padding:64px 0 30px}
.article .wrap{max-width:760px}
.article h2{font-family:var(--serif);font-size:clamp(26px,3.2vw,34px);font-weight:600;color:var(--text-dark);line-height:1.2;margin:48px 0 14px;letter-spacing:-.01em}
.article h2:first-child{margin-top:0}
.article h2 em{font-style:italic;color:var(--sea-deep)}
.article p{font-size:17px;color:var(--text-body);line-height:1.8;margin-bottom:18px}
.article p em{color:var(--sea-deep);font-style:italic}
.article .sec-eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sea);margin:46px 0 6px}
/* mid CTA band */
.cta-band{background:var(--bg-surface);border:1px solid rgba(44,122,147,.16);border-left:3px solid var(--sun-gold);border-radius:var(--radius);padding:26px 30px;margin:40px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-band p{margin:0;font-size:16px;color:var(--text-dark);font-weight:500;max-width:46ch}
.cta-band .btn-primary{flex-shrink:0}
/* related */
.related{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 8px}
.related a{display:inline-block;padding:9px 18px;border:1px solid rgba(44,122,147,.28);border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:var(--sea-deep);text-decoration:none;transition:background .2s,border-color .2s}
.related a:hover{background:rgba(44,122,147,.08);border-color:var(--sea-deep)}
.related .soon{display:inline-block;padding:9px 18px;border:1px dashed rgba(44,122,147,.28);border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:#9aa6ac}
.related .soon em{font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-left:7px;opacity:.8}
.related .all{padding:9px 18px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:var(--sea-deep);text-decoration:none;border:1px solid var(--sea-deep)}
/* enriched sections */
.factbox{background:var(--bg-surface);border:1px solid rgba(44,122,147,.16);border-radius:var(--radius);padding:22px 26px;margin:8px 0 4px}
.factbox p{margin:0;font-size:16.5px;color:var(--text-dark)}
.factbox p strong{color:var(--sea-deep)}
.chk-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;margin:6px 0 8px}
.chk-list li{position:relative;padding-left:28px;font-size:15.5px;color:var(--text-body);line-height:1.55}
.chk-list li svg,.chk-list li i{position:absolute;left:0;top:3px;width:17px;height:17px;color:var(--sea-deep)}
.note-line{font-size:14.5px;color:var(--text-body);font-style:italic;margin-top:6px}
.diff-list{display:grid;gap:0;border:1px solid rgba(44,122,147,.16);border-radius:var(--radius);overflow:hidden;margin:8px 0}
.diff-row{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:18px;padding:15px 22px;border-bottom:1px solid rgba(44,122,147,.12)}
.diff-row:last-child{border-bottom:none}
.diff-row .dn{font-weight:600;color:var(--text-dark);font-size:15px}
.diff-row .dd{font-size:14.5px;color:var(--text-body);line-height:1.55}
@media(max-width:640px){.chk-list{grid-template-columns:1fr}.diff-row{grid-template-columns:1fr;gap:4px}}
/* faq */
.faq-item{border-top:1px solid rgba(44,122,147,.18);padding:20px 0}
.faq-item:last-child{border-bottom:1px solid rgba(44,122,147,.18)}
.faq-item h3{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--text-dark);margin-bottom:8px}
.faq-item p{margin:0;font-size:16px}
/* eeat + sources */
.eeat{background:var(--bg-surface);border-radius:var(--radius);padding:24px 28px;margin:44px 0 0;font-size:14px;color:var(--text-body)}
.eeat .by{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.eeat .by .ava{width:44px;height:44px;border-radius:50%;background:var(--bg-deep);color:var(--sun-gold);display:grid;place-items:center;font-family:var(--serif);font-weight:600;flex-shrink:0}
.eeat .by b{color:var(--text-dark);font-size:15px;display:block}
.eeat .by span{font-size:12.5px;color:var(--sea)}
.eeat .meta{font-size:12.5px;color:#8a98a0;margin-top:6px}
.sources{margin-top:18px;font-size:13px}
.sources b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sea);margin-bottom:8px}
.sources a{color:var(--sea-deep);text-decoration:none;border-bottom:1px solid rgba(44,122,147,.25)}
.sources li{list-style:none;margin-bottom:5px}
.disclaimer{font-size:12.5px;color:#8a98a0;font-style:italic;margin-top:16px;line-height:1.6}
/* end CTA (booking) */
.booking{background:var(--bg-deeper);color:var(--text-light);padding:96px 0;text-align:center;position:relative;overflow:hidden;margin-top:60px}
.booking h2{font-family:var(--serif);font-size:clamp(30px,4vw,46px);font-weight:500;line-height:1.12;margin-bottom:18px}
.booking h2 em{font-style:italic;color:rgba(246,248,249,.7)}
.booking p{font-size:17px;color:var(--text-light-mute);max-width:54ch;margin:0 auto 32px}
.booking .loc{margin-top:26px;font-size:13px;color:rgba(246,248,249,.5);letter-spacing:.05em}
/* hub / category grids */
.section{padding:64px 0}
.section.alt{background:var(--bg-surface)}
.section-head{text-align:center;max-width:720px;margin:0 auto 44px}
.section-head h2{font-family:var(--serif);font-size:clamp(30px,4vw,46px);font-weight:500;color:var(--text-dark);line-height:1.14;margin-bottom:14px}
.section-head h2 em{font-style:italic;color:var(--sea-deep)}
.section-head p{font-size:17px;color:var(--text-body)}
.cat-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:980px;margin:0 auto}
.cat-card{background:var(--bg-warm);border:1px solid rgba(44,122,147,.16);border-top:3px solid var(--sea);border-radius:var(--radius);padding:30px 30px;text-decoration:none;display:block;transition:transform .25s,box-shadow .25s}
.cat-card.green{border-top-color:#5C8A6F}.cat-card.gold{border-top-color:var(--sun-gold)}.cat-card.coral{border-top-color:var(--brown)}
.cat-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(2,54,83,.08)}
.cat-card h3{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--text-dark);margin-bottom:8px}
.cat-card p{font-size:14.5px;color:var(--text-body);margin-bottom:16px;line-height:1.65}
.cat-card .count{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--sea-deep);text-transform:uppercase}
/* condition list */
.cond-list{max-width:780px;margin:0 auto;list-style:none}
.cond-list li{border-bottom:1px solid rgba(44,122,147,.16)}
.cond-list a,.cond-list .soon{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 4px;text-decoration:none;color:var(--text-dark);font-size:17px;font-weight:500;transition:color .2s,padding .2s}
.cond-list a:hover{color:var(--sea-deep);padding-left:10px}
.cond-list a .arrow{color:var(--sea);font-size:15px}
.cond-list .soon{color:#9aa6ac;cursor:default}
.cond-list .soon .tag{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(44,122,147,.25);border-radius:999px;padding:3px 10px;color:var(--sea)}
/* location chooser */
.loc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:820px;margin:0 auto}
.loc-card{background:var(--bg-deep);color:var(--text-light);border-radius:var(--radius);padding:34px;text-decoration:none;transition:transform .25s,box-shadow .25s}
.loc-card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(2,54,83,.18)}
.loc-card .pin{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sun-gold);margin-bottom:10px}
.loc-card h3{font-family:var(--serif);font-size:26px;font-weight:500;margin-bottom:8px}
.loc-card p{font-size:14px;color:var(--text-light-mute);margin:0}
/* footer */
.footer{background:var(--bg-deeper);padding:64px 0 34px;color:var(--text-light)}
.footer-inner{max-width:1100px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(246,248,249,.08)}
/* The footer is always dark, so only the light ink is ever shown here. */
.footer-brand .nav-wordmark{display:block;margin-bottom:14px}
.footer-brand .nav-wordmark img{height:46px}
.footer-tagline{font-family:var(--serif);font-style:italic;font-size:15px;color:rgba(246,248,249,.5);margin-bottom:16px}
.footer-brand p{font-size:14px;color:rgba(246,248,249,.45);line-height:1.7}
.footer-social{display:flex;gap:12px;margin-top:18px}
.footer-social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(246,248,249,.18);color:rgba(246,248,249,.7);transition:border-color .25s,color .25s,background .25s,transform .2s}
.footer-social a:hover{border-color:var(--sun-gold);color:var(--sun-gold);background:rgba(201,154,70,.08);transform:translateY(-2px)}
.footer-social svg{width:18px;height:18px}
.footer h4{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(246,248,249,.35);margin-bottom:16px}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:14px;color:rgba(246,248,249,.6);text-decoration:none}
.footer-links a:hover{color:var(--text-light)}
.footer-bottom{max-width:1100px;margin:0 auto;padding:26px 24px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer-bottom p{font-size:12px;color:rgba(246,248,249,.32)}
/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease-out,transform .55s ease-out}
.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:900px){
  .nav-links{display:none}.nav-hamburger{display:flex}.nav{padding:14px 20px}
  .nav-wordmark img,.nav.scrolled .nav-wordmark img{height:32px}
  .footer-brand .nav-wordmark img{height:40px}
  .cat-cards,.loc-cards{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .cta-band{flex-direction:column;align-items:flex-start}
}
