:root{
  --night:#0C0E15;--card:#151824;--card2:#1B1F2E;--bone:#F4F1EA;--fog:#C7C5D2;--fog2:#DAD8E2;--ash:#9A97A8;
  --amber:#F0B64B;--amber2:#FFC85E;--amber3:#D89A2C;--line:rgba(244,241,234,.12);--line2:rgba(244,241,234,.2);
  --f-night:#9A92E6;--f-trials:#E0705A;--f-loc:#5BBFB3;--f-beyond:#A7BF63;
  --serif:'IM Fell English',Georgia,serif;--sans:'Spectral',Georgia,serif;
  --glow:0 0 28px rgba(240,182,75,.35);--glow2:0 0 48px 6px rgba(240,182,75,.55);
  --r:18px;--rp:999px;--wrap:1240px;--pad:clamp(18px,4vw,44px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--bone);font:400 17px/1.55 var(--sans);text-wrap:pretty;padding-bottom:100px}
img{display:block;max-width:100%}
a{color:var(--amber);text-underline-offset:4px;text-decoration-color:rgba(240,182,75,.4)}
a:hover{color:var(--amber2);text-decoration-color:var(--amber2)}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0;text-wrap:balance}
h2{font-size:clamp(34px,4.2vw,54px);line-height:1.02}
h3{font-size:clamp(22px,2vw,26px);line-height:1.15}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.ph{width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.05)}
.eyebrow{font:500 12px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.label{font:500 12px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.muted{color:var(--fog)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--bone);outline-offset:4px;border-radius:4px}


/* lantern glyph */.lamp{display:inline-block;width:14px;height:20px;border:2px solid #6B6E80;border-radius:2px;background:radial-gradient(ellipse at 50% 60%,#FFE7B0,var(--amber) 60%,#8F5A16);box-shadow:0 0 14px rgba(240,182,75,.6);flex:none}
.lamp--big{width:26px;height:38px;border-width:3px;border-color:#3A3D4D;box-shadow:0 0 30px 8px rgba(240,182,75,.45);animation:flicker 5s ease-in-out infinite}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.dot--pulse{background:var(--amber);animation:pulse 2.4s ease-out infinite}
.fam{display:inline-flex;align-items:center;gap:8px;font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.fam .dot{box-shadow:0 0 10px currentColor;background:currentColor}
.fam--night{color:var(--f-night)}
.fam--trials{color:var(--f-trials)}
.fam--loc{color:var(--f-loc)}
.fam--beyond{color:var(--f-beyond)}


/* buttons */.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--amber);color:var(--night);padding:16px 26px;min-height:52px;border-radius:var(--rp);font:600 17px/1 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;border:0;box-shadow:var(--glow);transition:background .15s,box-shadow .2s,transform .1s;white-space:nowrap}
.btn:hover{background:var(--amber2);color:var(--night);box-shadow:var(--glow2)}
.btn:active{background:var(--amber3);transform:scale(.98);box-shadow:0 0 10px rgba(240,182,75,.25)}
.btn:focus-visible{outline:2px solid var(--bone);outline-offset:4px}
.btn[aria-busy="true"]{cursor:progress;opacity:.85}
.btn[aria-disabled="true"]{background:transparent;color:var(--ash);border:1px dashed rgba(199,197,210,.4);box-shadow:none;cursor:not-allowed}
.btn .sub{font-weight:500;opacity:.7}
.btn--lg{padding:20px 30px;min-height:60px;box-shadow:0 0 40px rgba(240,182,75,.4)}
.btn--sm{padding:11px 20px;min-height:44px;font-size:14px}
.btn--ghost{background:transparent;color:var(--bone);border:1px solid rgba(244,241,234,.35);box-shadow:none}
.btn--ghost:hover{background:transparent;color:var(--amber);border-color:var(--amber);box-shadow:none}
.btn--ghost:active{background:rgba(244,241,234,.06);transform:none}
.alt{font:500 15px/1.4 var(--sans);color:var(--fog);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(199,197,210,.4)}
.alt:hover{color:var(--bone);text-decoration-color:var(--bone)}
.more{display:inline-flex;align-items:center;gap:6px;font:700 15px/1 var(--sans);color:var(--amber);text-decoration:none}
.more:hover{color:var(--amber2)}


/* designer note (remove before publishing) */.note{background:#E9E6DF;color:#1a1a1a;font:400 13px/1.5 system-ui,sans-serif;border-bottom:1px solid rgba(0,0,0,.1)}
.note summary{cursor:pointer;padding:10px var(--pad);font-weight:600;list-style:none;display:flex;gap:10px;align-items:center}
.note summary::-webkit-details-marker{display:none}
.note summary::before{content:"▸";font-size:11px}
.note[open] summary::before{content:"▾"}
.note div{padding:0 var(--pad) 16px;max-width:920px}
.note p+p{margin-top:8px}


/* header */.top{position:sticky;top:0;z-index:40;background:rgba(12,14,21,.72);border-bottom:1px solid transparent;transition:border-color .2s,background .2s}
.top::after{content:"";position:absolute;inset:0;z-index:-1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.top > .wrap{position:relative;z-index:1}
.top::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(240,182,75,.7) 30%,rgba(240,182,75,.7) 70%,transparent);opacity:.7}
.top.is-stuck{background:rgba(12,14,21,.94);border-bottom-color:var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--bone);text-decoration:none;white-space:nowrap}
.brand:hover{color:var(--bone)}
.logo{width:30px;height:42px;flex:none;filter:drop-shadow(0 0 10px rgba(240,182,75,.55));transition:filter .3s}
.brand:hover .logo{filter:drop-shadow(0 0 16px rgba(240,182,75,.85))}
.logo .flame{animation:flicker 4s ease-in-out infinite}
.brand-text{display:grid;line-height:1}
.brand-text b{font:400 22px/1 var(--serif)}
.brand-text small{margin-top:5px;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ash)}
.nav{display:flex;align-items:center;gap:4px;white-space:nowrap}
.nav > a,.nav summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:var(--rp);font:500 14px/1 var(--sans);color:var(--fog);text-decoration:none;cursor:pointer;list-style:none;border:1px solid transparent;transition:color .15s,background .15s,border-color .15s}
.nav summary::-webkit-details-marker{display:none}
.nav > a:hover,.nav summary:hover{color:var(--bone);background:rgba(244,241,234,.06)}
.nav summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s;opacity:.7}
.dd{position:relative}
.dd[open] summary{color:var(--amber);border-color:rgba(240,182,75,.4);background:rgba(240,182,75,.08)}
.dd[open] summary::after{transform:translateY(1px) rotate(-135deg)}
.dd-panel{white-space:normal;position:absolute;left:50%;top:calc(100% + 12px);transform:translateX(-50%);width:720px;background:var(--card);border:1px solid var(--line2);border-radius:22px;padding:10px;box-shadow:0 30px 70px rgba(0,0,0,.6);display:grid;grid-template-columns:1fr 1fr 260px;gap:10px;z-index:5}
.dd-panel::before{content:"";position:absolute;left:50%;top:-7px;width:12px;height:12px;background:var(--card);border-left:1px solid var(--line2);border-top:1px solid var(--line2);transform:translateX(-50%) rotate(45deg)}
.dd-col{display:grid;gap:2px;align-content:start;padding:6px}
.dd-col h4{margin:8px 10px 10px;font:500 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ash)}
.dd-col a{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;padding:10px 10px;border-radius:12px;text-decoration:none;color:var(--bone);font:500 15px/1.2 var(--sans)}
.dd-col a .dot{grid-column:1;grid-row:1}
.dd-col a .t{grid-column:2;grid-row:1;min-width:0}
.dd-col a small{grid-column:2;grid-row:2;font:400 12px/1.3 var(--sans);color:var(--ash)}
.dd-col a .dot{box-shadow:0 0 10px currentColor;background:currentColor;width:8px;height:8px}
.dd-col a:hover{background:var(--card2);color:var(--amber)}
.dd-feat{position:relative;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;text-decoration:none;color:var(--bone);border:1px solid var(--line)}
.dd-feat img{position:absolute;inset:0;opacity:.7;transition:transform .5s}
.dd-feat:hover img{transform:scale(1.04)}
.dd-feat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,.1),rgba(21,24,36,.98) 80%)}
.dd-feat > span{position:relative;z-index:1;padding:14px;display:grid;gap:8px;min-width:0}
.dd-feat b{text-wrap:balance}
.dd-feat b{font:400 19px/1.1 var(--serif)}
.dd-feat .btn{min-height:42px;padding:0 16px;font-size:14px;width:100%}
.top-right{display:flex;align-items:center;gap:14px;white-space:nowrap}
.tonight{display:inline-flex;align-items:center;gap:8px;font:500 13px/1 var(--sans);color:var(--fog);padding:0 12px;min-height:44px;border-radius:var(--rp);border:1px solid var(--line)}
.tonight small{font-size:11px;color:var(--ash);letter-spacing:.1em;text-transform:uppercase}

/* mobile drawer */.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 6px 0 14px;border:1px solid rgba(244,241,234,.25);border-radius:var(--rp);font:500 13px/1 var(--sans);color:var(--bone);background:rgba(12,14,21,.5);position:relative;z-index:62}
.menu summary::-webkit-details-marker{display:none}
.burger{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;gap:4px;align-content:center}
.burger i{display:block;width:16px;height:1.5px;background:currentColor;transition:transform .25s,opacity .2s}
.menu[open] summary{border-color:var(--amber);color:var(--amber)}
.menu[open] .burger i:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.menu[open] .burger i:nth-child(2){opacity:0}
.menu[open] .burger i:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
.menu[open] .t1{display:none}
.menu .t2{display:none}
.menu[open] .t2{display:inline}
.menu-back{position:fixed;inset:0;z-index:60;background:rgba(7,8,13,.7);backdrop-filter:blur(3px)}
.menu-panel{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(380px,90vw);background:var(--card);border-left:1px solid var(--line2);display:flex;flex-direction:column;box-shadow:-30px 0 80px rgba(0,0,0,.6);animation:slidein .25s ease-out}
.menu-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;min-height:76px;border-bottom:1px solid var(--line)}
.menu-x{width:44px;height:44px;border-radius:50%;border:1px solid rgba(244,241,234,.25);background:transparent;color:var(--bone);font:400 18px/1 var(--sans);cursor:pointer}
.menu-x:hover{border-color:var(--amber);color:var(--amber)}
.menu-scroll{overflow-y:auto;overflow-x:hidden;padding:10px 10px 20px;flex:1}
.menu-scroll h4{margin:14px 12px 8px;font:500 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ash)}
.menu-scroll a{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:center;padding:13px 12px;min-height:52px;border-radius:12px;color:var(--bone);text-decoration:none;font:500 16px/1.2 var(--sans)}
.menu-scroll a .dot{grid-column:1;grid-row:1}
.menu-scroll a .t{grid-column:2;grid-row:1;min-width:0}
.menu-scroll a small{grid-column:2;grid-row:2;font:400 12px/1.3 var(--sans);color:var(--ash)}
.menu-scroll a .dot{box-shadow:0 0 10px currentColor;background:currentColor}
.menu-scroll a .arr{grid-column:3;grid-row:1/3;color:var(--ash)}
.menu-scroll a:hover,.menu-scroll a:active{background:var(--card2);color:var(--amber)}
.menu-scroll .plain{grid-template-columns:1fr auto}
.menu-scroll .plain .t{grid-column:1}
.menu-scroll .plain .arr{grid-column:2;grid-row:1}
.menu-foot{padding:14px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:grid;gap:10px;background:var(--card)}
.menu-foot .row{font-size:14px;color:var(--fog)}
.menu-foot .btn{width:100%}
@media (scripting:none){.bar.is-hidden,.totop.is-hidden{transform:none;opacity:1;pointer-events:auto}
}
@keyframes slidein{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}


