/* ============================================================
   Aina Club — faithful lightweight port of the Figma Make design
   Cormorant Garamond (display) + Inter (text), self-hosted.
   Pure black/white, sharp corners, generous negative space.
   ============================================================ */

/* ---------- Fonts (subset: latin / latin-ext / cyrillic) ---------- */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/cormorant-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/cormorant-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/cormorant-400-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/inter-300-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/inter-300-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/inter-300-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-400-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-500-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-500-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}

/* cyrillic-ext — казахские буквы (ә ғ қ ң ө ү һ и др.) */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/cormorant-400-cyrillicext.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/inter-300-cyrillicext.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-400-cyrillicext.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-500-cyrillicext.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}

/* ---------- Tokens ---------- */
:root{
  --black:#0a0a0a;
  --white:#ffffff;
  --cream:#faf7f0;             /* warm off-white for "paper" sections */
  --accent:#d7a85a;            /* warm gold — used sparingly on key touches */
  --muted:rgba(10,10,10,.65);
  --muted-2:rgba(10,10,10,.5);
  --line:rgba(215,168,90,.45);   /* hairlines + dividers — tinted with accent */
  --line-dark:rgba(215,168,90,.35); /* same idea, on dark backgrounds */
  --maxw:1600px;
  --px:1.5rem;                 /* 24px mobile gutter           */
  --ann-h:40px;
  --nav-h:84px;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --track:0.32em;              /* tracking-widest-plus         */
}
@media (min-width:768px){:root{--px:3rem;}}   /* 48px desktop gutter */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--nav-h);}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;background:var(--white);color:var(--black);font-family:var(--sans);font-weight:300;line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;}
img,video,picture,iframe{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
h1,h2,h3,h4,p{margin:0;}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;}

/* ---------- Helpers ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--px);}
.eyebrow{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:var(--track);font-size:.75rem;line-height:1.5;}  /* 12px */
.eyebrow--sm{font-size:.6875rem;}                                                /* 11px */
.muted{color:var(--muted);}
.lead{font-size:1.0625rem;line-height:1.7;}
@media (min-width:768px){.lead{font-size:1.1875rem;}}

/* underlined arrow link */
.alink{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;border-bottom:1px solid var(--black);padding-bottom:.35rem;align-self:flex-start;}
.alink svg{width:16px;height:16px;}
.icon{display:inline-block;vertical-align:middle;}

/* ============================================================
   HEADER  (transparent over hero on home, solid otherwise)
   ============================================================ */
.header{position:fixed;top:0;left:0;right:0;z-index:50;color:var(--black);transition:background-color .5s var(--ease),backdrop-filter .5s var(--ease),border-color .5s var(--ease);border-bottom:1px solid transparent;}
.header.is-solid{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:rgba(10,10,10,.05);}
body.home .header:not(.is-solid){color:var(--white);}

/* app banner */
.announce{display:none;border-bottom:1px solid rgba(10,10,10,.05);}
@media (min-width:768px){.announce{display:block;}}
body.home .header:not(.is-solid) .announce{border-bottom-color:rgba(255,255,255,.2);}
.announce__row{height:var(--ann-h);display:flex;align-items:center;justify-content:space-between;font-size:.6875rem;letter-spacing:var(--track);text-transform:uppercase;}
.announce__row>span{opacity:.7;}
.announce__stores{display:inline-flex;align-items:center;gap:1.25rem;}
.announce__cta{display:inline-flex;align-items:center;gap:.5rem;opacity:.85;transition:opacity .3s var(--ease);}
.announce__cta:hover{opacity:1;}
.announce__cta svg{width:13px;height:13px;flex:none;}

