/* HolidayCrest — site.css
   One stylesheet for the whole site. Mobile-first where new; homepage rules ported 1:1 from launch/index.php.
   Colours: only the design.md 1.2 tokens below (tints of them via color-mix / white alpha on dark). */

/* ---------- Fonts (self-hosted, design.md 1.3) ---------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-latin.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-latin.woff2) format("woff2")}

/* ---------- Tokens ---------- */
:root{
  --ink:#0D2A30;--ink-2:#14404A;--tide:#1F6F6B;--tide-2:#2A8A84;--sun:#F0A73A;--sun-2:#F7B955;
  --mist:#E8F0EE;--bg:#F3F6F5;--paper:#FFFFFF;--line:#DBE5E2;--muted:#5D7270;--text:#15302F;
  --footer:#081D21;--on-sun:#2A1A00;
  --sun-tint:color-mix(in srgb,var(--sun) 14%,var(--paper));
  --sun-line:color-mix(in srgb,var(--sun) 40%,var(--paper));
  --on-dark:rgba(255,255,255,.78);--on-dark-2:rgba(255,255,255,.66);
  --head:"Poppins",system-ui,sans-serif;--body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:16px;--r-lg:22px;--wrap:1240px;--float:0 24px 60px -24px rgba(13,42,48,.45)
}

/* ---------- Base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--body);color:var(--text);background:var(--bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--head);font-weight:600;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
h2{font-size:clamp(24px,2.6vw,32px)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;z-index:99}
.skip:focus{left:16px}

/* photo blocks: <img class="ph"> fills its positioned parent */
.ph{background:var(--tide);object-fit:cover;width:100%;height:100%}
.ph-missing{display:block;background:var(--mist);color:var(--muted);font-size:12px;padding:8px}

.sec{padding:64px 0 0}
.shead{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.shead p{color:var(--muted);margin-top:6px;max-width:62ch}
.more{font-weight:700;color:var(--tide);font-size:15px;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.more:hover{text-decoration:underline}
.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px}
.tag{display:inline-block;font-size:12px;font-weight:700;color:var(--tide);background:var(--mist);border-radius:6px;padding:2px 9px}
.planned{outline:2px dashed var(--sun);outline-offset:-2px}
mark.verify{background:var(--sun);color:var(--on-sun);font:800 11px var(--body);padding:1px 5px;border-radius:4px;vertical-align:1px}
.ic{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- Buttons ---------- */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 18px;min-height:44px;font:700 14.5px var(--body);border:0;cursor:pointer;white-space:nowrap}
.pill-ink{background:var(--ink);color:var(--paper)}.pill-ink:hover{background:var(--ink-2)}
.pill-sun{background:var(--sun);color:var(--on-sun)}.pill-sun:hover{background:var(--sun-2)}
.pill-line{background:var(--paper);color:var(--ink);border:1px solid var(--line)}.pill-line:hover{border-color:var(--tide)}

/* ---------- Header ---------- */
.top{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;align-items:center;gap:22px;height:68px}
.top .logo{display:flex;align-items:center;min-height:44px}
.top .logo img{height:34px;width:auto}
.menu{display:flex;gap:2px;font-size:14.5px;font-weight:600;margin-left:10px}
.menu a{padding:9px 11px;min-height:44px;display:flex;align-items:center;border-radius:10px;color:var(--text);white-space:nowrap}
.menu a:hover,.menu a[aria-current=page]{background:var(--mist);color:var(--ink)}
.top .right{margin-left:auto;display:flex;gap:10px;align-items:center}
.burger{display:none;align-items:center;gap:6px;background:none;border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-height:44px;font:600 14px var(--body);color:var(--ink);cursor:pointer}

/* ---------- Hero (home) ---------- */
.hero{position:relative;color:var(--paper);overflow:hidden;background:var(--ink)}
.hero .ph{position:absolute;inset:0}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,29,33,.88) 0%,rgba(8,29,33,.62) 50%,rgba(8,29,33,.25) 100%)}
.hero .wrap{position:relative;z-index:2;padding-top:72px;padding-bottom:96px}
.hero h1{font-size:clamp(34px,4.8vw,58px);max-width:17ch;color:var(--paper)}
.hero h1 em{font-style:normal;color:var(--sun)}
.hero .sub{font-size:18px;color:var(--on-dark);margin-top:14px;max-width:52ch}
.gsearch{margin-top:30px;background:var(--paper);border-radius:18px;padding:8px;display:flex;gap:8px;max-width:720px;box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.gsearch .ic{width:22px;height:22px;stroke:var(--muted);stroke-width:2;margin:14px 0 0 14px}
.gsearch input{flex:1;border:0;outline:0;font:500 17px var(--body);color:var(--text);min-width:0;background:none;padding:0 6px}
.gsearch .pill{padding:14px 26px;font-size:16px}
.gsearch.on-light{box-shadow:none;border:1px solid var(--line);margin-top:20px}
.popular{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px;font-size:14px;align-items:center}
.popular span{color:var(--on-dark-2);font-weight:600;margin-right:4px}
.popular a{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:6px 13px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;backdrop-filter:blur(6px)}
.popular a:hover{background:rgba(255,255,255,.22)}
.proof{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:34px;font-size:14.5px;color:var(--on-dark)}
.proof b{font-family:var(--head);font-size:22px;color:var(--paper);margin-right:6px;font-weight:600}

/* ---------- Category cards ---------- */
.cats{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;margin-top:-52px;position:relative;z-index:3}
.cats.flat{margin-top:0}
.cat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px 16px;box-shadow:0 14px 30px -22px rgba(13,42,48,.45);display:flex;flex-direction:column;gap:6px;transition:border-color .2s,transform .2s}
.cat:hover{border-color:var(--tide);transform:translateY(-2px)}
.cat .ic{width:28px;height:28px;stroke:var(--tide);stroke-width:1.7}
.cat h3{font-size:15.5px;margin-top:4px}
.cat p{font-size:13px;color:var(--muted);line-height:1.4}
.cat small{font-size:12.5px;font-weight:700;color:var(--tide);margin-top:auto}

