/* МАСЛО — общие стили. Шрифты подключены отдельно: assets/fonts.css */
:root{
  --bg:#F7EFE3; --surface:#FFFDF8; --warm:#EFE2CE; --line:#E0D2BA;
  --ink:#2A231B; --muted:#7A6F60; --saffron:#D98A2B; --saffron-d:#B86E17;
  --herb:#4E5B3A; --kitchen:#241A12; --glow:rgba(217,138,43,.22);
  --display:'Orelega One', Georgia, serif;
  --text:'Piazzolla', Georgia, serif;
  --hand:'Marck Script', cursive;
  --gut:clamp(16px, 6vw, 96px);
  --max:1320px;
  --ease:cubic-bezier(.22,.8,.24,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--text); font-size:clamp(1rem, .95rem + .25vw, 1.125rem);
  line-height:1.6; font-variation-settings:"wght" 400;
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
::selection{ background:var(--saffron); color:#fff; }
.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--gut); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- типографика ---------- */
.d1,.d2,.d3{ font-family:var(--display); font-weight:400; line-height:.98; letter-spacing:-.01em; margin:0; }
.d1{ font-size:clamp(3.4rem, 12vw, 11rem); }
.d2{ font-size:clamp(2.3rem, 5.4vw, 4.6rem); line-height:1.02; }
.d3{ font-size:clamp(1.5rem, 2.4vw, 2.1rem); line-height:1.1; }
.kicker{ font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--herb); font-weight:600; margin:0 0 1.2rem; display:inline-flex; gap:.6em; align-items:center; }
.kicker::before{ content:""; width:22px; height:1px; background:currentColor; }
.lead{ font-size:clamp(1.15rem, 1rem + .6vw, 1.45rem); line-height:1.5; max-width:34ch; }
.muted{ color:var(--muted); }
.hand{ font-family:var(--hand); color:var(--saffron-d); font-size:1.6em; line-height:1; }
.price{ font-family:var(--text); font-weight:650; color:var(--saffron-d); white-space:nowrap; font-variant-numeric:lining-nums; }
p{ margin:0 0 1em; }

/* ---------- кнопки и ссылки ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em; padding:.95em 1.6em; border-radius:999px;
  background:var(--saffron); color:#fff; font-weight:600; letter-spacing:.02em; border:0; cursor:pointer;
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.btn:hover{ background:var(--saffron-d); transform:translateY(-2px); }
.btn--ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--bg); }
.arrow{ display:inline-flex; align-items:center; gap:.5em; font-weight:600; border-bottom:1px solid currentColor; padding-bottom:2px; }
.arrow::after{ content:"→"; color:var(--saffron); transition:transform .25s var(--ease); }
.arrow:hover::after{ transform:translateX(6px); }
:focus-visible{ outline:2px solid var(--saffron); outline-offset:3px; }

/* ---------- шапка ---------- */
.hdr{
  position:fixed; inset:0 0 auto; z-index:50; height:76px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:0 var(--gut); transition:background .35s var(--ease), height .35s var(--ease), box-shadow .35s;
  view-transition-name:hdr;
}
.hdr.docked{ background:rgba(255,253,248,.92); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); height:62px; box-shadow:0 1px 0 var(--line); }
.logo{ font-family:var(--display); font-size:1.7rem; letter-spacing:.04em; line-height:1; }
.logo b{ color:var(--saffron); font-weight:400; }
.nav{ display:flex; gap:clamp(18px, 2.4vw, 36px); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; }
.nav a{ position:relative; padding:6px 0; }
.nav a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--saffron); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.nav a:hover::after,.nav a[aria-current="page"]::after{ transform:scaleX(1); }
.nav a[aria-current="page"]{ color:var(--saffron-d); }
.hdr .btn{ padding:.7em 1.3em; font-size:.88rem; }
.burger{ display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; position:relative; }
.burger span{ position:absolute; left:10px; right:10px; height:2px; background:var(--ink); transition:transform .3s var(--ease), top .3s; }
.burger span:nth-child(1){ top:17px; } .burger span:nth-child(2){ top:25px; }
.burger[aria-expanded="true"] span:nth-child(1){ top:21px; transform:rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ top:21px; transform:rotate(-45deg); }
.drawer{
  position:fixed; inset:0; z-index:45; background:var(--warm); padding:110px var(--gut) 40px;
  display:flex; flex-direction:column; gap:10px; transform:translateY(-102%); transition:transform .5s var(--ease); visibility:hidden;
}
.drawer.open{ transform:none; visibility:visible; }
.drawer a{ font-family:var(--display); font-size:2.6rem; line-height:1.2; }
.drawer a[aria-current="page"]{ color:var(--saffron-d); }
.drawer .muted{ margin-top:auto; font-size:.9rem; }
.mbar{ display:none; }
@media (max-width:900px){
  .nav,.hdr .btn{ display:none; }
  .burger{ display:block; }
  .hdr{ height:64px; }
  .mbar{
    display:flex; position:fixed; z-index:40; left:12px; right:12px; bottom:12px; gap:8px;
    padding:6px; border-radius:999px; background:rgba(42,35,27,.92); backdrop-filter:blur(8px);
  }
  .mbar a{ flex:1; text-align:center; padding:.8em; border-radius:999px; color:var(--bg); font-weight:600; font-size:.92rem; }
  .mbar a.go{ background:var(--saffron); color:#fff; }
  body.has-mbar{ padding-bottom:70px; }
}

/* ---------- подвал ---------- */
.ftr{ background:var(--warm); border-top:1px solid var(--line); padding:80px 0 28px; margin-top:0; }
.ftr-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.ftr .logo{ font-size:3.4rem; display:block; margin-bottom:14px; }
.ftr h4{ font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--herb); margin:0 0 14px; }
.ftr ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.ftr a:hover{ color:var(--saffron-d); }
.ftr-note{ margin-top:64px; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:.82rem; color:var(--muted); }
@media (max-width:900px){ .ftr-grid{ grid-template-columns:1fr 1fr; } .ftr-grid > :first-child{ grid-column:1/-1; } }