/* nav bar */
.navbar{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.brand{font-size:1rem;letter-spacing:var(--track);text-transform:uppercase;white-space:nowrap;}
.nav{display:none;align-items:center;gap:2.75rem;}
@media (min-width:768px){.nav{display:flex;}}
.nav a{font-size:.8125rem;letter-spacing:var(--track);text-transform:uppercase;opacity:.8;transition:opacity .3s var(--ease),color .3s var(--ease);}
.nav a:hover{opacity:1;}
.nav a[aria-current="page"]{opacity:1;color:var(--accent);}
.nav__right{display:flex;align-items:center;gap:1.25rem;}
.lang{display:none;align-items:center;gap:.625rem;font-size:.8125rem;letter-spacing:var(--track);text-transform:uppercase;}
@media (min-width:768px){.lang{display:flex;}}
.lang button{opacity:.5;transition:opacity .3s var(--ease),color .3s var(--ease);padding:.25rem;}
.lang button:hover{opacity:.85;}
.lang button.is-active{opacity:1;color:var(--accent);}
.lang .sep{opacity:.3;}

/* burger */
.burger{display:inline-flex;padding:.5rem;margin-right:-.5rem;}
@media (min-width:768px){.burger{display:none;}}
.burger svg{width:20px;height:20px;}
.burger .i-close{display:none;}
body.menu-open .burger .i-open{display:none;}
body.menu-open .burger .i-close{display:inline-block;}

/* mobile dropdown */
.mnav{display:none;background:var(--white);color:var(--black);border-top:1px solid rgba(10,10,10,.05);padding:1.75rem var(--px);}
body.menu-open .mnav{display:block;}
.mnav .mhint{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;opacity:.6;margin-bottom:1.25rem;}
.mnav .mhint a{text-decoration:underline;}
.mnav a.mlink{display:block;font-size:.9375rem;letter-spacing:var(--track);text-transform:uppercase;padding:.85rem 0;}
.mnav .lang{display:flex;gap:1rem;padding-top:1rem;font-size:.9375rem;}

/* ============================================================
   HERO — app-first (dark, two-column: text + phone)
   ============================================================ */
.hero{position:relative;background:var(--black);color:var(--white);overflow:hidden;}
.hero--app{padding-block:9rem 5rem;}
@media (min-width:768px){.hero--app{padding-block:14rem 7rem;min-height:100svh;display:flex;align-items:center;}}
.hero__app{display:grid;grid-template-columns:1fr;gap:3.5rem;align-items:center;width:100%;}
@media (min-width:768px){.hero__app{grid-template-columns:6fr 5fr;gap:5rem;}}
.hero__app-text{max-width:42rem;}
.hero__eyebrow{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;margin-bottom:1.5rem;opacity:.75;}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(2.875rem,9.5vw,5.5rem);line-height:.95;letter-spacing:-.01em;}
.hero__lead{margin-top:2rem;max-width:32rem;color:rgba(255,255,255,.78);}
.hero__stores{margin-top:2.75rem;}
@media (min-width:768px){.hero__stores{margin-top:3.25rem;}}
.hero__app-phone{display:flex;justify-content:center;align-items:center;}

/* phone mockup — sharp corners, gallery-poster style */
/* iPhone-style mockup: rounded corners, subtle bezel, dynamic island.
   Брэнд-исключение: единственное место, где разрешены скруглённые углы —
   реальные телефоны не бывают квадратными, поэтому минимализм здесь жертвуется
   ради узнаваемости. */
