:root{
  --bg:#0E0C0B; --bg2:#15100E; --bg3:#1D1714; --panel:#171210;
  --cream:#F3EBDA; --cream2:#BEB09A; --muted:#8C8071;
  --gold:#C9A24E; --gold2:#E4C277; --wine:#7C2A39;
  --line:#2B231E; --line2:#3A2F28;
  --good:#74C28A; --mid:#E2A857; --low:#E0655A;
  --serif:'Manrope',-apple-system,system-ui,sans-serif;
  --serif2:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',-apple-system,system-ui,sans-serif;
  --maxw:1280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--cream); font-family:var(--sans);
  font-weight:400; line-height:1.65; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow-x:hidden;
}
img{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
em{font-family:var(--serif2); font-style:italic}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
::selection{background:var(--gold); color:#1a130a}
.kicker{font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold);
  font-weight:600}
.serif{font-family:var(--serif)}

/* ── Header ── */
.site-head{position:sticky; top:0; z-index:50;
  background:linear-gradient(180deg, rgba(10,8,7,.96), rgba(10,8,7,.78) 70%, rgba(10,8,7,0));
  backdrop-filter:blur(8px); border-bottom:1px solid transparent; transition:border-color .3s,background .3s}
.site-head.solid{background:rgba(10,8,7,.97); border-color:var(--line)}
.head-inner{max-width:var(--maxw); margin:0 auto; padding:.85rem 2rem; position:relative;
  display:flex; align-items:center; justify-content:space-between; gap:1rem}
.brand{display:flex; flex-direction:column; line-height:1; align-items:flex-start}
.brand-mark{display:flex; align-items:center; gap:.52rem; font-family:var(--sans); font-weight:800; font-size:1.03rem; letter-spacing:-.035em; color:#fff; text-decoration:none}
.brand-sigil{font-size:1.18rem; line-height:1; transform:translateY(-1px)}
.brand-sub{font-size:.52rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.62); margin-top:5px; margin-left:1.7rem}
.city-switch{background:none; border:none; cursor:pointer; padding:0; font-family:var(--sans)}
.city-switch:hover{color:var(--gold2)}
.city-menu{position:absolute; top:calc(100% - .3rem); left:2rem; z-index:200; min-width:220px;
  background:rgba(14,12,11,.97); backdrop-filter:blur(10px); border:1px solid var(--line2); border-radius:11px;
  padding:.5rem; box-shadow:0 18px 48px rgba(0,0,0,.55)}
.city-opt{display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left;
  background:none; border:none; cursor:pointer; color:var(--cream); font-family:var(--serif); font-size:1.05rem;
  padding:.55rem .7rem; border-radius:7px}
.city-opt:hover{background:var(--bg2)}
.city-opt.on{color:var(--gold)}
.city-tag{font-family:var(--sans); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold);
  background:rgba(201,162,78,.16); border-radius:4px; padding:.1rem .4rem}
.city-tag.dim{color:var(--muted); background:rgba(255,255,255,.05)}
.city-tag.world{color:#8fb8d4; background:rgba(143,184,212,.14)}
.city-sep{font-family:var(--sans); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding:.7rem .7rem .3rem; border-top:1px solid var(--line); margin-top:.3rem}
.city-more{font-family:var(--sans); font-size:.7rem; color:var(--muted); padding:.6rem .7rem 0; border-top:1px solid var(--line); margin-top:.3rem; line-height:1.4}
.head-nav{display:flex; gap:.85rem; flex-wrap:wrap; justify-content:flex-end; align-items:center; row-gap:.3rem}
.head-nav a{font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--cream2); white-space:nowrap;
  padding:.2rem 0; border-bottom:1px solid transparent; transition:color .2s,border-color .2s}
@media(max-width:1080px){ .head-nav{gap:.7rem} .head-nav a{font-size:.64rem; letter-spacing:.04em} }
.head-nav a:hover,.head-nav a.active{color:var(--gold); border-color:var(--gold)}
.nav-toggle{display:none; width:42px; height:38px; border:1px solid var(--line2); border-radius:7px;
  background:rgba(14,12,11,.82); align-items:center; justify-content:center; flex-direction:column; gap:4px; cursor:pointer}
.nav-toggle > span:not(.sr-only){display:block; width:18px; height:1px; background:var(--cream2)}

.loading{min-height:60vh; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif2); font-style:italic; font-size:1.5rem; color:var(--muted)}

.home-intro{padding-top:clamp(4.5rem,9vw,7.5rem); max-width:980px; margin:0 auto; text-align:center}
.home-intro h1{font-family:var(--serif); font-weight:800; font-size:clamp(2.7rem,6.5vw,5.6rem);
  line-height:.98; letter-spacing:-.025em; max-width:900px; margin:.55rem auto 0}
.home-intro p{font-family:var(--serif2); font-size:clamp(1.15rem,2.4vw,1.45rem); line-height:1.5;
  color:var(--cream2); max-width:680px; margin:1.15rem auto 0}
.home-intro + .concierge{margin-top:1.6rem}
.concierge + .hero{margin-top:2.8rem}

/* ── Hero ── */
.hero{position:relative; height:84vh; min-height:560px; display:flex; align-items:flex-end;
  overflow:hidden; cursor:pointer}
.hero-img{position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform 1.2s ease; transform:scale(1.03)}
.hero:hover .hero-img{transform:scale(1.08)}
.hero::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,8,7,.35) 0%, rgba(10,8,7,.05) 35%, rgba(10,8,7,.55) 70%, rgba(10,8,7,.96) 100%)}
.hero-body{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; width:100%;
  padding:0 2rem 4.5vh; display:flex; align-items:flex-end; justify-content:space-between; gap:2rem}
.hero-main{max-width:760px}
.hero-rank{font-family:var(--serif); font-size:1rem; color:var(--gold); letter-spacing:.1em; margin-bottom:.6rem}
.hero h1{font-family:var(--serif); font-weight:800; font-size:clamp(2.6rem,6.5vw,5.4rem);
  line-height:.98; letter-spacing:-.01em; color:#fff; text-shadow:0 2px 30px rgba(0,0,0,.5)}
.hero-meta{margin:.8rem 0 0; color:var(--cream); font-size:1rem; letter-spacing:.02em}
.hero-pitch{margin-top:.9rem; font-family:var(--serif2); font-size:1.35rem; line-height:1.4;
  color:var(--cream); max-width:640px; font-weight:500}
.hero-chips{margin-top:1.1rem; display:flex; gap:.5rem; flex-wrap:wrap; align-items:center}
.hero-aside{display:flex; flex-direction:column; align-items:center; gap:.5rem; padding-bottom:.4rem}
.verdict-seal{min-width:168px; padding:1rem 1.1rem; border:1px solid rgba(201,162,78,.5); border-radius:10px;
  background:rgba(10,8,7,.72); backdrop-filter:blur(8px); text-align:center; box-shadow:0 14px 36px rgba(0,0,0,.35)}
.verdict-seal span,.verdict-seal small{display:block; font-family:var(--sans); text-transform:uppercase; letter-spacing:.12em}
.verdict-seal span{font-size:.56rem; color:var(--muted)}
.verdict-seal strong{display:block; font-family:var(--serif); font-size:1.55rem; line-height:1.15; color:var(--gold2); margin:.3rem 0}
.verdict-seal small{font-size:.56rem; color:var(--cream2)}

/* ── Section frame ── */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 2rem}
.section-head{display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  margin:3.4rem 0 1.4rem; padding-bottom:.9rem; border-bottom:1px solid var(--line)}
.section-head h2{font-family:var(--serif); font-weight:700; font-size:1.9rem; letter-spacing:.01em}
.section-head .count{color:var(--muted); font-size:.85rem}