/* hero */.hero{position:relative;overflow:hidden;min-height:calc(100svh - 72px);display:flex;flex-direction:column;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-3}
.hero-bg img{opacity:.5;object-position:50% 60%}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(12,14,21,.6),rgba(12,14,21,.3) 35%,rgba(12,14,21,.96) 100%),linear-gradient(90deg,rgba(12,14,21,.9) 0%,rgba(12,14,21,.55) 50%,rgba(12,14,21,.15) 100%)}
.hero-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 560px 460px at var(--gx,74%) var(--gy,40%),rgba(240,182,75,.26),rgba(240,182,75,.05) 55%,transparent 75%);animation:flicker 5s ease-in-out infinite;pointer-events:none;transition:background-position .3s}
.fog{position:absolute;left:-10%;right:-10%;bottom:0;height:300px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 45% 100% at 25% 100%,rgba(199,197,210,.2),transparent 70%),radial-gradient(ellipse 40% 100% at 80% 100%,rgba(199,197,210,.14),transparent 70%);animation:drift 22s ease-in-out infinite alternate}
.fog--2{height:200px;background:radial-gradient(ellipse 50% 100% at 60% 100%,rgba(199,197,210,.16),transparent 70%);animation:drift 15s ease-in-out infinite alternate-reverse}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;padding-top:44px;padding-bottom:36px;align-items:start;flex:1}
.hero h1{font-size:clamp(58px,8.8vw,120px);line-height:.92;letter-spacing:-.015em;margin:22px 0;text-shadow:0 2px 40px rgba(12,14,21,.8)}
.lede{max-width:560px;font-size:clamp(17px,1.4vw,19px);color:var(--fog2);margin-bottom:30px}
.choose{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:620px;margin:12px 0 30px}
.tile{display:block;text-decoration:none;color:var(--bone);border:1px solid rgba(244,241,234,.16);border-radius:var(--r);overflow:hidden;background:rgba(21,24,36,.78);backdrop-filter:blur(4px);position:relative;transition:transform .2s,border-color .2s,box-shadow .2s}
.tile:hover{border-color:var(--amber);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.45);color:var(--bone)}
.tile-img{display:block;height:118px;position:relative;overflow:hidden}
.tile-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,0) 40%,rgba(21,24,36,1))}
.tag{position:absolute;top:10px;left:10px;z-index:1;background:var(--amber);color:var(--night);border-radius:var(--rp);padding:5px 9px;font:700 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.tile-body{display:block;padding:4px 18px 18px}
.tile-body h3{margin:8px 0 6px;font-size:25px;line-height:1.1}
.tile-body p{font-size:14px;line-height:1.4;color:var(--fog)}
.tile-body .more{margin-top:12px;font-size:14px}
.cta-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.feature{border:1px solid rgba(244,241,234,.14);border-radius:22px;background:rgba(21,24,36,.82);overflow:hidden;backdrop-filter:blur(8px);box-shadow:0 30px 60px rgba(0,0,0,.45)}
.feature-img{height:210px;position:relative}
.feature-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,.1),rgba(21,24,36,.95))}
.feature-img .pill{position:absolute;top:14px;z-index:1}
.feature-img .pill:first-of-type{left:14px}
.feature-img .pill:last-of-type{right:14px}
.feature-img h3{position:absolute;left:18px;right:18px;bottom:14px;z-index:1;font-size:26px}
.pill{display:inline-flex;align-items:center;gap:8px;background:rgba(12,14,21,.75);border:1px solid rgba(244,241,234,.14);border-radius:var(--rp);padding:6px 12px;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bone);white-space:nowrap}
.feature-body{padding:16px 18px 18px}
.route{position:relative;margin:4px 0 14px;padding:0 4px}
.route-line{position:absolute;left:8px;right:8px;top:7px;border-top:2px dashed rgba(199,197,210,.35)}
.route-lamp{position:absolute;top:2px;width:12px;height:12px;border-radius:50%;background:var(--amber);box-shadow:0 0 14px 3px rgba(240,182,75,.7);animation:walk 9s ease-in-out infinite alternate}
.route-stops{display:flex;justify-content:space-between;position:relative}
.route-stops span{display:flex;flex-direction:column;gap:8px;font:500 12px/1.2 var(--sans);color:var(--fog)}
.route-stops span:nth-child(2){align-items:center;text-align:center}
.route-stops span:nth-child(3){align-items:flex-end;text-align:right}
.route-stops i{width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--fog);display:block}
.rating{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(244,241,234,.2);border-radius:var(--rp);padding:6px 12px;font:700 13px/1 var(--sans);color:var(--bone);white-space:nowrap}
.rating b{color:var(--amber)}
.rating small{font-weight:400;color:var(--ash);font-size:13px}
.price{font:700 18px/1 var(--sans);white-space:nowrap}
.price small{display:block;font:500 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-bottom:4px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:14px;padding-bottom:26px;border-top:1px solid var(--line);font:500 13px/1.4 var(--sans);color:var(--ash)}
.hero-foot .more{font-size:14px}


/* sections */.sec{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px 56px;align-items:end;margin-bottom:36px}
.sec-head p{color:var(--fog);font-size:17px}
.sec-head .eyebrow{display:block;margin-bottom:14px}


/* top tours cards */.tcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tc{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}
.tc:hover{transform:translateY(-3px);border-color:var(--amber);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.tc-img{height:200px;position:relative;overflow:hidden;isolation:isolate}
.tc-img::after{content:"";position:absolute;inset:-2px;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(21,24,36,0) 45%,rgba(21,24,36,.95))}
.tc-img img{position:absolute;inset:0;transform-origin:50% 50%;transition:transform .5s;will-change:transform}
.tc:hover .tc-img img{transform:scale(1.04)}
.tc-img .pill{position:absolute;top:12px;z-index:2}
.tc-img .fam{left:12px}
.tc-rate{right:12px;font-weight:700;font-size:12px}
.tc-rate b{color:var(--amber)}
.tc-rate small{font-weight:400;color:var(--ash)}
.tc-badge{position:absolute;left:12px;bottom:12px;z-index:2}
.tc-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.tc-body h3{font-size:24px;line-height:1.12}
.tc-body h3 a{color:var(--bone);text-decoration:none}
.tc-body h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.tc-body h3 a:hover{color:var(--amber)}
.tc:hover h3 a{color:var(--amber)}
.tc-best{color:var(--fog);font-size:15px}
.tc-pills{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tc-pills li{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:var(--rp);border:1px solid var(--line2);background:rgba(244,241,234,.04);font:500 12px/1 var(--sans);color:var(--fog);white-space:nowrap}
.tc-pills li:first-child{border-color:rgba(240,182,75,.45);color:var(--amber)}
.tc-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.tc-foot .btn{position:relative;z-index:2}
.tc-foot{flex-wrap:nowrap;justify-content:space-between}
.tc-more{position:relative;z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:36px;margin-top:-4px;font:600 14px var(--sans);color:var(--amber);text-decoration:none;justify-self:start;width:max-content}
.tc-more:hover{color:var(--amber2)}
.tc-more:hover span{transform:translateX(3px)}
.tc-more span{transition:transform .15s}
.tc.no-page .tc-body h3 a::after{display:none}
.tbl-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:28px;color:var(--fog);font-size:15px}
.badge{display:inline-flex;align-items:center;background:var(--amber);color:var(--night);border-radius:var(--rp);padding:5px 10px;font:700 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.badge--soft{background:rgba(244,241,234,.14);color:var(--bone)}


/* hubs */.hubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hub{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);text-decoration:none;color:var(--bone);background:var(--card);transition:transform .2s,border-color .2s,box-shadow .2s}
.hub:hover{transform:translateY(-3px);border-color:var(--amber);box-shadow:0 18px 40px rgba(0,0,0,.45);color:var(--bone)}
.hub img{position:absolute;inset:0;opacity:.65;transition:transform .5s}
.hub:hover img{transform:scale(1.04)}
.hub::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,.05) 20%,rgba(21,24,36,.98))}
.hub-body{display:block;position:relative;z-index:1;padding:20px}
.hub-body h3{margin:8px 0 8px}
.hub-body p{font-size:14px;color:var(--fog);line-height:1.45}
.hub-body .more{margin-top:12px;font-size:14px}


/* two kinds */.kinds{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.kind{border:1px solid var(--line);border-radius:22px;background:var(--card);overflow:hidden;display:flex;flex-direction:column}
.kind-img{height:260px;position:relative}
.kind-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,0) 50%,rgba(21,24,36,1))}
.kind-img .fam{position:absolute;left:18px;bottom:18px;z-index:1}
.kind-body{padding:8px 24px 24px;display:flex;flex-direction:column;gap:14px;flex:1}
.kind-body h3{font-size:clamp(26px,2.4vw,32px)}
.kind-body p{color:var(--fog);font-size:16px}
.kind-body dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:4px 0;padding:16px 18px;font-size:15px;background:var(--card2);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:14px}
.kind-body dt{font:600 11px/1.9 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.kind-body dd{margin:0;color:var(--fog2)}
.kind-body .cta-row{margin-top:auto;padding-top:6px}
.kind-body .cta-row .btn{white-space:normal;text-align:center;line-height:1.2}
.con{border-left:2px solid rgba(224,112,90,.6);padding-left:14px}
.con strong{color:var(--bone);font-weight:700}


/* pick + card */.pick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:40px 56px;align-items:start}
.pick-copy h2{margin-bottom:18px}
.pick-copy p{color:var(--fog);margin-bottom:14px}
.pick-copy .kv{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px}
.pickcard{display:grid;gap:14px}
.tcard{border:1px solid var(--line2);border-radius:22px;background:var(--card);overflow:visible;box-shadow:0 30px 60px rgba(0,0,0,.45);position:relative}
.tcard-img{height:220px;position:relative;overflow:hidden;border-radius:22px 22px 0 0}
.tcard-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,36,.1),rgba(21,24,36,.95))}
.tcard-img h3{position:absolute;left:20px;right:20px;bottom:16px;z-index:1;font-size:28px}
.tcard-img .pill{position:absolute;top:14px;z-index:1}
.tcard-img .pill:first-of-type{left:14px}
.tcard-img .pill:last-of-type{right:14px}
.tcard-body{padding:16px 20px 20px;display:grid;gap:14px}
.facts{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 14px;margin:0;font-size:15px;color:var(--fog2)}
.facts dt{font:600 11px/1.9 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.facts dd{margin:0}
.fine{font:400 13px/1.45 var(--sans);color:var(--ash);text-align:center}
.tcard--alt{display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;padding:14px;text-decoration:none;color:var(--bone);background:var(--card2);box-shadow:none;transition:border-color .2s}
.tcard--alt:hover{border-color:var(--amber);color:var(--bone)}
.tcard--alt img{width:72px;height:72px;border-radius:12px}
.tcard--alt > span{display:grid;gap:4px;min-width:0}
.tcard--alt b{font:400 20px/1.15 var(--serif)}
.tcard--alt small{font-size:13px;color:var(--fog)}
.embed{max-width:920px;margin:0 auto;display:grid;gap:14px}
.embed-frame{min-height:340px;border-radius:22px;background:var(--bone);display:grid;place-items:center;text-align:center;padding:24px;border:1px dashed rgba(12,14,21,.35)}
.embed-frame .label{color:#3b3a45;max-width:380px;line-height:1.6}


/* faq */.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px 56px;align-items:start}
.faq-side{position:sticky;top:96px}
.faq-side p{color:var(--fog);margin:14px 0 22px}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font:400 22px/1.2 var(--serif);color:var(--bone)}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--amber)}
.qa summary i{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(244,241,234,.25);display:grid;place-items:center;font:400 20px/1 var(--sans);color:var(--fog);transition:transform .2s,border-color .2s}
.qa[open] summary i{transform:rotate(45deg);border-color:var(--amber);color:var(--amber)}
.qa-body{padding:0 0 22px;color:var(--fog);max-width:640px;display:grid;gap:12px}
.qa-body .more{font-size:15px}