.phone{position:relative;width:min(70vw,260px);aspect-ratio:750/1624;background:linear-gradient(145deg,#2a2a2a 0%,#0d0d0d 45%,#1a1a1a 75%,#070707 100%);border-radius:14%/6.5%;padding:2.5%;box-shadow:0 50px 100px -30px rgba(0,0,0,.7),0 22px 50px -16px rgba(0,0,0,.45),inset 0 0 0 1.5px rgba(255,255,255,.06);}
@media (min-width:768px){.phone{width:min(34vw,300px);}}
.phone__screen{position:absolute;inset:2.5%;border-radius:11%/5%;overflow:hidden;background:#000;}
.phone__screen img{width:100%;height:100%;object-fit:cover;display:block;}
/* Dynamic Island — black pill at top centre, sits in the screenshot's status-bar gap */
.phone::before{content:"";position:absolute;top:4.2%;left:50%;transform:translateX(-50%);width:32%;height:3.3%;background:#000;border-radius:100px;z-index:3;}

/* generic full-bleed image section */
.bleed{position:relative;width:100%;overflow:hidden;}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bleed__shade{position:absolute;inset:0;}
.bleed__inner{position:relative;z-index:10;height:100%;color:var(--white);display:flex;}

/* ============================================================
   APP FEATURES (4 cards) — light section
   ============================================================ */
.feats{padding-block:6rem;border-top:1px solid var(--line);}
@media (min-width:768px){.feats{padding-block:9rem;}}
.feats__head{max-width:52rem;margin-bottom:4.5rem;}
@media (min-width:768px){.feats__head{margin-bottom:6.5rem;}}
.feats__head .eyebrow{display:block;margin-bottom:1.75rem;color:var(--muted-2);}
.feats__head h2{font-family:var(--serif);font-weight:400;font-size:2.5rem;line-height:1.05;letter-spacing:-.01em;}
@media (min-width:768px){.feats__head h2{font-size:3.75rem;}}
.feats__head p{margin-top:1.75rem;color:var(--muted);line-height:1.7;max-width:36rem;font-size:1.0625rem;}
.feats__grid{display:grid;grid-template-columns:1fr;gap:3rem;}
@media (min-width:768px){.feats__grid{grid-template-columns:repeat(2,1fr);gap:3.5rem 4rem;}}
@media (min-width:1100px){.feats__grid{grid-template-columns:repeat(4,1fr);gap:3rem 3rem;}}
.feat{display:flex;flex-direction:column;gap:1.25rem;border-top:1px solid var(--line);padding-top:2rem;}
.feat__num{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1;color:rgba(10,10,10,.4);}
.feat__t{font-family:var(--serif);font-weight:400;font-size:1.75rem;letter-spacing:-.01em;line-height:1.15;}
.feat__d{color:var(--muted);line-height:1.7;font-size:1.0625rem;}

/* ============================================================
   ONBOARDING — 5 vertical full-screen slides + side rail
   ============================================================ */
.ob{position:relative;background:var(--white);}
.ob__slide{padding-block:5rem;display:flex;align-items:center;border-top:1px solid var(--line);}
@media (min-width:768px){.ob__slide{min-height:100vh;min-height:100svh;padding-block:6rem;}}
.ob__slide:first-child{border-top:0;}
.ob__slide:nth-child(even){background:var(--cream);}
.ob__slide-in{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;width:100%;}
@media (min-width:768px){
  .ob__slide-in{grid-template-columns:5fr 6fr;column-gap:6rem;}
  .ob__slide:nth-child(even) .ob__media{order:2;justify-content:flex-end;}
  .ob__slide:nth-child(even) .ob__text{order:1;}
}
.ob__media{display:flex;justify-content:center;}
.ob__media .phone{width:min(70vw,260px);}
@media (min-width:768px){.ob__media .phone{width:min(36vw,340px);}}
.ob__num{font-family:var(--serif);font-weight:400;font-size:3.5rem;line-height:1;color:var(--accent);margin-bottom:1.75rem;}
@media (min-width:768px){.ob__num{font-size:5rem;margin-bottom:2rem;}}
.ob__title{font-family:var(--serif);font-weight:400;font-size:2.25rem;line-height:1.05;letter-spacing:-.01em;}
@media (min-width:768px){.ob__title{font-size:3.5rem;}}
.ob__desc{margin-top:1.75rem;color:var(--muted);line-height:1.7;max-width:34rem;font-size:1.125rem;}
.ob__cta{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1rem;}

.stores__btns{display:flex;flex-wrap:wrap;gap:1rem;}

/* Side rail — vertical timeline (fixed during onboarding) */
.ob__rail{position:fixed;top:50%;right:1.25rem;transform:translateY(-50%);z-index:20;opacity:0;pointer-events:none;transition:opacity .5s var(--ease);}
@media (min-width:768px){.ob__rail{right:2.5rem;}}
.ob__rail.is-visible{opacity:1;pointer-events:auto;}
.ob__rail-line{position:absolute;left:5px;top:.4rem;bottom:.4rem;width:1px;background:var(--line);}
@media (min-width:768px){.ob__rail-line{left:6px;}}
.ob__rail-list{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem;}
@media (min-width:768px){.ob__rail-list{gap:2rem;}}
.ob__rail-item{position:relative;display:flex;align-items:center;gap:.85rem;cursor:pointer;color:rgba(215,168,90,.55);transition:color .3s var(--ease);}
.ob__rail-dot{width:11px;height:11px;background:transparent;border:1px solid rgba(215,168,90,.45);transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);flex:none;}
@media (min-width:768px){.ob__rail-dot{width:13px;height:13px;}}
.ob__rail-num{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;}
@media (max-width:767px){.ob__rail-num{display:none;}}
.ob__rail-item.is-active{color:var(--accent);}
.ob__rail-item.is-active .ob__rail-dot{background:var(--accent);border-color:var(--accent);transform:scale(1.15);}
.ob__rail-item:hover{color:var(--accent);}
/* Auto-advance progress segment: vertical gold line that fills over 10s
   from the active dot to the next one. JS sets transition + transform.
   Width 3px — thicker than the static 1px rail-line so it's clearly the
   "currently filling" indicator. */
.ob__rail-progress{position:absolute;left:4px;top:calc(100% + .25rem);width:3px;height:1rem;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:none;pointer-events:none;border-radius:0;}
@media (min-width:768px){.ob__rail-progress{left:5px;height:1.5rem;}}

/* store button — minimal black/white badge.
   Default is DARK text (works on white/cream backgrounds — onboarding slide-5,
   any light context). Hero + split__panel override to light text. */
.store{display:inline-flex;align-items:center;gap:.875rem;padding:1rem 1.5rem;border:1px solid currentColor;background:transparent;color:var(--black);min-width:11.5rem;transition:background .35s var(--ease),color .35s var(--ease);}
.store:hover{background:var(--black);color:var(--white);}
.hero .store,.split__panel .store{color:var(--white);}
.hero .store:hover,.split__panel .store:hover{background:var(--white);color:var(--black);}
.store__icon{width:24px;height:24px;flex:none;}
.store__txt{display:flex;flex-direction:column;line-height:1;text-align:left;gap:.35rem;}
.store__t{font-size:.625rem;letter-spacing:var(--track);text-transform:uppercase;opacity:.72;}
.store__n{font-family:var(--sans);font-weight:500;font-size:1.0625rem;letter-spacing:.005em;}

/* ============================================================
   PLACES (where to find) — light slider
   ============================================================ */
.places{padding-block:6rem;border-top:1px solid var(--line);background:var(--white);}
@media (min-width:768px){.places{padding-block:9rem;}}
.places__head{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3.5rem;}
@media (min-width:768px){.places__head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:3rem;margin-bottom:5rem;}}
.places__head h2{font-family:var(--serif);font-weight:400;font-size:2.5rem;letter-spacing:-.01em;line-height:1.05;}
@media (min-width:768px){.places__head h2{font-size:3.25rem;}}
.places__head p{margin-top:1rem;color:var(--muted);font-size:1.0625rem;}

/* 2×2 bento grid of full-bleed restaurant tiles with overlay text. */
.places__grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media (min-width:768px){.places__grid{grid-template-columns:1fr 1fr;gap:1.25rem;}}
@media (min-width:1100px){.places__grid{gap:1.5rem;}}

.place{position:relative;display:block;overflow:hidden;aspect-ratio:16/10;background:var(--black);color:var(--white);isolation:isolate;}
@media (min-width:768px){.place{aspect-ratio:4/3;}}
@media (min-width:1100px){.place{aspect-ratio:16/11;}}
.place__media{position:absolute;inset:0;}
.place__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.place__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.35) 70%,rgba(0,0,0,.7) 100%);pointer-events:none;}
.place__text{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;z-index:2;}
@media (min-width:768px){.place__text{left:2.25rem;right:2.25rem;bottom:2.25rem;}}
.place__eyebrow{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;opacity:.9;margin-bottom:.85rem;}
.place__name{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.05;letter-spacing:-.01em;}
@media (min-width:768px){.place__name{font-size:2.5rem;}}
@media (min-width:1100px){.place__name{font-size:3rem;}}
.place__arrow{position:absolute;top:1.25rem;right:1.25rem;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.4);color:var(--white);z-index:2;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);}
@media (min-width:768px){.place__arrow{top:1.5rem;right:1.5rem;width:48px;height:48px;}}
.place__arrow svg{width:18px;height:18px;}
.place:hover .place__media img{transform:scale(1.06);}
.place:hover .place__arrow{background:var(--accent);border-color:var(--accent);color:var(--black);transform:rotate(0deg) scale(1.05);}