/* ---------- переходы между страницами ---------- */
@view-transition{ navigation:auto; }
::view-transition-old(root){ animation:vt-out .38s var(--ease) both; }
::view-transition-new(root){ animation:vt-in .55s var(--ease) both; }
@keyframes vt-out{ to{ opacity:0; transform:translateY(-24px); } }
@keyframes vt-in{ from{ opacity:0; transform:translateY(32px); } }
.curtain{ position:fixed; inset:0; z-index:100; background:var(--saffron); transform:translateY(100%); pointer-events:none; display:grid; place-items:center; }
.curtain span{ font-family:var(--display); font-size:clamp(3rem,10vw,8rem); color:var(--bg); }
.curtain.in{ transition:transform .45s var(--ease); transform:none; }
.curtain.cover{ transform:none; }
.curtain.out{ transition:transform .55s var(--ease); transform:translateY(-100%); }

/* ---------- появление ---------- */
.js-anim [data-rv]{ opacity:0; transform:translateY(22px); }
.rv-in{ opacity:1 !important; transform:none !important; transition:opacity .7s var(--ease), transform .7s var(--ease); }

/* ---------- бегущая строка ---------- */
.marq{ overflow:hidden; border-block:1px solid var(--line); background:var(--surface); padding:20px 0; }
.marq-track{ display:flex; width:max-content; animation:marq 38s linear infinite; }
.marq-track span{ font-family:var(--display); font-size:clamp(1.6rem,3.4vw,2.8rem); white-space:nowrap; padding-right:.9em; }
.marq-track i{ font-style:normal; color:var(--saffron); padding-right:.9em; font-family:var(--display); font-size:clamp(1.6rem,3.4vw,2.8rem); }
@keyframes marq{ to{ transform:translateX(-50%); } }

/* ---------- общие секции ---------- */
.sec{ padding:clamp(80px, 12vw, 160px) 0; }
.sec--warm{ background:var(--warm); }
.page-head{ padding:clamp(130px, 18vw, 220px) 0 clamp(50px, 7vw, 90px); }
.page-head .d1{ font-size:clamp(3.2rem, 10vw, 8.5rem); }
.page-head .lead{ margin-top:24px; }
.ph-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js-anim [data-rv]{ opacity:1; transform:none; }
}

/* ================= ГЛАВНАЯ ================= */
/* герой со скролл-видео */
.hero{ position:relative; height:320vh; background:var(--kitchen); }
.hero-pin{ position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; }
.hero-pin video,.hero-pin .hero-poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-pin::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(36,26,18,.78) 0%, rgba(36,26,18,.35) 45%, rgba(36,26,18,0) 70%),
             linear-gradient(0deg, rgba(36,26,18,.7) 0%, rgba(36,26,18,0) 40%); }
