/* International Catering — скролл-история:
   живое фото праздника → слово «catering», в буквах фото становится видео кухни → полёт сквозь «t» →
   манифест → что мы делаем → что будет на столе → что мы уже сделали → вопросы → заявка.
   Все фото и видео — в assets/media/ (см. README там): их можно заменить, не трогая код. */
@font-face{font-family:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/rubik-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/rubik-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/rubik-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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  /* брендбук International Catering: терракотовый #782710, медовый #F2CD84, слоновая кость #FBF7EE, графитовый #292724 */
  --sand:#F3EADB; --sand-2:#F6EFE3; --sand-3:#FBF7EE;
  --brownie:#782710; --choco:#292724; --bisquit:#F2CD84; --milky:#62BEFD; --ink:#292724;
  --f:'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
*{box-sizing:border-box}
html{background:var(--sand)}
body{margin:0;background:var(--sand);color:var(--ink);font:400 17px/1.55 var(--f);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--milky);outline-offset:3px}
.lc{letter-spacing:-.03em;font-weight:700;line-height:.98}

/* ── живое фото: медленный наезд + панорама, параллакс при скролле, наклон за курсором ──
   .live — рамка; внутри img или video (.m). Движение задают переменные, у каждого фото — своё. */
.live{position:relative;overflow:hidden;background:#292724;isolation:isolate}
.live .m{position:absolute;inset:-7% -4%;width:108%;height:114%;max-width:none;object-fit:cover;
  animation:breathe var(--kb, 16s) ease-in-out infinite alternate;animation-delay:var(--kd, 0s);transform-origin:var(--ko, 50% 50%)}
@keyframes breathe{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(var(--kx, -2%), var(--ky, -1.5%), 0) scale(var(--ks, 1.1))}
}
/* блик — мягкая полоса света, проходит по фото */
.live.glint::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;z-index:2;
  background:linear-gradient(105deg, rgba(255,246,225,0) 35%, rgba(255,246,225,.55) 50%, rgba(255,246,225,0) 65%);
  background-size:250% 100%;animation:glint 7s ease-in-out infinite;animation-delay:var(--kd, 0s)}
@keyframes glint{0%,55%{background-position:120% 0}100%{background-position:-120% 0}}
/* пар над горячим */
.steam{position:absolute;left:var(--sx, 50%);bottom:var(--sy, 40%);width:34%;height:60%;pointer-events:none;z-index:2;transform:translateX(-50%);filter:blur(14px);opacity:.75}
.steam i{position:absolute;bottom:0;left:50%;width:38%;height:38%;border-radius:50%;background:radial-gradient(circle, rgba(255,255,255,.75), rgba(255,255,255,0) 70%);animation:rise 4.5s ease-in infinite;opacity:0}
.steam i:nth-child(2){left:30%;animation-delay:1.5s;animation-duration:5.2s}
.steam i:nth-child(3){left:62%;animation-delay:3s;animation-duration:4.8s}
@keyframes rise{0%{transform:translate(-50%,0) scale(.6);opacity:0}25%{opacity:.8}100%{transform:translate(-30%,-170%) scale(1.8);opacity:0}}