/* ============================================================
   SWIPE slider (used by places)
   ============================================================ */
.swipe{position:relative;}
.swipe__track{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-inline:var(--px);scrollbar-width:none;-ms-overflow-style:none;}
.swipe__track::-webkit-scrollbar{display:none;}
@media (min-width:768px){.swipe__track{gap:2rem;}}
.swipe__ctrl{margin-top:2.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;}
@media (min-width:768px){.swipe__ctrl{margin-top:3rem;}}
.swipe__dots{display:flex;gap:.5rem;align-items:center;}
.swipe__dot{width:28px;height:1px;background:rgba(10,10,10,.2);border:0;padding:0;cursor:pointer;transition:background .3s var(--ease),height .3s var(--ease);}
.swipe__dot.is-active{background:var(--accent);height:2px;}
.swipe__arrows{display:flex;gap:.5rem;}
.swipe__nav{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--black);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),opacity .3s var(--ease);}
.swipe__nav:hover:not([disabled]){background:var(--black);color:var(--white);border-color:var(--black);}
.swipe__nav[disabled]{opacity:.25;cursor:not-allowed;}
.swipe__nav svg{width:18px;height:18px;}

.feedback{padding-block:8rem;}
@media (min-width:768px){.feedback{padding-block:10rem;}}
.feedback__grid{display:grid;grid-template-columns:1fr;gap:3rem;}
@media (min-width:768px){.feedback__grid{grid-template-columns:5fr 7fr;gap:3rem;}}
.feedback__eyebrow{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);margin-bottom:1.5rem;}
.feedback__title{font-family:var(--serif);font-weight:400;font-size:3rem;line-height:1.05;letter-spacing:-.01em;}
@media (min-width:768px){.feedback__title{font-size:3.75rem;}}
.feedback__lead{margin-top:1.5rem;color:var(--muted);line-height:1.7;max-width:28rem;font-size:1.0625rem;}