.hero-txt{ position:absolute; z-index:2; left:var(--gut); right:var(--gut); bottom:clamp(40px, 8vh, 90px); color:var(--bg); }
.hero-txt .d1{ color:var(--bg); }
.hero-txt .d1 b{ font-weight:400; color:var(--saffron); }
.hero-steps{ position:relative; height:2.2em; margin-top:18px; font-size:clamp(1.2rem, 1rem + 1vw, 1.8rem); }
.hero-steps p{ position:absolute; inset:0 auto auto 0; margin:0; opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease); font-style:italic; }
.hero-steps p.on{ opacity:1; transform:none; }
.hero-meta{ display:flex; gap:28px; flex-wrap:wrap; margin-top:26px; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,239,227,.75); }
.hero-meta span::before{ content:"●"; color:var(--saffron); margin-right:.6em; font-size:.7em; vertical-align:middle; }
.hero-bar{ position:absolute; z-index:2; right:var(--gut); top:50%; width:2px; height:120px; margin-top:-60px; background:rgba(247,239,227,.25); }
.hero-bar i{ position:absolute; inset:0; background:var(--saffron); transform-origin:top; transform:scaleY(0); }
.scroll-hint{ position:absolute; z-index:2; right:var(--gut); bottom:clamp(40px, 8vh, 90px); color:rgba(247,239,227,.75); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; writing-mode:vertical-rl; }
.hero .hdr-pad{ display:none; }

/* философия */
.philo{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px, 7vw, 120px); align-items:center; }
.philo-img{ position:relative; border-radius:220px 220px 18px 18px; overflow:hidden; aspect-ratio:4/5; }
.philo-img img{ width:100%; height:100%; object-fit:cover; }
.philo .hand{ display:block; margin-top:28px; transform:rotate(-3deg); }
.philo .d2 em{ font-style:normal; color:var(--saffron-d); }
.philo-text p{ max-width:46ch; }
.oil{ position:absolute; inset:0; background:linear-gradient(115deg, transparent 35%, rgba(255,226,160,.28) 50%, transparent 65%); background-size:250% 100%; animation:oil 6s ease-in-out infinite; mix-blend-mode:screen; pointer-events:none; }
@keyframes oil{ 0%{ background-position:120% 0; } 60%,100%{ background-position:-120% 0; } }

/* сборка тарелки */
.plate-sec{ position:relative; height:340vh; background:var(--warm); overflow:clip; }
.plate-pin{ position:sticky; top:0; height:100vh; height:100svh; display:grid; grid-template-columns:1fr 1.2fr; align-items:center; gap:40px; padding:80px var(--gut) 40px; max-width:var(--max); margin:0 auto; }
.plate-steps{ position:relative; min-height:260px; }
.plate-step{ position:absolute; inset:0 0 auto; opacity:0; transform:translateY(20px); transition:opacity .45s var(--ease), transform .45s var(--ease); }
.plate-step.on{ opacity:1; transform:none; }
.plate-step .num{ font-family:var(--display); color:var(--saffron); font-size:1.1rem; display:block; margin-bottom:10px; }
.plate-step p{ max-width:34ch; margin-top:14px; }
.plate-stage{ position:relative; width:min(560px, 100%); aspect-ratio:1; justify-self:center; }
.plate-stage::before{ content:""; position:absolute; inset:8%; border-radius:50%; background:radial-gradient(circle, var(--glow), transparent 70%); filter:blur(30px); }
.plate-stage img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; will-change:transform, opacity; }
.plate-stage .l-puree{ inset:18%; width:64%; height:64%; }
.plate-stage .l-chicken{ inset:24% 22% 26% 26%; width:52%; height:50%; }
.plate-stage .l-herbs{ inset:6%; width:88%; height:88%; }
.steam{ position:absolute; left:50%; top:4%; width:40%; height:40%; transform:translateX(-50%); pointer-events:none; opacity:0; }
.steam i{ position:absolute; bottom:0; width:18%; height:100%; border-radius:50%; background:radial-gradient(ellipse at center, rgba(255,255,255,.75), transparent 65%); filter:blur(10px); animation:steam 3.6s ease-in infinite; }
.steam i:nth-child(1){ left:18%; } .steam i:nth-child(2){ left:44%; animation-delay:1.2s; } .steam i:nth-child(3){ left:68%; animation-delay:2.3s; }
@keyframes steam{ 0%{ transform:translateY(40%) scale(.6); opacity:0; } 30%{ opacity:.8; } 100%{ transform:translateY(-60%) scale(1.3); opacity:0; } }
.plate-price{ margin-top:18px; display:flex; gap:14px; align-items:baseline; }
.plate-dots{ display:flex; gap:8px; margin-top:28px; }
.plate-dots i{ width:28px; height:3px; background:var(--line); border-radius:2px; transition:background .3s; }
.plate-dots i.on{ background:var(--saffron); }