/* ---------- Featured + rows ---------- */
.fgrid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px}
.feature{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:440px;color:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;padding:30px;background:var(--ink)}
.feature .ph{position:absolute;inset:0;z-index:0;transition:transform .6s}
.feature:hover .ph{transform:scale(1.03)}
.feature::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(5,20,24,.9));z-index:1}
.feature>*:not(.ph){position:relative;z-index:2}
.feature .tag{background:var(--sun);color:var(--on-sun);align-self:flex-start}
.feature h3{font-size:clamp(24px,2.4vw,32px);margin:12px 0 10px;max-width:22ch;color:var(--paper)}
.feature p{color:var(--on-dark);max-width:56ch}
.feature .meta{margin-top:14px;font-size:13.5px;color:var(--on-dark-2)}
.list{display:flex;flex-direction:column;gap:14px}
.row{display:grid;grid-template-columns:120px 1fr;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px;align-items:center}
.row .ph{height:88px;border-radius:12px}
.row h3,.row h4{font-size:16px;line-height:1.3;margin-top:5px}
.row:hover h3,.row:hover h4{color:var(--tide)}
.row .m{font-size:12.5px;color:var(--muted);margin-top:4px}
.row p.s{font-size:14px;color:var(--muted);margin-top:4px}

/* guide cards (grid) */
.ggrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.gcard .ph{height:auto;aspect-ratio:3/2}
.gcard .b{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.gcard h3{font-size:18px;line-height:1.3}
.gcard p{font-size:14.5px;color:var(--muted)}
.gcard .m{font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:6px}
.gcard:hover{border-color:var(--tide)}.gcard:hover h3{color:var(--tide)}

/* ---------- Month picker / segmented tabs ---------- */
.mtabs,.seg,.chips{display:inline-flex;flex-wrap:wrap;background:var(--mist);border-radius:999px;padding:4px;gap:2px}
.mtabs button,.seg button,.chips button,.chips a{border:0;background:none;font:700 14px var(--body);padding:9px 18px;min-height:40px;border-radius:999px;cursor:pointer;color:var(--muted)}
.mtabs button[aria-selected=true],.seg button[aria-selected=true],.chips [aria-pressed=true],.chips [aria-current=page]{background:var(--paper);color:var(--ink);box-shadow:0 2px 6px rgba(13,42,48,.1)}
.chips{border-radius:18px}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.mcard{border:1px solid var(--line);border-radius:var(--r);padding:18px;background:var(--paper);display:flex;flex-direction:column;gap:6px}
.mcard h3{font-size:19px}
.mcard p{color:var(--muted);font-size:14.5px}
.mcard span{margin-top:6px;font-weight:700;color:var(--tide);font-size:14px}
a.mcard:hover{border-color:var(--tide)}

/* ---------- Destination tiles ---------- */
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.dest{position:relative;border-radius:var(--r);overflow:hidden;height:230px;color:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:var(--ink)}
.dest .ph{position:absolute;inset:0;transition:transform .5s}
.dest:hover .ph{transform:scale(1.05)}
.dest::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(5,20,24,.85))}
.dest>*:not(.ph){position:relative;z-index:2}
.dest h3{font-size:22px;color:var(--paper)}
.dest small{font-size:13px;color:var(--on-dark)}
.dest.noimg{background:linear-gradient(160deg,var(--ink-2),var(--ink))}