/* footer */.foot{border-top:1px solid var(--line);padding:56px 0 60px;background:linear-gradient(180deg,var(--night),#07080D)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:32px}
.foot h4{margin:0 0 14px;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot li a{color:var(--fog);text-decoration:none;font-size:15px}
.foot li a:hover{color:var(--amber)}
.foot-brand p{color:var(--fog);font-size:14px;margin:14px 0 18px;max-width:300px}
.disclosure{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--ash)}


/* sticky popular-tour bar */.bar{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(12,14,21,0),rgba(12,14,21,.96) 30%);transition:transform .3s,opacity .3s}
.bar.is-hidden{transform:translateY(110%);opacity:0;pointer-events:none}
.bar-in{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:16px;padding:10px 12px 10px 10px;border:1px solid var(--line2);border-radius:var(--r);background:rgba(21,24,36,.92);backdrop-filter:blur(10px);box-shadow:0 -10px 40px rgba(0,0,0,.4)}
.bar-img{width:56px;height:56px;border-radius:12px;flex:none}
.bar-txt{display:grid;gap:3px;min-width:0;flex:1}
.bar-txt b{font:400 20px/1.1 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-txt small{font-size:13px;color:var(--fog);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .price{flex:none}
.bar .btn{flex:none;min-height:52px}

/* back to top — a lantern rising */.totop{position:fixed;right:18px;bottom:104px;z-index:49;display:grid;justify-items:center;gap:2px;width:56px;height:64px;padding-top:4px;border-radius:16px;background:rgba(21,24,36,.9);border:1px solid var(--line2);color:var(--fog);text-decoration:none;font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform .3s,opacity .3s,border-color .2s}
.totop svg{width:24px;height:34px;filter:drop-shadow(0 0 8px rgba(240,182,75,.6));transition:transform .3s}
.totop:hover{border-color:var(--amber);color:var(--amber)}
.totop:hover svg{transform:translateY(-3px)}
.totop.is-hidden{transform:translateY(20px);opacity:0;pointer-events:none}


@keyframes flicker{0%,100%{opacity:1}42%{opacity:.86}47%{opacity:1}73%{opacity:.9}}
@keyframes drift{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(240,182,75,.6)}70%{box-shadow:0 0 0 8px rgba(240,182,75,0)}}
@keyframes walk{0%{left:0}100%{left:calc(100% - 10px)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}
html{scroll-behavior:auto}
}


/* ---------- responsive ---------- */@media (max-width:1100px){.nav{display:none}
.menu{display:block}
.hero-grid{grid-template-columns:1fr;gap:36px}
.feature{max-width:560px}
.sec-head{grid-template-columns:1fr}
.hubs{grid-template-columns:repeat(2,minmax(0,1fr))}
.tcs{grid-template-columns:repeat(2,minmax(0,1fr))}
.pick{grid-template-columns:1fr}
.kinds{grid-template-columns:1fr}
.faq{grid-template-columns:1fr}
.faq-side{position:static}
.foot-grid{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:900px){.bar-txt small,.bar .price,.bar-img{display:none}
.bar-in{padding:8px 8px 8px 14px}
.bar .btn{min-height:50px}
.totop{bottom:92px;right:12px;width:48px;height:56px}
.top-right .btn,.top-right .tonight{display:none}
.brand-text small{display:none}
.top .wrap{min-height:64px}
.menu-head{min-height:64px}
.hero{min-height:auto}
.hero-shade{background:linear-gradient(180deg,rgba(12,14,21,.5),rgba(12,14,21,.2) 30%,rgba(12,14,21,.98) 62%)}
.hero-glow{background:radial-gradient(ellipse 320px 260px at 50% 22%,rgba(240,182,75,.3),rgba(240,182,75,.05) 55%,transparent 75%)}
.hero-bg img{height:520px;object-position:50% 40%}
.hero-grid{padding-top:120px;gap:14px}
.hero h1{margin:12px 0}
.lede{margin-bottom:18px}
.choose{max-width:none;gap:10px;margin-bottom:12px}
.tile-img{height:76px}
.tile-body{padding:2px 12px 12px}
.tile-body h3{font-size:18px;margin-top:5px}
.tile-body p{display:none}
.tile-body .more{margin-top:6px;font-size:13px}
.tag{display:none}
.cta-row .btn--lg{display:none}
.feature{max-width:none}
.feature-img{height:150px}
.feature-img h3{font-size:22px}
.hero-foot{flex-direction:column;align-items:flex-start;gap:10px}
.kind-img{height:200px}
}
@media (max-width:600px){.hubs{grid-template-columns:1fr}
.tcs{grid-template-columns:1fr}
.hub{min-height:220px}
.foot-grid{grid-template-columns:1fr 1fr}
.foot-grid .foot-brand{grid-column:1/-1}
.qa summary{font-size:19px}
}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font:500 13px/1 var(--sans);color:var(--ash);padding:18px 0 0}
.crumbs a{color:var(--fog);text-decoration:none}
.crumbs a:hover{color:var(--amber)}
.crumbs i{width:4px;height:4px;border-radius:50%;background:var(--ash);display:inline-block}
.crumbs [aria-current]{color:var(--bone)}
.phero{position:relative;overflow:hidden;isolation:isolate;padding:36px 0 40px;border-bottom:1px solid var(--line)}
.phero .hero-bg img{opacity:.45}
.phero .hero-shade{background:linear-gradient(180deg,rgba(12,14,21,.5),rgba(12,14,21,.85) 60%,var(--night))}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px 56px;align-items:end}
.phero h1{font-size:clamp(40px,5.6vw,76px);line-height:.95;margin:14px 0 18px}
.phero .lede{margin-bottom:22px}
.answer{border:1px solid rgba(240,182,75,.35);background:rgba(240,182,75,.06);border-radius:22px;padding:22px 24px;display:grid;gap:12px}
.answer h3{font-size:28px}
.answer .fine{text-align:left}
.tbl{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.tbl th{text-align:left;font:600 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);padding:14px 16px;border-bottom:1px solid var(--line2);background:var(--card2)}
.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:15px;color:var(--fog)}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--card2)}
.tbl .t-name a{font:400 20px/1.15 var(--serif);color:var(--bone);text-decoration:none}
.tbl .t-name a:hover{color:var(--amber)}
.tbl .num{white-space:nowrap}
.tbl .verdict{color:var(--bone);font-weight:500}
.tbl .btn{min-height:40px;padding:0 16px;font-size:14px}
.tbl-wrap{overflow-x:auto;border-radius:var(--r);position:relative}
@media (max-width:900px){.tbl,.tbl tbody,.tbl tr,.tbl td{display:block}
.tbl{border:0;background:transparent}
.tbl thead{display:none}
.tbl tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.tbl td{border:0;padding:0}
.tbl tbody tr:hover td{background:transparent}
.tbl td[data-l]::before{content:attr(data-l);display:block;font:500 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-bottom:5px}
.tbl td.t-name,.tbl td.verdict,.tbl td.t-act{grid-column:1/-1}
.tbl td.t-act{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.phero-grid{grid-template-columns:1fr}
}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px;align-items:center}
.filters input{position:absolute;opacity:0;pointer-events:none}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--rp);border:1px solid rgba(244,241,234,.2);font:500 14px/1 var(--sans);color:var(--fog);cursor:pointer;background:transparent;transition:border-color .15s,color .15s}
.chip:hover{border-color:var(--amber);color:var(--bone)}
.chip.is-on,.filters input:checked+.chip{background:var(--bone);color:var(--night);border-color:var(--bone)}
.chip.is-dis{opacity:.45;cursor:not-allowed}
.filters input:focus-visible+.chip{outline:2px solid var(--bone);outline-offset:3px}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:var(--rp);padding:3px;gap:2px;margin-left:auto}
.seg label,.seg span{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:var(--rp);font:500 13px/1 var(--sans);color:var(--fog);cursor:pointer}
.seg input:checked+label,.seg .is-on{background:var(--card2);color:var(--bone);box-shadow:inset 0 0 0 1px var(--line2)}
.cat:has(#v-table:checked) .tcs{display:none}
.cat:has(#v-cards:checked) .tbl-wrap{display:none}
.cat:has(#c-night:checked) .tc:not([data-fam="night"]),.cat:has(#c-night:checked) tr[data-fam]:not([data-fam="night"]),.cat:has(#c-trials:checked) .tc:not([data-fam="trials"]),.cat:has(#c-trials:checked) tr[data-fam]:not([data-fam="trials"]),.cat:has(#c-loc:checked) .tc:not([data-fam="loc"]),.cat:has(#c-loc:checked) tr[data-fam]:not([data-fam="loc"]),.cat:has(#c-beyond:checked) .tc:not([data-fam="beyond"]),.cat:has(#c-beyond:checked) tr[data-fam]:not([data-fam="beyond"]){display:none}
.cat:has(#m-night:checked) [data-fam]:not([data-fam="night"]),.cat:has(#m-trials:checked) [data-fam]:not([data-fam="trials"]),.cat:has(#m-beyond:checked) [data-fam]:not([data-fam="beyond"]){display:none}
.cat .empty{display:none}
.cat:has(#c-loc:checked) .empty{display:grid}
.empty{place-items:center;text-align:center;gap:14px;padding:48px 24px;border:1px dashed var(--line2);border-radius:var(--r);color:var(--fog)}
.field{display:grid;gap:6px}
.field label{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid rgba(244,241,234,.2);background:var(--night);color:var(--bone);font:500 16px/1.3 var(--sans);appearance:none;-webkit-appearance:none}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(244,241,234,.45)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--amber);outline-offset:0;border-color:transparent}
.field.is-err input{border-color:var(--f-trials)}
.field .err{font-size:13px;color:var(--f-trials)}
.field input:disabled{opacity:.5;cursor:not-allowed}
.check{display:flex;gap:12px;align-items:center;font-size:15px;color:var(--fog);cursor:pointer;min-height:44px}
.check input{appearance:none;width:22px;height:22px;border-radius:6px;border:1px solid rgba(244,241,234,.35);background:var(--night);display:grid;place-items:center;margin:0;cursor:pointer}
.check input[type=radio]{border-radius:50%}
.check input:checked{background:var(--amber);border-color:var(--amber)}
.check input:checked::after{content:"";width:8px;height:8px;background:var(--night);border-radius:2px}
.check input[type=radio]:checked::after{border-radius:50%}
.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-size:15px;color:var(--fog);min-height:44px}
.switch input{appearance:none;width:46px;height:26px;border-radius:999px;background:rgba(244,241,234,.15);position:relative;margin:0;cursor:pointer;transition:background .2s}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--bone);transition:transform .2s}
.switch input:checked{background:var(--amber)}
.switch input:checked::after{transform:translateX(20px);background:var(--night)}
.tc.is-sold .tc-img img{filter:saturate(0) brightness(.5)}
.tc.is-sold .tc-body h3 a{color:var(--fog)}
.nophoto{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse 60% 70% at 50% 65%,rgba(240,182,75,.28),transparent 70%),var(--night)}
.nophoto span{display:grid;justify-items:center;gap:10px;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.rating.is-low b{color:var(--f-trials)}
.rating.is-none{color:var(--ash);border-style:dashed}
.callout{border:1px solid var(--line2);border-radius:18px;padding:18px 20px;background:var(--card);display:grid;gap:8px}
.callout.is-amber{border-color:rgba(240,182,75,.45);background:rgba(240,182,75,.06)}
.hr{border:0;border-top:1px solid var(--line);margin:0}
.hr--lamp{position:relative;text-align:center;height:1px;background:var(--line);border:0;overflow:visible}
.hr--lamp::after{content:"";position:absolute;left:50%;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--amber);transform:translateX(-50%);box-shadow:0 0 14px 3px rgba(240,182,75,.6)}
.ico{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.prose{max-width:720px;color:var(--fog);display:grid;gap:16px;font-size:17px}
.prose h2{font-size:34px;margin-top:12px;color:var(--bone)}
.prose h3{color:var(--bone)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:40px 56px;align-items:start}
.two .side{position:sticky;top:96px;display:grid;gap:14px}
@media (max-width:1100px){.two{grid-template-columns:1fr}
.two .side{position:static}
}
.stops{display:grid;gap:0;position:relative;padding-left:26px}
.stops::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;border-left:2px dashed rgba(199,197,210,.35)}
.stop{position:relative;padding:8px 0 18px}
.stop::before{content:"";position:absolute;left:-26px;top:12px;width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--fog)}
.stop.is-lamp::before{background:var(--amber);border-color:var(--amber);box-shadow:0 0 14px 3px rgba(240,182,75,.6)}
.stop b{display:block;font:400 21px/1.15 var(--serif);color:var(--bone)}
.stop p{color:var(--fog);font-size:15px}
.inc{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.inc ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px;color:var(--fog)}
.inc li{display:flex;gap:10px;align-items:flex-start}
.inc .ok{color:var(--f-beyond)}
.inc .no{color:var(--f-trials)}
.rev{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.rev article{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--card);display:grid;gap:8px;font-size:15px;color:var(--fog)}
.rev b{color:var(--bone);font-weight:500}
.map{position:relative;aspect-ratio:16/9;border:1px solid var(--line2);border-radius:22px;background:radial-gradient(ellipse 50% 60% at 50% 55%,rgba(199,197,210,.08),transparent 70%),var(--card);overflow:hidden}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.node{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:8px;text-align:center;width:220px}
.node i{width:22px;height:22px;border-radius:50%;background:var(--amber);border:3px solid var(--night);box-shadow:0 0 18px 4px rgba(240,182,75,.6)}
.node b{font:400 20px/1.1 var(--serif);color:var(--bone)}
.node small{font-size:13px;color:var(--fog)}
.mp-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.mp-list article{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--card);display:grid;gap:8px}
.mp-list ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:15px;color:var(--fog)}
.mp-list a{color:var(--bone);text-decoration:none}
.mp-list a:hover{color:var(--amber)}
@media (max-width:900px){.map{display:none}
.mp-list{grid-template-columns:1fr}
.inc{grid-template-columns:1fr}
}
.hotel{display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--card)}
.hotel img{width:120px;height:90px;border-radius:12px}
@media (max-width:600px){.hotel{grid-template-columns:1fr}
.hotel img{width:100%;height:140px}
}
.p404{min-height:70vh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}
.p404 h1{font-size:clamp(48px,8vw,110px);line-height:.95}
.gridvis{position:relative;height:120px;border:1px dashed var(--line2);border-radius:12px;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:0 44px}
.gridvis i{background:rgba(240,182,75,.12);border-left:1px solid rgba(240,182,75,.3);border-right:1px solid rgba(240,182,75,.3)}