/* ── Filter bar ── */
.filters{position:sticky; top:58px; z-index:30; background:rgba(14,12,11,.92); backdrop-filter:blur(8px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:.6rem 0; margin-top:2.4rem}
.filters-inner{max-width:var(--maxw); margin:0 auto; padding:0 2rem; display:flex; gap:1.2rem;
  align-items:center; flex-wrap:nowrap}
.pillrow{display:flex; gap:.4rem; flex-wrap:nowrap; flex:1 1 auto; min-width:0; overflow-x:auto;
  scrollbar-width:none; -webkit-overflow-scrolling:touch; padding:2px 0;
  -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent); mask-image:linear-gradient(90deg,#000 94%,transparent)}
.pillrow::-webkit-scrollbar{display:none}
.pill{font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream2);
  padding:.35rem .8rem; border:1px solid var(--line2); border-radius:999px; cursor:pointer;
  white-space:nowrap; transition:all .18s; background:transparent; flex:none}
.pill:hover{border-color:var(--gold); color:var(--gold)}
.pill.on{background:var(--gold); border-color:var(--gold); color:#1a130a; font-weight:600}
.fctl{display:flex; align-items:center; gap:.5rem; flex:none}
.fctl label{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
@media (max-width:680px){ .filters-inner{flex-wrap:wrap} .pillrow{order:2; flex-basis:100%} }
select,.minib{background:var(--bg2); color:var(--cream); border:1px solid var(--line2);
  border-radius:6px; padding:.4rem .6rem; font-family:var(--sans); font-size:.82rem; cursor:pointer}

/* ── Concierge (Ask) ── */
.concierge{max-width:var(--maxw); margin:2.4rem auto 0; padding:0 2rem}
.on-ask .concierge{margin-top:5.2rem}
.cz-inner{background:radial-gradient(120% 160% at 0% 0%, rgba(201,162,78,.16), rgba(20,16,14,.55) 60%);
  border:1px solid rgba(201,162,78,.32); border-radius:14px; padding:1.5rem 1.7rem;
  box-shadow:0 18px 50px rgba(0,0,0,.35)}
.cz-eyebrow{font-family:var(--sans); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:.85rem}
.cz-form{display:flex; gap:.6rem}
.cz-input{flex:1; min-width:0; background:rgba(10,8,7,.55); border:1px solid var(--line2); border-radius:9px;
  color:var(--cream); font-family:var(--serif2); font-size:1.2rem; padding:.85rem 1.05rem}
.cz-input::placeholder{color:var(--muted); font-style:italic}
.cz-input:focus{outline:none; border-color:var(--gold); background:rgba(10,8,7,.8)}
.cz-go{flex:none; background:var(--gold); color:#1a130a; border:none; border-radius:9px; padding:0 1.6rem;
  font-family:var(--sans); font-weight:700; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer}
.cz-go:hover{background:var(--gold2)}
.cz-ex{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem}
.cz-chip{font-family:var(--serif2); font-style:italic; font-size:.92rem; color:var(--cream2);
  background:transparent; border:1px solid var(--line2); border-radius:999px; padding:.32rem .85rem;
  cursor:pointer; text-decoration:none; transition:all .18s}
.cz-chip:hover{border-color:var(--gold); color:var(--gold)}
.cz-results{padding-top:1rem}
.cz-intent{color:var(--cream2); font-size:.92rem; margin:-.6rem 0 1.6rem}
.cz-tag{display:inline-block; background:rgba(201,162,78,.14); color:var(--gold2); border:1px solid rgba(201,162,78,.3);
  border-radius:999px; padding:.16rem .7rem; margin:0 .22rem; font-size:.8rem; font-family:var(--sans)}
.why{display:flex; flex-wrap:wrap; gap:.35rem; margin:.55rem 0 .15rem}
.why-chip{font-family:var(--sans); font-size:.7rem; color:var(--cream2); background:rgba(255,255,255,.05);
  border:1px solid var(--line2); border-radius:5px; padding:.18rem .52rem}
.why-chip.dish{color:var(--gold2); border-color:rgba(201,162,78,.4)}
.why-src{font-size:.7rem; color:var(--gold); text-decoration:none; letter-spacing:.02em}
.why-src:hover{text-decoration:underline}
.conf{font-family:var(--sans); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.05rem .35rem; border-radius:4px; margin-left:.3rem; vertical-align:.08em}
.conf.confirmed{background:rgba(116,194,138,.18); color:#8fd3a4}
.conf.reported{background:rgba(226,194,119,.16); color:var(--gold2)}
.conf.rumored{background:rgba(224,101,90,.16); color:#e89084}
.cz-empty{padding:2.5rem 0 4rem; color:var(--cream2); font-size:1.05rem}
.cz-empty .muted{color:var(--muted); font-size:.92rem; margin-top:.6rem}
.cz-loading{padding:3rem 0; color:var(--muted); font-family:var(--serif2); font-style:italic; font-size:1.2rem}
/* ── Frontier-city: dining culture + quick-bites ── */
.culture-note{border-left:2px solid var(--gold); padding:.2rem 0 .2rem 1.2rem; margin:0 0 2rem; max-width:46rem}
.culture-note p{font-family:var(--serif2); font-style:italic; font-size:1.2rem; line-height:1.55; color:var(--cream2); margin:.4rem 0 0}
.cn-more{background:none; border:none; color:var(--gold); font-family:var(--sans); font-style:normal; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; padding:0; margin-left:.15rem; white-space:nowrap}
.cn-more:hover{text-decoration:underline}
.quick-sec{margin-top:2.8rem}
.traps-note{margin-top:2.6rem; border-top:1px solid var(--line)}
.traps-toggle{background:none; border:none; cursor:pointer; padding:1rem 0 .2rem; font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:.5rem}
.traps-toggle:hover{color:var(--cream2)}
.traps-toggle .tt-caret{transition:transform .2s}
.traps-toggle.open .tt-caret{transform:rotate(180deg)}
.traps-list{margin:.6rem 0 .4rem; display:flex; flex-direction:column; gap:.5rem}
.trap-row{font-family:var(--serif2); font-size:1rem; line-height:1.5; color:var(--cream2)}
.trap-row .trap-x{color:#b5563f; font-weight:700; margin-right:.2rem}
.q-fmt{font-family:var(--sans); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold2);
  background:rgba(201,162,78,.12); border:1px solid rgba(201,162,78,.3); border-radius:5px; padding:.18rem .5rem;
  min-width:4.6rem; text-align:center; flex:none}
/* ── Browse all ── */
.browse-controls{display:flex; gap:.6rem; flex-wrap:wrap; margin:1.2rem 0 .4rem}
.browse-controls .cz-input{flex:1; min-width:220px; font-size:1rem; padding:.6rem .85rem}
.browse-list{display:flex; flex-direction:column; gap:.15rem; margin-top:1rem}
.browse-row{display:flex; align-items:center; gap:1rem; padding:.7rem .9rem; border:1px solid transparent;
  border-bottom:1px solid var(--line); text-decoration:none; transition:background .15s,border-color .15s}
.browse-row:hover{background:var(--bg2); border-color:var(--line2); border-radius:7px}
.br-rating{font-family:var(--serif); font-weight:700; font-size:1.25rem; color:var(--gold2); min-width:3rem}
.br-rating small{font-size:.7em; color:var(--muted)}
.br-main{flex:1; display:flex; flex-direction:column; min-width:0}
.br-name{font-family:var(--serif); font-weight:600; font-size:1.15rem; color:var(--cream)}
.br-meta{font-family:var(--sans); font-size:.76rem; color:var(--muted)}
.br-go{font-family:var(--sans); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); white-space:nowrap}
.cz-engine{margin-left:.7rem; font-size:.72rem; letter-spacing:.06em; color:var(--gold);
  background:rgba(201,162,78,.12); border:1px solid rgba(201,162,78,.3); border-radius:999px; padding:.12rem .55rem}

/* ── Who eats here (Favs) ── */
.favs-page{padding-top:5.5rem}
.favs-head{margin-bottom:2rem; border-bottom:1px solid var(--line); padding-bottom:1.4rem}
.favs-head h1{font-family:var(--serif); font-weight:800; font-size:clamp(2.2rem,5vw,3.4rem); margin:.3rem 0 .5rem}
.favs-intro{color:var(--cream2); font-family:var(--serif2); font-size:1.25rem; line-height:1.5; max-width:42rem}
.fav-toggle{display:flex; gap:.5rem; margin:1.2rem 0 .8rem}
.fav-toggle .pill{text-decoration:none}
.favcard .cbody{position:relative}
.favcard .fav-names{display:flex; flex-wrap:wrap; gap:.3rem .5rem; margin:.5rem 0 .1rem}
.fav-name{font-family:var(--sans); font-size:.82rem; color:var(--cream); background:rgba(201,162,78,.12);
  border:1px solid rgba(201,162,78,.28); border-radius:5px; padding:.16rem .5rem}
.fav-name i{color:var(--muted); font-style:normal; font-size:.72rem; margin-left:.3rem}
.fav-more{font-size:.78rem; color:var(--muted); align-self:center}
.fav-quote{font-family:var(--serif2); font-style:italic; font-size:.95rem; line-height:1.45;
  color:var(--cream2); margin-top:.55rem}
/* detail: who eats here */
.who-row{padding:.7rem 0; border-bottom:1px solid var(--line)}
.who-row:last-child{border-bottom:none}
.who-h{display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap}
.who-name{font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--cream)}
.who-role{font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em}
.who-snip{font-family:var(--serif2); font-size:1.05rem; line-height:1.5; color:var(--cream2); margin-top:.25rem}

/* ── Guilty Pleasures (the back door) ── */
.guilty-page{padding-top:5.5rem; max-width:1040px}
.gp-head{border-bottom:1px solid var(--line); padding-bottom:1.3rem; margin-bottom:.5rem}
.gp-head h1{font-family:var(--serif); font-weight:800; font-size:clamp(2.4rem,5.5vw,3.8rem); margin:.3rem 0 .5rem}
.gp-intro{color:var(--cream2); font-family:var(--serif2); font-size:1.3rem; line-height:1.5; max-width:44rem}
.gp-nav{display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.3rem}
.gp-chip{font-family:var(--sans); font-size:.76rem; letter-spacing:.03em; color:var(--cream2); background:transparent;
  border:1px solid var(--line2); border-radius:999px; padding:.32rem .85rem; cursor:pointer; transition:all .18s}
.gp-chip:hover{border-color:var(--gold); color:var(--gold)}
.gp-sec{margin:2.8rem 0; scroll-margin-top:78px}
.gp-sec-t{font-family:var(--serif); font-weight:700; font-size:1.7rem; color:var(--gold2); margin-bottom:1rem;
  display:flex; align-items:center; gap:.8rem}
.gp-sec-t::after{content:''; flex:1; height:1px; background:var(--line)}
.gp-row{display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line)}
.gp-row:last-child{border-bottom:none}
.gp-rank{font-family:var(--serif); font-weight:800; font-size:1.5rem; color:var(--line2); line-height:1; min-width:2.2rem}
.gp-main{flex:1; min-width:0}
.gp-h{display:flex; align-items:baseline; gap:.7rem; flex-wrap:wrap}
.gp-name{font-family:var(--serif); font-weight:700; font-size:1.3rem; color:var(--cream)}
.gp-arr{font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}
.gp-price{margin-left:auto; font-family:var(--sans); font-size:.84rem; font-weight:600; color:var(--gold2); white-space:nowrap}
.gp-spec{font-family:var(--sans); font-size:.82rem; color:var(--gold); margin:.3rem 0 .2rem; letter-spacing:.01em}
.gp-blurb{font-family:var(--serif2); font-style:italic; font-size:1.12rem; line-height:1.5; color:var(--cream2)}
.gp-src{font-family:var(--sans); font-size:.72rem; color:var(--muted); margin-top:.4rem}
.gp-src a{color:var(--gold)}

/* ── Favourites + your take ── */
.nav-fav{font-size:1rem !important; letter-spacing:0 !important; color:var(--gold) !important; display:inline-flex; align-items:center; gap:.2rem}
.nav-fav .savecount:not(:empty){font-family:var(--sans); font-size:.62rem; background:var(--gold); color:#1a130a; border-radius:999px; padding:.02rem .32rem; font-weight:700}
/* ── For You / Taste Passport ── */
.nav-foryou{color:var(--gold) !important}
.card .rank.fymatch{font-size:1.05rem; line-height:1; text-align:center}
.card .rank.fymatch small{display:block; font-size:.5rem; letter-spacing:.1em}
.cal-grid .cal-card{aspect-ratio:auto; background:var(--bg2); border:1px solid var(--line); cursor:default}
.cal-card .ph{position:relative; width:100%; height:150px; object-fit:cover}
.cal-card .noimg{height:150px; display:flex; align-items:center; justify-content:center; color:var(--line2); font-size:2rem}
.cal-card .cbody{position:static; padding:.9rem 1rem 1rem}
.cal-card h3{font-family:var(--serif); font-weight:700; font-size:1.2rem; color:var(--cream); margin:0}
.cal-card .cmeta{font-size:.74rem; color:var(--cream2); margin:.15rem 0 .4rem}
.cal-tags{display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.7rem; min-height:1.4rem}
.cal-btns{display:flex; gap:.5rem}
.cal-love,.cal-skip{flex:1; font-family:var(--sans); font-size:.76rem; padding:.4rem; border-radius:6px; cursor:pointer;
  border:1px solid var(--line2); background:transparent; color:var(--cream2); transition:all .15s}
.cal-love:hover,.cal-love.on{background:rgba(201,162,78,.18); border-color:var(--gold); color:var(--gold2)}
.cal-skip:hover,.cal-skip.on{background:rgba(255,255,255,.06); border-color:var(--line2); color:var(--muted)}
.cal-card.loved{border-color:var(--gold)}
.cal-card.skipped{opacity:.5}
.btn.fav{border-color:var(--line2)}
.btn.fav.on{background:rgba(201,162,78,.16); border-color:var(--gold); color:var(--gold2)}
.btn.fav:hover{border-color:var(--gold); color:var(--gold)}
.revform{background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:1.3rem 1.4rem}
.rate-cols{display:grid; grid-template-columns:1fr 1fr; gap:.4rem 2.4rem}
.rate-cat{font-family:var(--sans); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:.2rem 0 .6rem}
.rate-row{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.28rem 0}
.rate-l{font-family:var(--serif2); font-size:1.08rem; color:var(--cream)}
.rate-dots{display:inline-flex; gap:.28rem}
.rdot{width:26px; height:26px; border-radius:50%; border:1px solid var(--line2); background:transparent; color:var(--muted);
  font-family:var(--sans); font-size:.74rem; cursor:pointer; transition:all .14s}
.rdot:hover{border-color:var(--gold)}
.rdot.on{background:var(--gold); border-color:var(--gold); color:#1a130a; font-weight:700}
.rev-text{width:100%; margin-top:1.1rem; background:rgba(10,8,7,.5); border:1px solid var(--line2); border-radius:8px;
  color:var(--cream); font-family:var(--serif2); font-size:1.08rem; padding:.7rem .85rem; resize:vertical}
.rev-text:focus{outline:none; border-color:var(--gold)}
.rev-actions{display:flex; align-items:center; gap:1rem; margin-top:1rem; flex-wrap:wrap}
.rev-note{font-family:var(--sans); font-size:.74rem; color:var(--muted)}
.myrev{margin-bottom:1.2rem; display:flex; flex-direction:column; gap:.7rem}
.myrev-card{background:rgba(201,162,78,.07); border:1px solid rgba(201,162,78,.25); border-radius:9px; padding:.9rem 1.1rem}
.myrev-h{font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold)}
.myrev-pending{color:var(--muted); margin-left:.5rem; letter-spacing:.04em}
.myrev-chips{display:flex; flex-wrap:wrap; gap:.4rem; margin:.6rem 0 .2rem}
.myrev-chip{font-family:var(--sans); font-size:.74rem; color:var(--cream2); background:rgba(255,255,255,.05); border:1px solid var(--line2); border-radius:5px; padding:.16rem .55rem}
.myrev-chip b{color:var(--gold2)}
.myrev-c{font-family:var(--serif2); font-style:italic; font-size:1.1rem; color:var(--cream2); margin-top:.5rem}
@media(max-width:680px){ .rate-cols{grid-template-columns:1fr} }

/* ── Grid ── */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:1.6rem 1.5rem;
  margin:2rem 0 1rem}
.card{position:relative; border-radius:4px; overflow:hidden; cursor:pointer; background:var(--bg2);
  aspect-ratio:4/5; transition:transform .35s ease, box-shadow .35s ease}
.card:hover{transform:translateY(-4px); box-shadow:0 24px 50px rgba(0,0,0,.55)}
.card .ph{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .7s ease}
.card:hover .ph{transform:scale(1.07)}
.card .noimg{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 70% 10%, #2a1d17, #120d0b); color:var(--gold); font-size:3rem; opacity:.4}
.card::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,8,7,.55) 0%, rgba(10,8,7,0) 26%, rgba(10,8,7,.1) 52%, rgba(10,8,7,.93) 100%)}
.card .rank{position:absolute; top:.7rem; left:.85rem; z-index:2; font-family:var(--serif);
  font-weight:700; font-size:1.5rem; color:#fff; text-shadow:0 1px 12px rgba(0,0,0,.6)}
.card .rank small{font-size:.62rem; letter-spacing:.1em; opacity:.8; display:block; font-family:var(--sans);
  text-transform:uppercase; margin-top:-3px}
.card .cscore{position:absolute; top:.75rem; right:.85rem; z-index:2}
.card .cbody{position:absolute; left:1rem; right:1rem; bottom:.95rem; z-index:2}
.card .cstars{color:var(--gold2); font-size:.8rem; letter-spacing:1px}
.card h3{font-family:var(--serif); font-weight:700; font-size:1.42rem; line-height:1.06; color:#fff; margin:.1rem 0}
.card .cmeta{font-size:.74rem; letter-spacing:.04em; color:var(--cream2)}
.card .cquote{margin-top:.5rem; font-family:var(--serif2); font-style:italic; font-size:.96rem;
  line-height:1.35; color:var(--cream); opacity:.94; display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden}
.card .cfoot{margin-top:.55rem; display:flex; gap:.4rem; align-items:center; flex-wrap:wrap}

/* ── Chips ── */
.chip{font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  padding:.22rem .55rem; border-radius:3px}
.chip.gold{background:var(--gold); color:#1a130a}
.chip.line{background:transparent; border:1px solid var(--line2); color:var(--cream2)}
.chip.good{background:rgba(116,194,138,.16); color:var(--good)}
.chip.tag{background:rgba(201,162,78,.14); color:var(--gold2); border:1px solid rgba(201,162,78,.3)}
.evidence{display:inline-block; font-family:var(--sans); font-size:.56rem; line-height:1; letter-spacing:.08em;
  text-transform:uppercase; white-space:nowrap; padding:.38rem .52rem; border:1px solid rgba(243,235,218,.3);
  border-radius:999px; color:var(--cream); background:rgba(10,8,7,.68); backdrop-filter:blur(6px)}
.evidence.high{color:#9ad4aa; border-color:rgba(116,194,138,.55)}
.evidence.low{color:#efaaa0; border-color:rgba(224,101,90,.55)}
.evidence.tier-atlas{color:#c5bbb0;border-color:rgba(197,187,176,.46)}
.evidence.tier-wired{color:#9fc9d5;border-color:rgba(111,178,197,.55)}
.evidence.tier-investigated{color:#e4c277;border-color:rgba(201,162,78,.62)}
.evidence.tier-dossier,.evidence.tier-confidential{color:#9ad4aa;border-color:rgba(116,194,138,.62)}
.g-rating{font-size:.74rem; color:var(--cream2)}
.g-rating b{color:var(--gold2)}
.ac-chip{font-family:var(--sans); font-size:.66rem; font-weight:600; letter-spacing:.04em;
  color:#9fd4e6; background:rgba(120,190,220,.14); border:1px solid rgba(120,190,220,.4);
  border-radius:5px; padding:.12rem .42rem; white-space:nowrap}
.ac-toggle{flex:none; font-family:var(--sans); font-size:.74rem; letter-spacing:.03em; cursor:pointer;
  color:#9fd4e6; background:rgba(120,190,220,.10); border:1px solid rgba(120,190,220,.35);
  border-radius:999px; padding:.3rem .8rem; transition:all .18s}
.ac-toggle:hover{border-color:#9fd4e6}
.ac-toggle.on{background:#9fd4e6; border-color:#9fd4e6; color:#0c2630; font-weight:700}

/* ── Detail ── */
.detail-hero{position:relative; height:74vh; min-height:520px; display:flex; align-items:flex-end; overflow:hidden}
.detail-hero .hero-img{transform:scale(1.02)}
.detail-hero::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,8,7,.45), rgba(10,8,7,.05) 40%, rgba(10,8,7,.6) 72%, rgba(10,8,7,.97))}
.back{position:fixed; top:1rem; left:2rem; z-index:60; font-size:.78rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--cream); background:rgba(10,8,7,.55); border:1px solid var(--line2);
  padding:.45rem .9rem; border-radius:999px; backdrop-filter:blur(6px)}
.back:hover{color:var(--gold); border-color:var(--gold)}
.on-detail .site-head{display:none}
.dh-body{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; width:100%;
  padding:0 2rem 3vh; display:flex; align-items:flex-end; justify-content:space-between; gap:2rem}
.dh-body h1{font-family:var(--serif); font-weight:800; font-size:clamp(2.4rem,5.5vw,4.6rem); line-height:1; color:#fff}
.dh-meta{margin-top:.7rem; color:var(--cream); font-size:1rem}
.dh-chips{margin-top:.9rem; display:flex; gap:.5rem; flex-wrap:wrap; align-items:center}

.dcol{max-width:980px; margin:0 auto; padding:0 2rem}
.dlead{font-family:var(--serif); font-weight:500; font-size:1.7rem; line-height:1.4; color:var(--cream);
  margin:2.6rem 0 1.4rem; padding-left:1.2rem; border-left:2px solid var(--gold)}
.actions{display:flex; gap:.7rem; flex-wrap:wrap; margin:1.4rem 0 2rem}
.btn{font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; padding:.7rem 1.3rem;
  border:1px solid var(--line2); border-radius:3px; color:var(--cream); transition:all .2s; cursor:pointer}
.btn:hover{border-color:var(--gold); color:var(--gold)}
.btn.solid{background:var(--gold); border-color:var(--gold); color:#1a130a; font-weight:600}
.btn.solid:hover{background:var(--gold2)}

.facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:5px; overflow:hidden; margin:1.8rem 0}
.fact{background:var(--bg2); padding:1rem 1.1rem}
.fact .fl{font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.fact .fv{font-family:var(--serif); font-size:1.5rem; color:var(--cream); margin-top:.2rem}
.fact .fv small{font-size:.8rem; color:var(--cream2); font-family:var(--sans)}

.dsec{margin:3rem 0}
.dsec > .lbl{font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  margin-bottom:1.1rem; display:flex; align-items:center; gap:.8rem}
.dsec > .lbl::after{content:''; flex:1; height:1px; background:var(--line)}

.quote{margin:0 0 1.4rem; padding:0 0 0 1.3rem; border-left:2px solid var(--line2)}
.quote.marquee{border-color:var(--gold)}
.quote .qt{font-family:var(--serif2); font-style:italic; font-size:1.35rem; line-height:1.5; color:var(--cream)}
.quote .qby{margin-top:.5rem; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold)}
.quote .qby .qscore{color:var(--cream2); text-transform:none; letter-spacing:0; margin-left:.4rem}
.quote .qby .why-src{margin-left:.5rem}
.press-strip{display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem .9rem; margin:.4rem 0 1.2rem}
.press-strip .ps-l{font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.press-strip .ps-link{font-size:.82rem; color:var(--gold); text-decoration:none; border-bottom:1px solid transparent}
.press-strip .ps-link:hover{border-bottom-color:var(--gold)}
.press-strip.lovedby{margin-top:-.4rem}
.press-strip.lovedby .ps-l{color:#c98b8b}
.press-strip.lovedby .ps-link{color:#d8a7a7}
.press-strip.lovedby .ps-link:hover{border-bottom-color:#d8a7a7}
.press-strip .ps-link.nolink{cursor:default;border-bottom:none}

.src-credential{margin:.2rem 0 1.2rem; font-size:.95rem; line-height:1.5; color:var(--cream2)}
.src-credential .kicker{display:inline; margin-right:.4rem; color:var(--gold2)}
.selfdesc{font-family:var(--serif2); font-size:1.25rem; line-height:1.6; color:var(--cream2); font-style:italic}

/* case-file coverage: how much we know, kept separate from quality */
.case-status{padding:1.4rem;border:1px solid var(--line2);border-radius:8px;background:rgba(255,255,255,.025)}
.case-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.case-status-grid>div{display:flex;flex-direction:column;gap:.35rem;background:var(--bg2);padding:1.05rem}
.case-status-grid span,.case-next>span{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.case-status-grid strong{font-family:var(--serif);font-size:1.15rem;color:var(--cream)}
.case-status-grid small{font-size:.73rem;line-height:1.45;color:var(--cream2)}
.case-next{display:grid;grid-template-columns:120px 1fr;gap:1rem;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.case-next ul{margin:0;padding-left:1.1rem;columns:2;column-gap:2rem;color:var(--cream2);font-size:.78rem;line-height:1.55}
.case-next li{break-inside:avoid;margin:0 0 .35rem}

/* menu / from the kitchen */
.lbl-link{color:var(--gold2); text-transform:none; letter-spacing:.03em; font-size:.74rem;
  border-bottom:1px solid rgba(228,194,119,.35); padding-bottom:1px}
.lbl-link:hover{color:var(--gold); border-color:var(--gold)}
.mnote{font-family:var(--serif2); font-style:italic; font-size:1.08rem; color:var(--cream2);
  margin:-.3rem 0 1.4rem}
.menu{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem 3rem}
.msec{break-inside:avoid; margin-bottom:.4rem}
.msec-t{font-family:var(--serif); font-weight:600; font-size:1.05rem; color:var(--gold2);
  letter-spacing:.02em; padding-bottom:.4rem; margin-bottom:.7rem; border-bottom:1px solid var(--line)}
.mi{margin-bottom:.75rem}
.mi-h{display:flex; justify-content:space-between; align-items:baseline; gap:.8rem}
.mi-n{font-family:var(--serif2); font-size:1.12rem; line-height:1.25; color:var(--cream)}
.mi-p{flex:none; font-size:.9rem; font-weight:500; color:var(--gold2);
  font-variant-numeric:tabular-nums; white-space:nowrap}
.mi-d{font-size:.82rem; line-height:1.4; color:var(--muted); margin-top:.15rem}

/* dimensions */
.dims{display:grid; grid-template-columns:1fr 1fr; gap:.6rem 2.4rem}
.dimrow{display:grid; grid-template-columns:96px 1fr 88px; align-items:center; gap:.7rem; padding:.18rem 0}
.dimrow .dl{font-size:.82rem; color:var(--cream2)}
.dimrow .dt{height:5px; background:var(--bg3); border-radius:99px; overflow:hidden}
.dimrow .df{height:5px; border-radius:99px}
.dimrow .dv{font-family:var(--serif); font-weight:700; font-size:.95rem; text-align:right}

.method-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:7px; overflow:hidden; margin:2rem 0}
.method-grid > div{background:var(--bg2); padding:1.2rem}
.method-grid p{margin-top:.55rem; color:var(--cream2); line-height:1.65}
.method-note{font-family:var(--serif2); font-size:1.17rem; line-height:1.65; color:var(--cream2); padding-left:1rem; border-left:2px solid var(--gold)}

/* gallery */
.gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.5rem}
.gallery-item{position:relative; margin:0; min-width:0}
.gallery-item[hidden]{display:none}
.gallery img{width:100%; aspect-ratio:1; object-fit:cover; border-radius:3px; cursor:pointer; transition:transform .3s, filter .3s}
.gallery img:hover{transform:scale(1.03); filter:brightness(1.08)}
.gallery-filters{display:flex; gap:.45rem; overflow-x:auto; scrollbar-width:none; margin:-.35rem 0 1rem; padding:.2rem 0}
.gallery-filters::-webkit-scrollbar{display:none}
.photo-source{position:absolute; left:.45rem; bottom:.45rem; font-family:var(--sans); font-size:.55rem; letter-spacing:.08em;
  text-transform:uppercase; padding:.25rem .45rem; border-radius:4px; background:rgba(10,8,7,.86); color:var(--cream)}
.photo-source.official{border:1px solid rgba(201,162,78,.6); color:var(--gold2)}
.photo-caption{font-size:.72rem; color:var(--muted); margin-top:.35rem; line-height:1.35}
#map{height:380px; border-radius:5px; overflow:hidden; border:1px solid var(--line); margin-top:.4rem}
.leaflet-container{background:#0E0C0B}

/* reviews */
.greview{background:var(--bg2); border:1px solid var(--line); border-radius:5px; padding:1rem 1.2rem; margin-bottom:.8rem}
.greview .gtxt{color:var(--cream2); font-size:.95rem; line-height:1.55}
.greview .gby{margin-top:.5rem; font-size:.74rem; color:var(--muted)}
.greview .gby b{color:var(--gold2)}

/* full map page */
#fullmap{height:calc(100vh - 58px)}
.map-ui{position:fixed; top:74px; left:16px; z-index:500; display:flex; flex-direction:column; gap:.6rem; pointer-events:none}
.map-toggle,.map-legend{pointer-events:auto; background:rgba(14,12,11,.86); backdrop-filter:blur(9px);
  border:1px solid var(--line2); border-radius:11px; padding:.55rem .75rem; box-shadow:0 12px 34px rgba(0,0,0,.45)}
.map-toggle{display:flex; align-items:center; gap:.4rem}
.map-toggle-l{font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-right:.25rem}
.mt-btn{font-family:var(--sans); font-size:.74rem; letter-spacing:.03em; color:var(--cream2); background:transparent;
  border:1px solid var(--line2); border-radius:999px; padding:.26rem .8rem; cursor:pointer; transition:all .18s}
.mt-btn:hover{border-color:var(--gold); color:var(--gold)}
.mt-btn.on{background:var(--gold); border-color:var(--gold); color:#1a130a; font-weight:600}
.map-legend{display:flex; flex-direction:column; gap:.32rem; max-height:62vh; overflow:auto}
.lg-item{display:flex; align-items:center; gap:.5rem; font-family:var(--sans); font-size:.74rem; color:var(--cream2); white-space:nowrap}
.lg-dot{width:11px; height:11px; border-radius:50%; flex:none; border:1px solid rgba(251,244,230,.55)}

/* footer */
.site-foot{max-width:var(--maxw); margin:5rem auto 0; padding:2.6rem 2rem 3rem; border-top:1px solid var(--line);
  color:var(--muted); font-size:.82rem}
.site-foot em{color:var(--gold)}
.foot-fine{margin-top:.6rem; max-width:680px; line-height:1.6}
.foot-link{margin-top:.8rem}.foot-link a{color:var(--gold2); border-bottom:1px solid rgba(201,162,78,.35)}

.insiders-page,.partner-page{padding-top:6.5rem; padding-bottom:4rem}
.insiders-page > h1,.partner-page > h1{font-size:clamp(2.5rem,5.5vw,4.3rem); line-height:1.03; margin:.45rem 0 .8rem}
.page-intro{font-family:var(--serif2); font-size:1.3rem; line-height:1.55; color:var(--cream2); max-width:750px}
.insider-grid,.partner-grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2.2rem 0}
.insider-card,.partner-card{display:block; background:var(--bg2); border:1px solid var(--line2); border-radius:10px; padding:1.5rem;
  transition:transform .2s,border-color .2s}
.insider-card:hover{transform:translateY(-3px); border-color:var(--gold)}
.insider-card h2,.partner-card h2{font-family:var(--serif); font-size:1.7rem; margin:.45rem 0}
.insider-card p,.partner-card p{color:var(--cream2)}
.card-link{display:block; color:var(--gold2); font-size:.75rem; letter-spacing:.09em; text-transform:uppercase; margin-top:1.2rem}
.partner-card.featured{border-color:rgba(201,162,78,.55); background:linear-gradient(145deg,rgba(201,162,78,.12),var(--bg2) 58%)}
.firewall{border:1px solid rgba(116,194,138,.35); background:rgba(116,194,138,.08); color:var(--cream2); border-radius:8px; padding:1rem 1.15rem; margin:1.5rem 0}
.firewall b{color:var(--good)}

/* ── Motion ── */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none}}

/* ── Lightbox ── */
.lb{position:fixed; inset:0; z-index:200; background:rgba(8,6,5,.95); display:flex;
  align-items:center; justify-content:center; padding:4vh 4vw; cursor:zoom-out; animation:lbin .25s ease}
@keyframes lbin{from{opacity:0}to{opacity:1}}
.lb img{max-width:100%; max-height:100%; object-fit:contain; border-radius:4px;
  box-shadow:0 30px 90px rgba(0,0,0,.7)}
.lb .lbx{position:absolute; top:1.2rem; right:1.8rem; color:var(--cream); font-size:1.8rem;
  cursor:pointer; line-height:1; opacity:.8}
.lb .lbx:hover{opacity:1; color:var(--gold)}

@media(max-width:720px){
  .nav-toggle{display:flex}
  .head-nav{display:none; position:absolute; top:calc(100% - .2rem); left:1rem; right:1rem; padding:.8rem 1rem;
    flex-direction:column; align-items:stretch; gap:.15rem; background:rgba(14,12,11,.98); border:1px solid var(--line2);
    border-radius:9px; box-shadow:0 18px 48px rgba(0,0,0,.58)}
  .head-nav.open{display:flex}
  .head-nav a{font-size:.72rem; padding:.55rem .2rem}
  .hero{height:76vh; min-height:590px}
  .hero-body,.dh-body{flex-direction:column; align-items:flex-start}
  .hero-aside{flex-direction:row; align-items:center} .dims,.menu,.method-grid,.insider-grid,.partner-grid{grid-template-columns:1fr}
  .verdict-seal{text-align:left; min-width:190px}
  .cz-form{flex-direction:column}.cz-go{min-height:48px;padding:.75rem 1rem}
  .head-inner,.wrap,.filters-inner,.dcol{padding-left:1.1rem; padding-right:1.1rem}
}

/* ── Landing — "Where are you eating?" city picker ── */
.on-landing .head-nav{display:none}
.on-landing .city-switch{display:none}
.landing{max-width:1120px; margin:0 auto; padding:4.5rem 1.3rem 4rem}
.land-hero{text-align:center; max-width:42rem; margin:1.2rem auto 3rem}
.land-h1{font-size:clamp(2.4rem,6vw,4.2rem); line-height:1.05; margin:.5rem 0 0; color:var(--cream)}
.land-sub{font-family:var(--serif2); font-style:italic; font-size:clamp(1.05rem,2.2vw,1.4rem); line-height:1.55; color:var(--cream2); margin:1.1rem 0 0}
.lc-sec{margin:0 0 2.6rem}
.lc-sec-h{font-family:var(--sans); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding-bottom:.7rem; border-bottom:1px solid var(--line); margin-bottom:1.1rem}
.lc-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(212px,1fr)); gap:1rem}
.lc-card{position:relative; display:block; height:248px; border-radius:11px; overflow:hidden; cursor:pointer; text-decoration:none; background:var(--bg2); box-shadow:0 1px 0 rgba(255,255,255,.04)}
.lc-photo{position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .55s ease; filter:brightness(.82)}
.lc-grad{position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,8,6,.05) 28%,rgba(10,8,6,.55) 62%,rgba(10,8,6,.92) 100%)}
.lc-card:hover .lc-photo{transform:scale(1.07)}
.lc-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.45)}
.lc-body{position:absolute; left:0; right:0; bottom:0; padding:1rem 1.1rem 1.05rem; z-index:1}
.lc-tier{display:inline-block; font-family:var(--sans); font-size:.56rem; letter-spacing:.13em; text-transform:uppercase; padding:.14rem .45rem; border-radius:4px; margin-bottom:.5rem; color:var(--gold); background:rgba(201,162,78,.18)}
.lc-tier.world{color:#8fb8d4; background:rgba(143,184,212,.18)}
.lc-tier.frontier{color:var(--cream2); background:rgba(255,255,255,.08)}
.lc-name{font-family:var(--serif); font-size:1.65rem; line-height:1.05; color:#fff; margin:0}
.lc-tag{font-family:var(--serif2); font-style:italic; font-size:.95rem; color:rgba(245,238,224,.82); margin:.25rem 0 .45rem}
.lc-count{font-family:var(--sans); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold2)}
.lc-soon .lc-photo{filter:grayscale(.7) brightness(.4)}
.lc-soon .lc-count{color:var(--muted)}
.land-foot{text-align:center; font-family:var(--sans); font-size:.74rem; letter-spacing:.04em; color:var(--muted); margin-top:1.5rem; padding-top:1.6rem; border-top:1px solid var(--line)}
.city-all{color:var(--gold); font-weight:600}
@media(max-width:520px){ .lc-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.7rem} .lc-card{height:200px} .lc-name{font-size:1.3rem} }

/* ── Paris cover — editorial intelligence direction ── */
.on-home .site-head{position:fixed; left:0; right:0; top:0; background:linear-gradient(180deg,rgba(5,10,10,.64),transparent); border-bottom:1px solid rgba(255,255,255,.18); backdrop-filter:none}
.on-home .site-head.solid{background:rgba(7,16,17,.92); border-color:rgba(255,255,255,.16); backdrop-filter:blur(12px)}
.on-home .head-inner{max-width:none; min-height:72px; padding:0 2.35rem}
.on-home .brand-sub{color:rgba(255,255,255,.62)}
.on-home .head-nav{align-self:stretch; gap:0}
.on-home .head-nav a{display:flex; align-items:center; padding:0 1.15rem; border-left:1px solid rgba(255,255,255,.16); border-bottom:0; color:#fff; font-size:.65rem; letter-spacing:.02em; text-transform:none}
.on-home .head-nav a:last-child{border-right:1px solid rgba(255,255,255,.16)}
.on-home .head-nav a:hover,.on-home .head-nav a.active{color:#fff; background:rgba(255,255,255,.11)}

.rc-hero{position:relative; min-height:760px; height:100svh; overflow:hidden; color:#fff; background:#071011}
.rc-hero-image{position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.015); animation:rc-cover-in 1.25s cubic-bezier(.2,.7,.2,1) both}
.rc-hero-shade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,10,11,.24),rgba(4,10,11,.06) 34%,rgba(4,10,11,.2) 58%,rgba(4,10,11,.98) 100%),linear-gradient(90deg,rgba(4,10,11,.18),transparent 55%)}
.rc-cover{position:absolute; z-index:2; left:50%; top:43%; width:min(900px,90vw); transform:translate(-50%,-50%); text-align:center}
.rc-cover-kicker{font-size:.62rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; margin-bottom:1.05rem; text-shadow:0 2px 18px rgba(0,0,0,.5)}
.rc-cover h1{font-family:var(--sans); font-size:clamp(4.7rem,10vw,10rem); font-weight:700; letter-spacing:-.075em; line-height:.72; text-shadow:0 3px 30px rgba(0,0,0,.28)}
.rc-cover h1 em{display:inline-block; padding-right:.07em; font-family:var(--serif2); font-weight:500; letter-spacing:-.055em; line-height:.9}
.rc-cover > p{margin:1.65rem auto 0; font-size:clamp(1.05rem,2vw,1.42rem); font-weight:600; letter-spacing:-.035em; text-shadow:0 2px 18px rgba(0,0,0,.55)}
.rc-cover-actions{display:flex; justify-content:center; align-items:center; gap:1.3rem; margin-top:1.45rem}
.rc-primary{display:inline-flex; align-items:center; justify-content:center; gap:1.1rem; min-height:52px; padding:.25rem 1.25rem .25rem 1.55rem; color:#081112; background:#fff; border:0; border-radius:999px; font-family:var(--sans); font-size:.72rem; font-weight:800; cursor:pointer; transition:transform .2s,background .2s}
.rc-primary span{font-size:.9rem}.rc-primary:hover{background:#eee9dc; transform:translateY(-2px)}
.rc-text-link{font-size:.7rem; font-weight:700; border-bottom:1px solid rgba(255,255,255,.65); padding:.45rem 0}
.rc-media-note{position:absolute; z-index:2; left:2.35rem; bottom:202px; font-size:.48rem; letter-spacing:.11em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.rc-process{position:absolute; z-index:2; left:0; right:0; bottom:0; min-height:184px; display:grid; grid-template-columns:1.45fr repeat(3,1fr); border-top:1px solid rgba(255,255,255,.2); background:linear-gradient(180deg,rgba(6,15,16,.12),rgba(6,15,16,.92))}
.rc-process > div{padding:1.45rem 2.35rem; border-right:1px solid rgba(255,255,255,.17)}
.rc-process-intro{display:flex; align-items:flex-start; max-width:34rem; font-size:clamp(.88rem,1.3vw,1.08rem); font-weight:600; line-height:1.35; letter-spacing:-.035em}
.rc-process-step{display:flex; flex-direction:column; justify-content:space-between}
.rc-process-step span{display:flex; align-items:baseline; gap:.55rem; font-size:.52rem; color:rgba(255,255,255,.58); text-transform:uppercase; letter-spacing:.08em}
.rc-process-step span b{font-size:2.4rem; line-height:1; letter-spacing:-.08em; color:#fff}
.rc-process-step strong{font-size:.88rem; line-height:1.15; letter-spacing:-.035em}
.rc-process-step small{font-size:.57rem; color:rgba(255,255,255,.58); letter-spacing:.02em}

.rc-statement{padding-top:clamp(5rem,9vw,9rem); padding-bottom:clamp(5rem,9vw,9rem)}
.rc-statement-grid{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr); gap:clamp(2.5rem,8vw,9rem); align-items:end; margin-top:1.5rem}
.rc-statement h2{font-family:var(--sans); font-size:clamp(3rem,6.6vw,6.5rem); font-weight:600; letter-spacing:-.075em; line-height:.91}
.rc-statement h2 em{font-family:var(--serif2); font-weight:500; color:var(--cream2)}
.rc-statement-grid p{max-width:34rem; color:var(--cream2); font-size:1rem; line-height:1.65}
.rc-statline{display:flex; flex-wrap:wrap; gap:1.3rem; margin-top:2rem; padding-top:1.25rem; border-top:1px solid var(--line2)}
.rc-statline span{display:flex; align-items:baseline; gap:.35rem; font-size:.6rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted)}
.rc-statline b{font-size:1.4rem; letter-spacing:-.06em; color:var(--cream)}

.rc-doors,.rc-ask-section{border-top:1px solid var(--line2)}
.rc-section-label{display:flex; justify-content:space-between; align-items:center; padding:1rem 2.35rem; color:var(--muted); font-size:.56rem; letter-spacing:.13em; text-transform:uppercase}
.rc-door-grid{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line2)}
.rc-door{position:relative; min-height:620px; overflow:hidden; border-right:1px solid var(--line2); background:var(--bg2)}
.rc-door:last-child{border-right:0}.rc-door img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.72) brightness(.76); transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.rc-door-shade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,9,9,.04),rgba(5,9,9,.08) 38%,rgba(5,9,9,.92) 100%)}
.rc-door:hover img{transform:scale(1.045); filter:saturate(.9) brightness(.82)}
.rc-door-copy{position:absolute; z-index:2; left:2rem; right:2rem; bottom:2rem; display:flex; flex-direction:column}
.rc-door-copy small{font-size:.56rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.62)}
.rc-door-copy strong{font-size:clamp(1.55rem,2.7vw,2.65rem); letter-spacing:-.055em; line-height:1.05; margin-top:.45rem; color:#fff}
.rc-door-copy em{font-family:var(--sans); font-size:.78rem; line-height:1.45; margin-top:.75rem; color:rgba(255,255,255,.76); max-width:23rem}
.rc-door-source{position:absolute; z-index:2; top:1.15rem; right:1.25rem; font-size:.43rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.52)}

