/* =========================================================
   SHADES OF UDAIPUR — 2026
   Layout: 1200px column, 8px spacing scale, aligned grids (no edge-bleed),
   photographic hero over a left-weighted scrim, one deep-indigo night band.
   Type: Plus Jakarta Sans throughout (self-hosted), Mukta for Hindi.
   Colour: the logo's lake gradient, used on actions and one accent line.
   ========================================================= */
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-ext-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-ext-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jakarta";src:url(../fonts/plus-jakarta-sans-latin-ext-800-normal.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Mukta";src:url(../fonts/mukta-devanagari-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"Mukta";src:url(../fonts/mukta-devanagari-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}

:root{
  --ink:#100D2E;--ink-2:#1B1745;--ink-3:#2A2560;
  --text:#14122A;--body:#3B3955;--muted:#6A6785;
  --line:#E6E5EF;--paper:#F5F6FA;--white:#FFFFFF;
  --cyan:#13C4E3;--blue:#2F6BF0;--violet:#7C3AED;--magenta:#E4187E;
  --grad:linear-gradient(100deg,#13C4E3 0%,#2F6BF0 34%,#8A3BE0 66%,#E4187E 100%);
  --ok:#0E9F6E;
  --font:"Jakarta","Mukta",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --hindi:"Mukta","Jakarta",sans-serif;
  --wrap:1200px;--gut:24px;
  --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;
  --r-lg:20px;--r:14px;--r-sm:10px;
  --shadow:0 12px 32px -16px rgba(16,13,46,.35);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--body);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,h4{margin:0;color:var(--text);font-weight:700;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
ul{margin:0}
:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;border-radius:8px}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gut));margin-inline:auto;padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hi{font-family:var(--hindi)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- buttons, chips, tags ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);height:48px;padding:0 22px;border-radius:999px;font-weight:600;font-size:.95rem;line-height:1;white-space:nowrap;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn-grad{background:var(--grad);color:#fff;box-shadow:0 8px 22px -10px rgba(124,58,237,.65)}
.btn-grad:hover{transform:translateY(-1px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--ink-3)}
.btn-white{background:#fff;color:var(--ink)}
.btn-line{border:1.5px solid var(--line);background:#fff;color:var(--text)}
.btn-line:hover{border-color:var(--text)}
.btn-glass{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.btn-glass:hover{background:rgba(255,255,255,.2)}
.btn.sm{height:40px;padding:0 16px;font-size:.88rem}
.link{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.94rem;color:var(--text);white-space:nowrap}
.link svg{width:16px;height:16px;transition:transform .2s}
.link:hover{color:var(--violet)}
.link:hover svg{transform:translateX(3px)}
.chips{display:flex;gap:var(--s1);flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.9rem;font-weight:500;color:var(--text);white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.chip:hover{border-color:#C8C5DA}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;line-height:1.2;padding:6px 10px;border-radius:999px;background:var(--paper);color:var(--body);max-width:100%}
.tag svg{width:14px;height:14px;flex:none}
.tag.dark{background:rgba(16,13,46,.72);color:#fff}
.tag.light{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.22)}
.save{width:38px;height:38px;border-radius:999px;background:#fff;display:grid;place-items:center;color:var(--magenta);box-shadow:0 2px 10px rgba(16,13,46,.18);flex:none;transition:transform .15s}
.save:hover{transform:scale(1.06)}
.save svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.save.on svg{fill:currentColor}

/* ---------- header ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line);transition:background .3s,border-color .3s,color .3s}
.hdr .wrap{display:flex;align-items:center;gap:var(--s3);height:72px}
.logo{display:flex;align-items:center;flex:none}
.logo img{height:44px;width:auto}
.logo .lw{display:none}
.nav{display:flex;gap:2px}
.nav a{padding:8px 12px;border-radius:999px;font-weight:500;font-size:.92rem;color:var(--text);white-space:nowrap;transition:background .2s,color .2s}
.nav a:hover{background:rgba(16,13,46,.06)}
.nav a[aria-current]{color:var(--violet);font-weight:600}
.hdr-tools{margin-left:auto;display:flex;align-items:center;gap:var(--s1)}
.icon-btn{position:relative;width:42px;height:42px;border-radius:999px;display:grid;place-items:center;color:var(--text);transition:background .2s}
.icon-btn:hover{background:rgba(16,13,46,.07)}
.icon-btn svg{width:20px;height:20px}
.icon-btn .count{position:absolute;top:3px;right:1px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--magenta);color:#fff;font-size:.68rem;font-weight:700;line-height:18px;text-align:center}
.burger{display:none}
.hdr.over{background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.hdr.over .logo .lc{display:none}
.hdr.over .logo .lw{display:block}
.hdr.over .nav a,.hdr.over .icon-btn{color:#fff}
.hdr.over .nav a:hover,.hdr.over .icon-btn:hover{background:rgba(255,255,255,.14)}
.home .hdr{position:fixed;left:0;right:0}

.drawer{position:fixed;inset:0;z-index:90;background:rgba(16,13,46,.55);opacity:0;pointer-events:none;transition:opacity .25s}
.drawer.open{opacity:1;pointer-events:auto}
.drawer-panel{position:absolute;inset:0 0 0 auto;width:min(360px,88vw);background:#fff;padding:calc(16px + env(safe-area-inset-top,0px)) calc(20px + env(safe-area-inset-right,0px)) 24px 24px;overflow-y:auto;transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:var(--s2)}
.drawer.open .drawer-panel{transform:none}
.drawer-panel .top{display:flex;justify-content:space-between;align-items:center}
.drawer-panel .top img{height:38px}
.drawer-panel nav{display:flex;flex-direction:column}
.drawer-panel nav a{font-size:1.2rem;font-weight:700;color:var(--text);padding:10px 0;border-bottom:1px solid var(--line)}
.drawer-panel .sub{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-weight:500;font-size:.92rem}
.drawer-panel .sub a{padding:6px 0;color:var(--muted)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,880px);color:#fff;display:flex;flex-direction:column;background:var(--ink);overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
.hero-media img.on{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,13,46,.88) 0%,rgba(16,13,46,.62) 38%,rgba(16,13,46,.12) 70%,rgba(16,13,46,0) 100%),linear-gradient(180deg,rgba(16,13,46,.55) 0%,rgba(16,13,46,0) 22%,rgba(16,13,46,0) 62%,rgba(16,13,46,.9) 100%)}
.hero-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding-top:calc(72px + var(--s6));padding-bottom:var(--s5)}
.hero-in{max-width:600px}
.greet{font-family:var(--hindi);font-size:1.05rem;color:rgba(255,255,255,.85);display:flex;align-items:center;gap:12px}
.greet::before{content:"";width:28px;height:3px;border-radius:3px;background:var(--grad)}
.hero h1{color:#fff;font-size:clamp(2.5rem,5.4vw,4.4rem);line-height:1.04;letter-spacing:-.035em;font-weight:800;margin-top:var(--s2)}
.hero h1 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-size:1.08rem;line-height:1.6;color:rgba(255,255,255,.82);margin-top:var(--s2);max-width:520px}
.hero-search{margin-top:var(--s4);display:flex;align-items:center;gap:12px;background:#fff;color:var(--muted);border-radius:999px;padding:6px 6px 6px 20px;box-shadow:0 24px 50px -24px rgba(0,0,0,.6);cursor:text;max-width:560px}
.hero-search svg{width:20px;height:20px;flex:none}
.hero-search span{flex:1;min-width:0;font-size:.98rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.hero-quick{display:flex;gap:var(--s1);flex-wrap:wrap;margin-top:var(--s2)}
.hero-quick a{font-size:.85rem;font-weight:500;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);color:#fff}
.hero-quick a:hover{background:rgba(255,255,255,.22)}
.nowbar{border-top:1px solid rgba(255,255,255,.14);background:rgba(16,13,46,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.nowbar .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.now-item{padding:var(--s3) var(--s3) var(--s3) 0;display:flex;flex-direction:column;gap:2px;min-width:0}
.now-item + .now-item{padding-left:var(--s3);border-left:1px solid rgba(255,255,255,.12)}
.now-item small{font-size:.76rem;font-weight:500;color:rgba(255,255,255,.6)}
.now-item b{font-size:1.3rem;font-weight:700;color:#fff;line-height:1.3;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.now-item span{font-size:.82rem;color:rgba(255,255,255,.72);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-credit{font-size:.72rem;color:rgba(255,255,255,.55);margin-top:var(--s3)}

/* ---------- sections ---------- */
.sec{padding-block:var(--s7)}
.sec.tight{padding-block:var(--s6)}
.sec.paper{background:var(--paper)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5)}
.sec-head > div{min-width:0;max-width:640px}
.sec-head h2{font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.15}
.sec-head p{color:var(--muted);margin-top:12px;font-size:1.02rem}
.sec-head .link{flex:none;margin-bottom:6px}
.night .sec-head h2{color:#fff}
.night .sec-head p{color:rgba(255,255,255,.66)}

/* grids */
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5) var(--s3)}
.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}

/* cards */
.card{display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.card-media{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--paper)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-media img{transform:scale(1.04)}
.card-media .save{position:absolute;top:12px;right:12px;z-index:2}
.card-media .tag{position:absolute;left:12px;top:12px;z-index:2}
.card-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.card h3{font-size:1.08rem;line-height:1.35;letter-spacing:-.01em}
.card h3 a:hover{color:var(--violet)}
.card p{color:var(--muted);font-size:.92rem;line-height:1.55}
.card .facts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.card .link{margin-top:auto;align-self:flex-start}

/* must-see bento */
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:280px 280px;gap:var(--s3)}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--ink-2);color:#fff;isolation:isolate;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s3)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,13,46,0) 35%,rgba(16,13,46,.88) 100%)}
.tile:hover img{transform:scale(1.04)}
.tile .save{position:absolute;top:16px;right:16px}
.tile h3{color:#fff;font-size:1.35rem;line-height:1.25;padding-right:var(--s1)}
.tile .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.tile.big{grid-row:span 2}
.tile.big h3{font-size:1.9rem}

/* hour by hour */
.night{background:var(--ink);color:#fff}
.hours{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s3)}
.hour{display:flex;flex-direction:column;gap:12px;min-width:0}
.hour .ph{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--ink-2)}
.hour .ph img{width:100%;height:100%;object-fit:cover}
.hour .ph .tag{position:absolute;left:10px;top:10px}
.hour .when{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:rgba(255,255,255,.62);font-variant-numeric:tabular-nums;padding-top:12px;border-top:2px solid rgba(255,255,255,.14)}
.hour.now .when{border-top-color:transparent;border-image:var(--grad) 1;color:#fff}
.hour h3{color:#fff;font-size:1.05rem;line-height:1.35}
.hour p{color:rgba(255,255,255,.7);font-size:.88rem;line-height:1.55}
.hour .go{margin-top:auto;font-size:.86rem;font-weight:600;color:#fff;display:inline-flex;align-items:center;gap:6px}
.hour .go svg{width:15px;height:15px}
.nowpill{background:#fff;color:var(--ink);font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px}

/* trips */
.trips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.trip{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;color:#fff;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:var(--s3)}
.trip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s}
.trip::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,13,46,.55) 0%,rgba(16,13,46,.05) 38%,rgba(16,13,46,.88) 100%)}
.trip:hover img{transform:scale(1.04)}
.trip .d{display:flex;align-items:baseline;gap:6px;font-weight:800;font-size:3rem;line-height:1;letter-spacing:-.04em}
.trip .d small{font-size:1rem;font-weight:600;letter-spacing:0;opacity:.85}
.trip h3{color:#fff;font-size:1.1rem}
.trip p{font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.82);margin-top:4px}

/* essentials */
.season{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-bottom:var(--s3)}
.season > div{border-radius:var(--r-lg);padding:var(--s3);color:#fff;display:flex;flex-direction:column;gap:6px;min-width:0}
.season .s1{background:linear-gradient(135deg,#2F6BF0,#13C4E3)}
.season .s2{background:linear-gradient(135deg,#E4187E,#F2994A)}
.season .s3{background:linear-gradient(135deg,#1B1745,#7C3AED)}
.season .top{display:flex;justify-content:space-between;align-items:center;gap:var(--s1)}
.season small{font-size:.82rem;font-weight:600;opacity:.9}
.season h3{color:#fff;font-size:1.3rem}
.season p{font-size:.92rem;line-height:1.55;opacity:.92}
.season .badge{background:rgba(255,255,255,.22);font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.ess{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.ess-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.ess-card .hd{display:flex;align-items:center;gap:12px}
.ess-card .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#F1ECFE;color:var(--violet);flex:none}
.ess-card .ic svg{width:21px;height:21px}
.ess-card h3{font-size:1.05rem}
.ess-card ul{padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:.92rem;line-height:1.55}
.ess-card li{position:relative;padding-left:16px}
.ess-card li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.ess-card b{color:var(--text);font-weight:600}

/* table */
.table-wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:620px}
th,td{text-align:left;padding:14px 20px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--muted);font-size:.8rem;background:var(--paper)}
tr:last-child td{border-bottom:0}
td:first-child{font-weight:600;color:var(--text)}
td.num{font-variant-numeric:tabular-nums}
.note{font-size:.84rem;color:var(--muted);margin-top:12px}

/* food */
.dishes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.dish-ph{display:grid;grid-template-columns:3fr 2fr;gap:var(--s2)}
.dish-ph > div{border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.dish-ph > div:first-child{grid-row:span 2;aspect-ratio:3/4}
.dish-ph img{width:100%;height:100%;object-fit:cover}
.dish-list{display:flex;flex-direction:column}
.dish{padding:var(--s2) 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.dish:first-child{padding-top:0}
.dish .row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);flex-wrap:wrap}
.dish h3{font-size:1.08rem}
.dish h3 .hi{font-weight:400;font-size:.95rem;color:var(--muted);margin-left:8px;letter-spacing:0}
.dish .where{font-size:.78rem;font-weight:600;color:var(--violet);white-space:nowrap}
.dish p{color:var(--muted);font-size:.92rem;line-height:1.55}

/* feature spot */
.spot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--r-lg);overflow:hidden;background:var(--ink);color:#fff}
.spot .ph{position:relative;min-height:340px;background:var(--ink-2)}
.spot .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.spot .in{padding:var(--s5);display:flex;flex-direction:column;justify-content:center;gap:var(--s2);min-width:0}
.spot small{color:#7FD8EE;font-weight:600;font-size:.85rem}
.spot h3{color:#fff;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.15}
.spot p{color:rgba(255,255,255,.75)}
.spot .btn{align-self:flex-start;margin-top:var(--s1)}

/* festivals */
.fests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s6)}
.fest{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s2);padding:var(--s3) 0;border-bottom:1px solid var(--line);align-items:start}
.fest .dt{border-radius:12px;background:#fff;border:1px solid var(--line);text-align:center;padding:10px 4px;line-height:1.15}
.fest .dt b{display:block;font-size:1.5rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.fest .dt span{font-size:.72rem;font-weight:600;color:var(--muted)}
.fest.next .dt{background:var(--grad);border-color:transparent}
.fest.next .dt b,.fest.next .dt span{color:#fff}
.fest h3{font-size:1.02rem;line-height:1.4}
.fest h3 small{font-weight:500;color:var(--muted);font-size:.86rem}
.fest p{color:var(--muted);font-size:.9rem;margin-top:4px;line-height:1.55}
.fest .where{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--violet);font-weight:600;margin-top:8px}
.fest .where svg{width:14px;height:14px}

/* stories */
.stories{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s4);align-items:stretch}
.story-big{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:460px;color:#fff;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s4);background:var(--ink-2)}
.story-big img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.story-big::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,13,46,0) 45%,rgba(16,13,46,.85) 100%)}
.story-big .tag{align-self:flex-start}
.story-big h3{color:#fff;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.2;margin-top:12px}
.story-big p{color:rgba(255,255,255,.8);margin-top:10px;font-size:.95rem}
.story-list{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s2)}
.story-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--s2);align-items:center}
.story-row .ph{aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--line)}
.story-row .ph img{width:100%;height:100%;object-fit:cover}
.story-row small{display:block;color:var(--muted);font-size:.78rem;font-weight:500;margin-bottom:4px}
.story-row h3{font-size:1rem;line-height:1.4}
.story-row:hover h3{color:var(--violet)}

/* reviews */
.revs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.rev{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:var(--s3);min-width:0}
.rev q{quotes:none;color:var(--text);font-size:.96rem;line-height:1.6}
.rev .who{display:flex;gap:12px;align-items:center;margin-top:auto}
.rev .av{width:40px;height:40px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.rev .who b{display:block;font-size:.9rem;color:var(--text)}
.rev .who span{font-size:.8rem;color:var(--muted)}

/* CTA band */
.band{border-radius:24px;overflow:hidden;background:var(--grad);color:#fff;padding:var(--s6) var(--s5);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s5);align-items:center}
.band h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.12}
.band p{color:rgba(255,255,255,.9);margin-top:var(--s2);max-width:460px}
.band .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--s4)}
.band .stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.band .stat{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:var(--r);padding:var(--s2) 20px;min-width:0}
.band .stat b{display:block;font-size:1.8rem;font-weight:800;line-height:1.2;letter-spacing:-.03em}
.band .stat span{font-size:.84rem;opacity:.92}

/* ---------- inner page head ---------- */
.phead{position:relative;color:#fff;background:var(--ink);isolation:isolate;overflow:hidden}
.phead img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.phead::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,13,46,.9) 0%,rgba(16,13,46,.6) 55%,rgba(16,13,46,.3) 100%)}
.phead .wrap{padding-top:var(--s6);padding-bottom:var(--s6)}
.phead .in{max-width:720px}
.phead h1{color:#fff;font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.1;letter-spacing:-.03em;font-weight:800}
.phead p{color:rgba(255,255,255,.82);font-size:1.05rem;margin-top:var(--s2)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:.84rem;color:rgba(255,255,255,.7);margin-bottom:var(--s2)}
.crumbs a:hover{color:#fff}
.phead .facts{display:flex;gap:var(--s1);flex-wrap:wrap;margin-top:var(--s3)}
.phead .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:var(--s3)}
.filters{background:#fff;border-bottom:1px solid var(--line)}
.filters .wrap{padding-block:var(--s2)}

/* detail */
.detail{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s6);align-items:start}
.prose{font-size:1.02rem;line-height:1.75;color:var(--body);display:flex;flex-direction:column;gap:var(--s2);max-width:680px}
.prose .lead{font-size:1.15rem;color:var(--text);line-height:1.7}
.prose h2{font-size:1.4rem;margin-top:var(--s2)}
.prose ul{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.prose .credit{font-size:.82rem;color:var(--muted)}
.aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:var(--s2)}
.box{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);background:#fff}
.box h3{font-size:1rem;margin-bottom:var(--s2)}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 16px;font-size:.9rem;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;color:var(--text)}
.box.ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.box.ink h3{color:#fff}
.box.ink p{color:rgba(255,255,255,.75);font-size:.92rem;margin-bottom:var(--s2)}
.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin-bottom:var(--s5)}
.photos button{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--paper)}
.photos img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.photos button:hover img{transform:scale(1.04)}

/* itinerary */
.day-tabs{display:flex;gap:var(--s1);flex-wrap:wrap;margin-bottom:var(--s3)}
.tl{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.tl-step{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.tl-step .t{font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem;color:var(--violet);padding-top:2px}
.tl-step h3{font-size:1.15rem}
.tl-step ul{margin-top:10px;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:.96rem}
.tl-step .rec{display:inline-flex;margin-top:12px}

/* forms & panes */
.two{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.pane{background:var(--paper);border-radius:var(--r-lg);padding:var(--s4)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.form .full{grid-column:1/-1}
.form label{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:600;color:var(--text);min-width:0}
.form input,.form select,.form textarea{font-weight:400;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;width:100%;font-size:.98rem;transition:border-color .2s}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--violet)}
.form .btn{justify-self:start;margin-top:var(--s1)}
.form-done{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:var(--s2);display:flex;flex-direction:column;gap:12px;font-size:.92rem}
.form-done pre{white-space:pre-wrap;font-family:var(--font);margin:0;font-size:.88rem;background:var(--paper);border-radius:10px;padding:12px}
.contact-list{display:flex;flex-direction:column;gap:var(--s3)}
.contact-list .it{display:flex;gap:var(--s2);align-items:flex-start}
.contact-list .ic{width:44px;height:44px;border-radius:12px;background:var(--grad);color:#fff;display:grid;place-items:center;flex:none}
.contact-list .ic svg{width:21px;height:21px}
.contact-list h3{font-size:1rem}
.contact-list p{color:var(--muted);font-size:.92rem;margin-top:2px}
.offer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.offer.o3{grid-template-columns:repeat(3,minmax(0,1fr))}
.offer > div{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:8px;min-width:0}
.offer h3{font-size:1.02rem}
.offer p{color:var(--muted);font-size:.92rem;line-height:1.55}
.offer .k{font-size:.78rem;font-weight:700;color:var(--violet)}
.masonry{columns:3 280px;column-gap:var(--s2)}
.masonry button{display:block;width:100%;margin-bottom:var(--s2);border-radius:var(--r);overflow:hidden;break-inside:avoid;position:relative;background:var(--paper)}
.masonry img{width:100%}
.masonry figcaption{position:absolute;inset:auto 0 0 0;padding:28px 12px 10px;font-size:.78rem;color:#fff;text-align:left;background:linear-gradient(180deg,transparent,rgba(16,13,46,.75))}
.empty{border:1.5px dashed var(--line);border-radius:var(--r-lg);padding:var(--s5) var(--s3);text-align:center;display:flex;flex-direction:column;gap:var(--s2);align-items:center}
.empty h3{font-size:1.4rem}
.empty p{color:var(--muted);max-width:460px}

/* search */
.search{position:fixed;inset:0;z-index:100;background:rgba(16,13,46,.6);display:none;align-items:flex-start;justify-content:center;padding:calc(10vh + env(safe-area-inset-top,0px)) 16px 16px}
.search.open{display:flex}
.search-box{width:min(680px,100%);background:#fff;border-radius:20px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);overflow:hidden;display:flex;flex-direction:column;max-height:76vh}
.search-in{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.search-in svg{width:20px;height:20px;color:var(--muted);flex:none}
.search-in input{flex:1;border:0;outline:0;font-size:1.05rem;background:transparent;min-width:0}
.search-in button{font-size:.78rem;border:1px solid var(--line);border-radius:8px;padding:4px 8px;color:var(--muted)}
.search-res{overflow-y:auto;padding:var(--s1)}
.search-res h4{font-size:.76rem;font-weight:600;color:var(--muted);padding:12px 12px 6px;letter-spacing:0}
.res{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:var(--s2);align-items:center;padding:8px 12px;border-radius:12px}
.res:hover{background:var(--paper)}
.res .ph{width:52px;height:52px;border-radius:10px;overflow:hidden;background:var(--line)}
.res .ph img{width:100%;height:100%;object-fit:cover}
.res b{display:block;font-weight:600;font-size:.95rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.res .sub{display:block;font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.res em{font-style:normal;font-size:.74rem;font-weight:600;color:var(--violet)}
.search-empty{padding:var(--s4);text-align:center;color:var(--muted)}

/* lightbox, toast */
.lb{position:fixed;inset:0;z-index:110;background:rgba(10,8,30,.94);display:none;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top,0px)) 72px calc(20px + env(safe-area-inset-bottom,0px))}
.lb.open{display:flex}
.lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}
.lb img{max-height:80vh;max-width:100%;border-radius:12px;object-fit:contain}
.lb figcaption{color:rgba(255,255,255,.7);font-size:.82rem;text-align:center}
.lb button{position:absolute;color:#fff;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.12);font-size:1.5rem;display:grid;place-items:center}
.lb .x{top:calc(16px + env(safe-area-inset-top,0px));right:calc(16px + env(safe-area-inset-right,0px))}
.lb .p{left:calc(12px + env(safe-area-inset-left,0px));top:calc(50% - 23px)}
.lb .n{right:calc(12px + env(safe-area-inset-right,0px));top:calc(50% - 23px)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;font-size:.9rem;opacity:0;transition:.25s;z-index:120;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* footer */
.ftr{background:var(--ink);color:rgba(255,255,255,.75)}
.ftr-top .wrap{padding-block:var(--s7) var(--s6);display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:var(--s5)}
.ftr .brand img{height:48px;width:auto}
.ftr .brand p{margin-top:var(--s2);max-width:340px;font-size:.94rem}
.ftr .brand .btn{margin-top:var(--s3)}
.ftr h4{font-size:.85rem;font-weight:600;color:#fff;margin-bottom:var(--s2);letter-spacing:0}
.ftr ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px;font-size:.92rem}
.ftr ul a:hover{color:#fff}
.ftr-bot{border-top:1px solid rgba(255,255,255,.1)}
.ftr-bot .wrap{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;padding-block:var(--s3) calc(var(--s3) + env(safe-area-inset-bottom,0px));font-size:.82rem;color:rgba(255,255,255,.55)}
.socials{display:flex;gap:var(--s1)}
.socials a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:#fff}
.socials a:hover{background:rgba(255,255,255,.1)}
.socials svg{width:17px;height:17px}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav a{padding:8px 9px;font-size:.88rem}
  .hdr .cta{display:none}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hours{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s5)}
  .hour .ph{aspect-ratio:16/10}
  .revs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .offer{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  :root{--s7:72px;--s6:48px}
  .nav{display:none}
  .burger{display:grid}
  .hdr .wrap{height:64px}
  .logo img{height:40px}
  .hero-body{padding-top:calc(64px + var(--s5))}
  .nowbar .wrap{grid-template-columns:1fr 1fr}
  .now-item:nth-child(3){padding-left:0;border-left:0}
  .now-item:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
  .bento{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:260px}
  .tile.big{grid-column:1/-1;grid-row:auto}
  .grid,.grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .season,.ess,.offer.o3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .season > div:last-child{grid-column:1/-1}
  .dishes,.spot,.stories,.band,.detail,.two{grid-template-columns:minmax(0,1fr)}
  .dishes,.detail,.two{gap:var(--s5)}
  .aside{position:static}
  .fests{grid-template-columns:minmax(0,1fr)}
  .ftr-top .wrap{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ftr .brand{grid-column:1/-1}
  .band{padding:var(--s5) var(--s4)}
}
@media (max-width:640px){
  :root{--gut:18px;--s7:64px;--s6:40px;--s5:32px}
  .hero{min-height:auto}
  .hero::before{background:linear-gradient(180deg,rgba(16,13,46,.7) 0%,rgba(16,13,46,.55) 45%,rgba(16,13,46,.92) 100%)}
  .hero-body{padding-top:calc(64px + var(--s5));padding-bottom:var(--s4)}
  .hero-search{padding-left:16px}
  .hero-search .btn{display:none}
  .now-item{padding:var(--s2) var(--s2) var(--s2) 0}
  .now-item + .now-item{padding-left:var(--s2)}
  .now-item:nth-child(3){padding-left:0;border-left:0}
  .now-item b{font-size:1.1rem}
  .sec-head{flex-direction:column;align-items:flex-start;gap:var(--s2)}
  .sec-head .link{margin-bottom:0}
  .bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:240px;gap:var(--s2)}
  .tile.big h3{font-size:1.5rem}
  .grid,.grid.g3{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .hours{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4) var(--s2)}
  .hour .ph{aspect-ratio:1}
  .trips{gap:12px}
  .trip{padding:var(--s2)}
  .trip .d{font-size:2.4rem}
  .trip p{display:none}
  .season,.ess,.offer,.offer.o3,.revs{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
  .season > div:last-child{grid-column:auto}
  .dish-ph{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .dish-ph > div:first-child{grid-row:auto;grid-column:1/-1;aspect-ratio:4/3}
  .dish-ph > div{aspect-ratio:1}
  .spot .ph{min-height:240px}
  .spot .in{padding:var(--s4) var(--s3)}
  .story-big{min-height:360px;padding:var(--s3)}
  .story-row{grid-template-columns:88px minmax(0,1fr)}
  .band{padding:var(--s4) var(--s3);border-radius:20px}
  .band .stat b{font-size:1.5rem}
  .form{grid-template-columns:minmax(0,1fr)}
  .pane{padding:var(--s3)}
  .tl-step{grid-template-columns:minmax(0,1fr);gap:6px}
  .photos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .photos button:first-child{grid-column:1/-1}
  .ftr-top .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .lb{padding-inline:12px}
  .lb .p,.lb .n{top:auto;bottom:calc(20px + env(safe-area-inset-bottom,0px))}
}
.stretch::after{content:"";position:absolute;inset:0;z-index:1}
.tile .save,.tile .meta{position:relative;z-index:2}
.tile .save{position:absolute}

/* =========================================================
   v4 — city guide: mega menu, directory listings, guide pages
   ========================================================= */
[id]{scroll-margin-top:96px}
body.noscroll{overflow:hidden}
.nav{gap:0}
.nav a{padding:8px 10px;font-size:.9rem}
.menu-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 12px;border-radius:999px;border:1.5px solid var(--line);font-weight:600;font-size:.9rem;color:var(--text);background:#fff;transition:border-color .2s,background .2s}
.menu-btn svg{width:20px;height:20px}
.menu-btn:hover{border-color:var(--text)}
.hdr.over .menu-btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}

/* mega menu (replaces the side drawer) */
.drawer{background:rgba(16,13,46,.6)}
.drawer-panel{inset:0 0 auto 0;width:auto;max-height:100svh;padding:0;transform:translateY(-24px);opacity:0;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .25s;display:block;border-radius:0 0 24px 24px;box-shadow:0 30px 60px -30px rgba(16,13,46,.6)}
.drawer.open .drawer-panel{transform:none;opacity:1}
.drawer-panel .wrap{padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}
.drawer-panel .top{display:flex;justify-content:space-between;align-items:center;gap:var(--s2)}
.drawer-panel .top img{height:40px;width:auto}
.drawer-panel .row{display:flex;gap:8px;align-items:center}
.mega-main{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.mega-main a{font-weight:700;font-size:1.02rem;color:var(--text);padding:10px 16px;border-radius:999px;background:var(--paper);white-space:nowrap}
.mega-main a:hover,.mega-main a[aria-current]{background:var(--ink);color:#fff}
.mega{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4)}
.mega h4{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);margin-bottom:12px}
.mega ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:2px}
.mega a{display:block;padding:6px 0;font-size:.95rem;font-weight:500;color:var(--body)}
.mega a:hover{color:var(--violet)}
.mega-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;padding-top:var(--s3);border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}

/* small shared bits */
.count{font-size:.88rem;font-weight:600;color:var(--muted);margin-bottom:var(--s3)}
.byline{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:var(--s2);margin-top:var(--s2)}
.tag.open{color:var(--ok);background:#E7F7F0}
.sub-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);margin:var(--s6) 0 var(--s3);flex-wrap:wrap}
.sub-head h3{font-size:1.35rem}
.offer-link{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:8px;min-width:0;transition:border-color .2s,transform .2s}
.offer-link:hover{border-color:var(--violet);transform:translateY(-2px)}
.offer-link h3{font-size:1.02rem}
.offer-link p{color:var(--muted);font-size:.92rem;line-height:1.55;flex:1}
.photo-side{border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.photo-side img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.photo-side.sticky{position:sticky;top:96px}
.photo-side .credit{font-size:.78rem;color:var(--muted);padding:10px 4px 0;background:#fff}
.jump{display:flex;gap:8px;flex-wrap:wrap;margin-top:var(--s3)}
.jump a{font-size:.85rem;font-weight:500;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);color:#fff}
.jump a:hover{background:rgba(255,255,255,.22)}

/* city guide tiles (home) */
.guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.gtile{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:5/4;isolation:isolate;display:flex;align-items:flex-end;padding:var(--s3) 20px;color:#fff;background:var(--ink-2)}
.gtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.gtile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,13,46,0) 35%,rgba(16,13,46,.85) 100%)}
.gtile:hover img{transform:scale(1.05)}
.gtile b{display:block;font-size:1.12rem;line-height:1.25}
.gtile small{display:block;font-size:.82rem;opacity:.85;margin-top:2px}

/* food categories */
.cats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s2)}
.cat{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:1;isolation:isolate;display:flex;align-items:flex-end;padding:14px;color:#fff;background:var(--ink-2)}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.cat::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,13,46,0) 40%,rgba(16,13,46,.85) 100%)}
.cat:hover img{transform:scale(1.06)}
.cat span{font-weight:700;font-size:.95rem;line-height:1.25}

/* directory listing card */
.lsts{gap:var(--s3)}
.lst{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:12px;min-width:0;transition:border-color .2s,box-shadow .2s,transform .2s}
.lst:hover{border-color:#CFCBE3;box-shadow:var(--shadow);transform:translateY(-2px)}
.lst.is-new{border-top:0;padding-top:calc(var(--s3) + 4px)}
.lst.is-new::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--grad)}
.lst-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lst .kind{font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--violet)}
.lst .new{font-size:.72rem;font-weight:700;color:#fff;background:var(--magenta);padding:3px 9px;border-radius:999px}
.lst h3{font-size:1.2rem;line-height:1.3}
.lst h3 a:hover{color:var(--violet)}
.lst > p{color:var(--muted);font-size:.93rem;line-height:1.55}
.lst-kv{display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px 12px;margin:0;font-size:.88rem;padding-top:12px;border-top:1px dashed var(--line)}
.lst-kv dt{color:var(--muted);font-weight:500}
.lst-kv dd{margin:0;color:var(--text);font-weight:500;min-width:0;overflow-wrap:anywhere}
.lst-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:4px;flex-wrap:wrap}
.lst .lift,.lst-foot .link{position:relative;z-index:2;font-size:.88rem}
.card .lst-kv{border-top:0;padding-top:0}

/* street food trail */
.trail{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s6);align-items:center}
.trail-ph{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5}
.trail-ph img{width:100%;height:100%;object-fit:cover}
.tl{list-style:none;padding:0;margin:0}
.tl-step p{color:var(--muted);font-size:.94rem;margin-top:4px}
.tl.dark{border-color:rgba(255,255,255,.14)}
.tl.dark .tl-step{border-color:rgba(255,255,255,.14)}
.tl.dark .tl-step .t{color:#7FD8EE}
.tl.dark h3{color:#fff}
.tl.dark p{color:rgba(255,255,255,.7)}
.trail .sec-head{margin-bottom:var(--s3)}

/* nightlife */
.nl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2) var(--s5)}
.nl-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--s2);align-items:center;padding:var(--s2) 0;border-bottom:1px solid rgba(255,255,255,.12)}
.nl-row .ph{aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--ink-2)}
.nl-row .ph img{width:100%;height:100%;object-fit:cover}
.nl-row h3{color:#fff;font-size:1.02rem}
.nl-row p{color:rgba(255,255,255,.7);font-size:.9rem;margin-top:4px}

/* seasons (four) */
.season4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.season4 > div{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);display:flex;flex-direction:column;gap:8px;min-width:0}
.season4 small{font-size:.8rem;font-weight:600;color:var(--violet)}
.season4 h3{font-size:1.2rem}
.season4 p{color:var(--muted);font-size:.92rem;line-height:1.55}
.season4.dark > div{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.season4.dark small{color:#7FD8EE}
.season4.dark h3{color:#fff}
.season4.dark p{color:rgba(255,255,255,.72)}

/* numbered tips */
.mist{list-style:none;padding:0;margin:0;counter-reset:m;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2) var(--s5)}
.two .mist{grid-template-columns:minmax(0,1fr)}
.mist li{counter-increment:m;display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.mist li::before{content:counter(m,decimal-leading-zero);grid-row:1/span 2;font-weight:800;font-size:1.05rem;color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text;font-variant-numeric:tabular-nums;padding-top:1px}
.mist h3{font-size:1.02rem}
.mist p{color:var(--muted);font-size:.93rem;margin-top:2px}
.mist li > p:only-child{color:var(--body);margin:0}

/* stays */
.areas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2)}
.areas > div{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3) 20px;display:flex;flex-direction:column;gap:8px;min-width:0}
.areas h3{font-size:1rem}
.areas p{color:var(--muted);font-size:.9rem;line-height:1.55;flex:1}
.areas .for{font-size:.8rem;font-weight:600;color:var(--violet)}
.stays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4) var(--s5)}
.stay-g h3{font-size:1.1rem;padding-bottom:12px;border-bottom:2px solid var(--text)}
.stay-g ul{list-style:none;padding:0;margin:0}
.stay-g li{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;gap:var(--s2);align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.stay-g li b{display:block;color:var(--text);font-size:.98rem;font-weight:600}
.stay-g li span{font-size:.84rem;color:var(--muted)}
.stay-g .r{text-align:right}
.stay-g .r small{display:block;font-size:.76rem;color:var(--muted)}
.rating{font-size:.84rem;color:var(--muted)}
.rating b{font-size:1.02rem;color:var(--ok);font-weight:800}
.stay-g .link svg{width:18px;height:18px}

/* neighbourhoods */
.hoods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.hood{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;min-width:0;background:#fff}
.hood .ph{aspect-ratio:16/10;overflow:hidden;background:var(--paper)}
.hood .ph img{width:100%;height:100%;object-fit:cover}
.hood .in{padding:20px var(--s3) var(--s3);display:flex;flex-direction:column;gap:10px}
.hood h3{font-size:1.12rem}
.hood .v{color:var(--muted);font-size:.92rem}
.people{list-style:none;padding:0;margin:0 0 var(--s4)}
.people li{padding:14px 0;border-bottom:1px solid var(--line)}
.people h3{font-size:1rem}
.people p{color:var(--muted);font-size:.92rem;margin-top:2px}

/* must try checklist */
.progress{margin-top:var(--s3);max-width:420px}
.progress span{font-size:.9rem;font-weight:600}
.progress .bar{height:8px;border-radius:99px;background:rgba(255,255,255,.18);margin-top:8px;overflow:hidden}
.progress .bar i{display:block;height:100%;width:0;background:var(--grad);border-radius:99px;transition:width .4s}
.mt{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.mt h2{font-size:1.5rem;padding-bottom:12px;border-bottom:2px solid var(--text);margin-bottom:4px}
.mt ul{list-style:none;padding:0;margin:0}
.mt label{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer;align-items:start}
.mt input{position:absolute;opacity:0;pointer-events:none}
.mt .box{width:24px;height:24px;border-radius:8px;border:2px solid #C8C5DA;display:grid;place-items:center;transition:background .2s,border-color .2s;padding:0;margin-top:1px}
.mt input:checked + .box{background:var(--grad);border-color:transparent}
.mt input:checked + .box::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
.mt input:focus-visible + .box{outline:2.5px solid var(--blue);outline-offset:2px}
.mt b{display:block;color:var(--text);font-size:.98rem;font-weight:600}
.mt input:checked ~ span b{text-decoration:line-through;text-decoration-color:var(--violet)}
.mt small{display:block;color:var(--muted);font-size:.86rem;margin-top:2px}

/* phrases */
.phr{display:flex;flex-direction:column}
.phr > div{display:grid;grid-template-columns:140px minmax(0,1fr);column-gap:var(--s2);padding:14px 0;border-bottom:1px solid var(--line)}
.phr .hi{grid-row:1/span 2;font-size:1.3rem;font-weight:600;color:var(--text);line-height:1.3}
.phr b{color:var(--violet);font-size:.98rem}
.phr p{color:var(--muted);font-size:.9rem}

/* heritage timeline */
.two.wide{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.tline{list-style:none;padding:0;margin:0;position:relative}
.tline::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,#13C4E3,#2F6BF0,#8A3BE0,#E4187E)}
.tline li{position:relative;padding:0 0 var(--s3) 40px}
.tline li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--violet)}
.tline .y{display:block;font-size:.84rem;font-weight:700;color:var(--violet);font-variant-numeric:tabular-nums}
.tline h3{font-size:1.08rem;margin-top:2px}
.tline p{color:var(--muted);font-size:.94rem;margin-top:4px}

/* directory */
.dir-tools{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap}
.dir-q{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:999px;padding:0 14px;height:42px;min-width:min(280px,100%);color:var(--muted)}
.dir-q svg{width:18px;height:18px;flex:none}
.dir-q input{border:0;outline:0;background:none;flex:1;min-width:0;font-size:.95rem;color:var(--text)}
table.dir td:last-child{width:40px;text-align:center}
table.dir .link{white-space:normal}
table.dir .link svg{width:18px;height:18px}

/* responsive (v4) */
@media (max-width:1240px){
  .nav a{padding:8px 7px;font-size:.86rem}
  .menu-btn span{display:none}
  .menu-btn{width:42px;padding:0;justify-content:center}
}
@media (max-width:1120px){
  .nav{display:none}
  .menu-btn span{display:inline}
  .menu-btn{width:auto;padding:0 16px 0 12px}
  .hdr-tools{margin-left:auto}
  .mega{grid-template-columns:repeat(3,minmax(0,1fr))}
  .areas{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .season4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .guide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trail,.two.wide{grid-template-columns:minmax(0,1fr);gap:var(--s5)}
  .trail-ph{aspect-ratio:16/10}
  .photo-side.sticky{position:static}
  .photo-side img{aspect-ratio:16/10}
  .nl,.mist,.stays{grid-template-columns:minmax(0,1fr)}
  .hoods,.mt{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mt{gap:var(--s4)}
  .mt-col:last-child{grid-column:1/-1}
  .burger{display:none}
}
@media (max-width:640px){
  .drawer-panel{max-height:100svh;overflow-y:auto;border-radius:0}
  .mega{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3) var(--s2)}
  .mega-main a{font-size:.92rem;padding:8px 13px}
  .drawer-panel .top .btn{display:none}
  .guide{gap:12px}
  .gtile{aspect-ratio:1;padding:var(--s2) 14px}
  .gtile b{font-size:.98rem}
  .gtile small{display:none}
  .cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .areas,.hoods,.mt,.season4{grid-template-columns:minmax(0,1fr)}
  .mt-col:last-child{grid-column:auto}
  .stay-g li{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .stay-g li .link{display:none}
  .phr > div{grid-template-columns:minmax(0,1fr)}
  .phr .hi{grid-row:auto}
  .lst-kv{grid-template-columns:64px minmax(0,1fr)}
  .dir-q{width:100%}
  .nl-row{grid-template-columns:72px minmax(0,1fr)}
}
.lst .verified{font-size:.78rem;color:var(--muted)}
.drawer-panel{overflow-y:auto}
.drawer-panel .mega-main{flex-direction:row;flex-wrap:wrap;gap:8px}
.drawer-panel .mega-main a{font-size:1rem;font-weight:700;padding:10px 18px;border:0;border-radius:999px;background:var(--paper)}
.drawer-panel .mega-main a:hover,.drawer-panel .mega-main a[aria-current]{background:var(--ink);color:#fff}
@media (max-width:640px){.drawer-panel .mega-main a{font-size:.92rem;padding:8px 14px}}
.stay-g .rating b{display:inline}.stay-g .rating{white-space:nowrap}