/* ---------- Tables ---------- */
.split{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}
.ctable{width:100%;border-collapse:collapse;font-size:15px}
.ctable th{text-align:left;font-size:12.5px;color:var(--muted);font-weight:600;padding:0 0 10px;border-bottom:1px solid var(--line)}
.ctable td{padding:13px 0;border-bottom:1px solid var(--line)}
.ctable td:last-child,.ctable th:last-child{text-align:right}
.ctable a{font-weight:600}.ctable a:hover{color:var(--tide)}
.ctable b{font-weight:800}
.note{font-size:13px;color:var(--muted);margin-top:12px}
.vlist{list-style:none}
.vlist li>a,.vlist li>div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.vlist li a:hover b{color:var(--tide)}
.vlist span{color:var(--muted);text-align:right}

/* ---------- City tiles ---------- */
.cities{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.city{border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:56px}
.city b{font-family:var(--head);font-weight:600;font-size:16.5px}
.city small{color:var(--muted);font-size:13px}
a.city:hover{border-color:var(--tide);background:var(--mist)}

/* ---------- Compare tiles ---------- */
.cmp{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.vs{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;font-family:var(--head);font-weight:600;font-size:18px;text-align:center}
.vs i{font-style:normal;font-family:var(--body);font-size:12px;font-weight:800;color:var(--on-sun);background:var(--sun);border-radius:999px;padding:4px 8px}
.vs:hover{border-color:var(--tide);color:var(--tide)}

/* ---------- Promise panel ---------- */
.promise{background:var(--ink);color:var(--on-dark);border-radius:24px;padding:46px;display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center}
.promise h2{color:var(--paper)}
.promise p{color:var(--on-dark);margin-top:12px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pgrid div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px}
.pgrid b{display:block;color:var(--paper);font-family:var(--head);font-weight:600;margin-bottom:4px}
.pgrid span{font-size:14.5px;color:var(--on-dark)}

/* ---------- Newsletter ---------- */
.notify{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:center;background:linear-gradient(100deg,var(--sun-tint),var(--paper));border:1px solid var(--sun-line);border-radius:var(--r-lg);padding:30px 34px}
.notify h2{font-size:26px}
.notify p{color:var(--muted);margin-top:6px}
.nform{display:flex;flex-direction:column;gap:10px}
.nform .f{display:flex;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px}
.nform input[type=email]{flex:1;border:0;outline:0;font:15px var(--body);padding:0 14px;min-width:0;min-height:44px;background:none;color:var(--text)}
.nform .f:focus-within{outline:3px solid var(--sun);outline-offset:2px}
.nform label.c{font-size:12.5px;color:var(--muted);display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.nform label.c input{width:20px;height:20px;margin-top:1px;accent-color:var(--tide);flex:none}
.nform label.c a{color:var(--tide);text-decoration:underline}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.alert{border-radius:14px;padding:14px 16px;font-size:15px;margin-bottom:14px;border:1px solid var(--line);background:var(--mist)}
.alert.err{border-color:var(--sun);background:var(--sun-tint)}

/* ---------- Footer ---------- */
footer.site{background:var(--footer);color:var(--on-dark-2);margin-top:72px;padding:56px 0 34px;font-size:14px}
.fcols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:30px}
footer.site h2,footer.site h3{color:var(--paper);font-size:14.5px;margin-bottom:12px;font-family:var(--body);font-weight:700;letter-spacing:0}
footer.site ul{list-style:none;display:grid;gap:7px}
footer.site a:hover{color:var(--paper);text-decoration:underline}
footer.site .flogo{height:32px;width:auto}
.flinks{margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);line-height:2}
.flinks a{margin-right:14px;display:inline-block;max-width:100%}
.legal{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}

/* ---------- Inner pages: page head + breadcrumbs ---------- */
.crumbs{font-size:13.5px;color:var(--muted);padding:18px 0 0}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.crumbs li{display:flex;align-items:center;gap:8px}
.crumbs li+li::before{content:"›";color:var(--muted)}
.crumbs a{color:var(--tide);font-weight:600;display:inline-flex;min-height:32px;align-items:center}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--muted)}
.phead{padding:18px 0 8px}
.phead h1{font-size:clamp(32px,4.4vw,52px);line-height:1.1;max-width:22ch}
.phead .lede{font-size:18px;color:var(--text);margin-top:14px;max-width:68ch}
.byline{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted);margin-top:16px;align-items:center}
.byline b{color:var(--ink);font-weight:600}
.checked{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--tide);background:var(--mist);border-radius:999px;padding:4px 12px}
.heroimg{margin-top:22px;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/9;background:var(--ink)}
.dev{position:fixed;left:12px;bottom:12px;z-index:90;max-width:420px;background:var(--ink);color:var(--paper);font:12.5px/1.5 var(--body);border-radius:12px;padding:10px 14px;box-shadow:var(--float)}
.dev b{color:var(--sun)}.dev ul{margin:4px 0 0 16px}