/* шапка — плавающая полоса, читается на любом фоне */
.hdr{position:fixed;z-index:50;top:max(14px, env(safe-area-inset-top, 0px));left:50%;transform:translateX(-50%);width:min(1240px, calc(100% - 28px));
  display:flex;align-items:center;gap:22px;padding:10px 10px 10px 22px;border-radius:99px;background:rgba(244,237,226,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 6px 30px rgba(41,39,36,.14)}
.logo{display:flex;align-items:center}
.logo img{height:36px;width:auto}
.nav{display:flex;gap:22px;margin-left:auto;font-size:14.5px;font-weight:500}
.pill{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 22px;border-radius:99px;background:var(--brownie);color:var(--bisquit);font-weight:700;font-size:15px;white-space:nowrap}

/* ── 1. сцена: живые кадры с мероприятий → слово CATERING (в буквах — кадры) → полёт сквозь «T» → кухня ── */
.scene{position:relative;height:100svh;overflow:hidden;background:var(--choco)}
/* триптих: три вертикальных видео рядом (на телефоне — только среднее) */
.tri{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.tri .live{position:relative;height:100%}
.tri video.m{animation:none;inset:0;width:100%;height:100%}
.hero-tri::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(41,39,36,.55) 0%,rgba(41,39,36,.1) 32%,rgba(41,39,36,.2) 60%,rgba(41,39,36,.85) 100%)}
.word-tri{opacity:0}
.word-tri::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(41,39,36,0) 40%,rgba(41,39,36,.85) 100%),linear-gradient(90deg,rgba(41,39,36,.55),rgba(41,39,36,0) 60%)}
.h1{position:absolute;inset:0;pointer-events:none;color:var(--sand-3);z-index:5;text-shadow:0 4px 40px rgba(41,39,36,.35)}
.h1 span{position:absolute;font-size:clamp(56px, 9vw, 160px)}
.h1 .l1{left:4vw;top:16vh}
.h1 .l2{right:4vw;top:37vh;color:var(--bisquit)}
.h1 .l3{left:6vw;bottom:8vh}
.hero-sub{position:absolute;z-index:5;right:5vw;bottom:10vh;max-width:32ch;margin:0;font-size:17px;color:var(--sand-3);text-align:right}
.hero-sub b{display:block;font-weight:700;color:var(--bisquit)}
.scroll-hint{position:absolute;z-index:5;left:50%;bottom:22px;transform:translateX(-50%);font-size:12px;font-weight:600;color:var(--sand-3);display:flex;flex-direction:column;align-items:center;gap:6px}
@media (min-width: 761px){ .scroll-hint{display:none} }
.scroll-hint i{width:1.5px;height:28px;background:linear-gradient(var(--sand-3),transparent)}
.knock{position:absolute;inset:0;width:100%;height:100%;z-index:4;opacity:0}
.cap1{position:absolute;z-index:6;left:0;right:0;bottom:15vh;text-align:center;font-size:clamp(16px,1.5vw,22px);font-weight:500;color:var(--brownie);opacity:0;padding:0 24px}
.cap2{position:absolute;z-index:6;left:5vw;bottom:9vh;max-width:min(780px, 90vw);color:#fff;opacity:0}
.cap2 h2{font-size:clamp(44px, 6.4vw, 110px);margin:0 0 14px;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.cap2 p{margin:0;font-size:18px;max-width:42ch;opacity:.92}

/* ── 2. наш подход: терракотовый фон, белый текст проявляется словами, рядом — два видео с дрона ── */
.manifest{background:#2F3A2B;color:var(--sand-3);position:relative;overflow:hidden;padding-block:20vh 22vh}
.manifest::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 85% 30%, rgba(242,205,132,.12), transparent 70%),radial-gradient(50% 45% at 10% 90%, rgba(0,0,0,.25), transparent 70%)}
.mf-in{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:6vw;align-items:center;padding-inline:max(16px, 7vw) max(16px, 5vw)}
.mf-lab{font-size:15px;font-weight:600;color:var(--bisquit);margin-bottom:22px;letter-spacing:.02em}
.manifest p{margin:0;max-width:20ch;font-size:clamp(30px, 3.7vw, 60px);line-height:1.12;font-weight:700;letter-spacing:-.03em;color:var(--sand-3);text-wrap:balance}
.manifest .w{opacity:.2}
.mf-media{display:grid;gap:5vh}
.mf{margin:0;will-change:transform}
.mf .live{aspect-ratio:16/10;border-radius:26px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.35);clip-path:inset(var(--clip, 0%) round 26px)}
.mf2{width:82%;justify-self:end}
.mf1{width:92%}
.mf figcaption{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding-left:4px}
.mf figcaption b{font-size:17px;font-weight:700;color:var(--sand-3)}
.mf figcaption span{font-size:14px;color:rgba(251,247,238,.7)}

