@font-face{font-family:'Manrope';font-style:normal;font-weight:400 500;font-display:swap;src:url(assets/fonts/manrope-400.woff2?v=2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/manrope-600.woff2?v=2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/manrope-700.woff2?v=2) format('woff2')}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600 700;font-display:swap;src:url(assets/fonts/unbounded-700.woff2?v=2) format('woff2')}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/unbounded-800.woff2?v=2) format('woff2')}
@font-face{font-family:'Manrope-fb';src:local('Arial');size-adjust:113.41%;ascent-override:93.99%;descent-override:26.45%;line-gap-override:0%}
@font-face{font-family:'Unbounded-fb';src:local('Arial');size-adjust:155.13%;ascent-override:64.14%;descent-override:15.79%;line-gap-override:0%}
/* ============================================================
   Квеструм.рф Ижевск — редизайн. Светлая тема, воздушная.
   Палитра: blue #5680E9 · sky #5AB9EA · cyan #84CEEB ·
            lavender #C1C8E4 · amethyst #8860D0. Фон белый.
   Unbounded (дисплей) + Manrope (текст). Standalone multipage.
   ============================================================ */
:root{
  --bg:#ffffff; --bg2:#f3f6fd; --bg3:#eaeefb;
  --card:#ffffff; --card2:#f7f9ff;
  --line:rgba(40,52,98,.10); --line2:rgba(40,52,98,.18);
  --ink:#1b2444; --txt:#1b2444; --muted:rgba(27,36,68,.72); --muted2:rgba(27,36,68,.56);

  --accent:#5680E9;        /* основной — синий */
  --accent-2:#5AB9EA;      /* небесно-голубой */
  --accent-deep:#3f63c9;
  --sky:#84CEEB;           /* светло-голубой */
  --lav:#C1C8E4;           /* лавандово-серый */
  --violet:#8860D0;        /* аметист */

  --g-adv:#5680E9;         /* приключения — синий */
  --g-horror:#8860D0;      /* хоррор — аметист */
  --g-kids:#2f9fd8;        /* детские — голубой */
  --g-myst:#6a4fc0;        /* мистика — индиго */
  --g-vr:#3aa3d6;          /* VR — циан */

  --r:20px; --r-sm:13px; --r-lg:28px; --r-pill:999px;
  --sh-1:0 2px 10px rgba(40,52,98,.06);
  --sh-2:0 16px 44px rgba(40,52,98,.12);
  --sh-3:0 28px 70px rgba(40,52,98,.18);
  --glow:0 12px 30px rgba(86,128,233,.30);
  --maxw:1240px;
  --fd:'Unbounded','Unbounded-fb',system-ui,sans-serif;
  --fb:'Manrope','Manrope-fb',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--fb);background:var(--bg);color:var(--txt);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--fd);font-weight:700;line-height:1.04;letter-spacing:-.01em;margin:0;color:var(--ink)}
h1{font-weight:800}
p{margin:0 0 1em}

/* глобальный фоновый шум убран — используем чистый белый фон */

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
/* position:relative без isolation — чтобы дочерние элементы могли выйти за пределы секции и остаться видимыми */
.section{padding:96px 0;position:relative;z-index:1}
.section--tight{padding:64px 0;position:relative;z-index:1}
/* Секция с альтернативным фоном: плавные переходы сверху и снизу */
.sec-bg2{background:linear-gradient(180deg,var(--bg) 0,var(--bg2) 56px,var(--bg2) calc(100% - 56px),var(--bg) 100%)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--fb);font-weight:700;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--accent);border-radius:2px}
.h-xl{font-size:clamp(38px,7vw,86px);line-height:.98;letter-spacing:-.02em;text-transform:uppercase;font-weight:800}
.h2{font-size:clamp(30px,4.6vw,54px);text-transform:uppercase}
.h3{font-size:clamp(21px,2.5vw,28px)}
.lead{font-size:clamp(16px,1.5vw,19px);color:var(--muted);max-width:64ch}
.sec-head{margin-bottom:52px;max-width:780px}
.center{text-align:center}.center .lead{margin-inline:auto}

/* ---------- Кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--fd);font-weight:700;font-size:14.5px;letter-spacing:.02em;text-transform:uppercase;padding:15px 28px;border-radius:var(--r-pill);border:1.5px solid transparent;cursor:pointer;transition:transform .18s,box-shadow .25s,background .2s,color .2s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--violet));color:#fff;box-shadow:var(--glow)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(86,128,233,.4)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line2)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-lg{padding:18px 36px;font-size:16px}
.btn-block{width:100%}

/* ---------- Topbar ---------- */
.topbar{background:var(--bg2);border-bottom:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:42px}
.topbar a:hover{color:var(--accent)}
.topbar .tb-r{display:flex;gap:22px;align-items:center}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:26px;height:74px}
.logo{display:flex;align-items:center;gap:11px}
.logo .logo-img{height:39px;width:auto;display:block;transition:opacity .2s}
.logo:hover .logo-img{opacity:.8}
.nav-links{display:flex;gap:24px;margin-left:6px}
.nav-links a{font-weight:600;font-size:15px;color:var(--muted);transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--accent)}
.nav-r{margin-left:auto;display:flex;align-items:center;gap:18px}
.nav-phone{font-family:var(--fd);font-weight:700;font-size:18px;white-space:nowrap;color:var(--ink)}
.nav-phone span{display:block;font-family:var(--fb);font-size:11px;font-weight:700;color:var(--accent-deep);letter-spacing:.04em}
.burger{display:none;background:none;border:none;color:var(--ink);cursor:pointer;padding:6px}

/* ---------- Hero ---------- */
.hero{position:relative;padding:74px 0 96px}
/* hero::before убран — пятна удалены */
.hero .wrap{position:relative;z-index:2}
.hero h1{margin-bottom:24px}
.hero h1 .hl{color:var(--accent)}
.hero .lead{font-size:clamp(17px,1.7vw,21px);margin-bottom:34px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin-top:46px;padding-top:34px;border-top:1px solid var(--line)}
.hero-stats .st b{display:block;font-family:var(--fd);font-weight:800;font-size:clamp(28px,3.4vw,40px);background:linear-gradient(120deg,var(--accent),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats .st span{font-size:13.5px;color:var(--muted)}
.hero-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}

/* ---------- Чипы/бейджи ---------- */
.chip{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--r-pill);background:var(--card2);border:1px solid var(--line);color:var(--ink)}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--fb);font-weight:700;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;padding:5px 11px;border-radius:7px;color:#fff}
.badge.g-horror{background:var(--g-horror)}
.badge.g-adv{background:var(--g-adv)}
.badge.g-kids{background:var(--g-kids)}
.badge.g-myst{background:var(--g-myst)}
.badge.g-vr{background:var(--g-vr)}

/* ---------- Сетки ---------- */
.grid{display:grid;gap:22px}
.cols-2{grid-template-columns:repeat(2,1fr)}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}

/* ---------- Карточка квеста ---------- */
.qcard{position:relative;border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,border-color .28s;display:flex;flex-direction:column}
.qcard:hover{transform:translateY(-6px);box-shadow:var(--sh-2);border-color:transparent}
.qcard .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg3)}
.qcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.qcard:hover .ph img{transform:scale(1.06)}
.qcard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(20,28,60,.55))}
.qcard .ph .tags{position:absolute;left:14px;top:14px;display:flex;gap:7px;flex-wrap:wrap;z-index:2}
.qcard .ph .age{position:absolute;right:14px;top:14px;z-index:2;font-family:var(--fd);font-weight:700;font-size:12px;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);color:var(--ink)}
.qcard .bd{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.qcard .bd h3{font-size:21px;margin-bottom:10px}
.qcard .bd p{font-size:14.5px;color:var(--muted);margin-bottom:18px}
.qmeta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:18px;margin-top:auto}
.qmeta .m{display:inline-flex;align-items:center;gap:6px}
.qmeta .m svg{width:15px;height:15px;color:var(--accent)}
.qcard .row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.qcard .price{font-family:var(--fd);font-weight:700;font-size:17px;color:var(--ink)}
.qcard .price span{font-size:12px;color:var(--muted);font-weight:500;display:block;font-family:var(--fb)}
.qcard.feat{grid-column:span 2}
@media(min-width:861px){.qcard.feat{flex-direction:row}.qcard.feat .ph{aspect-ratio:auto;width:52%}.qcard.feat .bd{justify-content:center}}