/* хиты стопкой */
.hits-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:60px; }
.stack{ display:grid; gap:0; }
.card{
  position:sticky; top:calc(90px + var(--i, 0) * 18px); height:min(78vh, 640px); margin-bottom:40px;
  display:grid; grid-template-columns:1.05fr 1fr; background:var(--surface); border:1px solid var(--line);
  border-radius:28px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(42,35,27,.25); transform-origin:center top;
}
.card-img{ position:relative; overflow:hidden; }
.card-img img{ width:100%; height:100%; object-fit:cover; }
.card-body{ padding:clamp(28px, 4vw, 60px); display:flex; flex-direction:column; justify-content:space-between; gap:20px; }
.card-tag{ font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--herb); font-weight:600; }
.card .d2{ font-size:clamp(2.2rem, 4.4vw, 3.8rem); }
.card-foot{ display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding-top:20px; }
.card-foot .price{ font-size:1.5rem; }
.card:nth-child(2){ background:#FBF3E4; } .card:nth-child(3){ background:#F4EBDA; } .card:nth-child(4){ background:#FFF8EC; }

/* кухня, единственный тёмный экран */
.kitchen{ position:relative; background:var(--kitchen); color:var(--bg); overflow:hidden; min-height:100vh; display:flex; align-items:flex-end; }
.kitchen video,.kitchen .k-poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6; }
.kitchen::after{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 110%, rgba(217,138,43,.45), transparent 60%), linear-gradient(0deg, rgba(36,26,18,.9), rgba(36,26,18,.1) 60%); }
.kitchen .wrap{ position:relative; z-index:2; padding-block:clamp(90px, 14vw, 180px); }
.kitchen .kicker{ color:var(--saffron); }
.kitchen blockquote{ margin:0; font-family:var(--display); font-size:clamp(2.2rem, 6vw, 5.4rem); line-height:1.02; max-width:16ch; }
.kitchen blockquote em{ font-style:normal; color:var(--saffron); }
.kitchen cite{ display:block; margin-top:28px; font-style:normal; color:rgba(247,239,227,.7); }
.kitchen .hand{ color:var(--saffron); }

/* точки коротко */
.spots{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-top:56px; }
.spot{ display:block; background:var(--surface); border:1px solid var(--line); border-radius:20px; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s; }
.spot:hover{ transform:translateY(-6px); box-shadow:0 0 0 2px var(--saffron), 0 24px 40px -24px rgba(42,35,27,.35); }
.spot img{ aspect-ratio:4/3; width:100%; object-fit:cover; }
.spot div{ padding:18px 20px 22px; }
.spot h3{ font-family:var(--display); font-weight:400; font-size:1.5rem; margin:0 0 6px; }
.spot p{ margin:0; font-size:.9rem; color:var(--muted); }