/* ── 3. что мы делаем ── */
.what{height:100svh;background:var(--choco);color:var(--sand-3);position:relative;overflow:hidden}
.what .in{position:absolute;inset:0;display:grid;grid-template-columns:1.2fr .8fr;gap:4vw;align-items:center;padding:8vh 5vw 0}
.what .lab{position:absolute;left:5vw;top:15vh;font-size:15px;font-weight:600;color:var(--bisquit)}
.words{display:flex;flex-direction:column;gap:.2vh}
.words .r{display:flex;align-items:baseline;gap:22px;min-width:0}
.words .r b{font-size:clamp(38px, 4.9vw, 84px);color:rgba(244,237,226,.16);position:relative;white-space:nowrap}
.words .r b i{position:absolute;inset:0;font-style:normal;color:var(--bisquit);clip-path:inset(0 100% 0 0)}
.words .r em{font-style:normal;font-size:15px;color:rgba(244,237,226,.75);max-width:24ch;opacity:0}
.pics{position:relative;height:64vh;border-radius:28px;overflow:hidden;background:#1e1c1a}
.pics .live{position:absolute;inset:0;opacity:0}

/* ── 4. что будет на столе — горизонтальный парад ── */
.parade{height:100svh;overflow:hidden;background:#F3EADB;position:relative;display:flex;flex-direction:column;justify-content:center}
.parade .head{position:absolute;left:5vw;top:13vh;right:5vw;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}
.parade h2{font-size:clamp(52px, 6vw, 104px);color:var(--brownie);margin:0}
.parade .head p{max-width:34ch;margin:0;color:#4d4843;font-size:15px}
.track{display:flex;gap:2.2vw;padding-left:5vw;margin-top:22vh;will-change:transform;align-items:flex-start}
.dish{flex:none;width:clamp(240px, 23vw, 360px)}
.dish .live{aspect-ratio:4/5;border-radius:999px 999px 26px 26px;box-shadow:0 24px 50px rgba(41,39,36,.18)}
.dish:nth-child(even){margin-top:7vh}
.dish b{display:block;margin-top:14px;font-weight:800;font-size:clamp(20px, 1.8vw, 28px);letter-spacing:-.035em;color:var(--brownie)}
.dish span{font-size:14px;color:#5c5650}
.dish .tag{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;vertical-align:middle;background:var(--brownie);color:var(--bisquit);border-radius:99px;padding:2px 8px;letter-spacing:0}

/* ── 5. что мы уже сделали ── */
.cases{height:100svh;background:var(--sand-2);overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:center}
.cases .head{position:absolute;left:5vw;right:5vw;top:14vh;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}
.cases h2{font-size:clamp(48px, 6.4vw, 104px);color:var(--brownie);margin:0}
.cases .head p{max-width:32ch;margin:0;color:#4d4843;font-size:15px}
.ctrack{display:flex;gap:28px;padding-left:5vw;margin-top:16vh;will-change:transform;align-items:flex-start}
.case{flex:none;width:clamp(220px, min(21vw, 34vh), 330px)}
.case .live{aspect-ratio:9/14;border-radius:26px}
.case .t{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:16px}
.case b{font-weight:700;font-size:clamp(19px, 1.5vw, 24px);letter-spacing:-.02em;line-height:1.15;color:var(--brownie)}
.case .n{font-size:14px;font-weight:700;background:var(--bisquit);border-radius:99px;padding:4px 12px;white-space:nowrap}
.case p{margin:8px 0 0;color:#4d4843;font-size:14px;max-width:34ch;line-height:1.45}


/* ── атмосфера: живая картинка — при скролле темнеет, загораются свечи и огни ── */
.atmos{height:100svh;background:var(--choco);color:var(--sand-3);position:relative;overflow:hidden}
.atmos-in{position:absolute;inset:0;display:grid;grid-template-columns:1fr auto;gap:5vw;align-items:center;padding:10vh 6vw 4vh}
.atmos .lab,.trust .lab{font-size:15px;font-weight:600;color:var(--bisquit);margin-bottom:18px}
.atmos h2{font-size:clamp(48px, 6.2vw, 108px);margin:0 0 22px;color:var(--sand-3)}
.atmos-txt p{max-width:38ch;margin:0;color:rgba(244,237,226,.75)}
.atmos-pic{position:relative;height:min(80vh, 760px);aspect-ratio:1066/1600;border-radius:999px 999px 32px 32px;overflow:hidden;clip-path:inset(0 round 999px 999px 32px 32px);box-shadow:0 40px 90px rgba(0,0,0,.45);
  transform:perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));scale:var(--sc, 1);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
/* фото и огни дышат вместе (одна сцена), чтобы огни не съезжали с фото */
.atmos-stage{position:absolute;inset:0;animation:breathe 20s ease-in-out infinite alternate;--ks:1.07;--kx:-1%;--ky:-1.2%;transform-origin:55% 62%}
.atmos-live{position:absolute;inset:0}
.atmos-live .m{inset:0;width:100%;height:100%;animation:none;translate:none}
.dusk{position:absolute;inset:0;background:linear-gradient(180deg,#0b1030 0%,#1a0f22 60%,#292724 100%);mix-blend-mode:multiply;opacity:var(--dusk, 0);pointer-events:none}
.lights{position:absolute;inset:0;pointer-events:none}
.lights i{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);opacity:var(--on, 0);transition:opacity .4s}
.lights .flame{width:2.2%;aspect-ratio:1/2.3;margin-top:-1.4%;border-radius:50% 50% 45% 45% / 65% 65% 35% 35%;
  background:radial-gradient(ellipse at 50% 70%, #fff8e0 0 22%, #ffd36a 45%, rgba(255,140,40,.85) 70%, rgba(255,120,30,0) 100%);
  filter:blur(.4px);animation:flick 1.6s ease-in-out infinite alternate;transform-origin:50% 90%}
.lights .flame::after{content:"";position:absolute;left:50%;top:55%;width:900%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle, rgba(255,200,110,.55), rgba(255,170,80,.18) 40%, rgba(255,150,60,0) 70%);mix-blend-mode:screen}
.lights .flame:nth-child(2){animation-duration:1.3s;animation-delay:-.6s}
@keyframes flick{
  0%{transform:translate(-50%,-50%) scale(1,1) rotate(-2deg)}
  30%{transform:translate(-50%,-50%) scale(.92,1.08) rotate(2deg)}
  60%{transform:translate(-50%,-50%) scale(1.05,.95) rotate(-1deg)}
  100%{transform:translate(-50%,-50%) scale(.96,1.1) rotate(1.5deg)}
}
.lights .globe{width:7%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle, rgba(255,240,200,.95) 0 18%, rgba(255,210,130,.5) 40%, rgba(255,190,100,0) 72%);mix-blend-mode:screen;animation:glow 3.2s ease-in-out infinite alternate}
.lights .globe:nth-child(odd){animation-delay:-1.3s}
@keyframes glow{from{filter:brightness(.85)}to{filter:brightness(1.25)}}
.flies{position:absolute;inset:0;pointer-events:none;opacity:var(--on, 0)}
.flies i{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 10px 3px rgba(255,220,140,.7);left:var(--fx);top:var(--fy);animation:fly var(--fd) ease-in-out infinite alternate}
.flies i:nth-child(1){--fx:12%;--fy:20%;--fd:6s}.flies i:nth-child(2){--fx:30%;--fy:34%;--fd:8s}.flies i:nth-child(3){--fx:58%;--fy:16%;--fd:7s}
.flies i:nth-child(4){--fx:80%;--fy:28%;--fd:9s}.flies i:nth-child(5){--fx:70%;--fy:55%;--fd:6.5s}.flies i:nth-child(6){--fx:20%;--fy:58%;--fd:7.5s}.flies i:nth-child(7){--fx:46%;--fy:38%;--fd:8.5s}
@keyframes fly{0%{transform:translate(0,0);opacity:.2}50%{opacity:1}100%{transform:translate(28px,-36px);opacity:.3}}

/* ── нам доверяют: государственные и международные ── */
.trust{background:var(--sand-3);padding:16vh 5vw 12vh}
.trust .head{max-width:1100px;margin-bottom:6vh}
.trust .lab{color:var(--brownie)}
.trust h2{font-size:clamp(44px, 5.6vw, 96px);color:var(--brownie);margin:0}
.tlist{list-style:none;margin:0;padding:0;border-top:1px solid rgba(120,39,16,.2)}
.tlist li{position:relative;display:grid;grid-template-columns:90px minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:baseline;padding:24px 0;border-bottom:1px solid rgba(120,39,16,.2)}
.tlist .ti{font-size:15px;font-weight:700;color:var(--brownie);background:var(--bisquit);border-radius:99px;padding:3px 12px;justify-self:start}
.tlist b{font-size:clamp(26px, 2.8vw, 46px);color:var(--brownie)}
.tlist p{margin:0;color:#4d4843;font-size:16px;max-width:42ch}
.partners{margin-top:9vh}
.partners h3{margin:0 0 4vh;font-size:clamp(24px, 2.4vw, 36px);font-weight:700;letter-spacing:-.02em;color:var(--brownie)}
.logos{overflow:hidden;padding:10px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.lrow{display:flex;align-items:center;gap:80px;width:max-content;animation:marquee 36s linear infinite}
.lrow .dup{display:flex;align-items:center;gap:80px}
.logos:hover .lrow{animation-play-state:paused}
.lrow img{flex:none;width:auto;opacity:.78}
@keyframes marquee{to{transform:translateX(calc(-50% - 40px))}}

/* ── отзывы: лента со свайпом ── */
.reviews{background:var(--sand-2);padding:14vh 0 12vh;overflow:hidden}
.reviews .head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:0 5vw;margin-bottom:5vh}
.reviews h2{font-size:clamp(48px, 6.4vw, 104px);color:var(--brownie);margin:0}
.reviews .head p{max-width:32ch;margin:0;color:#4d4843;font-size:15px}
.rtrack{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 5vw 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rtrack::-webkit-scrollbar{display:none}
.rv{flex:none;width:min(520px, 82vw);margin:0;scroll-snap-align:start;background:var(--sand-3);border-radius:28px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;min-height:320px;box-shadow:0 20px 50px rgba(41,39,36,.08)}
.rv blockquote{margin:0;font-size:clamp(19px, 1.6vw, 24px);line-height:1.4;font-weight:500;color:var(--ink);position:relative;padding-top:44px}
.rv blockquote::before{content:"\201C";position:absolute;top:-18px;left:-4px;font-size:100px;line-height:1;font-weight:800;color:var(--brownie)}
.rv figcaption b{display:block;font-weight:700;color:var(--brownie)}
.rv figcaption span{font-size:14px;color:#6f6a63}
.rv.img{padding:14px}
.rv.img img{width:100%;height:auto;border-radius:18px}
.rv.vid{width:min(760px, 88vw);display:grid;grid-template-columns:minmax(0,220px) 1fr;grid-template-rows:auto auto;gap:18px 28px;padding:18px 30px 28px 18px}
.rv.vid .rvv{grid-row:1/3;position:relative;border-radius:20px;overflow:hidden;aspect-ratio:9/16;background:#1e1c1a}
.rv.vid video{width:100%;height:100%;object-fit:cover}
.rv.vid blockquote{align-self:start;font-size:clamp(17px, 1.35vw, 21px);padding-top:56px}
.rv.vid figcaption{align-self:end}
.snd{position:absolute;left:12px;bottom:12px;border:0;border-radius:99px;padding:8px 14px;font:600 13px var(--f);background:rgba(251,247,238,.92);color:var(--brownie);cursor:pointer}
.snd.on{background:var(--brownie);color:var(--bisquit)}
.rv.empty{background:transparent;border:2px dashed rgba(120,39,16,.3);box-shadow:none}
.rv.empty blockquote{color:#6f6a63}

/* ── 6. вопросы ── */
.faq{background:var(--sand-3);padding:16vh 5vw 14vh;display:grid;grid-template-columns:.8fr 1.2fr;gap:4vw;align-items:start}
.faq h2{font-size:clamp(48px, 6vw, 96px);color:var(--brownie);margin:0;position:sticky;top:120px}
.faq dl{margin:0;border-top:1px solid rgba(120,39,16,.2)}
.faq details{border-bottom:1px solid rgba(120,39,16,.2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-weight:700;font-size:clamp(18px, 1.6vw, 22px);letter-spacing:-.02em;color:var(--brownie)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:36px;height:36px;border-radius:99px;background:var(--sand-2);display:grid;place-items:center;font-weight:500;font-size:22px;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:-6px 0 24px;max-width:60ch;color:#4d4843}

/* ── 7. заявка ── */
.final{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--sand-3);overflow:hidden;background:var(--choco)}
.final .v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
.final::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(41,39,36,.35),rgba(41,39,36,.94) 70%)}
.final .in{position:relative;z-index:1;width:100%;padding:16vh 5vw 5vh}
.final h2{font-size:clamp(56px, 8vw, 150px);margin:0 0 4vh;color:var(--bisquit)}
.final .grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:5vw;align-items:start}
.final .big{height:60px;padding:0 34px;font-size:17px;background:var(--bisquit);color:var(--brownie);border:0;cursor:pointer;font-family:inherit}
.final .big[disabled]{opacity:.6;cursor:progress}
.contacts{display:flex;flex-direction:column;gap:22px}
.contacts .lead{margin:0;font-size:18px;max-width:34ch;opacity:.9}
.contacts a,.contacts div.c{display:block;font-size:15px;color:rgba(244,237,226,.8)}
.contacts b{display:block;font-size:24px;font-weight:700;color:var(--sand-3);letter-spacing:-.02em}
.contacts a:hover b{color:var(--bisquit)}
.final .wm img{height:34px;width:auto;opacity:1}
.final .wm{margin-top:8vh;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-top:1px solid rgba(244,237,226,.25);padding-top:22px;font-size:13px;opacity:.7}

.form{background:rgba(244,237,226,.97);color:var(--ink);border-radius:28px;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .full{grid-column:1/-1}
.form .fld{display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}
.form .fld > label{font-size:13px;font-weight:600;color:#5c5650}
/* телефон: код страны + номер в одном поле */
.tel{position:relative;display:flex;align-items:stretch;background:#fff;border:1.5px solid #e6dccb;border-radius:14px}
.tel:focus-within{border-color:var(--brownie)}
.tel .cc{flex:none;display:flex;align-items:center;gap:6px;padding:0 10px 0 12px;border:0;border-right:1.5px solid #efe6d8;background:none;font:600 15px var(--f);color:var(--ink);cursor:pointer;border-radius:13px 0 0 13px}
.tel .cc:hover{background:var(--sand-2)}
.cc-flag{display:flex}
.cc-flag img,.cc-list li img{width:22px;height:16px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(41,39,36,.12);flex:none}
.tel .cc i{width:7px;height:7px;border-right:2px solid var(--brownie);border-bottom:2px solid var(--brownie);transform:rotate(45deg) translateY(-2px);margin-left:2px}
.tel #f-phone{border:0;border-radius:0 14px 14px 0;background:transparent;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.tel #f-phone:focus{outline:none}
.cc-list{position:absolute;z-index:20;left:-1.5px;top:calc(100% + 6px);width:min(320px, 86vw);max-height:300px;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(41,39,36,.25);overflow:hidden}
.cc-list[hidden]{display:none}
.cc-list .cc-q{border:0;border-bottom:1.5px solid #efe6d8;border-radius:0;font-size:15px;padding:12px 14px}
.cc-list ul{list-style:none;margin:0;padding:6px;overflow-y:auto}
.cc-list li[hidden]{display:none}
.cc-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;font-size:15px}
.cc-list li span{margin-left:auto;color:#6f6a63;font-variant-numeric:tabular-nums}
.cc-list li:hover,.cc-list li.on,.cc-list li[aria-selected="true"]{background:var(--sand-2)}
/* дата: свой календарь */
.dp{position:relative}
.dp-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font:500 16px/1.3 var(--f);color:var(--ink);background:#fff;border:1.5px solid #e6dccb;border-radius:14px;padding:13px 14px;cursor:pointer;text-align:left}
.dp-btn:focus-visible,.dp-btn[aria-expanded="true"]{border-color:var(--brownie);outline:none}
.dp-btn.empty .dp-val{color:#8b857c}
.dp-btn svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--brownie);stroke-width:1.8;stroke-linecap:round}
.dp-pop{position:absolute;z-index:20;left:0;top:calc(100% + 6px);width:300px;max-width:86vw;padding:14px;background:#fff;border-radius:18px;box-shadow:0 20px 50px rgba(41,39,36,.25)}
.dp-pop[hidden]{display:none}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dp-head b{font-size:16px;font-weight:700;color:var(--brownie);text-transform:capitalize}
.dp-head button{width:36px;height:36px;border:0;border-radius:99px;background:var(--sand-2);font-size:22px;line-height:1;color:var(--brownie);cursor:pointer}
.dp-head button:disabled{opacity:.3;cursor:default}
.dp-wd,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dp-wd span{font-size:12px;font-weight:600;color:#8b857c;padding:4px 0}
.dp-grid button{aspect-ratio:1;border:0;border-radius:99px;background:none;font:500 14px var(--f);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.dp-grid button:hover:not(:disabled){background:var(--sand-2)}
.dp-grid button.today{box-shadow:inset 0 0 0 1.5px var(--bisquit)}
.dp-grid button.sel{background:var(--brownie);color:var(--bisquit);font-weight:700}
.dp-grid button:disabled{color:#cfc6b8;cursor:default}
.dp-grid button.we:not(:disabled):not(.sel){color:var(--brownie)}
.dp-foot{margin-top:8px;text-align:center}
.dp-foot button{border:0;background:none;font:600 13px var(--f);color:#6f6a63;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#5c5650}
.form input,.form select,.form textarea{font:500 16px/1.3 var(--f);color:var(--ink);background:#fff;border:1.5px solid #e6dccb;border-radius:14px;padding:13px 14px;width:100%;min-width:0;-webkit-appearance:none;appearance:none}
.form select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237D250F' stroke-width='2'/%3E%3C/svg%3E") right 14px center no-repeat;padding-right:36px}
.form textarea{resize:vertical;min-height:84px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--brownie)}
.form .chips{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}
.form .chips legend{font-size:13px;font-weight:600;color:#5c5650;margin-bottom:8px;padding:0}
.form .chips label{flex-direction:row;font-size:14px;font-weight:600;color:var(--brownie);cursor:pointer}
.form .chips input{position:absolute;opacity:0;width:1px;height:1px}
.form .chips span{display:block;padding:9px 15px;border-radius:99px;background:var(--sand-2);border:1.5px solid transparent}
.form .chips input:checked + span{background:var(--brownie);color:var(--bisquit)}
.form .chips input:focus-visible + span{outline:3px solid var(--milky);outline-offset:2px}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .send{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.form .note{font-size:12.5px;color:#6f6a63;max-width:36ch;margin:0}
.form .msg{grid-column:1/-1;margin:0;padding:14px 16px;border-radius:14px;font-size:15px;font-weight:600}
.form .msg.ok{background:#e4f1dd;color:#2c5a1e}
.form .msg.err{background:#f7e0d8;color:var(--brownie)}
.form .msg[hidden]{display:none}

.mcta{display:none;transition:opacity .3s, transform .3s}
.burger,.mnav{display:none}

@media (max-width: 760px){
  body{font-size:16px}
  .hdr{padding:8px 8px 8px 16px;gap:10px}
  .nav{display:none}
  .logo img{height:28px}
  .hdr .pill{margin-left:auto;height:40px;padding:0 16px;font-size:13px}
  /* телефон: тот же триптих — три вертикальные ленты, средняя шире */
  .tri{grid-template-columns:1fr 1.6fr 1fr;gap:3px;background:var(--choco)}
  .h1 span{font-size:10.6vw}
  .h1 .l1{left:5vw;top:14vh}
  .h1 .l2{right:5vw;top:21vh}
  .h1 .l3{left:5vw;top:28vh;bottom:auto}
  .hero-sub{left:5vw;right:5vw;bottom:13vh;text-align:left;font-size:15px}
  .cap1{bottom:22vh;font-size:15px}
  .cap2{left:5vw;bottom:14vh}
  .cap2 h2{font-size:13vw}
  .cap2 p{font-size:15px}
  .manifest{padding-block:13vh 12vh}
  .mf-in{grid-template-columns:1fr;gap:7vh;padding-inline:max(16px, 5vw)}
  .manifest p{font-size:8.6vw;max-width:none}
  .mf-media{gap:5vh}
  .mf1{width:100%}
  .mf2{width:86%}
  .mf .live{border-radius:20px;clip-path:inset(var(--clip, 0%) round 20px)}
  .what .in{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-items:start;padding:17vh 5vw 0;gap:2.6vh}
  .what .lab{top:12vh}
  .pics{order:-1;height:30vh;border-radius:22px}
  .words .r b{font-size:9vw}
  .words .r em{display:none}
  .parade .head{top:12vh;flex-direction:column;align-items:flex-start;gap:8px}
  .parade h2{font-size:12.5vw}
  .parade .head p{font-size:14px}
  .track{margin-top:20vh;gap:5vw}
  .dish{width:58vw}
  .dish:nth-child(even){margin-top:4vh}
  .dish b{font-size:22px}
  .cases .head{top:12vh;flex-direction:column;align-items:flex-start;gap:8px}
  .cases h2{font-size:13vw}
  .ctrack{margin-top:16vh;gap:16px}
  .case{width:62vw}
  /* атмосфера на телефоне тоже закрепляется: текст сверху, картинка под ним */
  .atmos-in{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:2.5vh;padding:12vh 5vw 4vh;justify-items:center;align-items:start}
  .atmos-txt{justify-self:stretch}
  .atmos .lab{margin-bottom:10px}
  .atmos h2{font-size:10.5vw;margin-bottom:12px}
  .atmos-txt p{font-size:14px}
  .atmos-pic{height:min(56svh, 125vw);width:auto}
  .trust{padding:12vh 5vw 9vh}
  .trust h2{font-size:10.5vw}
  .tlist li{grid-template-columns:1fr;gap:8px;padding:20px 0}
  .tlist b{font-size:7vw}
  .tlist p{font-size:15px}
  .lrow,.lrow .dup{gap:48px}
  .lrow img{transform:scale(.8)}
  .reviews{padding:12vh 0 9vh}
  .reviews .head{flex-direction:column;align-items:flex-start;gap:8px}
  .reviews h2{font-size:13vw}
  .rv{padding:26px;min-height:280px}
  .rv.vid{grid-template-columns:1fr;padding:14px 14px 24px}
  .rv.vid .rvv{grid-row:auto;aspect-ratio:4/5}
  .rv.vid blockquote{padding:44px 10px 0}
  .rv.vid figcaption{padding:0 10px}
  .faq{grid-template-columns:1fr;padding:12vh 5vw 10vh;gap:4vh}
  .faq h2{font-size:13vw;position:static}
  .faq summary{padding:20px 0}
  .final .in{padding:14vh 4vw 13vh}
  .final h2{font-size:11vw;padding:0 1vw}
  .final .grid{grid-template-columns:1fr;gap:6vh}
  .form{grid-template-columns:1fr;padding:22px 18px;border-radius:24px}
  .contacts{padding:0 1vw}
  .final .wm{flex-direction:column;align-items:flex-start;gap:6px;padding-left:1vw}
  /* нижняя панель: звонок, Telegram, заявка */
  .mcta{display:flex;gap:8px;position:fixed;z-index:60;left:max(12px, env(safe-area-inset-left, 0px));right:max(12px, env(safe-area-inset-right, 0px));bottom:max(12px, env(safe-area-inset-bottom, 0px));
    padding:6px;border-radius:99px;background:rgba(251,247,238,.97);box-shadow:0 10px 30px rgba(41,39,36,.25)}
  .mcta.away{opacity:0;pointer-events:none;transform:translateY(24px)}
  .mc-ico{flex:none;width:48px;height:48px;border-radius:99px;display:grid;place-items:center;background:var(--sand)}
  .mc-ico svg{width:22px;height:22px;fill:var(--brownie)}
  .mc-main{flex:1;height:48px;font-size:15px}
  /* меню */
  .hdr .pill{display:none}
  .burger{display:grid;place-content:center;gap:6px;margin-left:auto;width:44px;height:44px;border:0;border-radius:99px;background:var(--brownie);cursor:pointer}
  .burger i{display:block;width:18px;height:2px;border-radius:2px;background:var(--bisquit);transition:transform .3s}
  .burger[aria-expanded="true"] i:first-child{transform:translateY(4px) rotate(45deg)}
  .burger[aria-expanded="true"] i:last-child{transform:translateY(-4px) rotate(-45deg)}
  .mnav{position:fixed;z-index:49;inset:0;display:flex;flex-direction:column;gap:4px;padding:calc(96px + env(safe-area-inset-top, 0px)) max(24px, env(safe-area-inset-left, 0px)) 32px;background:var(--sand-3);overflow-y:auto}
  .mnav[hidden]{display:none}
  .mnav > a{font-size:32px;font-weight:700;letter-spacing:-.02em;color:var(--brownie);padding:8px 0}
  .mnav-c{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:24px;border-top:1px solid rgba(120,39,16,.2)}
  .mnav-c a{font-size:18px;font-weight:600;color:var(--ink)}
  /* крупные цели для пальца */
  .form .chips span{padding:12px 16px}
  .faq summary{min-height:56px}
  .final .in{padding-bottom:calc(110px + env(safe-area-inset-bottom, 0px))}
}
/* параллакс (переменные двигает скролл) и наклон за курсором */
.live .m{translate:var(--px, 0) var(--py, 0)}
.dish .live,.case .live{transform:perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.live video.m{animation:none}

/* лёгкость: всё, что за пределами экрана, не анимируется */
.is-off,.is-off *,.is-off::after{animation-play-state:paused!important}
@media (hover: none), (pointer: coarse){
  /* размытие под шапкой перерисовывается на каждом кадре скролла — на телефоне берём плотный фон */
  .hdr{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(251,247,238,.96)}
  .lights .flame{filter:none}
}