/* ---------- Article layout + body ---------- */
.alayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start;margin-top:30px}
.alayout aside{position:sticky;top:88px;display:flex;flex-direction:column;gap:16px}
.prose{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:36px 40px;font-size:17px;line-height:1.65}
.prose>*+*{margin-top:1em}
.prose h2{font-size:clamp(24px,2.4vw,30px);margin-top:1.9em;scroll-margin-top:90px}
.prose h3{font-size:clamp(19px,1.8vw,22px);line-height:1.25;margin-top:1.5em;scroll-margin-top:90px}
.prose h2+*,.prose h3+*{margin-top:.6em}
.prose p,.prose li{max-width:68ch}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.35em}
.prose a{color:var(--tide);text-decoration:underline;text-underline-offset:3px;font-weight:500}
.prose a:hover{color:var(--ink)}
.prose strong{font-weight:700;color:var(--ink)}
.prose .lead{font-size:18.5px}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px}
.prose table,.dtable{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
.prose th,.dtable th{background:var(--mist);text-align:left;font-weight:600;color:var(--ink);padding:11px 14px;font-size:14px}
.prose td,.dtable td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:top}
.prose td.n,.dtable td.n,.prose th.n,.dtable th.n{text-align:right;white-space:nowrap}
.price{font-weight:800;color:var(--ink)}
.price-hl{font:800 21px/1.2 var(--body);color:var(--ink);background:linear-gradient(transparent 62%,color-mix(in srgb,var(--sun) 45%,transparent) 62%)}
.prose tbody th,.dtable tbody th,.prose tfoot th{background:none;font-weight:600}
.prose tfoot th,.prose tfoot td{border-top:2px solid var(--ink)}
caption{caption-side:bottom;text-align:left;font-size:13px;color:var(--muted);padding:10px 14px}