/* ===== addendum components ===== */.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--amber);color:var(--night);padding:12px 18px;border-radius:var(--rp);font:600 15px var(--sans);text-decoration:none}
.skip:focus{top:16px}
.js-only{display:none}
.js .js-only{display:revert}
.fp{display:grid;gap:10px;margin:0 0 24px}
.fpills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fpills--go{padding-top:10px;border-top:1px solid var(--line)}
.fp-lbl{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-right:4px}
.fpills li>*{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:var(--rp);font:500 13px/1 var(--sans);text-decoration:none}

/* informational: flat, no border, muted */.fpills li>span{background:rgba(244,241,234,.06);color:var(--fog);border:1px solid transparent}

/* clickable: outlined, amber text, arrow, lifts on hover */.fpills li>a{background:transparent;color:var(--amber);border:1px solid rgba(240,182,75,.45);cursor:pointer;transition:background .15s,transform .1s}
.fpills li>a::after{content:"↓";font-size:12px;opacity:.8}
.fpills li>a:hover{background:rgba(240,182,75,.12);color:var(--amber2);border-color:var(--amber2);transform:translateY(-1px)}
.fpills li>a:focus-visible{outline:2px solid var(--bone);outline-offset:3px}
.fpills li:first-child>span{background:transparent;padding-left:4px}
.anchors{position:sticky;top:0;z-index:30;margin-top:28px;background:rgba(12,14,21,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.anchors .wrap{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;padding-bottom:8px}
.anchors a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:var(--rp);font:500 14px/1 var(--sans);color:var(--fog);text-decoration:none;border:1px solid transparent}
.anchors a:hover{color:var(--bone);background:rgba(244,241,234,.06)}
.anchors a.is-active{color:var(--amber);border-color:rgba(240,182,75,.45)}
.ans{border:1px solid rgba(240,182,75,.35);border-left:4px solid var(--amber);background:linear-gradient(90deg,rgba(240,182,75,.08),rgba(240,182,75,.02));border-radius:0 18px 18px 0;padding:18px 22px;display:grid;gap:8px;max-width:820px;margin:0 0 28px}
.ans p{color:var(--bone);font-size:18px;line-height:1.5}
.relq{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px}
.relq a{display:grid;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-decoration:none;color:var(--bone);font:400 20px/1.2 var(--serif)}
.relq a small{font:500 13px var(--sans);color:var(--amber)}
.relq a:hover{border-color:var(--amber)}
.notice{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:12px;background:rgba(224,112,90,.1);border:1px solid rgba(224,112,90,.35);color:var(--bone);font-size:15px;line-height:1.45}
.notice .ico{color:var(--f-trials);margin-top:2px}
.notice a{margin-left:auto;white-space:nowrap;font-weight:600}
.snap{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--rp);border:1px dashed var(--line2);font:500 12px/1 var(--sans);letter-spacing:.06em;color:var(--ash);text-transform:uppercase}
.snap i{width:7px;height:7px;border-radius:50%;background:var(--f-beyond)}
.snap--big{font-size:15px;padding:12px 18px;text-transform:none;letter-spacing:0;color:var(--bone)}
.quote{margin:0;padding:16px 20px;border-left:2px solid var(--line2);display:grid;gap:8px}
.quote p{font:italic 400 19px/1.45 var(--sans);color:var(--fog2)}
.quote cite{font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);font-style:normal}
.term{text-decoration:underline dotted var(--amber);text-underline-offset:4px;cursor:help;position:relative;color:var(--bone)}
.js .term-x{display:none;position:absolute;left:0;bottom:calc(100% + 8px);width:min(260px,calc(100vw - 32px));padding:10px 12px;background:var(--card2);border:1px solid var(--line2);border-radius:12px;font:400 14px/1.4 var(--sans);color:var(--fog);opacity:0;pointer-events:none;transition:opacity .15s;z-index:5;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.js .term:hover .term-x,.js .term:focus .term-x{display:block;opacity:1}
.inc li .term-x,.side .term-x{left:auto;right:0}
.free{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:var(--rp);background:rgba(167,191,99,.16);color:var(--f-beyond);font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.free--big{font:400 30px/1 var(--serif);letter-spacing:0;text-transform:none;padding:10px 18px}
.landmark{display:grid;grid-template-columns:200px 1fr;gap:18px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card)}
.landmark img{height:100%;min-height:150px}
.landmark div{padding:16px 18px 16px 0;display:grid;gap:8px;align-content:start;color:var(--fog);font-size:15px}
@media (max-width:600px){.landmark{grid-template-columns:1fr}
.landmark div{padding:0 16px 16px}
.landmark img{height:160px}
}

/* div table */.dt{border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}
.dt-status{padding:10px 16px;font:500 13px var(--sans);color:var(--ash);border-bottom:1px solid var(--line);background:var(--card2);display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.dt-sort{display:none;align-items:center;gap:8px;margin-left:auto}
.dt-sort select{min-height:36px;padding:0 32px 0 12px;border-radius:var(--rp);border:1px solid rgba(244,241,234,.25);background:var(--night) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23C7C5D2%27 stroke-width=%272%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E") no-repeat right 10px center/16px;color:var(--bone);font:500 13px var(--sans);appearance:none;-webkit-appearance:none}
.dt-sort select:focus{outline:2px solid var(--amber);outline-offset:0}
.dt-sort button{min-height:36px;min-width:36px;padding:0 10px;border-radius:var(--rp);border:1px solid rgba(244,241,234,.25);background:transparent;color:var(--bone);font:600 14px var(--sans);cursor:pointer}
.dt-sort button:hover{border-color:var(--amber);color:var(--amber)}
@media (max-width:1100px){.js .dt-sort{display:inline-flex}
.dt-status .dt-hint{display:none}
}
.dt-head,.dt-row summary{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(calc(var(--cols) - 1),minmax(0,1fr)) auto;gap:16px;align-items:center;padding:14px 16px}
.dt-head{font:600 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);background:var(--card2);border-bottom:1px solid var(--line2)}
.dt-head [data-sort]{cursor:default}
.js .dt-head [data-sort]{cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.js .dt-head [data-sort]::after{content:"↕";opacity:.5;font-size:12px}
.dt-head [aria-sort="ascending"]{color:var(--amber)}
.dt-head [aria-sort="ascending"]::after{content:"↑";opacity:1}
.dt-head [aria-sort="descending"]{color:var(--amber)}
.dt-head [aria-sort="descending"]::after{content:"↓";opacity:1}
.dt-row{border-bottom:1px solid var(--line)}
.dt-row:last-child{border-bottom:0}
.dt-row summary{list-style:none;cursor:pointer;color:var(--fog);font-size:15px}
.dt-row summary::-webkit-details-marker{display:none}
.dt-row summary:hover{background:var(--card2)}
.dt .t-name a{font:400 20px/1.15 var(--serif);color:var(--bone);text-decoration:none}
.dt .t-name a:hover{color:var(--amber)}
.dt .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.dt .verdict{color:var(--bone);font-weight:500}
.dt .t-act{display:flex;align-items:center;gap:12px;justify-self:end}
.dt-x{width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);position:relative;flex:none}
.dt-x::before,.dt-x::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--fog);transform:translate(-50%,-50%)}
.dt-x::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}
.dt-row[open] .dt-x::after{transform:translate(-50%,-50%) rotate(0)}
.dt-row[open] .dt-x{border-color:var(--amber)}
.dt-more{padding:4px 16px 18px;display:grid;gap:12px;background:var(--card2)}
.dt-more dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 18px;margin:0;font-size:15px;color:var(--fog2)}
.dt-more dt{font:600 11px/1.9 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.dt-more dd{margin:0}
@media (max-width:1100px){.dt-head .cell:nth-child(n+3):not(:last-child),.dt-row summary .cell:nth-child(n+3):not(.t-act){display:none}
.dt-head,.dt-row summary{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto}
}
@media (max-width:700px){.dt-head{display:none}
.dt-row summary{grid-template-columns:1fr auto;gap:10px 16px}
.dt-row summary .cell:nth-child(2){grid-column:1}
.dt-row summary .t-act{grid-row:1/3;align-self:center}
}

/* filters */.cat{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.fpanel{position:sticky;top:64px}
.fpanel summary{display:none}
.fpanel-in .fam-radios .chip{min-height:38px;padding:0 12px;font-size:13px}
.fpanel-in{display:grid;gap:22px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.facet{display:grid;gap:6px}
.facet h4{margin:0 0 4px;font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.facet .check{min-height:36px;font-size:15px}
.fpanel-act{display:flex;gap:10px}
.fpanel-act .btn{flex:1}
.fbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;min-height:44px}
.fbar .count{font:500 14px var(--sans);color:var(--fog);margin-right:auto}
.achip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 6px 0 12px;border-radius:var(--rp);background:var(--bone);color:var(--night);font:500 13px/1 var(--sans);border:0;cursor:pointer}
.achip i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(12,14,21,.12);font-style:normal}
.fbar .clear{font:600 14px var(--sans);color:var(--amber);background:none;border:0;cursor:pointer;min-height:36px}
.fam-radios{display:flex;flex-wrap:wrap;gap:8px}
.cat .tc.is-hid,.cat .dt-row.is-hid{display:none}
.cat:has(#v-table:checked) .tcs{display:none}
.cat:has(#v-cards:checked) .dt{display:none}
.cat:has(#c-night:checked) [data-fam]:not([data-fam="night"]),.cat:has(#c-trials:checked) [data-fam]:not([data-fam="trials"]),.cat:has(#c-loc:checked) [data-fam]:not([data-fam="loc"]),.cat:has(#c-beyond:checked) [data-fam]:not([data-fam="beyond"]){display:none}
.cat:has(#m-night:checked) [data-fam]:not([data-fam="night"]),.cat:has(#m-trials:checked) [data-fam]:not([data-fam="trials"]),.cat:has(#m-beyond:checked) [data-fam]:not([data-fam="beyond"]){display:none}
.cat .empty{display:none}
.cat:has(#c-loc:checked) .empty,.cat.is-empty .empty{display:grid}
@media (max-width:1100px){.cat{grid-template-columns:1fr}
.fpanel{position:static}
.fpanel summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border-radius:var(--rp);border:1px solid var(--line2);font:500 14px var(--sans);color:var(--bone);cursor:pointer;list-style:none}
.fpanel summary::-webkit-details-marker{display:none}
.js .fpanel[open] .fpanel-in{position:fixed;inset:0;z-index:80;border-radius:0;overflow:auto;padding:24px 18px 100px}
.js .fpanel[open] .fpanel-act{position:fixed;left:0;right:0;bottom:0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);z-index:81}
}

/* prices */.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tier{border:1px solid var(--line);border-radius:22px;background:var(--card);padding:22px;display:grid;gap:12px;align-content:start}
.tier.is-pick{border-color:rgba(240,182,75,.5);box-shadow:0 0 40px rgba(240,182,75,.12)}
.tier .range{font:400 34px/1 var(--serif);color:var(--bone)}
.tier ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:15px;color:var(--fog)}
.tier .btn{margin-top:auto}
@media (max-width:900px){.tiers{grid-template-columns:1fr}
}
.scen{display:grid;gap:16px}
.scen-tabs{display:flex;flex-wrap:wrap;gap:8px}
.scen-tabs input{position:absolute;opacity:0;pointer-events:none}
.scen-panel{display:none;border:1px solid var(--line2);border-radius:18px;padding:20px 22px;background:var(--card);gap:12px}
.scen-panel .total{font:400 40px/1 var(--serif);color:var(--bone)}
.scen:has(#sc-1:checked) #sp-1,.scen:has(#sc-2:checked) #sp-2,.scen:has(#sc-3:checked) #sp-3,.scen:has(#sc-4:checked) #sp-4{display:grid}
.mx{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);font-size:15px}
.mx>*{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--fog)}
.mx .h{background:var(--card2);font:600 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.mx .ok{color:var(--f-beyond)}
.mx .no{color:var(--f-trials)}
.mx .dep{color:var(--amber)}
@media (max-width:700px){.mx{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.8fr));font-size:13px}
.mx>*{padding:10px 8px}
}

/* meeting points */.street{display:grid;gap:14px;margin-bottom:36px}
.street>h3{font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);display:flex;align-items:center;gap:14px}
.street>h3::after{content:"";flex:1;height:1px;background:var(--line)}
.mp-list{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
.map{display:none}


/* reviews block */.rvw-ans{border:1px solid rgba(240,182,75,.35);border-left:4px solid var(--amber);background:linear-gradient(90deg,rgba(240,182,75,.08),rgba(240,182,75,.02));border-radius:0 18px 18px 0;padding:18px 22px;display:grid;gap:8px;max-width:820px;margin:0 0 28px}
.rvw-ans p{color:var(--bone);font-size:18px;line-height:1.5}
.rvw-src{display:inline-flex;align-items:center;gap:8px;font:500 13px/1 var(--sans);color:var(--fog)}
.rvw-src b{color:var(--bone);font-weight:600}
.rvw-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px 40px;align-items:start}
.rvw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px;align-items:start}
.rvw{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--card);display:grid;gap:12px;font-size:15px;color:var(--fog)}
.rvw-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rvw-stars{display:inline-flex;align-items:center;gap:6px;font:700 13px var(--sans);color:var(--bone)}
.rvw-stars b{color:var(--amber)}
.rvw-stars.is-low b{color:var(--f-trials)}
.rvw-date{font:500 12px var(--sans);color:var(--ash)}
.rvw q{quotes:"“" "”";display:block;font:italic 400 17px/1.5 var(--sans);color:var(--fog2)}
.rvw q::before,.rvw q::after{color:var(--ash)}
.rvw.is-clamp{position:relative}
.rvw.is-clamp .rvw-tgl~q{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rvw.is-clamp .rvw-tgl:checked~q{display:block;-webkit-line-clamp:unset;overflow:visible}
.rvw-more{cursor:pointer;font:600 14px var(--sans);color:var(--amber);display:inline-flex;gap:6px;align-items:center;min-height:32px}
.rvw-more:hover{color:var(--amber2)}
.rvw-tgl:focus-visible~.rvw-more{outline:2px solid var(--bone);outline-offset:3px;border-radius:6px}
.rvw-tgl:checked~.rvw-more .m1{display:none}
.rvw-tgl:not(:checked)~.rvw-more .m2{display:none}
.rvw-who{display:flex;gap:10px;align-items:center;font:500 14px var(--sans);color:var(--bone)}
.rvw-who i{width:30px;height:30px;border-radius:50%;background:var(--card2);border:1px solid var(--line2);display:grid;place-items:center;font:600 12px var(--sans);color:var(--fog);font-style:normal;flex:none}
.rvw-who.is-anon{color:var(--ash);font-style:italic}
.rvw-who.is-anon i{border-style:dashed;background:transparent}
.rvw-tour{display:flex;gap:8px;align-items:center;padding-top:12px;border-top:1px solid var(--line);font:500 13px var(--sans);color:var(--ash)}
.rvw-tour a{color:var(--bone);text-decoration:none;font:400 17px/1.2 var(--serif);display:inline-flex;gap:6px;align-items:center}
.rvw-tour a::after{content:"→";color:var(--amber);font-family:var(--sans)}
.rvw-tour a:hover{color:var(--amber)}
.rvw-empty{border:1px dashed var(--line2);border-radius:18px;padding:18px;display:grid;place-items:center;text-align:center;gap:8px;color:var(--ash);font-size:14px;min-height:160px}
.rvw-empty .lamp{opacity:.5}
.dist{border:1px solid var(--line);border-radius:22px;padding:22px;background:var(--card);display:grid;gap:14px;position:sticky;top:96px}
.dist-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.dist-big{font:400 44px/1 var(--serif);color:var(--bone)}
.dist-big small{font:500 14px var(--sans);color:var(--ash)}
.dist-rows{display:grid;gap:8px}
.dist-row{display:grid;grid-template-columns:34px minmax(0,1fr) 48px;gap:10px;align-items:center;font:500 13px var(--sans);color:var(--fog)}
.dist-row .bar{height:10px;border-radius:999px;background:repeating-linear-gradient(135deg,rgba(244,241,234,.1) 0 4px,transparent 4px 8px);overflow:hidden}
.dist-row .bar i{display:block;height:100%;width:var(--w,0%);background:var(--amber);border-radius:999px;transition:width .6s ease}
.dist-row.is-low .bar i{background:var(--f-trials)}
.dist-row .n{text-align:right;font-variant-numeric:tabular-nums;color:var(--ash)}
.dist-note{font-size:13px;color:var(--ash)}
@media (max-width:1000px){.rvw-grid{grid-template-columns:1fr}
.dist{position:static}
}

/* catalog: tour with / without its own page */.tc-foot .btn--ghost{margin-right:auto}
.tc.no-page .tc-body h3 a{pointer-events:none;color:var(--bone)}
.tc.no-page .tc-body h3{color:var(--bone)}
.tc.no-page:hover .tc-body h3{color:var(--bone)}
.tc-nopage{font:500 12px var(--sans);color:var(--ash)}
.dt .t-name span.t-plain{font:400 20px/1.15 var(--serif);color:var(--fog2)}
.dt .t-name small{display:block;margin-top:4px;font:500 12px var(--sans);color:var(--ash)}
.dt .t-name a::after{content:" →";color:var(--amber);font-family:var(--sans);font-size:14px}


.rvw-demo .rvw-cards{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}


/* ===== tour page blocks ===== */.tb{padding:clamp(48px,6vw,80px) 0;border-top:1px solid var(--line)}
.tb-q{font:400 clamp(30px,3.6vw,44px)/1.05 var(--serif);color:var(--bone);margin:0 0 16px;text-wrap:balance}
.tb-ans{border:1px solid rgba(240,182,75,.35);border-left:4px solid var(--amber);background:linear-gradient(90deg,rgba(240,182,75,.08),rgba(240,182,75,.02));border-radius:0 18px 18px 0;padding:16px 20px;max-width:820px;margin:0 0 24px}
.tb-ans p{color:var(--bone);font-size:18px;line-height:1.5}
.tb-act{display:flex;gap:14px 22px;align-items:center;flex-wrap:wrap;margin-top:26px}
.tb-src{font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);display:inline-flex;gap:8px;align-items:center}
.tb-src::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--f-beyond)}
.tb-body{max-width:760px;display:grid;gap:14px;color:var(--fog);font-size:17px}
.glance{display:grid;min-width:0;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;max-width:920px}
.glance div{background:var(--card);padding:16px 18px;display:grid;gap:4px}
.glance dt{font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.glance dd{margin:0;font:500 17px/1.3 var(--sans);color:var(--bone)}
.bs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bs>div{border:1px solid var(--line);border-radius:22px;padding:22px;background:var(--card);display:grid;gap:12px;align-content:start}
.bs h3{font:400 24px/1.1 var(--serif);color:var(--bone);display:flex;gap:10px;align-items:center}
.bs .ok h3::before{content:"✓";color:var(--f-beyond)}
.bs .no h3::before{content:"↗";color:var(--amber)}
.bs ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:15px;color:var(--fog)}
.bs li{display:grid;gap:4px;padding:10px 0;border-top:1px solid var(--line)}
.bs li a{font:500 14px var(--sans);color:var(--amber);text-decoration:none}
.bs li a:hover{color:var(--amber2)}
@media (max-width:800px){.bs{grid-template-columns:1fr}
}
.see{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.see ol{margin:0;padding:0;list-style:none;counter-reset:s;display:grid}
.see li{counter-increment:s;display:grid;grid-template-columns:36px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line);font-size:15px;color:var(--fog)}
.see li:last-child{border-bottom:1px solid var(--line)}
.see li::before{content:counter(s,decimal-leading-zero);font:400 22px/1 var(--serif);color:var(--amber)}
.see li b{display:block;font:400 21px/1.15 var(--serif);color:var(--bone);margin-bottom:2px}
.see-img{border-radius:22px;overflow:hidden;aspect-ratio:4/3;position:relative}
@media (max-width:900px){.see{grid-template-columns:1fr}
}
.meet{display:grid;gap:14px;max-width:760px}
.meet .addr{font:400 24px/1.3 var(--serif);color:var(--bone)}
.meet .addr b{font-weight:400;color:var(--bone);border-bottom:2px solid var(--amber)}
.copy{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--rp);border:1px solid rgba(244,241,234,.35);background:transparent;color:var(--bone);font:600 15px var(--sans);cursor:pointer}
.copy:hover{border-color:var(--amber);color:var(--amber)}
.copy.is-done{border-color:var(--f-beyond);color:var(--f-beyond)}
.copy .c2{display:none}
.copy.is-done .c1{display:none}
.copy.is-done .c2{display:inline}
.copy:disabled{opacity:.5;cursor:not-allowed}
.meet-others{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:15px;color:var(--fog)}
.meet-others a{color:var(--bone);text-decoration:none;border-bottom:1px solid var(--line2)}
.meet-others a:hover{color:var(--amber);border-color:var(--amber)}
.opt-row .btn{min-height:40px}
.suit{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:14px;max-width:920px}
.suit div{border:1px solid var(--line);border-radius:18px;padding:16px 18px;background:var(--card);display:grid;gap:6px;font-size:15px;color:var(--fog)}
.suit dt{font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.suit dd{margin:0;color:var(--fog2)}
.rel{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px}
.rel .tc-img .tc-rate{top:auto;bottom:12px;right:12px}
.tc-foot .btn[aria-disabled]{white-space:normal;text-align:center;line-height:1.2}
.rel .tc-why{font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--amber);padding:12px 18px 0}
@media (max-width:900px){.rel{grid-template-columns:1fr}
}
.hero-new{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--rp);border:1px dashed rgba(240,182,75,.5);color:var(--amber);font:600 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.readon{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;border:1px solid var(--line);border-radius:18px;background:var(--card);font-size:15px;color:var(--fog)}
.readon a{color:var(--bone);text-decoration:none;font:400 20px/1.15 var(--serif)}
.readon a:hover{color:var(--amber)}
.tp-bar{position:sticky;bottom:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(12,14,21,0),rgba(12,14,21,.96) 30%)}
.tp-bar .bar-in{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:16px;padding:10px 12px 10px 10px;border:1px solid var(--line2);border-radius:var(--r);background:rgba(21,24,36,.92);backdrop-filter:blur(10px)}
.tp-bar .bar-img{width:56px;height:56px;border-radius:12px;flex:none}
.tp-bar .bar-txt{display:grid;gap:3px;min-width:0;flex:1}
.tp-bar .bar-txt b{font:400 20px/1.1 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tp-bar .bar-txt small{font-size:13px;color:var(--fog);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-bar .btn{flex:none;min-height:52px}
@media (max-width:700px){.tp-bar .bar-img,.tp-bar .price{display:none}
.tp-bar .bar-txt b{font-size:17px}
}


/* ===== responsive pass ===== */html,body{overflow-x:clip}
img,svg,video{max-width:100%}
.wrap>*{min-width:0}
h1,h2,h3,.tb-q,.phero h1{overflow-wrap:anywhere}
.alt,.crumbs a,.foot ul a,.rvw-tour a,.bs li a,.mp-list a,.meet-others a,.notice a,.dt .t-name a{padding-top:6px;padding-bottom:6px}
.more,.tc-more{padding:8px 0;margin:-8px 0}
.tbl-foot .row{flex-wrap:wrap}
.route-stops span{flex:1 1 0;min-width:0}
.qa summary{min-width:0}
.qa summary>i{flex:none}
.notice{flex-wrap:wrap}
.notice a{margin-left:0;white-space:normal}
@media (max-width:900px){.sec{padding:clamp(44px,8vw,64px) 0}
h2{font-size:clamp(30px,6vw,40px)}
.sec-head{gap:14px;margin-bottom:26px}
.sec-head p{font-size:16px}
.hubs{gap:12px}
.tcs{gap:14px}
}
@media (max-width:600px){.btn{white-space:normal;text-align:center;line-height:1.2;padding:14px 20px}
.btn--lg{padding:16px 22px;min-height:56px;font-size:16px}
.btn--sm{padding:11px 16px}
.cta-row,.tb-act,.hero-foot{flex-direction:column;align-items:stretch;gap:12px}
.cta-row .btn,.tb-act .btn,.tbl-foot .btn{width:100%}
.cta-row .alt,.tb-act .alt{text-align:center}
.tbl-foot{flex-direction:column;align-items:stretch}
.tbl-foot .row{flex-direction:column;align-items:stretch;width:100%}
.row{flex-wrap:wrap}
.facts{grid-template-columns:auto minmax(0,1fr)}
.route-stops span{font-size:11px}
.tcard,.feature{max-width:100%}
.tcard-body{padding:14px 16px 16px}
.qa summary{font-size:18px;gap:12px;padding:16px 0}
.kind-body{padding:8px 18px 18px}
.kind-body h3{font-size:24px}
.tc-body{padding:14px 16px 16px}
.tc-body h3{font-size:22px}
.price{font-size:17px}
.rating{padding:6px 10px}
.pill{padding:5px 10px;font-size:10px}
.badge{font-size:10px}
.foot-grid{gap:22px 18px}
.fine{font-size:12px}
.rvw{padding:16px}
.rvw q{font-size:16px}
.rvw-ans,.tb-ans{padding:14px 16px;border-radius:0 14px 14px 0}
.rvw-ans p,.tb-ans p{font-size:16px}
.dist{padding:18px}
.dist-big{font-size:36px}
.lede{font-size:16px}
}


/* kit-specific */.landmark div{min-width:0}
.landmark b{overflow-wrap:anywhere}
.anchors .wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.anchors .wrap::-webkit-scrollbar{display:none}
.anchors a{flex:none;white-space:nowrap}
@media (min-width:1101px){.anchors .wrap{flex-wrap:wrap;overflow:visible;mask-image:none}
}

/* div table: keep price visible in the compact row */@media (max-width:1100px){.dt-head{display:none}
.dt-row summary{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto}
.dt-row summary .cell.num:not(.t-act){display:block;justify-self:end}
.dt-row summary .cell.t-act{grid-column:4}
}
@media (max-width:700px){.dt-row summary{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:14px}
.dt-row summary .cell:nth-child(2){grid-column:1;grid-row:2}
.dt-row summary .cell.num:not(.t-act){grid-column:2;grid-row:2;justify-self:end}
.dt-row summary .t-act{grid-column:2;grid-row:1;align-self:start}
.dt .t-name a,.dt .t-name span.t-plain{font-size:18px}
.dt-more{padding:0 14px 16px}
.glance{grid-template-columns:1fr 1fr}
.glance div{padding:12px 14px}
.glance dd{font-size:16px}
.gridvis{grid-template-columns:repeat(4,1fr);gap:12px;padding:0 18px}
.tb{padding:40px 0}
.tb-q{font-size:clamp(26px,7vw,30px)}
.phero{padding:28px 0 32px}
.phero h1{font-size:clamp(30px,8.5vw,40px)}
.answer{padding:18px;border-radius:18px}
.answer h3{font-size:24px}
.scen-panel{padding:16px}
.scen-panel .total{font-size:32px}
.tier{padding:18px}
.tier .range{font-size:30px}
.bs>div{padding:18px}
.bs h3{font-size:22px}
.see li{grid-template-columns:28px 1fr;gap:10px}
.see li b{font-size:19px}
.meet .addr{font-size:21px}
.stop b{font-size:19px}
.node{display:none}
.empty{padding:32px 18px}
.fbar .count{flex:1 0 100%}

  /* inclusions matrix → stacked, labelled cells */.mx{grid-template-columns:repeat(3,minmax(0,1fr));font-size:13px}
.mx .h{display:none}
.mx>span[role=cell]:nth-child(4n+1){grid-column:1/-1;background:var(--card2);font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);padding:10px 14px}
.mx>span[role=cell]:not(:nth-child(4n+1)){display:grid;gap:4px;padding:10px 12px;line-height:1.3}
.mx>span[role=cell]:not(:nth-child(4n+1))::before{font:600 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.mx>span[role=cell]:nth-child(4n+2)::before{content:"Lower"}
.mx>span[role=cell]:nth-child(4n+3)::before{content:"Classic"}
.mx>span[role=cell]:nth-child(4n+4)::before{content:"Premium"}
}
@media (max-width:600px){.rel{grid-template-columns:1fr}
.suit{grid-template-columns:1fr}
.readon{flex-direction:column;align-items:stretch}
.readon .btn{width:100%}
.fp{margin-bottom:18px}
.fpills li>*{min-height:32px;padding:0 12px;font-size:12px}
.tp-bar .bar-in{gap:10px;padding:8px 8px 8px 12px}
.tp-bar .btn{min-height:48px;padding:0 18px}
.copy{width:100%;justify-content:center}
}


/* ===== tour page ===== */main.cb{display:flex;flex-direction:column}
main.cb>*{min-width:0}
.tp-bar{order:99}
.ans{border:0;padding:0;border-radius:0;background:none;font-size:19px;line-height:1.5;color:var(--fog2);max-width:66ch}
h2.key{font-size:clamp(28px,3vw,40px);line-height:1.05;overflow-wrap:anywhere}
.sec-t{display:grid;gap:12px;margin-bottom:24px}
.row2{display:flex;gap:10px;flex-wrap:wrap}
.cta-line{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;margin-top:22px}
.cta-line .alt{padding:8px 0}
.fc-p{font-size:15px;color:var(--fog);line-height:1.5}
.verdict{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--rp);background:rgba(240,182,75,.12);border:1px solid rgba(240,182,75,.45);color:var(--amber);font:600 13px/1 var(--sans);white-space:nowrap}
.verdict::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.verdict--new{background:rgba(244,241,234,.06);border-color:var(--line2);color:var(--fog)}
.verdict--low{background:rgba(224,112,90,.1);border-color:rgba(224,112,90,.5);color:var(--f-trials)}
.rt{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap}
.rt b{font:400 34px/1 var(--serif);color:var(--bone)}
.rt .st{color:var(--amber);font-size:18px}
.rt small{color:var(--ash);font-size:14px}
.rt--low .st{color:var(--f-trials)}
.subs{display:grid;gap:8px}
.sub-row{display:grid;grid-template-columns:110px 1fr 34px;align-items:center;gap:12px;font-size:14px;color:var(--fog)}
.sub-row b{text-align:right;color:var(--bone);font-weight:600}
.sub-bar{height:6px;border-radius:3px;background:rgba(244,241,234,.1);overflow:hidden}
.sub-bar i{display:block;height:100%;border-radius:3px;background:var(--amber);box-shadow:0 0 10px rgba(240,182,75,.5)}

/* hero */.cb-hero{position:relative;overflow:hidden;padding:0 0 60px}
.cb-hero .bg{position:absolute;inset:0}
.cb-hero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;opacity:.55;filter:saturate(.7)}
.cb-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,14,21,.5),rgba(12,14,21,.25) 40%,var(--night) 100%),linear-gradient(90deg,rgba(12,14,21,.9),rgba(12,14,21,.35) 55%,rgba(12,14,21,.15))}
.cb-hero .bg--none{display:grid;place-items:center;background:radial-gradient(ellipse 40% 50% at 70% 40%,rgba(240,182,75,.18),transparent 70%)}
.cb-hero .bg--none .lamp{position:absolute;right:20%;top:32%;transform:scale(2.2)}
.cb-hero .crumbs{position:relative}
.cb-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:end;min-height:460px;padding-top:36px}
.cb-hero .ey{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cb-hero h1{font-size:clamp(34px,4.6vw,68px);line-height:1;margin:14px 0 18px;text-shadow:0 2px 40px rgba(12,14,21,.9);overflow-wrap:anywhere}
.cb-hero .lede{max-width:56ch}
.hero-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.hero-acts .btn{min-height:48px;padding:0 18px;font-size:15px}
.vcard{background:rgba(21,24,36,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line2);border-radius:22px;padding:22px;display:grid;gap:16px;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.vcard .verdict{justify-self:start}
.vcard .rt b{font-size:56px}
.vcard .vnew{font-size:15px;color:var(--fog);line-height:1.5}
.vcard .vp{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.vcard .vp b{font:400 34px/1 var(--serif)}
.vcard .vp small{display:block;color:var(--ash);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.vcard .vp-r{text-align:right;font-size:13px;color:var(--fog);line-height:1.35}
.vcard .acts{display:grid;gap:10px}
.vcard .acts .btn{width:100%;white-space:normal;text-align:center}
.vcard .acts-extra{display:none;grid-template-columns:1fr 1fr;gap:10px}
.vcard .acts-extra .btn{min-height:48px;padding:0 12px;font-size:14px}
.vcard .fine{font-size:13px;color:var(--ash);text-align:center}

/* strip + anchors */.strip{position:relative;z-index:2;margin-top:-20px}
.strip-in{display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.strip-in>div{padding:18px 20px;border-left:1px solid var(--line);min-width:0}
.strip-in>div:first-child{border-left:0}
.strip small{display:block;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-bottom:8px}
.strip b{font:400 20px/1.2 var(--serif);font-weight:400;overflow-wrap:anywhere}
#components .strip{margin-top:0}
.tp-anchors{position:sticky;top:76px;z-index:30;background:rgba(12,14,21,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);margin-top:18px}
.tp-anchors .wrap{display:flex;flex-wrap:wrap;gap:0 2px;padding-top:0;padding-bottom:0}
.tp-anchors a{display:inline-flex;align-items:center;min-height:48px;padding:0 12px;color:var(--fog);text-decoration:none;font:500 14px/1 var(--sans);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0}
.tp-anchors a:hover{color:var(--bone)}
.tp-anchors a.is-active{color:var(--amber);border-bottom-color:var(--amber)}
main.cb [id]{scroll-margin-top:140px}
#components .tp-anchors{position:static;margin:0;border:0;background:none}

/* sections */.cb-sec{padding:56px 0}
.cb-reviews,.cb-who,.cb-dates{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cb-reviews .rv,.cb-who .who>div{background:var(--card2)}
.cb-who .alt-tour{background:var(--night)}
.rv-head{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:end;margin-bottom:26px}
.rv-score{display:grid;gap:14px}
.rv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rv{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;display:grid;grid-template-rows:auto 1fr auto auto;gap:12px;min-width:0}
.rv q{quotes:none;font:400 16px/1.5 var(--sans);color:var(--fog2)}
.rv q::before{content:"“";font-family:var(--serif);color:var(--amber);font-size:38px;line-height:0;vertical-align:-14px;margin-right:4px}
.js .rv q{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.js .rv.is-open q{display:block;-webkit-line-clamp:unset;overflow:visible}
.rv .more-btn{display:none;justify-self:start;align-items:center;background:none;border:0;color:var(--amber);font:600 14px/1 var(--sans);min-height:44px;padding:0;cursor:pointer}
.rv.has-more .more-btn{display:inline-flex}
.rv.is-open .more-btn{display:none}
.rv-stars{color:var(--amber);letter-spacing:2px;font-size:14px}
.rv-stars--low{color:var(--f-trials)}
.rv-meta{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--ash);flex-wrap:wrap}
.rv-meta b{color:var(--bone);font-weight:600}
.rv-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:26px;padding:18px 22px;border-radius:18px;background:var(--night);border:1px solid var(--line)}
.rv-cta p{font-size:16px;color:var(--fog)}
.story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
.hl{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hl li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:14px;font-size:16px;line-height:1.45}
.hl .n{font:400 22px/1 var(--serif);color:var(--amber);min-width:22px;padding-top:2px}
.tl{list-style:none;margin:0;padding:0;display:grid}
.tl li{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:9px 0;position:relative}
.tl li::before{content:"";position:absolute;left:13px;top:0;bottom:0;border-left:2px dashed rgba(199,197,210,.3)}
.tl li:first-child::before{top:50%}
.tl li:last-child::before{bottom:50%}
.tl i{width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--fog);margin:6px 0 0 5px;position:relative;z-index:1}
.tl li:first-child i,.tl li:last-child i{background:var(--amber);border-color:var(--amber);box-shadow:0 0 14px rgba(240,182,75,.7)}
.tl b{font:400 19px/1.25 var(--serif)}
.tl small{display:block;color:var(--ash);font-size:13px;margin-top:2px}
.strip-ph{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:40px}
.strip-ph figure{margin:0;height:180px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.who{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.who>div{padding:22px;border-radius:18px;border:1px solid var(--line);background:var(--card);min-width:0;display:flex;flex-direction:column}
.who h3{font-size:22px;margin-bottom:14px}
.who ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:16px;line-height:1.45}
.who li{display:grid;grid-template-columns:18px 1fr;gap:10px}
.who .yes li::before{content:"✓";color:var(--amber);font-weight:700}
.who .no li::before{content:"→";color:var(--ash)}
.who .cta-line{margin-top:auto;padding-top:18px}
.alt-tour{display:grid;grid-template-columns:1fr auto;gap:2px 14px;align-items:center;margin-top:10px;padding:14px;min-height:44px;border-radius:12px;background:var(--card2);border:1px solid transparent;text-decoration:none;color:var(--bone)}
.alt-tour:hover{border-color:rgba(240,182,75,.5);color:var(--bone)}
.alt-tour b{font:400 17px/1.2 var(--serif)}
.alt-tour small{color:var(--ash);font-size:13px}
.alt-tour .price{grid-row:1/3;font-size:15px}
.meet-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:start}
.addr{font:400 28px/1.15 var(--serif);overflow-wrap:anywhere}
.pq{border-left:2px solid var(--amber);padding:4px 0 4px 16px;color:var(--fog);font-style:italic;font-size:16px;margin-top:12px}
.meet-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.meet-acts .btn{min-height:48px;padding:0 18px;font-size:15px}
.map{position:relative;border:1px solid var(--line2);border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:var(--card);display:grid;place-items:center;isolation:isolate}
.map::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 39px,rgba(244,241,234,.05) 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,rgba(244,241,234,.05) 39px 40px),radial-gradient(ellipse 50% 60% at 50% 50%,rgba(240,182,75,.14),transparent 70%)}
.map .pin{position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;background:var(--amber);transform:translate(-50%,-50%);box-shadow:0 0 0 6px rgba(240,182,75,.2),0 0 24px rgba(240,182,75,.8)}
.map .pin::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(240,182,75,.5);animation:pulse 2.4s ease-out infinite}
.map .map-cta{position:relative;z-index:1;display:grid;gap:10px;justify-items:center;text-align:center;margin-top:70px}
.map .map-cta small{color:var(--ash);font-size:13px}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) hue-rotate(180deg) contrast(.9) brightness(.9)}
.map.is-live::before,.map.is-live .pin{display:none}
.coords{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.coords code{font:500 14px ui-monospace,Menlo,monospace;color:var(--fog);margin-right:6px}
.coords a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--line2);border-radius:var(--rp);text-decoration:none;font:600 14px/1 var(--sans);color:var(--bone)}
.coords a:hover{border-color:var(--amber);color:var(--amber)}
.facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fc{padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);min-width:0;display:flex;flex-direction:column}
.fc--wide{grid-column:1/-1}
.fc h2.key{font-size:24px}
.fc .ans{font-size:16px}
.fc .sec-t{margin-bottom:18px}
.inc{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.inc--one{grid-template-columns:1fr}
.inc>div{min-width:0}
.inc h3{font-size:12px;font-family:var(--sans);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-bottom:12px}
.inc ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.inc li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:15px;line-height:1.45}
.inc .in li::before{content:"✓";color:var(--amber);font-weight:700}
.inc .out li::before{content:"✕";color:var(--ash)}
.opt{width:100%;border-collapse:collapse;font-size:15px}
.opt th{text-align:left;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ash);padding:0 14px 10px}
.opt td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:middle}
.opt td:first-child{font:400 18px/1.25 var(--serif)}
.opt td:last-child{text-align:right}
.opt .meta{color:var(--fog)}
.opt .btn--sm{min-height:44px}
.kv{display:grid;gap:10px;font-size:15px;margin:0}
.kv div{display:grid;grid-template-columns:110px 1fr;gap:12px}
.kv dt{color:var(--ash)}
.kv dd{margin:0;color:var(--bone)}
.dates-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.widget-slot{border:1px dashed rgba(240,182,75,.45);border-radius:18px;padding:28px;display:grid;place-items:center;text-align:center;gap:10px;background:rgba(240,182,75,.04);min-height:220px;color:var(--fog)}
.widget-slot small{color:var(--ash);font-size:13px}
.rel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rel-card{display:grid;grid-template-columns:120px 1fr;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--bone)}
.rel-card:hover{border-color:rgba(240,182,75,.5);color:var(--bone)}
.rel-card .rimg{position:relative}
.rel-card .rb{padding:16px;display:grid;gap:6px;align-content:start}
.rel-card b{font:400 20px/1.2 var(--serif)}
.rel-card small{color:var(--ash);font-size:13px}
.rel-hub{display:grid;align-content:center;gap:10px;padding:22px;border-radius:18px;border:1px solid rgba(240,182,75,.35);background:rgba(240,182,75,.05);text-decoration:none;color:var(--bone)}
.rel-hub b{font:400 22px/1.15 var(--serif)}
.rel-hub span{color:var(--amber);font-weight:600}