/* form */
.form{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:768px){.form{grid-template-columns:1fr 1fr;column-gap:2rem;}}
.form .full{grid-column:1/-1;}
.field label{display:block;font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);margin-bottom:.6rem;}
.field input,.field textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);padding:.85rem 0;font-family:var(--sans);font-weight:300;font-size:1.0625rem;color:var(--black);transition:border-color .35s var(--ease);}
.field textarea{resize:vertical;min-height:5.5rem;line-height:1.6;}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--accent);}
.form__actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:1rem;}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--black);color:var(--white);font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;padding:1.15rem 2.75rem;transition:background-color .35s var(--ease),color .35s var(--ease);}
.btn:hover{background:rgba(10,10,10,.8);}
.form__thanks{font-family:var(--serif);font-weight:400;font-size:1.875rem;line-height:1.2;}
@media (min-width:768px){.form__thanks{font-size:2.25rem;}}

/* ============================================================
   ABOUT page
   ============================================================ */
.ab-hero{height:85vh;}
.ab-hero .bleed__shade{background:rgba(0,0,0,.3);}
.ab-hero .bleed__inner{flex-direction:column;justify-content:flex-end;padding-bottom:5rem;}
.ab-hero h1{font-family:var(--serif);font-weight:400;font-size:3.75rem;line-height:.95;letter-spacing:-.01em;max-width:56rem;}
@media (min-width:768px){.ab-hero h1{font-size:6rem;}}

.manifesto{padding-block:8rem;}
@media (min-width:768px){.manifesto{padding-block:10rem;}}
.manifesto p.lg{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.2;letter-spacing:-.01em;max-width:64rem;}
@media (min-width:768px){.manifesto p.lg{font-size:3rem;}}
.manifesto p.sm{margin-top:2.5rem;max-width:44rem;color:var(--muted);line-height:1.7;font-size:1.0625rem;}

.values{border-top:1px solid var(--line);}
.values__in{padding-block:6rem;}
.values__grid{display:grid;grid-template-columns:1fr;gap:3rem;}
@media (min-width:768px){.values__grid{grid-template-columns:repeat(3,1fr);}}
.values__grid h3{font-family:var(--serif);font-weight:400;font-size:2rem;letter-spacing:-.01em;margin-bottom:1rem;}
.values__grid p{color:var(--muted);line-height:1.7;font-size:1.0625rem;}

.split{display:grid;grid-template-columns:1fr;}
@media (min-width:768px){.split{grid-template-columns:1fr 1fr;}}
.split__img{position:relative;height:50vh;}
@media (min-width:768px){.split__img{height:70vh;}}
.split__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.split__panel{background:var(--black);color:var(--white);display:flex;align-items:center;padding:5rem 2rem;}
@media (min-width:768px){.split__panel{padding:5rem 4rem;}}
.split__panel .box{max-width:32rem;}
.split__panel h2{font-family:var(--serif);font-weight:400;font-size:2.25rem;line-height:1.1;letter-spacing:-.01em;margin-bottom:2rem;}
@media (min-width:768px){.split__panel h2{font-size:3rem;}}
.split__panel p{color:rgba(255,255,255,.72);line-height:1.7;font-size:1.0625rem;}
.split__panel .stores__btns{margin-top:2.5rem;}

/* ============================================================
   RESTAURANTS catalog
   ============================================================ */
.cat{padding-top:8rem;padding-bottom:6rem;}
@media (min-width:768px){.cat{padding-top:10rem;}}
.cat h1{font-family:var(--serif);font-weight:400;font-size:3rem;line-height:1.05;letter-spacing:-.01em;max-width:56rem;margin-bottom:5rem;}
@media (min-width:768px){.cat h1{font-size:4.5rem;margin-bottom:7rem;}}
.cat__list{display:flex;flex-direction:column;gap:6rem;}
@media (min-width:768px){.cat__list{gap:8rem;}}
.row{display:grid;grid-template-columns:1fr;gap:2rem;align-items:end;}
@media (min-width:768px){.row{grid-template-columns:7fr 5fr;gap:3rem;}}
.row__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:rgba(10,10,10,.05);}
.row__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.row:hover .row__media img{transform:scale(1.05);}
.row__city{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);margin-bottom:1rem;}
.row__name{font-family:var(--serif);font-weight:400;font-size:2.5rem;line-height:1.05;letter-spacing:-.01em;margin-bottom:1.5rem;}
@media (min-width:768px){.row__name{font-size:3.75rem;}}
.row__tag{font-family:var(--serif);font-weight:400;font-size:1.375rem;color:var(--muted);margin-bottom:1.5rem;}
.row__desc{color:rgba(10,10,10,.72);line-height:1.7;max-width:30rem;margin-bottom:2rem;font-size:1.0625rem;}
@media (min-width:768px){
  .row--rev .row__media{order:2;}
  .row--rev .row__text{order:1;}
}