/* callouts: tip, warning, cost */
.callout{display:flex;gap:14px;border-radius:var(--r);padding:16px 18px;border:1px solid var(--line);background:var(--mist)}
.callout .ic{width:24px;height:24px;margin-top:2px;stroke:var(--tide)}
.callout b.t{display:block;font-family:var(--head);font-weight:600;color:var(--ink);margin-bottom:2px}
.callout p{font-size:15.5px}
.callout.warn{background:var(--sun-tint);border-color:var(--sun-line)}
.callout.warn .ic{stroke:var(--on-sun)}
.callout.cost{background:var(--paper);border:2px solid var(--ink)}

/* key takeaways */
.takeaways{background:var(--ink);color:var(--on-dark);border-radius:var(--r);padding:22px 24px}
.takeaways h2{color:var(--paper);font-size:18px!important;margin:0 0 10px!important}
.takeaways ul{list-style:none;padding:0!important;display:grid;gap:8px}
.takeaways li{display:flex;gap:10px;font-size:16px;color:var(--paper)}
.takeaways li .ic{stroke:var(--sun);margin-top:3px}

/* table of contents */
.toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 12px}
.toc h2{font:700 14px var(--body);color:var(--ink);margin-bottom:6px}
.toc ol{list-style:none;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:flex;gap:8px;padding:7px 0;font-size:14px;color:var(--text);border-top:1px solid var(--line);min-height:40px;align-items:center}
.toc li:first-child a{border-top:0}
.toc a::before{content:counter(t);font-weight:700;color:var(--tide);min-width:16px}
.toc a:hover,.toc a.on{color:var(--tide)}
details.toc-m{display:none}

/* cost ledger (signature component) */
.ledger{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;max-width:none!important}
.ledger .lh{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}
.ledger .lh small{display:block;font-size:13px;color:var(--muted)}
.ledger .lh h3{margin:2px 0 0!important;font-size:18px}
.ledger .total{text-align:right}
.ledger .total b{display:block;font:800 30px/1.1 var(--body);color:var(--ink)}
.ledger .total b span{box-shadow:inset 0 -9px 0 color-mix(in srgb,var(--sun) 55%,transparent)}
.ledger .bar{display:flex;height:14px;border-radius:999px;overflow:hidden;margin:18px 0 14px;background:var(--mist)}
.ledger .bar i{display:block;height:100%}
.ledger ul{list-style:none;padding:0!important;display:grid;gap:0}
.ledger li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:15px;max-width:none!important;margin:0!important}
.ledger li>span{display:flex;gap:10px;align-items:flex-start}
.ledger li>span>span{display:block}
.ledger li>span>i{width:12px;height:12px;border-radius:3px;flex:none;margin-top:6px}
.ledger li em{font-style:normal;color:var(--muted);font-size:13px;display:block}
.ledger li b{font-weight:700;white-space:nowrap}
.ledger .pp{display:flex;justify-content:space-between;padding-top:12px;border-top:2px solid var(--ink);font-weight:700}
.ledger .note{margin-top:10px}
.sw0{background:var(--ink)}.sw1{background:var(--tide)}.sw2{background:var(--tide-2)}.sw3{background:var(--sun)}.sw4{background:var(--ink-2)}.sw5{background:var(--muted)}.sw6{background:var(--sun-2)}.sw7{background:var(--line)}

/* FAQ accordion */
.faq{display:grid;gap:10px}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:14px}
.faq summary{list-style:none;cursor:pointer;padding:16px 50px 16px 18px;font:600 16.5px/1.35 var(--head);color:var(--ink);position:relative;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:12px;font:400 24px var(--body);color:var(--tide)}
.faq details[open] summary::after{content:"–"}
.faq details[open]{border-color:var(--tide)}
.faq .a{padding:0 18px 16px;color:var(--text);font-size:16px}
.faq .a p+p{margin-top:.6em}
.faq .a a{color:var(--tide);text-decoration:underline}

/* side box: plan this trip */
.sidebox{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.sidebox h2{font:700 15px var(--body);color:var(--ink);margin-bottom:8px}
.sidebox ul{list-style:none}
.sidebox li a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px;font-weight:600;color:var(--tide);min-height:44px}
.sidebox li:first-child a{border-top:0}
.sidebox li a:hover{color:var(--ink)}