/* бронь-CTA */
.cta{ position:relative; background:var(--saffron); color:var(--kitchen); overflow:hidden; }
.cta .wrap{ display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center; padding-block:clamp(80px, 11vw, 150px); }
.cta .d1{ font-size:clamp(3rem, 9vw, 8rem); }
.cta .btn{ background:var(--kitchen); color:var(--bg); }
.cta .btn:hover{ background:#000; }
.cta p{ max-width:32ch; font-size:1.15rem; }

@media (max-width:900px){
  .hero{ height:260vh; }
  .hero-pin::after{ background:linear-gradient(0deg, rgba(36,26,18,.88) 0%, rgba(36,26,18,.35) 55%, rgba(36,26,18,.15) 100%); }
  .hero-bar,.scroll-hint{ display:none; }
  .philo{ grid-template-columns:1fr; }
  .philo-img{ max-width:440px; }
  .plate-pin{ grid-template-columns:1fr; grid-template-rows:auto 1fr; padding-top:84px; gap:10px; align-content:start; }
  .plate-steps{ min-height:190px; order:2; }
  .plate-stage{ width:min(80vw, 46vh); order:1; }
  .card{ grid-template-columns:1fr; grid-template-rows:46% 1fr; height:min(80vh, 620px); top:calc(76px + var(--i, 0) * 12px); }
  .card-body{ padding:22px; }
  .spots{ grid-template-columns:1fr 1fr; }
  .cta .wrap{ grid-template-columns:1fr; }
}
@media (max-width:520px){ .spots{ grid-template-columns:1fr; } }

/* ================= МЕНЮ ================= */
.tabs{ position:sticky; top:62px; z-index:20; background:var(--bg); border-bottom:1px solid var(--line); }
.tabs .wrap{ display:flex; gap:8px; overflow-x:auto; padding-block:12px; scrollbar-width:none; }
.tabs .wrap::-webkit-scrollbar{ display:none; }
.tabs a{ flex:none; padding:.55em 1.2em; border-radius:999px; border:1px solid var(--line); font-weight:600; font-size:.9rem; transition:background .3s, color .3s, border-color .3s; }
.tabs a:hover{ border-color:var(--saffron); }
.tabs a.on{ background:var(--saffron); border-color:var(--saffron); color:#fff; }
.mcat{ padding:clamp(60px, 8vw, 110px) 0 20px; scroll-margin-top:120px; }
.mcat-head{ display:grid; grid-template-columns:1fr 1.4fr; gap:40px; align-items:end; margin-bottom:34px; }
.mcat-head p{ margin:0; max-width:40ch; color:var(--muted); }
.mlist{ list-style:none; margin:0; padding:0; border-top:1px solid var(--ink); }
.mi{ display:grid; grid-template-columns:1fr auto; gap:6px 24px; padding:22px 0; border-bottom:1px solid var(--line); position:relative; transition:padding .35s var(--ease); }
.mi-name{ margin:0; display:flex; align-items:baseline; gap:14px; font-family:var(--display); font-size:clamp(1.4rem, 2.2vw, 1.9rem); line-height:1.15; }
.mi-name::after{ content:""; flex:1; border-bottom:1px dotted var(--muted); transform:translateY(-6px); min-width:20px; transform-origin:left; transition:transform .8s var(--ease); }
.mi .price{ font-size:1.2rem; align-self:end; }
.mi-desc{ grid-column:1/-1; margin:0; color:var(--muted); max-width:60ch; font-size:.98rem; }
.mi-tag{ font-family:var(--text); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--herb); border:1px solid currentColor; border-radius:99px; padding:.2em .7em; white-space:nowrap; align-self:center; }
.mi-thumb{ display:none; }
@media (hover:hover) and (pointer:fine){
  .mi[data-img]:hover{ padding-left:14px; }
  .mi[data-img]:hover .mi-name{ color:var(--saffron-d); }
}
.follow{ position:fixed; left:0; top:0; z-index:30; width:280px; aspect-ratio:4/5; border-radius:18px; overflow:hidden; pointer-events:none; opacity:0; transform:translate3d(-999px,0,0) scale(.85); box-shadow:0 30px 60px -20px rgba(42,35,27,.45); transition:opacity .3s var(--ease); }
.follow.on{ opacity:1; }
.follow img{ width:100%; height:100%; object-fit:cover; }
@media (hover:none), (pointer:coarse){ .follow{ display:none; } }
@media (max-width:900px), (hover:none){
  .mcat-head{ grid-template-columns:1fr; gap:14px; }
  .mi[data-img]{ grid-template-columns:76px 1fr auto; }
  .mi[data-img] .mi-thumb{ display:block; grid-row:1 / span 2; width:76px; height:92px; border-radius:12px; object-fit:cover; }
  .mi[data-img] .mi-desc{ grid-column:2 / -1; }
  .mi-name{ font-size:1.3rem; }
  .mi-name::after{ display:none; }
}
.menu-note{ padding:30px 0 100px; color:var(--muted); font-size:.92rem; }

/* ================= ТОЧКИ ================= */
.place{ display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(30px, 5vw, 80px); align-items:center; padding:clamp(50px, 7vw, 100px) 0; border-top:1px solid var(--line); }
.place:nth-of-type(even) .place-media{ order:2; }
.place-media{ position:relative; border-radius:24px; overflow:hidden; aspect-ratio:3/2; background:var(--warm); }
.place-media img,.place-media video{ width:100%; height:100%; object-fit:cover; }
.place-media .badge{ position:absolute; left:16px; top:16px; background:rgba(36,26,18,.75); color:var(--bg); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; padding:.45em .9em; border-radius:99px; }
.place-media .badge::before{ content:"●"; color:#E4473A; margin-right:.5em; animation:blink 1.4s infinite; }
@keyframes blink{ 50%{ opacity:.2; } }
.place .num{ font-family:var(--display); color:var(--saffron); font-size:1.2rem; }
.place .d2{ margin:8px 0 18px; }
.place dl{ display:grid; grid-template-columns:auto 1fr; gap:8px 20px; margin:24px 0 28px; font-size:.95rem; }
.place dt{ color:var(--herb); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; padding-top:.3em; }
.place dd{ margin:0; }
.map{ height:120px; border-radius:16px; border:1px solid var(--line); margin-bottom:28px; position:relative; overflow:hidden;
  background:
    linear-gradient(90deg, transparent 49%, var(--line) 49%, var(--line) 51%, transparent 51%) 0 0/60px 100%,
    linear-gradient(0deg, transparent 47%, #E8DAC3 47%, #E8DAC3 53%, transparent 53%) 0 0/100% 46px,
    var(--warm); }
.map::after{ content:""; position:absolute; left:var(--x, 50%); top:var(--y, 50%); width:18px; height:18px; margin:-9px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--herb); box-shadow:0 0 0 6px rgba(78,91,58,.2); }
@media (max-width:900px){ .place{ grid-template-columns:1fr; } .place:nth-of-type(even) .place-media{ order:0; } }

/* ================= ИСТОРИЯ ================= */
.story-hero{ position:relative; border-radius:28px; overflow:hidden; aspect-ratio:16/7; }
.story-hero img{ width:100%; height:100%; object-fit:cover; }
.story-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px, 6vw, 100px); }
.story-cols .d2 em{ font-style:normal; color:var(--saffron-d); }
.drop::first-letter{ font-family:var(--display); float:left; font-size:4.6em; line-height:.82; padding:.06em .12em 0 0; color:var(--saffron); }
.years{ list-style:none; margin:0; padding:0; }
.years li{ display:grid; grid-template-columns:110px 1fr; gap:24px; padding:26px 0; border-top:1px solid var(--line); }
.years b{ font-family:var(--display); font-weight:400; font-size:2rem; color:var(--saffron-d); line-height:1; }
.years h3{ margin:0 0 6px; font-size:1.15rem; }
.years p{ margin:0; color:var(--muted); }
.chef{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px, 6vw, 100px); align-items:center; }
.chef-img{ border-radius:24px; overflow:hidden; aspect-ratio:4/5; }
.chef-img img{ width:100%; height:100%; object-fit:cover; }
.chef blockquote{ margin:0; font-family:var(--display); font-size:clamp(1.8rem, 3.4vw, 2.8rem); line-height:1.12; }
.chef .hand{ display:block; margin-top:22px; }
.rules{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:50px; }
.rule{ background:var(--surface); border:1px solid var(--line); border-radius:22px; overflow:hidden; display:flex; flex-direction:column; }
.rule img{ aspect-ratio:4/5; width:100%; height:auto; object-fit:cover; }
.rule div{ flex:1; }
.rule div{ padding:22px 24px 26px; }
.rule h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; margin:0 0 8px; }
.rule p{ margin:0; color:var(--muted); }
@media (max-width:900px){ .story-cols,.chef{ grid-template-columns:1fr; } .rules{ grid-template-columns:1fr; } .story-hero{ aspect-ratio:4/3; } .rule img{ aspect-ratio:4/3; } .years li{ grid-template-columns:80px 1fr; } }