/* ---------- Категории ---------- */
.cat{position:relative;border-radius:var(--r);overflow:hidden;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;color:#fff;box-shadow:var(--sh-1);transition:transform .28s,box-shadow .28s}
.cat:hover{transform:translateY(-5px);box-shadow:var(--sh-2)}
.cat::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(155deg,var(--c1,#5680E9),var(--c2,#8860D0))}
.cat>*{position:relative;z-index:2}
.cat .ico{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.20);margin-bottom:auto}
.cat .ico svg{width:26px;height:26px}
.cat h3{font-size:22px;margin:18px 0 6px;color:#fff}
.cat p{font-size:14px;color:rgba(255,255,255,.85);margin:0}
.cat .go{margin-top:16px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:#fff}
.cat .go svg{width:16px;height:16px;transition:transform .2s}
.cat:hover .go svg{transform:translateX(4px)}

/* ---------- Фичи ---------- */
.feat{padding:28px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.feat:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.feat .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(150deg,rgba(86,128,233,.16),rgba(136,96,208,.16));color:var(--accent);margin-bottom:18px}
.feat .ico svg{width:26px;height:26px}
.feat h3{font-size:19px;margin-bottom:9px}
.feat p{font-size:14.5px;color:var(--muted);margin:0}

/* ---------- Шаги ---------- */
.steps{counter-reset:s;display:grid;gap:20px}
.step{position:relative;padding:26px 26px 26px 78px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1)}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:24px;top:24px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--fd);font-weight:800;font-size:16px;color:#fff;background:linear-gradient(150deg,var(--accent),var(--violet))}
.step h3{font-size:18px;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--muted);margin:0}

/* ---------- Прайс ---------- */
.price-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-1)}
.price-card .pr{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 26px;border-bottom:1px solid var(--line)}
.price-card .pr:last-child{border-bottom:none}
.price-card .pr b{font-weight:600;font-family:var(--fb)}
.price-card .pr small{display:block;color:var(--muted);font-weight:500;font-size:13px}
.price-card .pr .v{font-family:var(--fd);font-weight:700;font-size:20px;color:var(--accent);white-space:nowrap}

/* прайс-сетка (тарифы карточками, по сетке, без центрирования) */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.ptile{display:flex;flex-direction:column;gap:8px;padding:26px 24px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.ptile:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.ptile h3{font-size:18px}
.ptile .sub{font-size:13.5px;color:var(--muted);flex:1}
.ptile .v{font-family:var(--fd);font-weight:700;font-size:22px;color:var(--accent);margin-top:6px}
.ptile.accent{background:linear-gradient(150deg,var(--accent),var(--violet));border-color:transparent;color:#fff}
.ptile.accent h3,.ptile.accent .v{color:#fff}
.ptile.accent .sub{color:rgba(255,255,255,.85)}

/* ---------- Табы-заголовки с переключением и анимацией ---------- */
.tabs{position:relative}
.tabs-head{display:flex;flex-wrap:wrap;gap:10px 44px;align-items:baseline;margin-bottom:40px;border-bottom:1px solid var(--line)}
.tab-h{display:inline-flex;align-items:center;font-family:var(--fd);font-weight:700;font-size:clamp(22px,3.6vw,46px);line-height:1.04;letter-spacing:-.01em;text-transform:uppercase;color:var(--muted2);background:none;border:none;padding:0 0 16px;cursor:pointer;position:relative;transition:color .3s;text-align:left}
.tab-h:hover{color:var(--muted)}
.tab-h.is-active{color:var(--ink)}
/* стрелка слева: появляется по скроллу/ховеру, «указывает вправо» */
.tab-h::before{content:"";width:0;height:.6em;opacity:0;margin-right:0;flex:0 0 auto;
  background:linear-gradient(135deg,var(--accent),var(--violet));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:width .35s cubic-bezier(.16,1,.3,1),opacity .35s,margin-right .35s}
/* видно (по скроллу) или при наведении */
.tabs-head.arrows-in .tab-h::before,.tab-h:hover::before{width:.62em;opacity:1;margin-right:.36em}
/* когда видно и НЕ наведено — плавно «кивает» вправо */
.tabs-head.arrows-in .tab-h::before{animation:tab-arrow 1.5s ease-in-out infinite}
/* при наведении — статична */
.tab-h:hover::before{animation:none;transform:translateX(2px)}
@keyframes tab-arrow{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){.tabs-head.arrows-in .tab-h::before{animation:none}}
.tab-h.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--violet))}
.tabs-body{position:relative}
.tab-panel{display:none}
.tab-panel.is-active{display:block;animation:tab-fade .5s cubic-bezier(.16,1,.3,1)}
@keyframes tab-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tab-panel.is-active .feat{animation:tab-card .55s cubic-bezier(.16,1,.3,1) both}
.tab-panel.is-active .feat:nth-child(1){animation-delay:.04s}
.tab-panel.is-active .feat:nth-child(2){animation-delay:.12s}
.tab-panel.is-active .feat:nth-child(3){animation-delay:.20s}
@keyframes tab-card{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}
.tabs-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:34px}
.tabs-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line2);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:border-color .2s,color .2s,transform .2s,box-shadow .2s}
.tabs-arrow:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh-1)}
.tabs-arrow svg{width:20px;height:20px}
.tabs-dots{display:flex;gap:10px}
.tabs-dots .dot{width:9px;height:9px;border-radius:50%;background:var(--line2);transition:transform .25s,background .25s;cursor:pointer}
.tabs-dots .dot.is-on{background:linear-gradient(135deg,var(--accent),var(--violet));transform:scale(1.3)}
@media(prefers-reduced-motion:reduce){.tab-panel.is-active,.tab-panel.is-active .feat{animation:none}}
@media(max-width:600px){.tabs-head{gap:4px 22px}.tab-h{font-size:clamp(20px,7vw,30px);padding-bottom:12px}}

/* ---------- Горизонтальная карусель (квесты/шоу) ---------- */
.hq-carousel{position:relative}
.hq-rail{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:10px 2px;margin:0 -2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.hq-rail::-webkit-scrollbar{display:none}
.hq-rail>.qcard{scroll-snap-align:start;flex:0 0 300px;width:300px}
.hq-rail>.qcard .ph{aspect-ratio:16/11}
/* футер карточки в каруселях — в столбик, кнопка на всю ширину (чтобы текст не зажимался) */
.hq-rail .qcard .row{flex-direction:column;align-items:stretch;gap:14px}
.hq-rail .qcard .price{font-size:15px;line-height:1.25}
.hq-rail .qcard .price span{display:block;white-space:normal;margin-top:2px}
.hq-rail .qcard .row .btn{width:100%;justify-content:center}
.btn:active{transform:translateY(1px) scale(.99)}
@media(max-width:600px){.hq-rail>.qcard{flex-basis:82%;width:82%}}
/* стрелки управления каруселью */
.hq-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}
.rail-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line2);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:border-color .2s,color .2s,transform .2s,box-shadow .2s,opacity .2s}
.rail-arrow:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:var(--sh-1)}
.rail-arrow:disabled{opacity:.35;cursor:default;transform:none;box-shadow:none;border-color:var(--line2);color:var(--ink)}
.rail-arrow svg{width:20px;height:20px}

/* ---------- Таймлайн программы (креативный зигзаг) ---------- */
.timeline{position:relative;max-width:960px;margin:54px auto 0;counter-reset:tl}
/* центральная градиентная ось со свечением */
.timeline::before{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:4px;transform:translateX(-50%);
  background:linear-gradient(180deg,var(--accent),var(--violet),var(--sky));border-radius:4px;
  box-shadow:0 0 22px rgba(86,128,233,.45)}