/* sticky bar */.tp-bar{transition:transform .25s,opacity .25s}
.tp-bar.is-hidden{transform:translateY(120%);opacity:0;pointer-events:none}
.tp-bar .bar-txt b{font:400 18px/1.15 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tp-bar .bar-txt small{color:var(--ash)}
.tp-bar .btn{white-space:nowrap}
.bar-lamp{display:grid;place-items:center;background:var(--card2)}
@media (max-width:1100px){.cb-hero-grid{grid-template-columns:1fr;min-height:0;gap:26px}
.vcard{max-width:520px}
.rv-grid{grid-template-columns:1fr 1fr}
.rv-head{grid-template-columns:1fr}
.facts-grid{grid-template-columns:1fr 1fr}
.fc--wide{grid-column:1/-1}
}
@media (max-width:900px){.story-grid,.meet-grid,.dates-grid{grid-template-columns:1fr;gap:40px}
.strip-in{grid-template-columns:repeat(3,minmax(0,1fr))}
.strip-in>div:nth-child(3n+1){border-left:0}
.strip-in>div:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:760px){.cb-sec{padding:40px 0}
.s-hero{order:0}
.s-strip{order:1}
.s-anchors{order:2}
.s-meet{order:3}
.s-story{order:4}
.s-who{order:5}
.s-reviews{order:6}
.s-facts{order:7}
.s-dates{order:8}
.s-related{order:9}
.cb-hero{padding-bottom:96px}
.s-meet{padding-bottom:110px}
.cb-hero-grid{padding-top:14px;gap:18px}
.cb-hero h1{font-size:clamp(30px,8.6vw,38px);margin:10px 0 12px}
.cb-hero .lede{font-size:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hero-acts{display:none}
.vcard{padding:16px;gap:12px;max-width:none}
.vcard .subs{display:none}
.vcard .rt b{font-size:40px}
.vcard .vp{padding-top:10px}
.vcard .vp b{font-size:28px}
.vcard .acts-extra{display:grid}
.vcard .acts .btn--lg{min-height:56px;padding:0 20px}
.strip-in{grid-template-columns:1fr 1fr}
.strip-in>div{padding:12px 14px 14px}
.strip-in>div:nth-child(odd){border-left:0}
.strip-in>div:nth-child(even){border-left:1px solid var(--line)}
.strip-in>div:nth-child(n+3){border-top:1px solid var(--line)}
.strip b{font-size:17px}
.tp-anchors{margin-top:14px}
.tp-anchors .wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:0;padding-right:48px;mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent)}
.tp-anchors .wrap::-webkit-scrollbar{display:none}
.tp-anchors a{flex:none;min-height:44px;padding:0 10px;font-size:13px;white-space:nowrap;scroll-snap-align:start}
.tp-anchors::after{content:"›";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--amber);font-size:20px;line-height:1;pointer-events:none}
.tp-anchors.at-end::after{opacity:0}
.rv-grid,.who,.facts-grid,.rel,.inc{grid-template-columns:1fr}
.js .rv q{-webkit-line-clamp:5}
.rv-cta{flex-direction:column;align-items:stretch}
.rv-cta .row2{display:grid;grid-template-columns:1fr 1fr}
.rv-cta .btn{width:100%;white-space:normal;text-align:center}
.strip-ph{grid-template-columns:1fr 1fr;margin-top:28px}
.strip-ph figure{height:120px}
.map{aspect-ratio:4/3}
.meet-acts .btn{flex:1 1 150px}
.coords a{flex:1 1 140px}
.coords code{flex:1 0 100%;margin:0;font-size:15px}
.cta-line{flex-direction:column;align-items:stretch}
.cta-line .btn{width:100%;white-space:normal;text-align:center}
.cta-line .alt{text-align:center}
.opt thead{display:none}
.opt,.opt tbody{display:block}
.opt tr{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:14px 0;border-top:1px solid var(--line);align-items:center}
.opt td{display:block;padding:0;border:0}
.opt td:first-child{grid-column:1/-1}
.opt td.meta{grid-column:1;font-size:14px;color:var(--ash)}
.opt td.pr{grid-column:1}
.opt td:last-child{grid-column:2;grid-row:2/4}
.kv div{grid-template-columns:100px 1fr}
.rel-card{grid-template-columns:96px 1fr}
.tp-bar .bar-img{display:none}
.tp-bar .bar-in{gap:10px;padding:8px 8px 8px 14px}
.tp-bar .bar-txt b{font-size:15px;-webkit-line-clamp:1}
.tp-bar .bar-txt small{font-size:11px}
.tp-bar .btn{min-height:48px;padding:0 16px;font-size:15px}
body{padding-bottom:110px}
}
@media (max-width:380px){.vcard .acts-extra .btn{font-size:13px;padding:0 10px;min-height:46px}
.cb-hero .lede{display:none}
.vcard .vnew{display:none}
.vcard .rt b{font-size:34px}
.vcard .vp b{font-size:24px}
.vcard{gap:10px;padding:14px}
.cb-hero h1{font-size:clamp(28px,8vw,34px)}
}
@media (max-width:1100px) and (min-width:761px){.facts-grid{grid-template-columns:1fr}
.fc--wide{grid-column:auto}
}
html.no-js .tp-bar{position:static}
.cta-line .alt{min-height:44px;display:inline-flex;align-items:center}