/* ============================================================
   RESTAURANT detail
   ============================================================ */
.d-hero{height:100vh;height:100svh;}
.d-hero .bleed__shade{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.35) 60%,rgba(0,0,0,.6) 100%);}
.d-hero .bleed__inner{flex-direction:column;justify-content:flex-end;padding-bottom:5rem;}
@media (min-width:768px){.d-hero .bleed__inner{padding-bottom:7rem;}}
.d-hero__city{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;opacity:.85;margin-bottom:1.5rem;}
.d-hero h1{font-family:var(--serif);font-weight:400;font-size:4.5rem;line-height:.95;letter-spacing:-.01em;}
@media (min-width:768px){.d-hero h1{font-size:10vw;}}
.d-hero__tag{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.625rem;margin-top:1.5rem;opacity:.9;}
@media (min-width:768px){.d-hero__tag{font-size:2rem;}}

/* venue index marker (e.g. "№ 02 / 04") top-right of hero */
.d-hero__index{position:absolute;top:calc(var(--nav-h) + 1.25rem);right:var(--px);z-index:10;font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.75rem;}
.d-hero__index::before{content:'';display:inline-block;width:28px;height:1px;background:var(--accent);opacity:.6;}
@media (min-width:768px){.d-hero__index{top:calc(var(--nav-h) + var(--ann-h) + 1.75rem);}}

/* DESCRIPTION — warm cream paper */
.d-desc{background:var(--cream);padding-block:7rem;}
@media (min-width:768px){.d-desc{padding-block:10rem;}}
.d-desc__in{display:grid;grid-template-columns:1fr;gap:3rem;}
@media (min-width:768px){.d-desc__in{grid-template-columns:5fr 7fr;column-gap:5rem;align-items:start;}}
.d-desc__lead{font-family:var(--serif);font-weight:400;font-size:1.875rem;line-height:1.2;letter-spacing:-.01em;color:var(--black);}
@media (min-width:768px){.d-desc__lead{font-size:2.5rem;}}
.d-desc__lead::first-letter{font-family:var(--serif);font-weight:400;font-size:3em;line-height:.85;float:left;padding-right:.5rem;padding-top:.1rem;color:var(--accent);}
.d-desc__body{font-size:1.125rem;line-height:1.7;color:rgba(10,10,10,.78);max-width:36rem;}
.d-desc__body p + p{margin-top:1.25rem;}

/* GALLERY — light section with gold corner brackets framing the slider */
.d-gallery{background:var(--white);color:var(--black);padding-block:6rem;}
@media (min-width:768px){.d-gallery{padding-block:9rem;}}
.d-gallery__head{margin-bottom:3rem;padding-inline:2rem;}
@media (min-width:768px){.d-gallery__head{margin-bottom:4.5rem;padding-inline:4rem;}}
.d-gallery__title{font-family:var(--serif);font-weight:400;font-size:2.5rem;line-height:1.05;letter-spacing:-.01em;}
@media (min-width:768px){.d-gallery__title{font-size:3.5rem;}}
/* Bounded container with extra inset — slider doesn't stretch edge-to-edge
   on any viewport size. Thin gold lines top/bottom frame the gallery area. */
.d-gallery__inner{position:relative;width:100%;max-width:var(--maxw);margin-inline:auto;padding:2rem;border-block:1px solid var(--line);}
@media (min-width:768px){.d-gallery__inner{padding:2.5rem 4rem;}}
/* Inside d-gallery the inner provides the padding — reset track + ctrl */
.d-gallery .swipe__track{padding-inline:0;}
.d-gallery .swipe__ctrl{padding-inline:0;max-width:none;}
.d-gallery__slide{flex:0 0 auto;scroll-snap-align:start;width:80vw;max-width:380px;aspect-ratio:2/3;position:relative;overflow:hidden;background:rgba(10,10,10,.04);transition:opacity .2s linear;}
/* Desktop: 3 slides fit exactly to fill the bounded inner — width is
   calc'd so total = (container − 2 × gap). No empty side space. */