/* Google-hosted imagery is resolved just in time; every displayed image carries
   the provider and creator attribution returned with that fresh photo record. */
.rc-photo-credit{position:absolute;z-index:6;right:.55rem;bottom:.55rem;max-width:calc(100% - 1.1rem);padding:.25rem .42rem;border-radius:3px;background:rgba(4,9,10,.78);color:rgba(255,255,255,.82);font-family:var(--sans);font-size:.46rem;line-height:1.25;letter-spacing:.02em;text-align:right;pointer-events:auto}
.rc-photo-credit a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.rc-hero>.rc-photo-credit{right:2.35rem;bottom:202px}
.detail-hero,.gallery-item{position:relative}
[data-rc-photo]{background-color:#111919}
img[data-rc-photo]{display:block;color:transparent}

.rc-ask-section{padding-bottom:clamp(5rem,8vw,8rem); background:#0b1111}
.rc-ask-section .concierge{margin:0 auto; padding-top:clamp(3rem,6vw,6rem)}
.rc-ask-section .cz-inner{background:transparent; border:0; border-radius:0; padding:0; box-shadow:none}
.rc-ask-section .cz-eyebrow{text-align:center; color:var(--cream); font-size:clamp(1.65rem,3vw,2.8rem); font-weight:600; letter-spacing:-.06em; text-transform:none; margin-bottom:1.5rem}
.rc-ask-section .cz-form{max-width:880px; margin:0 auto; padding:.45rem; border:1px solid rgba(255,255,255,.28); border-radius:999px}
.rc-ask-section .cz-input{background:transparent; border:0; border-radius:999px; font-family:var(--sans); font-size:1rem; padding:.95rem 1.15rem}
.rc-ask-section .cz-input:focus{background:transparent}.rc-ask-section .cz-go{border-radius:999px; background:#fff; color:#091112; padding:0 1.8rem}
.rc-ask-section .cz-ex{justify-content:center; margin-top:1.15rem}.rc-ask-section .cz-chip{font-family:var(--sans); font-style:normal; font-size:.7rem; border-color:rgba(255,255,255,.18)}

@keyframes rc-cover-in{from{opacity:.35; transform:scale(1.08)}to{opacity:1; transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.rc-hero-image{animation:none}.rc-primary,.rc-door img{transition:none}}
@media(max-width:900px){
  .on-home .head-inner{padding:0 1.2rem}.on-home .brand-sub{display:none}.on-home .head-nav a{padding:0 .75rem}
  .rc-process{grid-template-columns:repeat(3,1fr)}.rc-process-intro{display:none}.rc-process > div{padding:1.25rem 1.1rem}
  .rc-media-note{left:1.2rem}.rc-statement-grid{grid-template-columns:1fr; gap:2rem; align-items:start}
  .rc-door{min-height:500px}.rc-door-copy{left:1.25rem;right:1.25rem;bottom:1.35rem}
}
@media(max-width:720px){
  .on-home .nav-toggle{background:rgba(5,12,13,.38); border-color:rgba(255,255,255,.28)}
  .on-home .head-nav{top:72px; left:.8rem; right:.8rem; background:rgba(7,16,17,.97)}
  .on-home .head-nav a,.on-home .head-nav a:last-child{border:0; border-bottom:1px solid rgba(255,255,255,.12); padding:.75rem .4rem}
  .rc-hero{min-height:790px}.rc-cover{top:38%; width:92vw}.rc-cover h1{font-size:clamp(4rem,22vw,6.5rem)}
  .rc-cover-actions{flex-direction:column; gap:.65rem}.rc-media-note{bottom:205px; font-size:.42rem}
  .rc-process{min-height:188px; overflow-x:auto; grid-template-columns:repeat(3,minmax(165px,1fr))}.rc-process > div{min-width:165px}
  .rc-process-step span b{font-size:2rem}.rc-statement{padding-top:4.7rem;padding-bottom:4.7rem}.rc-statement h2{font-size:clamp(2.7rem,13vw,4.5rem)}
  .rc-section-label{padding:.85rem 1.1rem}.rc-section-label span:last-child{display:none}
  .rc-door-grid{display:flex; overflow-x:auto; scroll-snap-type:x mandatory}.rc-door{flex:0 0 86vw; min-height:500px; scroll-snap-align:start}
  .rc-ask-section .concierge{padding-left:1.1rem;padding-right:1.1rem}.rc-ask-section .cz-form{border-radius:20px;padding:.55rem}.rc-ask-section .cz-go{border-radius:14px}
  .case-status-grid{grid-template-columns:1fr}.case-next{grid-template-columns:1fr}.case-next ul{columns:1}
}