/* ---- home-page media rules the tour-page file did not carry ---- */
@media (max-width:600px){.hero-grid{padding-top:96px}.hero h1{font-size:clamp(46px,14vw,58px)}.pick-copy .kv{gap:8px}.choose{grid-template-columns:1fr 1fr}.tile-body h3{font-size:17px}.kind-body dl{gap:6px 12px}.hub-body{padding:16px}}
@media (max-width:360px){.choose{grid-template-columns:1fr}.tile-img{height:64px}}

/* ---- added at build: classes the kit used but never styled ---- */
.fpills--info li>span{background:rgba(27,31,46,.72);border-color:var(--line2)}
.dt-free{display:grid;align-items:center;border-top:1px dashed var(--line2);
  background:rgba(167,191,99,.06)}
.dt-free .cell{font:400 14px/1.4 var(--sans);color:var(--fog)}
.dt-free .t-name a{color:var(--f-beyond);font-weight:600}
.dt-free .price.free{background:none;padding:0;color:var(--f-beyond);font-weight:700}

/* ---- corrections after the visual read-through of 15.09 ---- */
/* the free row sits outside .dt so it is never sorted; give it the same grid */
.dt-free{grid-template-columns:minmax(0,2.2fr) repeat(calc(var(--cols) - 1),minmax(0,1fr)) auto;gap:16px;padding:14px 16px}
/* filter chips wrapper inside .fbar */
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:700px){
  .dt-free{grid-template-columns:1fr;gap:6px}
}
/* family labels are long; inside a table cell they must wrap, not overflow */
.dt .cell .fam,.dt-free .cell .fam{white-space:normal;align-items:flex-start;line-height:1.25}
.dt .cell .fam .dot,.dt-free .cell .fam .dot{flex:none;margin-top:3px}
/* the free row must collapse on the same breakpoints as the table above it */
@media (max-width:1100px){
  .dt-free{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;row-gap:4px}
  .dt-free .cell:nth-child(n+3):not(.num):not(:last-child){display:none}
  .dt-free .cell.num{justify-self:end}
}
/* phone: the action cell was pinned to column 4 by the wide-screen rule, which
   created two implicit columns and squeezed the tour name to a third of the row */