@media (min-width:768px){.d-gallery__slide{width:calc((100% - 4rem)/3);max-width:none;}}
.d-gallery__slide img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.d-gallery__slide:hover img{transform:scale(1.04);}
.d-gallery .swipe__ctrl{margin-top:2.5rem;}
@media (min-width:768px){.d-gallery .swipe__ctrl{margin-top:3rem;}}


/* INFO — visit details, white */
.d-info{background:var(--white);padding-block:6rem;}
@media (min-width:768px){.d-info{padding-block:8rem;}}
.d-info__in{display:grid;grid-template-columns:1fr;gap:3rem;}
@media (min-width:768px){.d-info__in{grid-template-columns:5fr 7fr;gap:4rem;align-items:start;}}
.d-info__col{position:relative;}
.d-info__list{display:flex;flex-direction:column;gap:2.5rem;}
.d-info__label{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:rgba(10,10,10,.45);margin-bottom:.85rem;}
.d-info__val{display:flex;align-items:flex-start;gap:.85rem;}
.d-info__val svg{width:18px;height:18px;margin-top:.25rem;flex:none;color:var(--accent);}
.d-info__val p{font-size:1.125rem;line-height:1.5;}
/* Per-venue socials row (in d-info__list as 4th item) */
.d-info__val--socials{align-items:center;gap:1.25rem;}
.d-info__sm{display:inline-flex;align-items:center;justify-content:center;color:var(--black);opacity:.7;transition:color .3s var(--ease),opacity .3s var(--ease),transform .3s var(--ease);}
.d-info__sm:hover{color:var(--accent);opacity:1;transform:translateY(-1px);}
.d-info__sm svg{width:22px;height:22px;margin-top:0;color:inherit;}
.d-map{aspect-ratio:4/3;background:rgba(10,10,10,.05);overflow:hidden;filter:grayscale(1) contrast(.95);box-shadow:0 24px 50px -25px rgba(10,10,10,.25);}
.d-map iframe{width:100%;height:100%;border:0;}
.d-notfound{padding-block:10rem;text-align:center;background:var(--white);}
.d-notfound p{font-family:var(--serif);font-size:1.875rem;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--black);color:var(--white);scroll-margin-top:var(--nav-h);}
.footer__in{padding-block:5rem;}
.footer__grid{display:grid;grid-template-columns:1fr;gap:3rem;margin-bottom:4rem;}
@media (min-width:768px){.footer__grid{grid-template-columns:repeat(12,1fr);gap:3rem;}}
.footer__brandcol{}
@media (min-width:768px){.footer__brandcol{grid-column:span 5;}}
.footer__brand{font-size:1rem;letter-spacing:var(--track);text-transform:uppercase;margin-bottom:1.5rem;}
.footer__tag{font-family:var(--serif);font-weight:400;font-size:1.875rem;line-height:1.2;color:rgba(255,255,255,.9);max-width:30rem;}
@media (min-width:768px){.footer__tag{font-size:2.25rem;}}
.socials{display:flex;align-items:center;gap:1.5rem;margin-top:2.5rem;}
.socials a{opacity:.7;transition:opacity .3s var(--ease);}
.socials a:hover{opacity:1;}
.socials svg{width:22px;height:22px;}
.footer__navcol{}
@media (min-width:768px){.footer__navcol{grid-column:7 / span 3;}}
.footer__concol{}
@media (min-width:768px){.footer__concol{grid-column:span 3;}}
.footer__h{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:1.25rem;}
.footer__links{display:flex;flex-direction:column;gap:.85rem;}
.footer__links a{font-size:1rem;color:rgba(255,255,255,.85);transition:color .3s var(--ease);width:fit-content;}
.footer__links a:hover{color:var(--white);}
.footer__con{display:flex;flex-direction:column;gap:.85rem;font-size:1rem;color:rgba(255,255,255,.85);}
.footer__con a:hover{color:#fff;}
.footer__con .dim{color:rgba(255,255,255,.6);}
.footer__bottom{border-top:1px solid var(--line-dark);padding-top:2rem;display:flex;flex-direction:column;gap:.75rem;font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:rgba(255,255,255,.45);}
@media (min-width:768px){.footer__bottom{flex-direction:row;justify-content:space-between;}}

/* ============================================================
   LEGAL pages (privacy / terms / consent) — clean text layout
   ============================================================ */
.ltop{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid rgba(10,10,10,.08);}
.ltop__in{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--px);height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.ltop__brand{font-size:1rem;letter-spacing:var(--track);text-transform:uppercase;white-space:nowrap;}
.ltop .lang{display:flex;}

.legal{padding-top:3.5rem;padding-bottom:7rem;}
@media (min-width:768px){.legal{padding-top:5.5rem;padding-bottom:10rem;}}

.legal__head{max-width:48rem;margin-bottom:2.5rem;}
.legal__eyebrow{display:block;font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);margin-bottom:1.5rem;}
.legal__title{font-weight:400;font-size:clamp(2.5rem,6.5vw,4rem);line-height:1.04;letter-spacing:-.01em;}
.legal__meta{margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;font-size:.6875rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);}