.tl-item{position:relative;width:50%;padding-bottom:38px;box-sizing:border-box}
.tl-item:nth-child(odd){left:0;padding-right:54px;text-align:right}
.tl-item:nth-child(even){left:50%;padding-left:54px;text-align:left}
/* номер-кружок на оси */
.tl-item::after{counter-increment:tl;content:counter(tl);position:absolute;top:0;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;font-family:var(--fd);font-weight:800;font-size:15px;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--violet));
  box-shadow:0 0 0 6px var(--bg),0 8px 20px rgba(86,128,233,.45);z-index:2}
.tl-item:nth-child(odd)::after{right:-19px}
.tl-item:nth-child(even)::after{left:-19px}
/* время-пилюля */
.tl-time{display:inline-block;font-family:var(--fd);font-weight:700;font-size:12.5px;letter-spacing:.02em;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--violet));padding:6px 15px;border-radius:999px;white-space:nowrap;
  box-shadow:0 8px 18px rgba(86,128,233,.30);margin-bottom:13px}
/* карточка с «хвостиком» к оси */
.tl-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);
  padding:18px 22px;text-align:left;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}
.tl-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:transparent}
.tl-card::before{content:"";position:absolute;top:22px;width:0;height:0;border:9px solid transparent}
.tl-item:nth-child(odd) .tl-card::before{right:-18px;border-left-color:var(--card)}
.tl-item:nth-child(even) .tl-card::before{left:-18px;border-right-color:var(--card)}
.tl-card h3{font-size:17.5px;margin-bottom:6px}
.tl-card p{font-size:14px;color:var(--muted);margin:0}
.tl-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tl-opts .chip{font-size:12.5px;background:linear-gradient(135deg,rgba(86,128,233,.10),rgba(136,96,208,.10));border-color:var(--line2);font-weight:600}
/* на тёмном/цветном фоне «хвостик» и обводка кружка совпадают с фоном секции */
.sec-bg2 .tl-item::after{box-shadow:0 0 0 6px var(--bg2),0 8px 20px rgba(86,128,233,.45)}
/* мобайл: одна ось слева */
@media(max-width:760px){
  .timeline{margin-top:30px}
  .timeline::before{left:18px}
  .tl-item,.tl-item:nth-child(odd),.tl-item:nth-child(even){width:100%;left:0;padding:0 0 28px 52px;text-align:left}
  .tl-item::after,.tl-item:nth-child(odd)::after,.tl-item:nth-child(even)::after{left:0;right:auto;width:34px;height:34px;font-size:14px}
  .tl-card::before,.tl-item:nth-child(odd) .tl-card::before,.tl-item:nth-child(even) .tl-card::before{left:-18px;right:auto;border:9px solid transparent;border-right-color:var(--card);border-left-color:transparent}
}

/* ---------- Лаунж-зоны с авто-галереями ---------- */
.lounges{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.lounge{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.lounge:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.lz-carousel{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--bg3)}
.lz-track{display:flex;height:100%;width:max-content;animation:lz-scroll 30s linear infinite}
.lounge:hover .lz-track{animation-play-state:paused}
.lz-track img{height:100%;width:auto;object-fit:cover;display:block;pointer-events:none}
@keyframes lz-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lz-carousel::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -38px 46px -30px rgba(20,28,60,.38)}
.lz-tag{position:absolute;left:16px;top:16px;z-index:2;font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.03em;padding:6px 13px;border-radius:var(--r-pill);color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));box-shadow:var(--glow)}
.lz-body{padding:26px 28px;display:flex;flex-direction:column;flex:1}
.lz-body h3{font-size:21px;margin-bottom:8px}
.lz-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.lz-meta .chip{font-size:13px;font-weight:600}
.lz-meta .chip.cap{background:linear-gradient(135deg,rgba(86,128,233,.12),rgba(136,96,208,.12));border-color:var(--line2);color:var(--accent)}
.lz-list{list-style:none;display:grid;gap:10px;margin:4px 0 0}
.lz-list li{position:relative;padding-left:28px;font-size:14px;color:var(--muted);line-height:1.5}
.lz-list li svg{position:absolute;left:0;top:2px;width:18px;height:18px;color:var(--accent);flex:0 0 auto}
@media(max-width:780px){.lounges{grid-template-columns:1fr;gap:22px}}

/* ---------- VR-галерея (мозаика 4 фото) ---------- */
.vr-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:14px;aspect-ratio:2/1}
.vr-gallery figure{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh-1);margin:0;background:var(--bg3)}
.vr-gallery figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.vr-gallery figure:nth-child(4){grid-column:span 2}
.vr-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.vr-gallery figure:hover img{transform:scale(1.07)}
.vr-gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(20,28,60,.28));opacity:0;transition:opacity .3s}
.vr-gallery figure:hover::after{opacity:1}
@media(max-width:680px){
  .vr-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto;aspect-ratio:auto;gap:10px}
  .vr-gallery figure:nth-child(1),.vr-gallery figure:nth-child(4){grid-column:span 1;grid-row:span 1}
  .vr-gallery figure{aspect-ratio:1/1}
}