@media (max-width:700px){
  .dt .dt-row summary .cell.t-act{grid-column:2;grid-row:1;align-self:start}
  .dt .dt-row summary .cell.num:not(.t-act){grid-column:2;grid-row:2;justify-self:end}
  .dt .dt-row summary .cell:nth-child(2){grid-column:1;grid-row:2}
  .dt-free{grid-template-columns:1fr auto;gap:6px 12px;row-gap:6px}
  .dt-free .cell:nth-child(n+2):not(.num):not(:last-child){display:none}
  .dt-free .cell.t-act{grid-column:1/-1;justify-self:start;margin-top:6px}
  .dt-free .cell.num{justify-self:end}
}
/* card image pills: the family label collided with the rating on every card */
.tc-img .fam{max-width:calc(100% - 160px);white-space:normal;line-height:1.2;align-items:flex-start}
.tc-img .fam .dot{flex:none;margin-top:2px}
.tc-img .tc-rate{max-width:124px}
/* long meeting-point names must wrap inside a card, not get cut at the edge */
.tc-pills li{white-space:normal;max-width:100%;padding:5px 10px;line-height:1.3;text-align:left}
/* class collision in the kit: the sticky booking bar is .bar, and so is the little
   track inside a rating-distribution row, so the track was being positioned fixed */
.dist-row .bar{position:static;inset:auto;z-index:auto;padding:0;background-image:
  repeating-linear-gradient(135deg,rgba(244,241,234,.1) 0 4px,transparent 4px 8px);
  background-color:transparent;box-shadow:none;transition:none;height:10px;display:block}
.dist-row .bar i{display:block;height:10px;width:var(--w,0%);background:var(--amber);border-radius:999px}
/* home cards carry the source mark instead of a score */
.rvw-top .rvw-src{font-size:12px;color:var(--ash)}
.rvw-top .rvw-src b{color:var(--fog)}
/* review cards are the same size in a row wherever they appear */
.rvw-cards{align-items:stretch}
.rvw-cards>.rvw{height:100%;display:flex;flex-direction:column;gap:12px}
.rvw-cards>.rvw>.rvw-tour{margin-top:auto}

/* ---- tour page, after the redesign ---- */
/* the anchor strip must wrap, not scroll sideways: the reader has to see every
   section at once, on the phone above all (addendum A) */