.legal__switch{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-bottom:3.5rem;border-block:1px solid var(--line);padding-block:1.25rem;}
@media (min-width:768px){.legal__switch{margin-bottom:5rem;}}
.legal__switch a{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted);padding-bottom:.3rem;border-bottom:1px solid transparent;transition:color .3s var(--ease),border-color .3s var(--ease);}
.legal__switch a:hover{color:var(--black);}
.legal__switch a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent);}

.legal__body{max-width:48rem;}
.legal__intro{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.4;letter-spacing:-.01em;color:var(--black);margin-bottom:1rem;}
@media (min-width:768px){.legal__intro{font-size:1.75rem;}}

.legal__sec{margin-top:3.25rem;}
@media (min-width:768px){.legal__sec{margin-top:4rem;}}
.legal__sec h2{font-weight:400;font-size:1.75rem;line-height:1.15;letter-spacing:-.01em;margin-bottom:1.25rem;display:flex;gap:.85rem;align-items:baseline;}
@media (min-width:768px){.legal__sec h2{font-size:2rem;}}
.legal__no{font-size:.95rem;letter-spacing:var(--track);color:var(--accent);flex:none;}
.legal__sec p{color:rgba(10,10,10,.78);line-height:1.75;font-size:1.0625rem;}
.legal__sec p + p{margin-top:1rem;}
.legal__sec ul{margin:1rem 0 0;padding-left:1.25rem;color:rgba(10,10,10,.78);line-height:1.7;font-size:1.0625rem;}
.legal__sec li{margin-top:.55rem;}
.legal__sec li::marker{color:var(--accent);}
.legal__a{color:var(--black);border-bottom:1px solid var(--accent);transition:color .3s var(--ease);}
.legal__a:hover{color:var(--accent);}

.legal__req{margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--line);}
.legal__req h2{font-weight:400;font-size:1.5rem;letter-spacing:-.01em;margin-bottom:1.25rem;}
.legal__req-note{font-size:.9375rem;color:var(--muted);max-width:56ch;margin-bottom:2rem;}
.legal__orgs{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:2.5rem;}
@media (min-width:768px){.legal__orgs{grid-template-columns:1fr 1fr;}}
.legal__org{background:var(--white);padding:1.75rem;}
.legal__org-name{font-weight:400;font-size:1.25rem;line-height:1.25;margin-bottom:1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .75rem;}
.legal__org-venue{font-family:var(--sans);font-size:.625rem;font-weight:400;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);}
.legal__dl--contact{margin-top:.25rem;}
.legal__tablewrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--line);}
.legal__table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.9375rem;}
.legal__table th,.legal__table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;}
.legal__table th:last-child,.legal__table td:last-child{border-right:0;}
.legal__table tbody tr:last-child td{border-bottom:0;}
.legal__table thead th{background:var(--black);color:var(--white);font-weight:400;font-size:.6875rem;letter-spacing:var(--track);text-transform:uppercase;}
.legal__table td{color:rgba(10,10,10,.85);}
.legal__dl{display:grid;grid-template-columns:1fr;gap:1rem 2rem;margin:0;}
@media (min-width:768px){.legal__dl{grid-template-columns:auto 1fr;}}
.legal__req-row{display:contents;}
.legal__req-row dt{font-size:.75rem;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted-2);padding-top:.15rem;}
.legal__req-row dd{margin:0;font-size:1.0625rem;color:rgba(10,10,10,.85);}
.legal__req-row dd a{border-bottom:1px solid var(--line);transition:color .3s var(--ease),border-color .3s var(--ease);}
.legal__req-row dd a:hover{color:var(--accent);border-bottom-color:var(--accent);}

/* ============================================================
   Scroll reveal (subtle progressive enhancement)
   ============================================================ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.08s;}
.reveal[data-d="2"]{transition-delay:.16s;}
.reveal[data-d="3"]{transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .card__media img,.row__media img,.card__arr{transition:none;}
}