/* ---------- Крупный ценник с CTA (по центру) ---------- */
.price-hero{margin-top:48px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.price-hero .ph-label{font-family:var(--fb);font-weight:700;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.price-hero .ph-price{font-family:var(--fd);font-weight:800;font-size:clamp(48px,8vw,84px);line-height:1;letter-spacing:-.02em;background:linear-gradient(120deg,var(--accent),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.price-hero .ph-from{font-size:.42em;font-weight:700;vertical-align:.5em;letter-spacing:0;-webkit-text-fill-color:var(--muted);color:var(--muted)}
.price-hero .ph-cur{font-size:.62em}
.price-hero .btn{margin-top:6px}
.price-hero .ph-note{margin:2px 0 0;font-size:13.5px;color:var(--muted2)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--sh-1)}
.faq summary{list-style:none;cursor:pointer;padding:22px 24px;font-family:var(--fd);font-weight:600;font-size:17px;color:var(--ink);display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:0 0 auto;width:24px;height:24px;position:relative}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;background:var(--accent);border-radius:2px;transition:.25s}
.faq summary .pm::before{top:11px;left:3px;right:3px;height:2.5px}
.faq summary .pm::after{left:11px;top:3px;bottom:3px;width:2.5px}
.faq details[open] summary .pm::after{opacity:0}
.faq .ans{padding:0 24px 22px;color:var(--muted);font-size:15px}

/* ---------- Отзывы ---------- */
.quote{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--sh-1)}
.quote .stars{color:#f5b73d;letter-spacing:2px;margin-bottom:12px}
.quote p{font-size:15px;color:var(--ink);opacity:.86;margin-bottom:16px}
.quote .who{display:flex;align-items:center;gap:12px}
.quote .who .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(150deg,var(--accent),var(--violet));display:grid;place-items:center;font-family:var(--fd);font-weight:700;color:#fff}
.quote .who b{font-size:14.5px;display:block}
.quote .who span{font-size:12.5px;color:var(--muted)}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:60px;background:linear-gradient(135deg,var(--accent),var(--violet))}
/* cta::before убран — пятно удалено */
.cta .in{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta h2{font-size:clamp(26px,3.4vw,42px);text-transform:uppercase;margin-bottom:10px;color:#fff}
.cta p{color:rgba(255,255,255,.9);margin:0}
.cta .btn-primary{background:#fff;color:var(--accent);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.cta .btn-primary:hover{background:#fff;color:var(--violet)}
.cta .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.cta .btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.12)}

/* ---------- Контакт-сводка ---------- */
.info-row{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}
.info-row:last-child{border-bottom:none}
.info-row svg{width:22px;height:22px;color:var(--accent);flex:0 0 auto;margin-top:2px}
.info-row b{font-family:var(--fd);font-weight:600;font-size:16px;display:block;margin-bottom:2px}
.info-row span{font-size:14.5px;color:var(--muted)}

/* ---------- Форма ---------- */
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;font-family:var(--fb);font-size:16px;color:var(--ink);background:var(--bg2);border:1.5px solid var(--line);border-radius:var(--r-sm)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:#fff}
.form-note{font-size:12px;color:var(--muted2);margin-top:8px}

/* ---------- Footer (тёмно-синий якорь) ---------- */
.footer{background:linear-gradient(180deg,#1a2039,#141829);border-top:none;padding:72px 0 30px;margin-top:0;color:rgba(255,255,255,.66)}
.footer .flogo-img{height:36px;width:auto;display:block;filter:brightness(0) invert(1)}
.footer h4{font-family:var(--fd);font-weight:600;color:#fff;font-size:14px;margin-bottom:20px;position:relative;padding-bottom:12px}
.footer h4::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--violet))}
.footer a{color:rgba(255,255,255,.62);display:block;padding:6px 0;font-size:14.5px}
.footer a:hover{color:#fff}
.footer .fbrand{margin-bottom:18px;display:flex;align-items:center}
.footer .sm{font-size:13.5px;color:rgba(255,255,255,.5);line-height:1.65}
.footer .fbar{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.42)}
.footer .nav-phone{color:#fff!important}
.fsoc{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin-top:16px}
.footer .fsoc a{display:inline-flex;align-items:center;gap:10px;color:#d9d7e6;font-size:14px;font-weight:500;transition:color .2s,transform .2s}
.footer .fsoc a:hover{color:#fff;transform:translateX(2px)}
.fsoc a svg{width:21px;height:21px;display:block}
.fsoc .s-vk:hover{color:#3d8bff}
.fsoc .s-tg:hover{color:#2aabee}

.fsoc .s-max:hover{color:#7c6bff}

.crumbs{font-size:13.5px;color:var(--muted2);padding:18px 0}
.crumbs a:hover{color:var(--accent)}
.crumbs span{margin:0 8px;opacity:.5}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   Скролл-анимации — вариативные по типам блоков.
   База .reveal (fade-up) переопределяется per-компонент.
   Всё экологично: малые смещения, мягкие кривые, ~.6–.8s.
   ============================================================ */
/* Карточки квестов — подъём с микро-зумом */
.qcard.reveal{transform:translateY(34px) scale(.985)}
.qcard.reveal.in{transform:none}
/* Категории — мягкий «pop» */
.cat.reveal{transform:scale(.92) translateY(12px)}
.cat.reveal.in{transform:none}
/* Шаги — выезд слева */
.step.reveal{transform:translateX(-32px)}
.step.reveal.in{transform:none}
/* Прайс-плитки — подъём с лёгкой пружинкой */
.ptile.reveal{transform:translateY(28px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.34,1.56,.64,1)}
.ptile.reveal.in{transform:none}
/* Отзывы — проявление с микро-наклоном */
.quote.reveal{transform:translateY(26px) rotate(-1.1deg)}
.quote.reveal.in{transform:none}
/* Промо/кросс-сейл — подъём (по умолчанию), мягкий зум */
.promo.reveal{transform:translateY(28px) scale(.99)}
.promo.reveal.in{transform:none}
/* Лаунж-карточки — подъём с зумом */
.lounge.reveal{transform:translateY(30px) scale(.98)}
.lounge.reveal.in{transform:none}

/* ===== WOW-блоки ===== */
/* CTA — масштабное проявление */
.cta.reveal{transform:scale(.955);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.cta.reveal.in{transform:none}
/* VR-галерея — каскадное проявление кадров */
.vr-gallery.reveal{opacity:1;transform:none}
.vr-gallery.reveal figure{opacity:0;transform:translateY(26px) scale(.95);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}
.vr-gallery.reveal.in figure{opacity:1;transform:none}
.vr-gallery.reveal.in figure:nth-child(2){transition-delay:.09s}
.vr-gallery.reveal.in figure:nth-child(3){transition-delay:.18s}
.vr-gallery.reveal.in figure:nth-child(4){transition-delay:.27s}
/* Таймлайн-зигзаг — элементы выезжают со своей стороны (WOW) */
.timeline.reveal{opacity:1;transform:none}
.tl-item{opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .66s cubic-bezier(.16,1,.3,1)}
.timeline.reveal.in .tl-item{opacity:1;transform:none}
@media(min-width:761px){
  .timeline.reveal .tl-item:nth-child(odd){transform:translateX(44px)}
  .timeline.reveal .tl-item:nth-child(even){transform:translateX(-44px)}
  .timeline.reveal.in .tl-item{transform:none}
  .timeline.reveal.in .tl-item:nth-child(2){transition-delay:.08s}
  .timeline.reveal.in .tl-item:nth-child(3){transition-delay:.16s}
  .timeline.reveal.in .tl-item:nth-child(4){transition-delay:.24s}
  .timeline.reveal.in .tl-item:nth-child(5){transition-delay:.32s}
  .timeline.reveal.in .tl-item:nth-child(6){transition-delay:.40s}
  .timeline.reveal.in .tl-item:nth-child(7){transition-delay:.48s}
}
/* Доступность: при reduced-motion всё видно сразу */
@media(prefers-reduced-motion:reduce){
  .tl-item,.vr-gallery .reveal figure,.vr-gallery figure{opacity:1!important;transform:none!important;transition:none!important}
}

.call-fab{display:none}

@media(max-width:980px){
  .cols-4{grid-template-columns:repeat(2,1fr)}
  .cols-3{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:repeat(2,1fr)}
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;gap:2px;background:#fff;border-bottom:1px solid var(--line);padding:14px 24px 20px;box-shadow:var(--sh-2)}
  .nav-links.open a{padding:11px 0;font-size:16px;border-bottom:1px solid var(--line)}
  .burger{display:block}
  .qcard.feat{grid-column:span 1}
  .cta{padding:40px 28px}
}
@media(max-width:680px){
  .section{padding:64px 0}
  .section--tight{padding:48px 0}
  .sec-bg2{background:linear-gradient(180deg,var(--bg) 0,var(--bg2) 40px,var(--bg2) calc(100% - 40px),var(--bg) 100%)}
  .cols-2,.cols-3,.cols-4,.price-grid{grid-template-columns:1fr}
  .hero-stats{gap:20px}
  .hero-stats .st b{font-size:clamp(24px,7vw,36px)}
  .topbar .tb-r{display:none}
  .nav-phone span{display:none}
  .cta .in{flex-direction:column;align-items:flex-start}
  body{font-size:16px}
  .logo .logo-img{height:32px}
  /* hero-collage на мобиле: чуть компактнее */
  .hero-collage{aspect-ratio:16/9;gap:8px}
  .hero-collage .big{border-radius:12px}
  /* call-fab */
  .call-fab{display:flex;position:fixed;right:16px;bottom:16px;z-index:70;width:58px;height:58px;border-radius:50%;background:linear-gradient(150deg,var(--accent),var(--violet));color:#fff;align-items:center;justify-content:center;box-shadow:var(--sh-3)}
  .call-fab svg{width:26px;height:26px}
  /* hero: убираем лишний отступ снизу */
  .hero{padding-bottom:64px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .btn:hover,.qcard:hover,.cat:hover,.feat:hover{transform:none!important}
}

/* ===== Стильный подвал ===== */
.footer{position:relative}
/* Статичная тонкая градиентная линия сверху футера */
.footer-accent{position:absolute;top:0;left:0;right:0;height:3px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,var(--accent),var(--violet) 55%,var(--sky))}
.footer .wrap{position:relative;z-index:2;padding-top:0}
.footer .fg{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.35fr;gap:40px;align-items:start}
.footer .fg>div:first-child{max-width:340px}
.footer .flogo-img{height:38px}
.footer h4{letter-spacing:.04em;text-transform:uppercase}
.footer a{transition:color .2s,transform .2s}
.footer .fg>div:nth-child(2) a:hover,.footer .fg>div:nth-child(3) a:hover{transform:translateX(3px)}
.footer .fphone-big{font-family:var(--fd);font-weight:700;font-size:20px;color:#fff!important;padding-top:0!important}
/* Контакты: телефон крупнее, VK — кнопка-чип */
.footer .fg>div:nth-child(4) .nav-phone{font-family:var(--fd);font-weight:700;font-size:21px!important;color:#fff!important;padding:2px 0 0}



@media(max-width:860px){.footer .fg{grid-template-columns:1fr 1fr;gap:34px 30px}.footer .fg>div:first-child{grid-column:1 / -1;max-width:none}}
@media(max-width:560px){.footer .fg{grid-template-columns:1fr;gap:30px}.footer .fbar{flex-direction:column;gap:8px}}

/* ===== Навигация: выпадающее меню «Выпускные» ===== */
.nav-drop{position:relative;display:inline-flex;align-items:center}
.nav-drop-t{font-weight:600;font-size:15px;color:var(--muted);cursor:pointer;transition:color .2s;display:inline-flex;align-items:center;gap:6px}
.nav-drop-t::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.55;transition:transform .2s}
.nav-drop:hover .nav-drop-t{color:var(--accent)}
.nav-drop:hover .nav-drop-t::after{transform:rotate(45deg) translate(1px,1px)}
.nav-drop-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:240px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-2);padding:8px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:70}
.nav-drop:hover .nav-drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px)}
.nav-drop-menu a{display:block;padding:11px 14px;border-radius:10px;font-size:14.5px;color:var(--ink);font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.nav-drop-menu a:hover{background:var(--bg2);color:var(--accent)}
@media(max-width:980px){
  .nav-links.open .nav-drop{display:block;width:100%}
  .nav-links.open .nav-drop-t{display:block;padding:11px 0;font-size:16px;border-bottom:1px solid var(--line)}
  .nav-links.open .nav-drop-t::after{float:right;margin-top:8px}
  .nav-links.open .nav-drop-menu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;background:transparent;padding:0 0 0 14px;min-width:0}
  .nav-links.open .nav-drop-menu a{padding:11px 0;border-bottom:1px solid var(--line)}
}

/* ============ АУДИТ: новые компоненты ============ */
/* герой-коллаж */
.hero2{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;aspect-ratio:1/1}
.hero-collage img{width:100%;height:100%;object-fit:cover;border-radius:16px;box-shadow:var(--sh-2)}
.hero-collage .big{grid-row:span 2;aspect-ratio:auto}
/* На планшете — коллаж занимает полную ширину, горизонтальный формат */
@media(max-width:900px){
  .hero2{grid-template-columns:1fr;gap:32px}
  .hero-collage{aspect-ratio:21/9;gap:8px;margin-top:0}
  .hero-collage img{border-radius:12px}
}

/* рейтинг-агрегат */
.rating-summary{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:26px 30px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1)}
.rating-big{font-family:var(--fd);font-weight:800;font-size:54px;line-height:1;background:linear-gradient(120deg,var(--accent),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.rating-summary .stars{color:#f5b73d;font-size:20px;letter-spacing:2px}
.rating-src{display:flex;gap:20px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.rating-src b{color:var(--ink);font-family:var(--fd);font-weight:700}

/* акции */
.promos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.promo{position:relative;overflow:hidden;border-radius:var(--r);padding:26px;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.promo:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.promo .tag{display:inline-block;font-family:var(--fd);font-weight:700;font-size:12px;letter-spacing:.04em;padding:5px 12px;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));margin-bottom:14px}
.promo h3{font-size:20px;margin-bottom:8px}
.promo p{font-size:14px;color:var(--muted);margin:0}
.promo .pct{position:absolute;right:-10px;top:-14px;font-family:var(--fd);font-weight:800;font-size:74px;color:rgba(86,128,233,.10)}

/* квиз-тизер */
.quiz{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:46px;background:linear-gradient(135deg,#eef2fd,#e9ecfb);border:1px solid var(--line)}
/* quiz::after (декоративный круг) убран */
.quiz .in{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.quiz h2{font-size:clamp(24px,3vw,38px);text-transform:uppercase;margin-bottom:8px}
.quiz p{color:var(--muted);margin:0;max-width:48ch}

/* бейджи-метки на карточках */
.qcard .ph .flags{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;gap:6px;flex-wrap:wrap}
.flag{font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.03em;padding:5px 10px;border-radius:7px;color:#fff;background:rgba(20,28,60,.62);backdrop-filter:blur(6px)}
.flag.hit{background:linear-gradient(135deg,var(--accent),var(--violet))}
.flag.actor{background:rgba(136,96,208,.85)}

/* шкала страха/сложности */
.scale-row{display:flex;align-items:center;gap:14px;margin:10px 0}
.scale-row .lbl{font-size:13.5px;color:var(--muted);min-width:96px}
.scale{display:flex;gap:5px}
.scale i{width:26px;height:8px;border-radius:4px;background:var(--bg3)}
.scale i.on{background:linear-gradient(90deg,var(--accent),var(--violet))}
.scale.fear i.on{background:linear-gradient(90deg,#8860D0,#c0463f)}

/* кросс-сейл */
.xsell{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.xs{display:flex;gap:16px;align-items:center;padding:22px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.xs:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.xs .ic{flex:0 0 auto;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(150deg,rgba(86,128,233,.16),rgba(136,96,208,.16));color:var(--accent)}
.xs .ic svg{width:26px;height:26px}
.xs h3{font-size:17px;margin-bottom:3px}.xs p{font-size:13.5px;color:var(--muted);margin:0}
@media(max-width:680px){.xsell{grid-template-columns:1fr}}

/* липкая панель брони (моб) */
.bookbar{display:none}
@media(max-width:680px){
  .bookbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:75;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 30px rgba(40,52,98,.12)}
  .bookbar .bp{font-family:var(--fd);font-weight:700;font-size:15px;color:var(--ink)}
  .bookbar .bp span{display:block;font-family:var(--fb);font-size:11px;font-weight:500;color:var(--muted)}
  .bookbar .btn{padding:13px 22px}
  body.has-bookbar{padding-bottom:74px}
  .call-fab{bottom:84px}
}

/* мессенджеры */
.msgs{display:flex;gap:12px;flex-wrap:wrap}
.msg-btn{display:inline-flex;align-items:center;gap:9px;padding:12px 18px;border-radius:var(--r-pill);font-weight:600;font-size:14.5px;color:#fff;transition:transform .2s,filter .2s}
.msg-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
.msg-btn svg{width:19px;height:19px}
.msg-wa{background:#25D366}.msg-tg{background:#2AABEE}.msg-vk{background:#0077FF}

/* form состояния */
.field input:invalid:not(:placeholder-shown){border-color:#e0566a}
.form-success{display:none;padding:18px 20px;border-radius:var(--r-sm);background:rgba(47,180,120,.12);border:1px solid rgba(47,180,120,.4);color:#1f7a4d;font-weight:600;font-size:14.5px}
form.sent .form-success{display:block}
form.sent .form-body{display:none}

/* кастомные spot-иллюстрации жанров */
.cat .ill{position:absolute;right:18px;top:18px;width:88px;height:88px;opacity:.9;z-index:2;pointer-events:none}
.cat .ill svg{width:100%;height:100%}

/* анимация: стаггер */
.stagger>.reveal{transition-delay:calc(var(--i,0)*70ms)}
/* анимированный градиент CTA */
.cta.anim{background:linear-gradient(120deg,var(--accent),var(--violet),var(--accent-2),var(--violet));background-size:300% 300%;animation:cta-flow 12s ease infinite}
@keyframes cta-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
/* draw-on SVG */
.draw path{stroke-dasharray:var(--len,1000);stroke-dashoffset:var(--len,1000)}
.draw.in path{transition:stroke-dashoffset 1.6s cubic-bezier(.16,1,.3,1);stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.cta.anim{animation:none}.draw path{stroke-dashoffset:0}}

/* ============ Тизеры на главной (VR / шоу) ============ */
.teaser-locked{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:320px}
.tl-blur{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:4px;filter:blur(8px) saturate(1.1);transform:scale(1.06)}
.tl-blur img{width:100%;height:100%;object-fit:cover}
.tl-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;background:linear-gradient(180deg,rgba(27,36,68,.40),rgba(27,36,68,.62));color:#fff;padding:28px}
.tl-cover b{font-family:var(--fd);font-weight:700;font-size:26px}
.tl-cover p{margin:0;color:rgba(255,255,255,.85);max-width:34ch;font-size:14.5px}
.show-teaser{position:relative;border-radius:var(--r-lg);display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;border:1px solid var(--line);box-shadow:var(--sh-2);overflow:hidden}
.show-teaser .st-body{padding:46px}
.show-teaser .st-body h2{font-size:clamp(26px,3.2vw,40px);text-transform:uppercase;margin-bottom:14px}
.show-teaser .st-media{position:relative;min-height:300px;background:var(--bg3)}
.show-teaser .st-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.show-teaser .st-tags{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}
@media(max-width:860px){.show-teaser{grid-template-columns:1fr}.show-teaser .st-media{min-height:220px}.show-teaser .st-body{padding:32px 24px}}

/* ============ Тема ТЁМНАЯ (взрослый день рождения) ============ */
body.theme-dark{--bg:#0e0d15;--bg2:#15131f;--bg3:#1d1a29;--card:#191622;--card2:#211d2e;
  --line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.17);
  --ink:#f4f2fa;--txt:#f4f2fa;--muted:rgba(244,242,250,.66);--muted2:rgba(244,242,250,.46)}
body.theme-dark .topbar{background:#15131f}
body.theme-dark .nav{background:rgba(14,13,21,.82)}
body.theme-dark .logo-img{filter:brightness(0) invert(1)}
body.theme-dark .footer{background:#08070d}
body.theme-dark .chip{background:#211d2e}
body.theme-dark .qcard .ph .age{background:rgba(0,0,0,.55);color:#fff}
body.theme-dark .nav-links.open{background:#15131f}
body.theme-dark .nav-drop-menu{background:#191622}
body.theme-dark .btn-ghost{color:#f4f2fa}

/* ============ Тема МИЛАЯ / ПАСТЕЛЬНАЯ (детский день рождения) ============ */
/* Палитра: нежно-розовый + мягкий небесно-голубой + кремовый фон. */
/* Плоские заливки вместо градиентов. Без фиолетового и оранжевого. */
body.theme-kids{--bg:#fff8fb;--bg2:#fdeef6;--bg3:#fbe3ee;--card:#ffffff;--card2:#fff4f9;
  --accent:#ff5fa2;--accent-2:#ff7fb0;--accent-deep:#e2407f;--violet:#ff7fb0;--sky:#7cc6ff;
  --pink:#ff7fb0;--pink-soft:#ffd6e6;--blue:#7cc6ff;--blue-soft:#dcefff;--cream:#fff8fb;
  --ink:#3a2230;--txt:#3a2230;--muted:#7a5f6c;--muted2:#9a7d8a;
  --line:rgba(226,64,127,.14);--line2:rgba(226,64,127,.24);--r:26px;--r-lg:34px;
  --glow:0 12px 30px rgba(255,127,176,.30)}
/* hero — очень мягкое однотонное розовое свечение, без перелива */
/* theme-kids hero::before (пятна) убраны */
/* primary — сплошной розовый, белый текст (контраст AA: #fff на #ff5fa2 ≈ 3.4 для крупного; усиливаем фон) */
body.theme-kids .btn-primary{background:#e2407f;color:#fff;box-shadow:0 12px 26px rgba(226,64,127,.28)}
body.theme-kids .btn-primary:hover{background:#d23574;box-shadow:0 16px 34px rgba(226,64,127,.34)}
/* плоские милые заливки вместо градиентов */
body.theme-kids .cat::before{background:#ff7fb0}
body.theme-kids .ptile.accent{background:#ff7fb0;border-color:transparent}
body.theme-kids .step::before{background:#7cc6ff;color:#13415f}
body.theme-kids .cta{background:#ffd6e6}
body.theme-kids .cta::before{display:none}
body.theme-kids .cta h2{color:#3a2230}
body.theme-kids .cta p{color:#7a5f6c}
body.theme-kids .cta .btn-primary{background:#e2407f;color:#fff}
body.theme-kids .cta .btn-primary:hover{background:#d23574;color:#fff}
body.theme-kids .cta .btn-ghost{color:#3a2230;border-color:rgba(58,34,48,.3)}
body.theme-kids .cta .btn-ghost:hover{border-color:#3a2230;color:#3a2230;background:rgba(58,34,48,.06)}
/* акцентные градиентные плашки базовой темы делаем плоскими/двутоновыми пастельными */
body.theme-kids .feat .ico{background:#ffe3ee;color:#e2407f}
body.theme-kids .xs .ic{background:#ffe3ee;color:#e2407f}
body.theme-kids .quote .who .av{background:#7cc6ff;color:#13415f}
body.theme-kids .footer .footer-accent{background:linear-gradient(90deg,#ff7fb0,#7cc6ff)}
body.theme-kids .call-fab{background:#e2407f}
/* числа-статы: ровный розовый текст без градиента */
body.theme-kids .hero-stats .st b{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#e2407f}
body.theme-kids .footer{background:#43202f}
/* звёзды-рейтинг — пастельный розовый вместо золотого */
body.theme-kids .quote .stars,body.theme-kids .rating-summary .stars{color:#ff7fb0}
body.theme-kids .h-xl,body.theme-kids .h2{letter-spacing:0}

/* ============ Статьи (блог/листиклы) ============ */
.art-hero{padding:40px 0 6px}
.art-hero .lead{max-width:72ch}
.art-meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted2);font-size:13px;margin-top:14px}
.toc{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px}
.toc h2{font-size:15px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;color:var(--muted)}
.toc ol{margin:0;padding-left:20px;columns:2;column-gap:30px}
.toc li{margin-bottom:7px}
.toc a{color:var(--ink)}.toc a:hover{color:var(--accent)}
.cat-h{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.cat-h .ic{flex:0 0 auto;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(150deg,rgba(86,128,233,.15),rgba(136,96,208,.15));color:var(--accent)}
.cat-h .ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cat-h h2{font-size:clamp(22px,2.6vw,30px)}
.venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.vcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);box-shadow:var(--sh-1);transition:transform .25s,box-shadow .25s}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.vcard .ph{aspect-ratio:16/10;background:var(--bg3);position:relative;overflow:hidden}
.vcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.vcard .ph.ph-ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--violet));color:#fff;font-family:var(--fd);font-weight:700;font-size:18px;text-align:center;padding:18px}
.vcard .bd{padding:18px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.vcard h3{font-size:18px}
.vcard p{font-size:14px;color:var(--muted);margin:0;flex:1}
.vcard .addr{font-size:13px;color:var(--muted2);display:flex;gap:7px;align-items:flex-start}
.vcard .addr svg{width:15px;height:15px;flex:0 0 auto;margin-top:2px;stroke:currentColor;fill:none;stroke-width:2}
.vcard .mark{display:inline-block;font-family:var(--fd);font-weight:700;font-size:11px;padding:4px 10px;border-radius:7px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));align-self:flex-start}
.art-body>p{max-width:74ch;color:var(--ink)}
.art-body .lead{color:var(--muted)}
.cat-h .ic img{width:26px;height:26px;display:block}
.vcard .site-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:2px;padding:6px 13px;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;color:var(--accent);background:rgba(86,128,233,.10);border:1px solid var(--line2);transition:background .2s,color .2s}
.vcard .site-btn:hover{background:var(--accent);color:#fff}
.vcard .site-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.vbadges{display:flex;flex-wrap:wrap;gap:6px;margin:1px 0 2px}
.vbadge{display:inline-flex;align-items:center;gap:5px;font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.01em;padding:4px 9px;border-radius:7px;line-height:1.05}
.vbadge.party{background:rgba(47,180,120,.14);color:#1f7a4d}
.vbadge.party svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.vbadge.age{background:rgba(86,128,233,.12);color:var(--accent)}
.vbadge.age.a16{background:rgba(136,96,208,.15);color:var(--violet)}

.phone-link{color:inherit;text-decoration:none;white-space:nowrap}

/* перенос H1 на главной: 2 строки на десктопе, естественный перенос на мобиле */
.hbr{display:none}
@media(min-width:761px){.hbr{display:inline}}

/* «Обложечный» заголовок секции: на всю ширину и крупнее, 2 строки */
.sec-head--cover{max-width:none}
.sec-head--cover .h2{font-size:clamp(34px,6vw,72px);line-height:1.04}
.sec-head--cover .lead{max-width:680px}

/* мобайл: гарантия отсутствия горизонтального скролла */
html{overflow-x:hidden}
img,video,iframe,table{max-width:100%}
@media(max-width:600px){
  .hero-stats{gap:16px 18px}
  .pack,.cert-wrap{overflow:hidden}
}

/* всплывающая lead-форма (popup) */
.lpop-ov{position:fixed;inset:0;background:rgba(10,12,22,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:300;opacity:0;visibility:hidden;transition:opacity .3s}
.lpop-ov.open{opacity:1;visibility:visible}
.lpop{position:relative;width:100%;max-width:430px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:36px 30px 26px;transform:translateY(16px) scale(.97);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.lpop-ov.open .lpop{transform:none}
.lpop-x{position:absolute;top:13px;right:13px;width:34px;height:34px;border:none;background:var(--bg3);color:var(--txt);border-radius:9px;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lpop-x:hover{background:var(--line)}
.lpop h3{font-family:var(--fd);font-weight:800;font-size:clamp(21px,3.2vw,27px);line-height:1.14;text-transform:uppercase;margin-bottom:10px}
.lpop .lpop-d{color:var(--muted);font-size:15px;line-height:1.5;margin-bottom:20px}
/* промо-плашка (левый нижний угол, страницы статей) */
.promo{position:fixed;left:22px;bottom:22px;z-index:280;width:420px;max-width:calc(100vw - 40px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 22px 54px rgba(10,12,22,.3);padding:28px 30px 24px;transform:translateY(26px);opacity:0;visibility:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s,visibility .4s}
.promo.open{transform:none;opacity:1;visibility:visible}
.promo-x{position:absolute;top:13px;right:13px;width:32px;height:32px;border:none;background:var(--bg3);color:var(--txt);border-radius:9px;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}
.promo-x:hover{background:var(--line)}
.promo-badge{display:inline-block;font-family:var(--fd);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));padding:7px 14px;border-radius:20px;margin-bottom:16px}
.promo-h{font-family:var(--fd);font-weight:800;font-size:23px;line-height:1.22;margin-bottom:20px}
.promo-h b{color:var(--accent);white-space:nowrap}
.promo-actions{display:flex;flex-direction:column;gap:12px}
.promo .btn{padding:15px 20px;font-size:13.5px;letter-spacing:.02em}
.promo-note{color:var(--muted);font-size:12.5px;line-height:1.45;margin:18px 0 0}
@media(max-width:520px){.promo{left:12px;bottom:12px;width:calc(100vw - 24px);padding:20px 20px 16px}.promo-h{font-size:20px;margin-bottom:16px}}

/* ============================================================
   АДАПТИВ: доработки под популярные разрешения устройств
   ============================================================ */
/* .steps: колонки заданы инлайн (repeat 4/3/2) и перебивают медиазапросы —
   принудительно сворачиваем на планшете/мобиле */
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:600px){.steps{grid-template-columns:1fr!important}}
/* Оглавление гида — в одну колонку на узких экранах */
@media(max-width:560px){.toc ol{columns:1}.toc{padding:18px 20px}}
/* Меньше боковых полей на маленьких телефонах (360–400px) */
@media(max-width:400px){.wrap{padding:0 16px}}
/* Топбар: длинный адрес не должен ломать высоту на узких экранах */
@media(max-width:600px){.topbar .wrap{height:auto;padding-top:7px;padding-bottom:7px}.topbar span{font-size:12px;line-height:1.35}}
/* Двухколоночные формо-секции с инлайн-гэпом: убираем большой gap на мобиле */
@media(max-width:680px){.grid.cols-2[style*="gap:48px"]{gap:28px!important}}

/* ============================================================
   АДАПТИВ v2 — фиксы по отчёту переполнения (360/390/768/1024/1440)
   ============================================================ */
/* Grid/flex-дети не сжимались ниже min-content (min-width:auto) →
   переполнение форм, hero-контента, галерей квестов. Разрешаем сжатие. */
.grid>*,.hero2>*,.hero-stats>*,.qhero>*,.gallery>*,.steps>*,.venues>*,.promos>*,.price-grid>*,.show-teaser>*,.info-row>*{min-width:0}
img{min-width:0}
/* FAQ: колонка не должна требовать 360px в узком контейнере (было minmax(360,1fr)) */
.faq{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
@media(max-width:760px){.faq{grid-template-columns:1fr}}
/* Двухколоночные секции «форма + текст/FAQ» стекаются на планшете */
@media(max-width:900px){.cols-2{grid-template-columns:1fr}}
/* Декор hero и галерей не выходит за экран */
.hero{overflow-x:clip}
.qhero{overflow-x:clip}
/* CTA-кнопки героя переносятся, а не переполняют на мобиле */
@media(max-width:480px){.hero-cta{width:100%}.hero-cta .btn,.cta .btn{white-space:normal;max-width:100%}}
/* Длинные слова в крупных заголовках (uppercase) не должны распирать узкий экран */
/* Переносы: слово переносится ТОЛЬКО целиком; посреди слова рвётся лишь если оно одно не влезает в строку.
   Свойства наследуемые — задаём на body, каскад покрывает весь сайт. */
body{word-break:normal;overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}
/* Заголовки: слово НИКОГДА не рвётся по буквам — переносится только целиком (overflow-wrap:normal вместо break-word) */
.h-xl,.h2,h1,h2,h3,h4{overflow-wrap:normal;word-break:keep-all;-webkit-hyphens:none;hyphens:none}

.logo,.logo-img,.flogo-img{flex:none;flex-shrink:0}/*logo-noshrink*/

/* ===== Формы: всегда светлое поле + тёмный текст (читаемо в любой теме) ===== */
.field input,.field select,.field textarea{color:#1b2444;background:#fff;border-color:rgba(40,52,98,.18)}
.field input:focus,.field select:focus,.field textarea:focus{color:#1b2444;background:#fff;border-color:var(--accent)}
.field input::placeholder,.field textarea::placeholder{color:rgba(27,36,68,.5);opacity:1}
.field input:-webkit-autofill,.field input:-webkit-autofill:hover,.field input:-webkit-autofill:focus{-webkit-text-fill-color:#1b2444;-webkit-box-shadow:0 0 0 40px #fff inset;box-shadow:0 0 0 40px #fff inset;caret-color:#1b2444}

/* ===== Ряд «дата + участники» в две колонки ===== */
.field-row{display:flex;gap:12px}
.field-row>.field{flex:1;min-width:0;margin-bottom:14px}
@media(max-width:520px){.field-row{flex-direction:column;gap:0}}

/* ===== Датапикер (в фирменном стиле) ===== */
.field input[id$="c-date"]{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235680E9' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='4.5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M3 9h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:44px}
.dp{position:fixed;z-index:100000;width:300px;max-width:calc(100vw - 16px);background:#fff;border:1px solid rgba(40,52,98,.14);border-radius:16px;box-shadow:0 16px 44px rgba(40,52,98,.2);padding:14px 14px 10px;font-family:var(--fb);color:#1b2444;opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top center;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
.dp.open{opacity:1;transform:none;pointer-events:auto}
.dp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.dp-title{font-family:var(--fd,var(--fb));font-weight:800;font-size:15.5px;color:#1b2444;text-transform:capitalize;letter-spacing:-.01em}
.dp-nav{flex:none;width:34px;height:34px;border:none;background:#f3f6fd;border-radius:10px;color:#5680E9;cursor:pointer;font-size:20px;line-height:1;display:grid;place-items:center;transition:background .15s,opacity .15s}
.dp-nav:hover:not(:disabled){background:#e6ecfb}
.dp-nav:disabled{opacity:.3;cursor:default}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-wd{font-size:11px;font-weight:700;color:rgba(27,36,68,.5);text-align:center;padding:2px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.dp-day{aspect-ratio:1;display:grid;place-items:center;border:none;background:none;border-radius:10px;font-family:var(--fb);font-size:14.5px;color:#1b2444;cursor:pointer;transition:background .12s,color .12s;padding:0}
.dp-day:hover:not(:disabled):not(.is-empty){background:#eaeefb}
.dp-day.is-empty{pointer-events:none}
.dp-day:disabled{color:rgba(27,36,68,.28);cursor:default}
.dp-day.is-today{box-shadow:inset 0 0 0 1.5px #5680E9;color:#5680E9;font-weight:700}
.dp-day.is-sel{background:linear-gradient(135deg,#5680E9,#3f63c9);color:#fff;font-weight:700;box-shadow:0 6px 14px rgba(86,128,233,.4)}
.dp-foot{display:flex;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid rgba(40,52,98,.08)}
.dp-clear{border:none;background:none;color:rgba(27,36,68,.6);font-size:13px;font-family:var(--fb);cursor:pointer;padding:6px 8px;border-radius:8px}
.dp-clear:hover{color:#5680E9;background:#f3f6fd}

/* ===== Пакеты праздника — дизайнерские карточки (авто-тема) ===== */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.pkg{position:relative;display:flex;flex-direction:column;padding:28px 24px 24px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1);overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s}
.pkg>*{position:relative;z-index:1}
.pkg::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2,var(--accent)));z-index:0}
.pkg:hover{transform:translateY(-6px);box-shadow:var(--sh-2);border-color:transparent}
.pkg-ico{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:26px;line-height:1;background:linear-gradient(150deg,rgba(86,128,233,.14),rgba(90,185,234,.14));margin-bottom:15px}
.pkg h3{font-size:19px;margin-bottom:12px;letter-spacing:-.01em}
.pkg-price{font-family:var(--fd);font-weight:800;font-size:29px;line-height:1;color:var(--accent);letter-spacing:-.02em}
.pkg-price small{display:block;font-family:var(--fb);font-weight:600;font-size:12px;color:var(--muted);margin-top:6px;letter-spacing:0}
.pkg-list{list-style:none;margin:16px 0 22px;padding:0;display:grid;gap:10px}
.pkg-list li{position:relative;padding-left:25px;font-size:13.5px;color:var(--muted);line-height:1.4}
.pkg-list li::before{content:"";position:absolute;left:0;top:1px;width:17px;height:17px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2,var(--accent)));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat}
.pkg-tag{font-size:13.5px;color:var(--muted);line-height:1.5;margin:14px 0 22px;flex:1}
.pkg .btn{margin-top:auto;width:100%}
.pkg.is-pop{border-color:transparent;box-shadow:0 20px 46px rgba(86,128,233,.20)}
.pkg.is-pop::before{height:100%;opacity:.07}
.pkg-badge{position:absolute;top:0;right:18px;z-index:2;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet,var(--accent-deep)));padding:6px 12px 7px;border-radius:0 0 11px 11px;box-shadow:0 8px 18px rgba(86,128,233,.35)}
body.theme-kids .pkg-ico{background:linear-gradient(150deg,rgba(255,95,162,.14),rgba(124,198,255,.16))}
body.theme-kids .pkg.is-pop{box-shadow:0 20px 46px rgba(255,127,176,.28)}

/* Короткие плашки/бейджи — всегда в одну строку (не рвём «VR-квест» по дефису и т.п.) */
.badge,.tag,.vbadge,.age,.pkg-badge{white-space:nowrap}
/* Плашки-статусы — жирный текст */
.badge,.flag,.pop,.pkg-badge,.vbadge,.tag{font-weight:700}

/* «Входит в каждый пакет» + сноски */
.pkg-incl{margin-top:22px;padding:24px 28px;border-radius:var(--r);background:var(--card2);border:1px solid var(--line)}
.pkg-incl h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:9px}
.pkg-incl h3::before{content:"★";color:var(--accent);font-size:15px}
.pkg-incl ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:11px 26px}
.pkg-incl li{position:relative;padding-left:26px;font-size:13.5px;color:var(--muted);line-height:1.45}
.pkg-incl li::before{content:"";position:absolute;left:0;top:1px;width:17px;height:17px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2,var(--accent)));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat}
.pkg-notes{margin-top:16px;font-size:12.5px;color:var(--muted2);line-height:1.65}
@media(max-width:560px){.pkg-incl ul{grid-template-columns:1fr}}
@media(max-width:860px){.pkg-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.pkg-grid{grid-template-columns:1fr}}

/* hero-теги (chip в .hero-tags) — крупнее и заметнее */
.hero-tags .chip{font-size:14.5px;font-weight:700;padding:9px 16px;color:var(--ink)}


/* ===== «Как проходит сеанс» — таймлайн с анимацией по скроллу ===== */
.vr-flow{position:relative;max-width:720px;margin:6px auto 0}
.vr-step{position:relative;display:grid;grid-template-columns:58px 1fr;gap:18px;padding-bottom:22px}
.vr-step:last-child{padding-bottom:0}
.vr-step::before{content:"";position:absolute;left:28px;top:60px;bottom:-2px;width:2px;background:linear-gradient(180deg,var(--accent),var(--accent-2,var(--accent)));transform:scaleY(0);transform-origin:top;transition:transform .6s ease .2s}
.vr-step:last-child::before{display:none}
.vr-step.in::before{transform:scaleY(1)}
.vr-num{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-family:var(--fd);font-weight:800;font-size:23px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2,var(--accent-deep)));box-shadow:0 10px 24px rgba(86,128,233,.3);transform:scale(.4);opacity:.4;transition:transform .5s cubic-bezier(.34,1.56,.64,1) .05s,opacity .4s .05s}
.vr-step.in .vr-num{transform:scale(1);opacity:1}
.vr-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 22px;box-shadow:var(--sh-1);transition:box-shadow .25s,transform .25s}
.vr-card:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.vr-ico{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(150deg,rgba(86,128,233,.14),rgba(90,185,234,.16));color:var(--accent);margin-bottom:11px}
.vr-ico svg{width:20px;height:20px}
.vr-card h3{font-size:16.5px;margin-bottom:5px}
.vr-card p{font-size:13.5px;color:var(--muted);line-height:1.5;margin:0}
body.theme-kids .vr-ico{background:linear-gradient(150deg,rgba(255,95,162,.14),rgba(124,198,255,.16))}
@media(max-width:520px){.vr-step{grid-template-columns:48px 1fr;gap:14px}.vr-num{width:48px;height:48px;font-size:19px}.vr-step::before{left:23px;top:50px}.vr-card{padding:16px 18px}}

/* ===== Форматы подарка — премиальные карточки (taste-design) ===== */
.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gift-card{position:relative;display:flex;flex-direction:column;padding:30px 26px 26px;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:0 1px 2px rgba(40,52,98,.04);transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s,border-color .5s}
.gift-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(40,52,98,.1);border-color:var(--line2)}
.gift-badge{align-self:flex-start;font-weight:700;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);background:rgba(86,128,233,.1);padding:5px 11px;border-radius:999px;margin-bottom:18px}
.gift-ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:var(--accent);border:1.5px solid rgba(86,128,233,.26);margin-bottom:18px;transition:transform .5s cubic-bezier(.16,1,.3,1),background .4s,color .4s,border-color .4s}
.gift-ico svg{width:23px;height:23px}
.gift-card:hover .gift-ico{transform:translateY(-2px) rotate(-4deg)}
.gift-card h3{font-size:20px;letter-spacing:-.02em;margin-bottom:9px}
.gift-card>p{font-size:14px;color:var(--muted);line-height:1.6;margin:0 0 24px;max-width:34ch}
.gift-foot{margin-top:auto;display:flex;flex-direction:column;gap:14px;padding-top:20px;border-top:1px solid var(--line)}
.gift-fmt{font-size:12.5px;color:var(--muted2);letter-spacing:.01em}
.gift-price{font-family:var(--fd);font-weight:800;font-size:25px;color:var(--ink);letter-spacing:-.02em;line-height:1}
.gift-card .btn{width:100%}
.gift-card.is-pop{border-color:var(--accent);box-shadow:0 20px 46px rgba(86,128,233,.14)}
.gift-card.is-pop .gift-ico{background:var(--accent);color:#fff;border-color:transparent}
.gift-card.is-pop .gift-badge{color:#fff;background:var(--accent)}
.gift-card.is-pop .gift-price{color:var(--accent)}
body.theme-kids .gift-badge{color:var(--accent);background:rgba(255,95,162,.12)}
@media(max-width:820px){.gift-grid{grid-template-columns:1fr;gap:16px}}