@media (max-width:760px){
  .tp-anchors .wrap{flex-wrap:wrap;overflow-x:visible;padding-right:var(--pad);
    scroll-snap-type:none;mask-image:none;-webkit-mask-image:none;
    padding-top:4px;padding-bottom:4px;gap:0 2px}
  .tp-anchors a{min-height:40px;padding:0 10px}
  .tp-anchors::after{content:none}
}

/* the alternative-tour card: the price carries grid-row but no grid-column, so
   auto-placement put it in column 1 and pushed the tour name to column 2 */
.alt-tour .price{grid-column:2;justify-self:end}
@media (max-width:560px){
  /* at phone width there is no room for a price column beside a long name */
  .alt-tour{grid-template-columns:1fr}
  .alt-tour .price{grid-column:1;grid-row:auto;justify-self:start;margin-top:6px}
}
@media (max-width:760px){
  /* wrapped chips stay legible, but a three-row strip stuck under the header
     would eat a third of the screen, so on the phone the strip scrolls away
     with the page — the booking bar is what stays under the thumb */
  .tp-anchors{position:static}
  main.cb [id]{scroll-margin-top:80px}
}

/* most tours publish no itinerary; with one column the story block must not
   leave half the row empty */
.story-grid--one{grid-template-columns:minmax(0,1fr)}
.story-grid--one .hl{max-width:900px}

/* two secondary controls sat at 36 px; every tappable thing is 44 px */
.dt-sort button,.dt-sort select,.fbar .clear,.facets .clear{min-height:44px}
.dt-sort button{padding:0 12px}

/* a few products publish no map pin; without the map the block is one column */
.meet-grid--one{grid-template-columns:minmax(0,1fr)}
.meet-grid--one .meet-l{max-width:820px}

/* the review grid is four wide; with fewer reviews the cards spread instead of
   leaving the right-hand half of the row empty */
.rv-grid--1{grid-template-columns:minmax(0,1fr)}
.rv-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rv-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.rv-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* an odd number of facts leaves an orphan cell in the two-column phone strip */
@media (max-width:760px){
  .strip-in>div:last-child:nth-child(odd){grid-column:1/-1;border-left:0}
}
@media (max-width:900px) and (min-width:761px){
  .strip-in>div:last-child:nth-child(3n+1){grid-column:span 3}
  .strip-in>div:last-child:nth-child(3n+2){grid-column:span 2}
}

/* ---- theme hubs: the few pieces the tour page did not already need ---- */
/* three cards abreast rather than the tour page's two */
.rel--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.rel--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.rel--3{grid-template-columns:minmax(0,1fr)}}
.rel-card .label{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--amber)}
/* meeting points grouped by address: the walk names wrap under each one */
.kv--meet div{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:start;
  padding:14px 0;border-top:1px solid var(--line)}
.kv--meet dt{color:var(--bone);font:400 18px/1.25 var(--serif)}
.kv--meet dd{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;
  font-size:15px;color:var(--ash)}
.kv--meet dd a{color:var(--bone);text-decoration:none;border-bottom:1px solid var(--line2);
  padding-top:4px;padding-bottom:4px}
.kv--meet dd a:hover{color:var(--amber);border-color:var(--amber)}
@media (max-width:700px){.kv--meet div{grid-template-columns:minmax(0,1fr);gap:6px}}
/* a hub review card names the walk it came from */
.rv-on{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-top:2px;
  padding-top:12px;border-top:1px solid var(--line);font-size:14px}
.rv-on span{color:var(--ash)}
.rv-on a{color:var(--bone);text-decoration:none;border-bottom:1px solid var(--line2)}
.rv-on a:hover{color:var(--amber);border-color:var(--amber)}
.rv{display:flex;flex-direction:column}
.rv .rv-on{margin-top:auto}
.qa-wrap{max-width:900px}

/* the free row's verdict cell had no min-width, so a long verdict ran under the
   button in the action cell */
.dt-free>.cell{min-width:0;overflow-wrap:anywhere}
.dt-free .cell.verdict{white-space:normal;line-height:1.35}
.dt-free .cell.t-act{justify-self:end}

/* ---- place pages ---- */
/* the visiting card in the hero is a definition list rather than a price block */
.kv--visit{gap:0}
.kv--visit div{grid-template-columns:minmax(0,96px) minmax(0,1fr);gap:12px;
  padding:10px 0;border-top:1px solid var(--line)}
.kv--visit div:first-child{border-top:0}
.kv--visit dd{font-size:14px;line-height:1.4}
.s-story .tb-body p+p{margin-top:16px}
.s-meet .meet-l h3{font-size:20px}
.s-meet .meet-l .out,.s-meet .meet-l .in{margin-top:12px}

/* ---- service pages: one narrow column, nothing else ---- */
.svc .cb-sec{padding-top:56px}
.svc h1{font-size:clamp(34px,4.6vw,62px);line-height:1.02;margin-bottom:18px}
.svc-lede{max-width:60ch;margin-bottom:12px}
.svc-block{margin-top:44px;max-width:760px}
.svc-block .key{margin-bottom:14px}
.svc-block .tb-body p+p{margin-top:14px}

/* the partner's calendar now mounts for real; the slot is a plain frame around
   whatever their script renders, and it must not inherit the placeholder's
   dashed look or its centred text */
.widget-slot.is-live{display:block;border-style:solid;border-color:var(--line);
  background:var(--card);padding:14px;text-align:left;place-items:stretch}
.widget-slot.is-live>div{min-height:120px}
.widget-slot.is-live .fine{margin-top:12px;color:var(--ash);text-align:left}

/* the theme cards carry a line of description between the name and the count */
.rel-hub .hub-desc{color:var(--fog);font:400 14px/1.45 var(--sans);display:block}

/* class collision, same family as the .bar one: the redesign introduced .verdict
   as an amber pill for the hero card, and the comparison table had been using
   .verdict for its verdict column since the kit. The pill's padding, background
   and white-space:nowrap were clipping every verdict in the table. */
.dt .cell.verdict,.dt-free .cell.verdict{display:block;padding:0;border:0;
  border-radius:0;background:none;white-space:normal;line-height:1.35;
  font:500 14px/1.35 var(--sans);color:var(--bone)}
.tbl .cell.verdict,.tbl td.verdict{white-space:normal}

/* inside a facts card there is no room for a 220 px label column beside the
   list, so the meeting-point list stacks instead of squeezing to one word a line */
.fc .kv--meet div{grid-template-columns:minmax(0,1fr);gap:8px;padding:0;border-top:0}
.fc .kv--meet dt{font:500 11px/1.3 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ash)}
.fc .kv--meet dd{gap:6px 14px}

/* the six theme tiles carry the hub's own query, so the name is a heading and
   not bold text; it keeps the weight the designer gave it */
.rel-hub h3{font:400 22px/1.15 var(--serif);margin:0}
/* a review count set in <small> inside a 10px pill fell to 8.33px — the number
   that qualifies the star beside it was the smallest type on the page */
.pill small{font-size:inherit}
.pill,.badge{font-size:11px}
/* the review count beside a table rating: present, quieter than the score, and
   never smaller than the rest of the row */
.rating .rct{color:var(--fog);font-weight:500}

/* the menu and footer column labels stopped being <h4>: they are furniture, and
   as headings they made every page's outline start at h4 and put an h4 after
   the body's h2s. Same type, no structural claim. */
.dd-col p.col-h{margin:8px 10px 10px;font:500 10px/1 var(--sans);letter-spacing:.18em;
  text-transform:uppercase;color:var(--ash)}
.menu-scroll p.col-h{margin:14px 12px 8px;font:500 10px/1 var(--sans);letter-spacing:.18em;
  text-transform:uppercase;color:var(--ash)}
.foot p.col-h{margin:0 0 14px;font:500 11px/1 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ash)}
.facet p.col-h{margin:0 0 4px;font:600 11px/1 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ash)}

/* No type under 11px anywhere. The uppercase micro-labels — "PER PERSON", the
   wordmark strapline, the menu and footer column heads — were set at 10px, which
   is under the floor the layout audit holds everything else to. Letter-spacing
   keeps them reading as labels at 11. */
.brand-text small,.price small,.dd-col p.col-h,.menu-scroll p.col-h,
.foot p.col-h,.facet p.col-h{font-size:11px}


/* Walks that leave from the same address, under the meeting point. Named, with
   the same line of facts the tables use, so the reader can choose without
   going back to a table — and so no tour page lives on links from tables alone. */
.meet-same{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.meet-same-h{margin:0 0 10px;font:500 11px/1.3 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ash)}
.mp-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mp-list li{display:grid;gap:2px}
.mp-list a{color:var(--bone);text-decoration:none;font:400 17px/1.25 var(--serif)}
.mp-list a:hover{color:var(--amber)}
.mp-list span{color:var(--fog2);font:400 17px/1.25 var(--serif)}
.mp-list small{color:var(--ash);font:400 12.5px/1.35 var(--sans)}


/* ---- on-this-page strip: sticky at every width -------------------------- */
/* The strip was sticky on the desktop and scrolled away on the phone, where the
   pages are longest and hardest to move around in. The reason it was unstuck is
   that the chips wrapped into three rows and ate a third of the screen — so the
   fix is the row, not the stickiness: one row that scrolls sideways, the way the
   other sites in the portfolio carry it. `top` is the measured header height. */
.tp-anchors{top:var(--hdr,76px)}

/* Up to 900px, not 760: between the two the strip wrapped to two rows and,
   being sticky, held 160px of chrome above every section on a tablet. */
@media(max-width:900px){
  .tp-anchors{position:sticky;top:var(--hdr,64px);z-index:30;margin-top:0;
    background:rgba(12,14,21,.94);backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .tp-anchors .wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch;gap:0;padding-right:46px;
    mask-image:linear-gradient(90deg,#000 calc(100% - 54px),transparent);
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 54px),transparent)}
  .tp-anchors .wrap::-webkit-scrollbar{display:none}
  .tp-anchors a{flex:none;min-height:44px;padding:0 11px;font-size:13px;
    white-space:nowrap}
  .tp-anchors::after{content:"›";position:absolute;right:12px;top:50%;
    transform:translateY(-50%);color:var(--amber);font-size:20px;line-height:1;
    pointer-events:none;transition:opacity .2s}
  .tp-anchors.at-end::after{opacity:0}
}

/* A target under two sticky layers has to clear both of them. */
main.cb [id]{scroll-margin-top:calc(var(--hdr,72px) + 60px)}

/* ---- back to top -------------------------------------------------------- */
/* On a page with no booking bar the lantern sat 104px off the floor, hanging in
   the middle of nothing. */
.totop--low{bottom:24px}
@media(max-width:900px){
  .totop{bottom:calc(92px + env(safe-area-inset-bottom))}
  .totop--low{bottom:calc(20px + env(safe-area-inset-bottom))}
}
/* Above the booking bar, which is z-index 40. */
.totop{z-index:50}


/* ---- mobile section order belongs to the tour page only ----------------- */
/* `main.cb{display:flex}` plus `.s-*{order:N}` came from the tour-page design,
   where every section carries an `.s-` class. On the home page, the hubs, the
   catalogue and the place pages most sections carry none, so they defaulted to
   order 0 and jumped ahead of the two that do: the at-a-glance strip and the
   on-this-page nav ended up at the very bottom of the phone layout — on the home
   page at 14 126 px, past everything. Outside the tour page the sections stay in
   the order they were written in. */
@media(max-width:760px){
  main.cb:not(.cb-tp) > *{order:0}
  main.cb:not(.cb-tp) > .tp-bar{order:99}
}

/* Both floating pieces sat at .90–.94 over the body text, and the sentence
   underneath read straight through them. Opaque enough to be chrome. */
.tp-anchors{background:rgba(9,11,17,.985)}
.totop{background:rgba(21,24,36,.98)}

/* The header keeps its glass over the hero (.72) but stops being see-through
   once it is stuck over body text: the sentence under it was legible at .94. */
.top.is-stuck{background:rgba(12,14,21,.985)}

/* ---- the empty band under the footer ------------------------------------ */
/* `body{padding-bottom:100px}` reserved room for a booking bar that is fixed to
   the viewport. This site's bar is `position:sticky` inside <main>, so it already
   takes its own space in the flow, and the 100px was left over: a strip of the
   body background below the footer's gradient, on every page. */
body{padding-bottom:0}

/* The partner's own fallback line inside the widget block. Their script replaces
   it the moment it boots, so this is only ever seen without JS or when their
   script fails — and then it should look deliberate rather than like debris. */
[data-gyg-widget] > span{display:block;padding:14px 0;color:var(--ash);
  font:400 13px/1.4 var(--sans)}
[data-gyg-widget] > span a{color:var(--fog)}