/* quick facts strip */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:24px}
.facts div{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.facts small{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.facts b{font-size:15.5px;color:var(--ink)}

/* place blocks */
.places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.place{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.place h3{font-size:19px}
.place p{font-size:15px;color:var(--text);margin-top:6px}
.place small{display:block;color:var(--muted);font-size:13px;margin-top:8px}

/* visa summary */
.vsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);max-width:none!important}
.vsum div{padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.vsum small{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.vsum b{font-size:16px;color:var(--ink)}
.checklist{list-style:none;padding:0!important}
.checklist li{display:flex;gap:10px}
.checklist .ic{stroke:var(--tide);margin-top:3px}
.steps{counter-reset:s;list-style:none;padding:0!important}
.steps li{counter-increment:s;display:flex;gap:12px}
.steps li::before{content:counter(s);flex:none;width:28px;height:28px;border-radius:50%;background:var(--mist);color:var(--tide);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center}

/* legal / plain pages */
.plain{max-width:820px}
.plain .prose{padding:36px 40px}

/* search + 404 */
.results{display:grid;gap:12px;margin-top:24px}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:var(--r);padding:24px;color:var(--muted)}
.big404{font:600 clamp(64px,10vw,120px)/1 var(--head);color:var(--tide)}

/* ---------- Responsive ---------- */
@media (max-width:1380px){.menu a{padding:9px 8px}}
@media (max-width:1180px){
  .menu{display:none}.burger{display:inline-flex}
  .menu.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 16px 16px;margin:0;box-shadow:var(--float)}
  .menu.open a{padding:12px 10px;font-size:16px}
  .cats{grid-template-columns:repeat(4,1fr)}
  .fgrid,.split,.promise,.notify{grid-template-columns:1fr}
  .mgrid,.dgrid{grid-template-columns:repeat(2,1fr)}
  .cities{grid-template-columns:repeat(3,1fr)}
  .cmp,.ggrid{grid-template-columns:repeat(2,1fr)}
  .fcols{grid-template-columns:repeat(3,1fr)}
  .alayout{grid-template-columns:minmax(0,1fr)}
  .alayout aside{position:static}
  .alayout aside .toc{display:none}
  details.toc-m{display:block;margin-top:18px}
}
@media (max-width:640px){
  .wrap{padding:0 16px}.sec{padding-top:48px}
  body{font-size:16px}
  .top .right .pill{display:none}
  .top .logo img{height:30px}
  .hero .wrap{padding-top:44px;padding-bottom:84px}
  .gsearch .pill{padding:12px 16px}
  .gsearch .ic{display:none}
  .cats{display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:6px;scroll-snap-type:x mandatory}
  .cats::-webkit-scrollbar{display:none}
  .cat{flex:0 0 160px;scroll-snap-align:start}
  .mgrid,.dgrid,.cities,.cmp,.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ggrid,.places{grid-template-columns:minmax(0,1fr)}
  .dest{height:190px}
  .city{flex-direction:column;align-items:flex-start;gap:2px}
  .vs{font-size:15px;gap:8px;padding:16px 10px;flex-wrap:wrap}
  .row{grid-template-columns:96px 1fr}.row .ph{height:76px}
  .box,.promise{padding:22px}
  .notify{padding:24px;grid-template-columns:minmax(0,1fr)}
  .fcols{grid-template-columns:1fr 1fr}
  footer.site li a,.flinks a{display:inline-block;padding:6px 0}
  .prose,.plain .prose{padding:22px 18px;font-size:16px;border-radius:var(--r)}
  .phead .lede{font-size:17px}
  .heroimg{aspect-ratio:3/2}
  .ledger{padding:18px}
  .ledger .total b{font-size:26px}
  .feature{min-height:380px;padding:22px}
  .mtabs button,.seg button{padding:9px 14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media print{.top,footer.site,.notify,aside,.dev{display:none!important}.prose{border:0;padding:0}}
.herofig{margin:0}
.herofig figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.herofig figcaption span{display:inline-block;margin-left:6px;opacity:.8}