/* ================= БРОНЬ ================= */
.bron{ display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(30px, 6vw, 90px); padding-bottom:clamp(80px, 10vw, 140px); }
.form{ background:var(--surface); border:1px solid var(--line); border-radius:28px; padding:clamp(24px, 4vw, 52px); position:relative; overflow:hidden; }
.f-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.f-full{ grid-column:1/-1; }
.f-lab{ display:block; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--herb); font-weight:600; margin-bottom:8px; }
.f-in{ width:100%; padding:.85em 1em; border:1px solid var(--line); border-radius:14px; background:var(--bg); transition:border-color .2s, box-shadow .2s; min-height:52px; }
.f-in:focus{ outline:none; border-color:var(--saffron); box-shadow:0 0 0 3px var(--glow); }
select.f-in, select{ -webkit-appearance:none; appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237A6F60' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 20px center; background-size:12px 8px; padding-right:52px; }
select.f-in{ background-color:var(--bg); }
select::-ms-expand{ display:none; }
.pick{ display:flex; flex-wrap:wrap; gap:8px; }
.pick label{ cursor:pointer; }
.pick input{ position:absolute; opacity:0; pointer-events:none; }
.pick span{ display:inline-block; padding:.6em 1.1em; border-radius:999px; border:1px solid var(--line); background:var(--bg); transition:background .2s, color .2s, border-color .2s; }
.pick input:checked + span{ background:var(--saffron); color:#fff; border-color:var(--saffron); }
.pick input:focus-visible + span{ outline:2px solid var(--saffron); outline-offset:2px; }
.guests{ display:flex; align-items:center; gap:14px; }
.guests button{ width:52px; height:52px; border-radius:50%; border:1px solid var(--line); background:var(--bg); font-size:1.4rem; cursor:pointer; }
.guests button:hover{ border-color:var(--saffron); }
.guests output{ font-family:var(--display); font-size:2rem; min-width:2ch; text-align:center; }
.form .btn{ margin-top:26px; width:100%; justify-content:center; font-size:1.05rem; padding:1.1em; }
.f-small{ font-size:.82rem; color:var(--muted); margin:14px 0 0; text-align:center; }
.thanks{ position:absolute; inset:0; background:var(--saffron); color:var(--kitchen); display:flex; flex-direction:column; justify-content:center; padding:clamp(28px, 5vw, 60px); opacity:0; visibility:hidden; transform:translateY(20px); transition:opacity .5s var(--ease), transform .5s var(--ease), visibility .5s; }
.thanks.show{ opacity:1; visibility:visible; transform:none; }
.thanks .d2{ margin-bottom:18px; }
.thanks p{ max-width:36ch; font-size:1.12rem; }
.thanks .hand{ color:var(--kitchen); }
.side h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; margin:0 0 10px; }
.side .blk{ padding:24px 0; border-top:1px solid var(--line); }
.side .blk p{ margin:0; color:var(--muted); }
.side .big{ font-family:var(--display); font-size:1.9rem; color:var(--ink); }
.side img{ border-radius:20px; aspect-ratio:4/3; object-fit:cover; width:100%; margin-bottom:10px; }
@media (max-width:900px){ .bron{ grid-template-columns:1fr; } .f-grid{ grid-template-columns:1fr; } }

/* шапка поверх тёмного героя */
.hdr.on-dark:not(.docked){ color:var(--bg); }
.hdr.on-dark:not(.docked) .burger span{ background:var(--bg); }
.drawer-open .hdr{ color:var(--ink) !important; }
.hdr .burger[aria-expanded="true"] span{ background:var(--ink) !important; }
.hdr .burger[aria-expanded="true"]{ position:relative; z-index:60; }

.story-hero img{ height:114%; margin-top:-7%; }
.ph-img{ width:clamp(150px, 20vw, 280px); aspect-ratio:4/5; border-radius:140px 140px 16px 16px; overflow:hidden; transform:rotate(3deg); flex:none; box-shadow:0 30px 50px -28px rgba(42,35,27,.45); }
.ph-img img{ width:100%; height:100%; object-fit:cover; }
.ph-side{ margin-left:auto; display:flex; align-items:flex-end; gap:clamp(20px, 3vw, 48px); }
@media (max-width:700px){ .ph-side{ flex-direction:row; align-items:center; } .ph-side .lead{ font-size:1.05rem; } .ph-img{ width:110px; } }
@media (min-width:901px){ .ph-row:not(.ph-wrap){ flex-wrap:nowrap; } .ph-row > div:first-child{ flex:none; } .ph-wrap .ph-side{ margin-top:-60px; } .ph-side .lead{ max-width:28ch; } }
