/* ============================================================
   Lapin Cherry v9 - детский вид (/detske-oslavy)
   Порт CSS v8 1:1, но изолированный:
   - токены v8 (--cherry, --cream, --ink, ...) объявлены на html[data-view="kids"],
     ночные - на html[data-view="kids"][data-theme="dark"];
   - всё остальное под .kv (корень детской панели) или html[data-view="kids"];
   - keyframes с префиксом k- (не пересекаются с chic);
   - модалки, лайтбокс, печать сметы, canvas конфетти, skip-link - в core.css/base.css.
   ============================================================ */
/* ============================================================
   Lapin Cherry - дизайн-токены
   ============================================================ */
html[data-view="kids"]{
  --cherry:#E63950;        /* главный акцент, вишнёвый */
  --cherry-deep:#C41E3A;   /* тёмный вишнёвый, тени / hover */
  --cream:#FFF8F0;         /* основной фон, тёплый крем */
  --pink:#FFD1DC;          /* мягкий розовый */
  --butter:#FFE9A8;        /* сливочно-жёлтый */
  --mint:#B8E6D0;          /* мятный */
  --sky:#BFE3F2;           /* небесно-голубой */
  --ink:#3A2E2E;           /* тёплый тёмно-коричневый вместо чёрного */
  --white:#FFFFFF;
  --ink-soft:#6B5A5A;      /* вторичный текст (проверен на AA поверх крема) */
  --cream-deep:#FDEFDF;    /* чуть темнее крем для чередования секций */

  --font-display:'Baloo 2','Nunito',system-ui,sans-serif;
  --font-body:'Nunito',system-ui,sans-serif;

  --r-card:24px;
  --r-chip:16px;
  --shadow-soft:0 10px 30px rgba(196,30,58,.10), 0 2px 8px rgba(58,46,46,.06);
  --shadow-pop:0 16px 40px rgba(196,30,58,.16), 0 4px 12px rgba(58,46,46,.08);
  --bounce:cubic-bezier(.34,1.56,.64,1);  /* пружинка с лёгким overshoot */
  --ease:cubic-bezier(.22,.61,.36,1);
}
/* для русского заголовочный шрифт = Nunito (у Baloo 2 нет кириллицы) */
html[data-view="kids"][lang="ru"]{ --font-display:'Nunito',system-ui,sans-serif; }

.kv, .kv *,.kv *::before,.kv *::after{ box-sizing:border-box; }
html[data-view="kids"]:not(.k-jump){ scroll-behavior:smooth; }
/* .k-jump (kids.js: прыжки ядра и первая посадка на #якорь) сильнее инлайна: ScrollTrigger копирует
   smooth в style="" у <html>, и тогда даже «мгновенные» прокрутки становились плавными */
html[data-view="kids"].k-jump{ scroll-behavior:auto !important; }
@media (prefers-reduced-motion:reduce){ html[data-view="kids"]:not(.k-jump){ scroll-behavior:auto; } }
html[data-view="kids"] body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px; line-height:1.6;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.kv img,.kv svg{ max-width:100%; display:block; }
.kv a{ color:var(--cherry-deep); }
.kv h1,.kv h2,.kv h3,.kv h4{
  font-family:var(--font-display);
  font-weight:700; line-height:1.15;
  margin:0 0 .5em;
  letter-spacing:.01em;
}
html[lang="ru"] .kv h1,html[lang="ru"] .kv h2,html[lang="ru"] .kv h3,html[lang="ru"] .kv h4{ font-weight:800; }
.kv p{ margin:0 0 1em; }

/* фокус-стейты */
.kv :focus-visible{ outline:3px solid var(--cherry); outline-offset:3px; border-radius:6px; }

.kv .wrap{ width:min(1160px,92vw); margin-inline:auto; }
/* якоря не прячутся под липкой шапкой */
.kv [id]{ scroll-margin-top:84px; }
.kv section{ position:relative; padding:72px 0; }
@media (min-width:768px){ .kv section{ padding:104px 0; } }

.kv .kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:800; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cherry-deep); margin-bottom:14px; /* deep: AA-контраст на креме */
}
.kv .kicker .k-dot{ width:10px; height:10px; border-radius:50%; background:var(--cherry); flex:none; }
.kv .sec-title{ font-size:clamp(1.8rem,4.6vw,2.8rem); max-width:16em; }
.kv .sec-sub{ color:var(--ink-soft); max-width:38em; font-size:1.05rem; }

/* ============================================================
   Кнопки
   ============================================================ */
.kv .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display); font-weight:700; font-size:1.02rem;
  padding:15px 30px; border-radius:999px; border:0; cursor:pointer;
  text-decoration:none; line-height:1.1;
  transition:transform .35s var(--bounce), box-shadow .3s var(--ease), background .2s;
  -webkit-tap-highlight-color:transparent;
}
.kv .btn:active{ transform:scale(.96); }
.kv .btn-primary{
  /* тёмный вишнёвый: белый текст на #C41E3A даёт 5.8:1 (AA), на #E63950 было только 4.15:1 */
  background:var(--cherry-deep); color:var(--white);
  box-shadow:0 8px 22px rgba(196,30,58,.35);
}
.kv .btn-primary:hover{ background:#A5172F; transform:translateY(-2px) scale(1.03); box-shadow:0 12px 28px rgba(196,30,58,.4); }
.kv .btn-secondary{
  background:transparent; color:var(--cherry-deep);
  box-shadow:inset 0 0 0 2.5px var(--cherry);
}
.kv .btn-secondary:hover{ background:rgba(230,57,80,.08); transform:translateY(-2px) scale(1.03); }
.kv .btn-small{ padding:10px 20px; font-size:.92rem; }

/* ============================================================
   Шапка
   ============================================================ */
.kv .nav{
  position:sticky; top:0; z-index:100;
  /* без backdrop-filter: на sticky-шапке он ломает отрисовку в части Chromium-сборок */
  background:rgba(255,248,240,.96);
  border-bottom:1px solid rgba(196,30,58,.08);
}
.kv .nav-inner{
  display:flex; align-items:center; gap:14px;
  padding:10px 0; min-height:64px;
}
.kv .nav-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); flex:none; }
.kv .nav-logo svg{ height:44px; width:auto; }
.kv .nav-word{
  font-family:var(--font-display); font-weight:800; font-size:1.25rem; line-height:1;
  color:var(--cherry-deep); white-space:nowrap;
}
.kv .nav-spacer{ flex:1; }
.kv .nav-cta{ flex:none; }
@media (max-width:560px){
  .kv .nav-word{ display:none; }
  .kv .nav-cta{ padding:11px 16px; font-size:.88rem; }
}

/* ============================================================
   Hero
   ============================================================ */
.kv .hero{ padding:56px 0 84px; overflow:hidden; }
.kv .hero-grid{ display:grid; gap:36px; align-items:center; }
@media (min-width:900px){ .kv .hero-grid{ grid-template-columns:1.1fr .9fr; gap:48px; } }
.kv .hero h1{
  font-size:clamp(2.4rem,7vw,4.1rem);
  color:var(--ink); margin-bottom:.35em;
}
.kv .hero h1 .accent{ color:var(--cherry); }
.kv .hero-sub{ font-size:clamp(1.05rem,2.4vw,1.3rem); color:var(--ink-soft); max-width:30em; }
.kv .hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin:26px 0 30px; }
.kv .hero-badges{ display:flex; flex-wrap:wrap; gap:10px; }
.kv .badge{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--white); border-radius:999px;
  padding:9px 16px; font-weight:700; font-size:.88rem;
  box-shadow:var(--shadow-soft);
}
.kv .badge svg{ width:18px; height:18px; flex:none; }
.kv .hero-art{ position:relative; }
.kv .hero-mascot{
  position:relative; z-index:2;
  width:min(420px,86%); margin-inline:auto;
  filter:drop-shadow(0 24px 40px rgba(196,30,58,.18));
}
/* мягкие blob-формы на фоне hero */
.kv .blob{ position:absolute; border-radius:50%; filter:blur(0px); z-index:0; pointer-events:none; }
.kv .blob-1{ width:56vw; max-width:640px; aspect-ratio:1; background:var(--pink); opacity:.5; top:-18%; right:-16%; border-radius:58% 42% 55% 45%/55% 48% 52% 45%; }
.kv .blob-2{ width:30vw; max-width:320px; aspect-ratio:1; background:var(--butter); opacity:.55; bottom:-10%; left:-8%; border-radius:45% 55% 48% 52%/52% 45% 55% 48%; }
.kv .blob-3{ width:16vw; max-width:170px; aspect-ratio:1; background:var(--mint); opacity:.5; top:16%; left:38%; border-radius:52% 48% 55% 45%/48% 55% 45% 52%; }
.kv .sprinkle{ position:absolute; pointer-events:none; z-index:1; opacity:.9; }
/* в v8 звёздочка и сердечко садились на плашку «Novinka»; без неё заголовок поднялся,
   поэтому там, где они налезали на h1, уводим их в верхний отступ hero */
.kv .sprinkle.sp-star{ top:12%; left:6%; }
.kv .sprinkle.sp-heart{ top:8%; right:10%; }
@media (max-width:1379px){ .kv .sprinkle.sp-star{ top:18px; } }
@media (max-width:899px){ .kv .sprinkle.sp-heart{ top:22px; right:8%; } }

/* ============================================================
   Карточки, сетки
   ============================================================ */
.kv .cards{ display:grid; gap:18px; margin-top:38px; }
@media (min-width:640px){ .kv .cards{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px){ .kv .cards-3{ grid-template-columns:repeat(3,1fr); } .kv .cards-4{ grid-template-columns:repeat(4,1fr); } }
.kv .card{
  background:var(--white); border-radius:var(--r-card);
  box-shadow:var(--shadow-soft); padding:24px;
  position:relative; overflow:hidden;
}
.kv .card .card-accent{
  position:absolute; inset:0 auto 0 0; width:7px; border-radius:0 6px 6px 0;
}
.kv .card h3{ font-size:1.22rem; margin-bottom:.35em; }
.kv .card p{ color:var(--ink-soft); font-size:.97rem; margin-bottom:0; }

/* Как это работает */
.kv .steps{ counter-reset:step; }
.kv .step-num{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:1.35rem;
  color:var(--white); background:var(--cherry); margin-bottom:16px;
  box-shadow:0 6px 16px rgba(230,57,80,.3);
}
.kv .step-icon{ width:46px; height:46px; margin-bottom:6px; }

/* Темы праздников */
.kv .theme-card{ padding:0; display:flex; flex-direction:column; }
.kv .theme-img{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.kv .theme-img svg{ width:64px; height:64px; opacity:.9; }
/* иллюстрированные сценки-плейсхолдеры (вместо плоских плиток) */
.kv .ph-scene{ position:absolute; inset:0; width:100% !important; height:100% !important; }
.kv .theme-img .ph-label,.kv .ent-img .ph-label,.kv .map-ph .ph-label{ z-index:2; }
.kv .map-ph .btn{ position:relative; z-index:2; }
.kv .ph-label{
  position:absolute; bottom:10px; left:12px;
  font-size:.75rem; font-weight:700; color:#5A4A4A;
  background:rgba(255,255,255,.88); padding:3px 10px; border-radius:999px;
}
.kv .theme-body{ padding:20px 22px 22px; }
.kv .theme-inc{ font-size:.85rem; color:var(--ink-soft); margin-top:10px; }
.kv .theme-inc strong{ color:var(--ink); }

/* Развлечения */
.kv .ent-card{ display:flex; flex-direction:column; gap:0; padding:0; }
.kv .ent-img{ aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; position:relative; }
.kv .ent-img svg{ width:56px; height:56px; }
.kv .ent-body{ padding:20px 22px 22px; }
.kv .ent-meta{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;
  font-size:.8rem; font-weight:700;
}
.kv .ent-meta span{ background:var(--cream-deep); border-radius:999px; padding:4px 12px; }

/* Меню */
.kv .menu-grid{ display:grid; gap:18px; margin-top:38px; }
@media (min-width:900px){ .kv .menu-grid{ grid-template-columns:1fr 1fr; } }
.kv .menu-card ul{ list-style:none; margin:14px 0 0; padding:0; }
.kv .menu-card li{
  display:flex; align-items:baseline; gap:10px;
  padding:9px 0; border-bottom:1.5px dashed rgba(196,30,58,.14);
  font-size:.98rem;
}
.kv .menu-card li:last-child{ border-bottom:0; }
.kv .menu-card li .dot{ width:8px; height:8px; border-radius:50%; background:var(--cherry); flex:none; position:relative; top:-2px; }
.kv .allergy-note{
  margin-top:26px; background:var(--mint); border-radius:var(--r-card);
  padding:22px 26px; display:flex; gap:16px; align-items:flex-start;
  box-shadow:var(--shadow-soft);
}
.kv .allergy-note svg{ width:34px; height:34px; flex:none; margin-top:2px; }
.kv .allergy-note p{ margin:0; font-size:.95rem; }

/* Галерея */
.kv .gallery{ display:grid; gap:14px; grid-template-columns:repeat(2,1fr); margin-top:38px; }
@media (min-width:820px){ .kv .gallery{ grid-template-columns:repeat(4,1fr); } }
.kv .g-item{
  border-radius:20px; overflow:hidden; position:relative;
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-soft);
}
.kv .g-item svg{ width:44px; height:44px; opacity:.8; }
.kv .g-item.tall{ grid-row:span 2; aspect-ratio:auto; }

/* Отзывы */
.kv .quote-card{ display:flex; flex-direction:column; gap:14px; }
.kv .quote-mark{ width:34px; height:34px; }
.kv .quote-text{ font-size:1.02rem; color:var(--ink); margin:0; }
.kv .quote-who{ font-size:.88rem; font-weight:800; color:var(--cherry-deep); margin:0; }

/* Дневное кафе */
.kv .daycafe-grid{ display:grid; gap:36px; align-items:center; margin-top:38px; }
@media (min-width:900px){ .kv .daycafe-grid{ grid-template-columns:1fr 1fr; } }
.kv .daycafe-img{
  aspect-ratio:4/3; border-radius:var(--r-card); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-pop); position:relative;
}

/* FAQ */
.kv .faq-list{ margin-top:38px; display:grid; gap:12px; max-width:820px; }
.kv .faq-item{
  background:var(--white); border-radius:var(--r-chip);
  box-shadow:var(--shadow-soft); overflow:hidden;
}
.kv .faq-item summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px;
  padding:18px 22px; font-family:var(--font-display); font-weight:700; font-size:1.02rem;
}
.kv .faq-item summary::-webkit-details-marker{ display:none; }
.kv .faq-chevron{
  margin-left:auto; flex:none; width:26px; height:26px; border-radius:50%;
  background:var(--cream-deep); display:flex; align-items:center; justify-content:center;
  transition:transform .35s var(--bounce);
}
.kv .faq-item[open] .faq-chevron{ transform:rotate(45deg); background:var(--pink); }
.kv .faq-body{ padding:0 22px 20px; color:var(--ink-soft); font-size:.97rem; }
.kv .faq-body p{ margin:0; }

/* Локация */
.kv .loc-grid{ display:grid; gap:24px; margin-top:38px; }
@media (min-width:900px){ .kv .loc-grid{ grid-template-columns:1fr 1fr; } }
.kv .map-ph{
  border-radius:var(--r-card); min-height:320px;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px;
  background:var(--sky); box-shadow:var(--shadow-soft); position:relative; overflow:hidden;
}
.kv .loc-rows{ display:grid; gap:14px; align-content:start; }
.kv .loc-row{
  display:flex; gap:14px; align-items:flex-start;
  background:var(--white); border-radius:var(--r-chip);
  padding:16px 20px; box-shadow:var(--shadow-soft);
}
.kv .loc-row svg{ width:28px; height:28px; flex:none; margin-top:2px; }
.kv .loc-row b{ display:block; font-family:var(--font-display); }
.kv .loc-row span{ color:var(--ink-soft); font-size:.95rem; }
.kv .loc-row a{ font-weight:700; }

/* ============================================================
   Форма заявки
   ============================================================ */
.kv .lead-card{
  background:var(--white); border-radius:var(--r-card); box-shadow:var(--shadow-pop);
  padding:30px 26px; max-width:680px; margin-top:38px;
}
@media (min-width:768px){ .kv .lead-card{ padding:42px 46px; } }
.kv .f-grid{ display:grid; gap:16px; }
@media (min-width:640px){ .kv .f-grid{ grid-template-columns:1fr 1fr; } .kv .f-full{ grid-column:1/-1; } }
.kv .f-field label{
  display:block; font-weight:800; font-size:.88rem; margin-bottom:6px;
}
.kv .f-field input,.kv .f-field textarea,.kv .f-field select{
  width:100%; font-family:var(--font-body); font-size:1rem; color:var(--ink);
  background:var(--cream); border:2px solid transparent; border-radius:14px;
  padding:13px 16px; transition:border-color .2s, background .2s;
}
.kv .f-field input:focus,.kv .f-field textarea:focus,.kv .f-field select:focus{
  outline:none; border-color:var(--cherry); background:var(--white);
}
.kv .f-field textarea{ resize:vertical; min-height:110px; }
.kv .form-note{ font-size:.85rem; color:var(--ink-soft); margin:14px 0 0; }
.kv .form-ok{
  display:none; text-align:center; padding:30px 10px;
}
.kv .form-ok.show{ display:block; }
.kv .form-ok h3{ color:var(--cherry); font-size:1.6rem; }

/* ============================================================
   Футер
   ============================================================ */
.kv footer{
  background:var(--ink); color:#F5EDE4; padding:56px 0 40px; margin-top:40px;
}
.kv .foot-grid{ display:grid; gap:32px; }
@media (min-width:820px){ .kv .foot-grid{ grid-template-columns:1.2fr 1fr 1fr; } }
.kv .foot-logo{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.kv .foot-logo svg{ height:46px; width:auto; }
.kv .foot-word{ font-family:var(--font-display); font-weight:800; font-size:1.3rem; color:var(--pink); }
.kv footer a{ color:#F5EDE4; text-decoration:none; }
.kv footer a:hover{ color:var(--pink); text-decoration:underline; }
.kv .foot-links{ display:grid; gap:9px; align-content:start; font-size:.95rem; }
.kv .foot-title{ font-family:var(--font-display); font-weight:700; color:var(--pink); margin-bottom:12px; font-size:1.05rem; }
.kv .foot-legal{
  margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,209,220,.2);
  font-size:.82rem; color:rgba(245,237,228,.65);
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between;
}

/* ============================================================
   КОНФИГУРАТОР
   ============================================================ */
.kv .config-section{ background:var(--cream-deep); border-radius:48px 48px 0 0; }
.kv .config-grid{ display:grid; gap:26px; margin-top:38px; align-items:start; }
@media (min-width:980px){ .kv .config-grid{ grid-template-columns:1.25fr .85fr; } }
.kv .c-panel{ display:grid; gap:18px; }
.kv .c-block{
  background:var(--white); border-radius:var(--r-card);
  box-shadow:var(--shadow-soft); padding:22px 22px 24px;
}
.kv .c-block-title{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-display); font-weight:700; font-size:1.12rem;
  margin-bottom:16px;
}
.kv .c-block-title .c-ico{ width:34px; height:34px; flex:none; }
.kv .c-hint{ font-size:.85rem; color:var(--ink-soft); margin:10px 0 0; }
.kv .c-hint.pop{ color:var(--cherry-deep); font-weight:700; }

/* степперы: крупные тач-зоны */
.kv .stepper{
  display:inline-flex; align-items:center; gap:0;
  background:var(--cream); border-radius:999px; overflow:hidden;
}
.kv .stepper button{
  width:48px; height:48px; border:0; cursor:pointer;
  background:transparent; color:var(--cherry-deep);
  font-size:1.5rem; font-weight:800; line-height:1;
  transition:background .15s;
  font-family:var(--font-body);
}
.kv .stepper button:hover{ background:var(--pink); }
.kv .stepper button:active{ background:var(--cherry); color:var(--white); }
.kv .stepper output{
  min-width:64px; text-align:center;
  font-family:var(--font-display); font-weight:800; font-size:1.2rem;
}
.kv .step-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.kv .step-row + .step-row{ margin-top:14px; }
.kv .step-label{ font-weight:700; }
.kv .step-label small{ display:block; font-weight:600; color:var(--ink-soft); font-size:.82rem; }

/* радио и чекбоксы как крупные плитки */
.kv .opt-grid{ display:grid; gap:10px; }
@media (min-width:640px){ .kv .opt-grid-2{ grid-template-columns:1fr 1fr; } }
.kv .opt{
  position:relative; display:flex; align-items:flex-start; gap:12px;
  border:2.5px solid var(--cream-deep); border-radius:var(--r-chip);
  padding:14px 16px; cursor:pointer; transition:border-color .2s, background .2s, transform .25s var(--bounce);
  background:var(--white);
}
.kv .opt:hover{ border-color:var(--pink); }
.kv .opt input{ position:absolute; opacity:0; pointer-events:none; }
.kv .opt .opt-check{
  width:24px; height:24px; flex:none; border-radius:8px;
  border:2.5px solid rgba(196,30,58,.35); margin-top:2px;
  display:flex; align-items:center; justify-content:center;
  transition:all .25s var(--bounce);
  color:transparent; background:var(--white);
}
.kv .opt input[type="radio"] + .opt-check{ border-radius:50%; }
.kv .opt:has(input:checked){ border-color:var(--cherry); background:#FFF3F0; }
.kv .opt:has(input:checked) .opt-check{ background:var(--cherry); border-color:var(--cherry); color:var(--white); }
.kv .opt:has(input:focus-visible){ outline:3px solid var(--cherry); outline-offset:2px; }
/* фолбэк для браузеров без :has(): JS вешает .is-checked, фокус через focus-within */
.kv .opt.is-checked{ border-color:var(--cherry); background:#FFF3F0; }
.kv .opt.is-checked .opt-check{ background:var(--cherry); border-color:var(--cherry); color:var(--white); }
@supports not selector(:has(*)){
  .kv .opt:focus-within,.kv .t-chip:focus-within{ outline:3px solid var(--cherry); outline-offset:2px; }
}
.kv .opt-body{ flex:1; min-width:0; }
.kv .opt-name{ display:block; font-weight:800; font-size:.98rem; line-height:1.3; }
.kv .opt-desc{ display:block; font-size:.84rem; color:var(--ink-soft); margin-top:2px; }
.kv .opt-price{ flex:none; font-weight:800; font-size:.9rem; color:var(--cherry-deep); white-space:nowrap; }
.kv .opt-price.free{ color:#1B6B4C; } /* тёмная зелень: AA и на белом, и на #FFF3F0 */

/* чипы тем внутри конфигуратора */
.kv .c-themes{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media (max-width:520px){ .kv .c-themes{ grid-template-columns:repeat(2,1fr); } }
.kv .t-chip{
  position:relative; border-radius:var(--r-chip); padding:14px 10px 12px;
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
  cursor:pointer; border:2.5px solid transparent;
  transition:border-color .2s, transform .25s var(--bounce);
}
.kv .t-chip input{ position:absolute; opacity:0; pointer-events:none; }
.kv .t-chip svg{ width:38px; height:38px; }
.kv .t-chip span{ font-size:.8rem; font-weight:800; line-height:1.2; }
.kv .t-chip:hover{ transform:translateY(-2px); }
.kv .t-chip:has(input:checked){ border-color:var(--cherry); background:var(--white); box-shadow:var(--shadow-soft); }
.kv .t-chip:has(input:focus-visible){ outline:3px solid var(--cherry); outline-offset:2px; }
.kv .t-chip.is-checked{ border-color:var(--cherry); background:var(--white); box-shadow:var(--shadow-soft); }
.kv .t-tip{
  position:absolute; top:-9px; right:-6px;
  background:var(--butter); color:var(--ink); font-size:.64rem; font-weight:800;
  border-radius:999px; padding:3px 9px; box-shadow:0 3px 8px rgba(58,46,46,.15);
  display:none;
}
.kv .t-chip.suggested .t-tip{ display:block; }

/* дата */
.kv .c-date-row{ display:grid; gap:12px; }
@media (min-width:560px){ .kv .c-date-row{ grid-template-columns:1.4fr 1fr; } }
.kv .weekend-flag{
  display:none; margin-top:12px; align-items:center; gap:10px;
  background:var(--butter); border-radius:12px; padding:10px 14px;
  font-size:.86rem; font-weight:700;
}
.kv .weekend-flag.show{ display:flex; }
.kv .weekend-flag svg{ width:20px; height:20px; flex:none; }

/* сводка */
.kv .c-summary{
  position:sticky; top:84px;
  background:var(--white); border-radius:var(--r-card);
  box-shadow:var(--shadow-pop); padding:26px 24px;
}
.kv .c-summary h3{ font-size:1.3rem; display:flex; align-items:center; gap:10px; }
.kv .c-summary h3 svg{ width:30px; height:30px; }
.kv .sum-lines{ margin:16px 0; display:grid; gap:8px; max-height:340px; overflow:auto; padding-right:4px; }
.kv .sum-line{
  display:flex; justify-content:space-between; gap:14px;
  font-size:.9rem; padding-bottom:8px;
  border-bottom:1.5px dashed rgba(196,30,58,.13);
}
.kv .sum-line .sl-label{ color:var(--ink-soft); }
.kv .sum-line .sl-val{ font-weight:800; white-space:nowrap; }
.kv .sum-total{
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  margin-top:6px; padding-top:14px; border-top:3px solid var(--cream-deep);
}
.kv .sum-total b{ font-family:var(--font-display); font-size:1.05rem; }
.kv .sum-total .total-val{
  font-family:var(--font-display); font-weight:800; font-size:1.9rem; color:var(--cherry);
  transition:transform .3s var(--bounce);
}
.kv .sum-total .total-val.bump{ transform:scale(1.12); }
.kv .sum-deposit{ font-size:.84rem; color:var(--ink-soft); margin:6px 0 0; }
.kv .sum-note{ font-size:.8rem; color:var(--ink-soft); margin:14px 0 0; padding:10px 14px; background:var(--cream); border-radius:12px; }
.kv .sum-actions{ display:grid; gap:10px; margin-top:18px; }
.kv .sum-actions .btn{ width:100%; }
.kv .sum-mini-form{ display:grid; gap:10px; margin-top:18px; }
.kv .sum-mini-form input{
  width:100%; font-family:var(--font-body); font-size:.98rem; color:var(--ink);
  background:var(--cream); border:2px solid transparent; border-radius:12px; padding:12px 15px;
}
.kv .sum-mini-form input:focus{ outline:none; border-color:var(--cherry); background:var(--white); }
.kv .sum-err{ color:var(--cherry-deep); font-weight:700; font-size:.86rem; margin:8px 0 0; }
.kv .sum-alt{ display:block; text-align:center; margin-top:12px; font-size:.82rem; font-weight:700; color:var(--cherry-deep); }
.kv .sum-alt[hidden]{ display:none; }
.kv .sum-sent{ display:none; text-align:center; padding:14px 6px 4px; }
.kv .sum-sent.show{ display:block; }
.kv .sum-sent b{ color:var(--cherry); font-family:var(--font-display); font-size:1.15rem; }

/* липкая сводка на десктопе не выше окна: иначе на ноутбуке (1440x800, 1440x900) кнопка WhatsApp,
   печать и «Sdílet» уходили под нижний край на всё время прокрутки конфигуратора.
   Карточка (фон, тень, зайчик сверху) - сам aside; внутри колонка, где сжимается только список строк
   (у него свой скролл), а итог, форма и кнопки всегда на экране. На совсем низком окне прокручивается
   вся колонка - но зайчик над карточкой не обрезается. Отступы те же, что в v8 (в flex поля не схлопываются,
   поэтому у h3 и итога убраны «лишние» margin). */
@media (min-width:980px){
  .kv .c-summary{
    display:flex; flex-direction:column; padding:0;
    max-height:calc(100vh - 100px); max-height:calc(100dvh - 100px);
  }
  .kv .c-sum-in{
    flex:1 1 auto; min-height:0; display:flex; flex-direction:column;
    padding:26px 24px; border-radius:inherit;
    overflow-y:auto; scrollbar-width:thin;   /* без overscroll contain: колесо над сводкой докручивает страницу дальше */
  }
  .kv .c-sum-in > h3{ margin-bottom:0; }
  .kv .c-sum-in > .sum-total{ margin-top:0; }
  .kv .c-sum-in > .sum-lines{ flex:0 1 auto; min-height:76px; scrollbar-width:thin; }
}

/* липкая нижняя плашка на мобильном */
.kv .sticky-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:var(--ink); color:var(--white);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  transform:translateY(110%);
  /* visibility выводит скрытую плашку из tab-order */
  visibility:hidden;
  transition:transform .4s var(--bounce), visibility 0s .4s;
  box-shadow:0 -8px 30px rgba(58,46,46,.25);
}
.kv .sticky-bar.show{ transform:translateY(0); visibility:visible; transition:transform .4s var(--bounce), visibility 0s; }
.kv .sticky-bar .sb-label{ font-size:.75rem; opacity:.75; display:block; }
.kv .sticky-bar .sb-total{ font-family:var(--font-display); font-weight:800; font-size:1.3rem; line-height:1.1; }
@media (min-width:980px){ .kv .sticky-bar{ display:none; } }

/* ============================================================
   Reveal-анимации, конфетти, декор
   ============================================================ */
.kv .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.kv .reveal.in{ opacity:1; transform:none; }
/* стаггер: карточки в сетках выплывают волной */
.kv .cards > .reveal:nth-child(2){ transition-delay:.08s; }
.kv .cards > .reveal:nth-child(3){ transition-delay:.16s; }
.kv .cards > .reveal:nth-child(4){ transition-delay:.24s; }
.kv .cards > .reveal:nth-child(5){ transition-delay:.1s; }
.kv .cards > .reveal:nth-child(6){ transition-delay:.18s; }
.kv .cards > .reveal:nth-child(7){ transition-delay:.12s; }
.kv .cards > .reveal:nth-child(8){ transition-delay:.2s; }
.kv .cards > .reveal:nth-child(9){ transition-delay:.28s; }

/* ============================================================
   MOTION: сайт живёт и дышит
   ============================================================ */
/* карточки приподнимаются под курсором */
.kv .card{ transition:transform .4s var(--bounce), box-shadow .4s var(--ease); }
.kv .card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-pop); }
.kv .card:hover .step-icon,.kv .card:hover .theme-img svg,.kv .card:hover .ent-img svg{ animation:k-wiggle .6s var(--bounce); }
.kv .g-item{ transition:transform .4s var(--bounce); }
.kv .g-item:hover{ transform:translateY(-4px) rotate(-1deg); }
.kv .badge{ transition:transform .35s var(--bounce); }
.kv .badge:hover{ transform:translateY(-3px) rotate(-2deg); }
.kv .nav-logo:hover svg{ animation:k-wiggle .55s var(--bounce); }

/* маскот дышит, машет и шевелит ушами */
.kv .hero-mascot{ animation:k-bob 4.5s ease-in-out infinite; }
.kv .m-ear-l,.kv .m-ear-r{ transform-box:fill-box; transform-origin:50% 90%; }
.kv .m-ear-l{ animation:k-earwig 5s ease-in-out infinite; }
.kv .m-ear-r{ animation:k-earwig 5s ease-in-out infinite reverse; animation-delay:.4s; }
.kv .m-wave{ transform-box:fill-box; transform-origin:10% 90%; animation:k-wave 2.6s ease-in-out infinite; }

/* блобы медленно переливаются и плывут */
.kv .blob{ animation:k-blobmorph 18s ease-in-out infinite alternate; }
.kv .blob-2{ animation-duration:23s; animation-delay:-7s; }
.kv .blob-3{ animation-duration:27s; animation-delay:-13s; }
.kv .sprinkle{ animation:k-floaty 7s ease-in-out infinite alternate; }
.kv .sprinkle:nth-of-type(2){ animation-duration:9s; animation-delay:-3s; }
.kv .sprinkle:nth-of-type(3){ animation-duration:8s; animation-delay:-5s; }

/* пресеты-пакеты в конфигураторе */
.kv .presets{ display:grid; gap:10px; }
@media (min-width:640px){ .kv .presets{ grid-template-columns:repeat(3,1fr); } }
.kv .preset{
  position:relative; text-align:left; width:100%;
  background:var(--white); border:2.5px solid var(--cream-deep); border-radius:var(--r-chip);
  padding:16px 16px 14px; cursor:pointer; font-family:var(--font-body);
  transition:border-color .2s, transform .25s var(--bounce), box-shadow .25s;
}
.kv .preset:hover{ border-color:var(--pink); transform:translateY(-3px); box-shadow:var(--shadow-soft); }
.kv .preset.sel{ border-color:var(--cherry); background:#FFF3F0; }
.kv .preset .p-head{ display:flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:1.02rem; color:var(--ink); }
.kv .preset .p-head svg{ width:20px; height:20px; color:var(--cherry-deep); flex:none; }
.kv .preset .p-desc{ font-size:.82rem; color:var(--ink-soft); margin:6px 0 8px; line-height:1.45; }
.kv .preset .p-price{ font-family:var(--font-display); font-weight:800; color:var(--cherry-deep); font-size:.95rem; }

/* зайчик выглядывает из-за сводки, мини-зайчик в подтверждениях */
.kv .peek-bunny{ position:absolute; top:-46px; right:18px; width:100px; pointer-events:none; }
.kv .cheer-bunny{ display:block; margin:0 auto 6px; }

/* интерактивный маскот: клик = конфетти, реплика и случайная смешная реакция */
.kv .hero-mascot{ cursor:pointer; transform-origin:50% 62%; }
.kv .hero-mascot.party{ animation:k-mjump .7s var(--bounce), k-bob 4.5s ease-in-out .7s infinite; }
.kv .hero-mascot.wiggle{ animation:k-mwiggle .65s var(--bounce), k-bob 4.5s ease-in-out .65s infinite; }
.kv .hero-mascot.spin{ animation:k-mspin .85s var(--bounce), k-bob 4.5s ease-in-out .85s infinite; }
.kv .hero-mascot.wow{ animation:k-mstartle .55s var(--bounce), k-bob 4.5s ease-in-out .55s infinite; }
.kv .hero-mascot.blush{ animation:k-mshy .9s var(--bounce), k-bob 4.5s ease-in-out .9s infinite; }
@keyframes k-mjump{ 0%{ transform:translateY(0); } 40%{ transform:translateY(-26px) rotate(-3deg); } 62%{ transform:translateY(3px) scale(1.06,.9); } 80%{ transform:translateY(0) scale(.98,1.03); } 100%{ transform:translateY(0) scale(1); } }
@keyframes k-mwiggle{ 0%,100%{ transform:rotate(0); } 25%{ transform:rotate(-6deg); } 60%{ transform:rotate(5deg); } }
@keyframes k-mspin{ 0%{ transform:rotate(0) scale(1); } 55%{ transform:rotate(360deg) scale(1.06); } 75%{ transform:rotate(360deg) scale(.94,.9); } 100%{ transform:rotate(360deg) scale(1); } }
@keyframes k-mstartle{ 0%{ transform:translateY(0) scale(1); } 30%{ transform:translateY(-12px) scale(1.05,.95); } 60%{ transform:translateY(2px) scale(.96,1.04); } 100%{ transform:translateY(0) scale(1); } }
@keyframes k-mshy{ 0%,100%{ transform:rotate(0) scale(1); } 30%{ transform:rotate(-4deg) scale(.96); } 65%{ transform:rotate(3deg) scale(1.02); } }

/* уши-пружинки */
.kv .hero-mascot.earboing .m-ear-l{ animation:k-earboingL .75s var(--bounce); }
.kv .hero-mascot.earboing .m-ear-r{ animation:k-earboingR .75s var(--bounce) .06s; }
@keyframes k-earboingL{ 0%,100%{ transform:rotate(0); } 25%{ transform:rotate(-26deg); } 50%{ transform:rotate(15deg); } 75%{ transform:rotate(-9deg); } }
@keyframes k-earboingR{ 0%,100%{ transform:rotate(0); } 25%{ transform:rotate(26deg); } 50%{ transform:rotate(-15deg); } 75%{ transform:rotate(9deg); } }

/* удивлённые глаза и подпрыгнувшие брови */
.kv .hero-mascot .m-wow{ display:none; }
.kv .hero-mascot.wow .m-wow{ display:block; }
.kv .hero-mascot.wow .m-brows{ transform:translateY(-4px); }

/* вспыхнувшие щёчки */
.kv .m-cheek{ transform-box:fill-box; transform-origin:center; }
.kv .hero-mascot.blush .m-cheek{ animation:k-cheekpop .9s var(--bounce); }
@keyframes k-cheekpop{ 0%,100%{ transform:scale(1); } 40%{ transform:scale(1.9); } }

/* подсказка «клик» - литеральные цвета, читается в обеих темах */
.kv .mascot-hint{
  position:absolute; top:10%; right:2%; z-index:4;
  background:#FFE9A8; color:#3A2E2E;
  font-family:var(--font-display); font-weight:700; font-size:.85rem;
  padding:8px 14px; border-radius:999px; box-shadow:var(--shadow-soft);
  pointer-events:none;
  animation:k-hintbounce 1.8s ease-in-out infinite;
}
.kv .mascot-hint.off{ display:none; }
@keyframes k-hintbounce{ 0%,100%{ transform:rotate(6deg) translateY(0); } 50%{ transform:rotate(6deg) translateY(-7px); } }

/* пузырь с репликой */
.kv .mascot-bubble{
  position:absolute; top:0; left:2%; z-index:5; max-width:240px;
  background:var(--white); color:var(--ink);
  border:3px solid var(--cherry); border-radius:18px;
  padding:12px 16px;
  font-family:var(--font-display); font-weight:700; font-size:1rem; line-height:1.3;
  box-shadow:var(--shadow-pop);
  transform-origin:30% 100%;
  animation:k-bubblepop .45s var(--bounce);
}
.kv .mascot-bubble::after{
  content:''; position:absolute; bottom:-12px; left:36px;
  width:20px; height:20px; background:inherit;
  border-right:3px solid var(--cherry); border-bottom:3px solid var(--cherry);
  transform:rotate(45deg); border-radius:0 0 6px 0;
}
@keyframes k-bubblepop{ from{ transform:scale(.55); opacity:0; } to{ transform:scale(1); opacity:1; } }

/* тёмная секция «почему мы»: хвастаемся на контрасте */
.kv .why-dark{ background:var(--ink); }
.kv .why-dark .sec-title{ color:#F5EDE4; }
.kv .why-dark .sec-sub{ color:rgba(245,237,228,.78); }
.kv .why-dark .kicker{ color:var(--pink); }
.kv .why-dark .kicker .k-dot{ background:var(--pink); }

/* бегущая строка */
.kv .marquee{
  background:var(--cherry-deep); color:var(--white);
  transform:rotate(-1.2deg) scale(1.03);
  padding:13px 0; overflow:hidden; white-space:nowrap;
  font-family:var(--font-display); font-weight:700; font-size:1.02rem; letter-spacing:.05em;
  position:relative; z-index:3;
}
.kv .marquee-track{ display:inline-flex; animation:k-marquee 36s linear infinite; }
.kv .marquee-track > span{ padding-right:.6em; }

/* воздушные шарики */
.kv #k-balloon-layer{
  position:fixed; inset:0; z-index:55;
  pointer-events:none; overflow:hidden;
}
.kv .balloon{
  position:absolute; bottom:-160px;
  animation:k-rise linear forwards;
  will-change:transform;
}
.kv .balloon .b-in{
  animation:k-sway 3.8s ease-in-out infinite alternate;
  display:block;
  transition:transform .25s var(--bounce), opacity .25s;
}
.kv .balloon.poppable{ pointer-events:auto; cursor:pointer; }
.kv .balloon.popped .b-in{ transform:scale(0); opacity:0; }
.kv .balloon.dim{ opacity:.55; }

@keyframes k-bob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
@keyframes k-earwig{ 0%,72%,100%{ transform:rotate(0); } 80%{ transform:rotate(-5deg); } 90%{ transform:rotate(3deg); } }
@keyframes k-wave{ 0%,55%,100%{ transform:rotate(0); } 70%{ transform:rotate(-12deg); } 85%{ transform:rotate(7deg); } }
@keyframes k-wiggle{ 0%,100%{ transform:rotate(0); } 30%{ transform:rotate(-7deg); } 60%{ transform:rotate(5deg); } }
@keyframes k-blobmorph{
  0%{ border-radius:58% 42% 55% 45%/55% 48% 52% 45%; }
  50%{ border-radius:45% 55% 42% 58%/50% 42% 58% 50%; }
  100%{ border-radius:52% 48% 60% 40%/45% 58% 42% 55%; }
}
@keyframes k-floaty{ from{ transform:translateY(0) rotate(-4deg); } to{ transform:translateY(-16px) rotate(6deg); } }
@keyframes k-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes k-rise{ from{ transform:translateY(0); } to{ transform:translateY(calc(-100vh - 340px)); } }
@keyframes k-sway{ from{ transform:translateX(-9px) rotate(-4deg); } to{ transform:translateX(9px) rotate(4deg); } }

@media (prefers-reduced-motion:reduce){
  .kv .reveal{ opacity:1; transform:none; transition:none; }
  .kv .btn,.kv .t-chip,.kv .opt,.kv .faq-chevron,.kv .total-val,.kv .sticky-bar,.kv .card,.kv .g-item,.kv .badge{ transition:none; }
  .kv .card:hover,.kv .g-item:hover,.kv .badge:hover{ transform:none; }
  .kv .hero-mascot,.kv .m-ear-l,.kv .m-ear-r,.kv .m-wave,.kv .m-cheek,.kv .blob,.kv .sprinkle,.kv .marquee-track,.kv .mascot-hint,.kv .mascot-bubble,.kv .card:hover .step-icon,.kv .card:hover .theme-img svg,.kv .card:hover .ent-img svg,.kv .nav-logo:hover svg{ animation:none !important; }
  .kv #k-balloon-layer{ display:none; }
}

/* ============================================================
   ВЕЧЕРНЯЯ ТЕМА
   Управляется атрибутом data-theme на <html> (ставит JS:
   сохранённый выбор или prefers-color-scheme). Иллюстрации-сценки
   и фото остаются светлыми - они «картинки», как в книжке.
   ============================================================ */
html[data-view="kids"][data-theme="dark"]{
  --cream:#211824;
  --cream-deep:#2B2030;
  --white:#302536;          /* фон карточек */
  --ink:#F4EAE6;
  --ink-soft:#CDB9C1;
  --pink:#4A2B38;
  --butter:#4A3D22;
  --mint:#20423A;
  --sky:#233D4C;
  --cherry-deep:#FF8B9C;    /* акцентный ТЕКСТ в тёмной теме - светлая вишня */
  --shadow-soft:0 10px 30px rgba(0,0,0,.35), 0 2px 8px rgba(0,0,0,.3);
  --shadow-pop:0 16px 40px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.35);
}
/* там, где cherry-deep был ФОНОМ, в тёмной теме возвращаем тёмную вишню */
html[data-view="kids"]{ color-scheme: light; }
html[data-view="kids"][data-theme="dark"]{ color-scheme: dark; } /* нативные контролы (дата, селекты) тоже темнеют */
html[data-view="kids"][data-theme="dark"] .kv .btn-primary{ background:#B3213A; color:#FFFFFF; box-shadow:0 8px 22px rgba(0,0,0,.4); }
html[data-view="kids"][data-theme="dark"] .kv .btn-primary:hover{ background:#99182F; }
html[data-view="kids"][data-theme="dark"] .kv .marquee{ background:#8E1930; color:#FFFFFF; }
html[data-view="kids"][data-theme="dark"] .kv .nav{ background:rgba(33,24,36,.94); border-bottom-color:rgba(255,139,156,.12); }
html[data-view="kids"][data-theme="dark"] .kv .opt:has(input:checked),html[data-view="kids"][data-theme="dark"] .kv .opt.is-checked,html[data-view="kids"][data-theme="dark"] .kv .preset.sel{ background:#3D2531; }
html[data-view="kids"][data-theme="dark"] .kv .opt .opt-check{ border-color:rgba(255,139,156,.5); }
html[data-view="kids"][data-theme="dark"] .kv .f-field input:focus,html[data-view="kids"][data-theme="dark"] .kv .f-field textarea:focus,html[data-view="kids"][data-theme="dark"] .kv .f-field select:focus{ background:#241A28; }
html[data-view="kids"][data-theme="dark"] .kv .why-dark{ background:#150F18; }
html[data-view="kids"][data-theme="dark"] .kv .why-dark .kicker{ color:var(--cherry-deep); }
html[data-view="kids"][data-theme="dark"] .kv .why-dark .kicker .k-dot{ background:var(--cherry-deep); }
html[data-view="kids"][data-theme="dark"] .kv footer{ background:#150F18; }
html[data-view="kids"][data-theme="dark"] .kv .sticky-bar{ background:#150F18; color:#F4EAE6; box-shadow:0 -8px 30px rgba(0,0,0,.6); }
html[data-view="kids"][data-theme="dark"] .kv .t-chip span{ color:var(--ink); }
html[data-view="kids"][data-theme="dark"] .kv .opt-price.free{ color:#7FD6AE; }
html[data-view="kids"][data-theme="dark"] .kv .allergy-note p{ color:#F4EAE6; }
html[data-view="kids"][data-theme="dark"] .kv .g-ig{ background:#3D2531; }
html[data-view="kids"][data-theme="dark"] .kv .g-ig .gi-play{ background:#B3213A; }
/* кнопка на карте лежит поверх всегда-светлой иллюстрации - цвета прибиты гвоздями */
html[data-view="kids"][data-theme="dark"] .kv .map-ph .btn-secondary{ color:#C41E3A; box-shadow:inset 0 0 0 2.5px #C41E3A; background:rgba(255,255,255,.88); }
html[data-view="kids"][data-theme="dark"] .kv .quote-mark{ color:#FF8B9C !important; }

/* кнопка темы (луна/солнце) */
.kv .theme-btn{
  width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
  background:var(--cream-deep); color:var(--cherry-deep);
  display:flex; align-items:center; justify-content:center; flex:none;
  transition:transform .3s var(--bounce), background .2s;
}
.kv .theme-btn:hover{ transform:rotate(-14deg) scale(1.06); }
.kv .theme-btn svg{ width:20px; height:20px; }

/* ============================================================
   Меню языков: детский глобус
   ============================================================ */
.kv .lang-menu{ position:relative; flex:none; }
.kv .lang-globe{
  width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
  background:var(--cream-deep); padding:6px;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--bounce), background .2s;
}
.kv .lang-globe:hover{ transform:rotate(10deg) scale(1.06); }
.kv .lang-globe svg{ width:30px; height:30px; }
.kv .lang-pop{
  position:absolute; top:calc(100% + 10px); right:0; z-index:120;
  background:var(--white); border-radius:var(--r-chip);
  box-shadow:var(--shadow-pop); padding:8px; min-width:170px;
  display:grid; gap:4px;
}
.kv .lang-pop[hidden]{ display:none; }
.kv .lang-item{
  display:flex; align-items:center; gap:10px;
  border:0; background:transparent; cursor:pointer; text-align:left;
  font-family:var(--font-body); font-weight:800; font-size:.95rem; color:var(--ink);
  padding:10px 12px; border-radius:12px;
  transition:background .15s;
}
.kv .lang-item:hover{ background:var(--cream-deep); }
.kv .lang-item .li-check{ width:16px; height:16px; flex:none; color:var(--cherry); opacity:0; }
.kv .lang-item[aria-checked="true"] .li-check{ opacity:1; }

/* ============================================================
   Галерея с фото
   ============================================================ */
.kv .g-item.photo{ padding:0; border:0; cursor:zoom-in; background:var(--cream-deep); }
.kv .g-item.photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.kv .g-item.photo:focus-visible{ outline:3px solid var(--cherry); outline-offset:3px; }
.kv .g-ig{
  text-decoration:none; background:#FFF3F0;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;
}
.kv .g-ig .gi-play{
  width:58px; height:58px; border-radius:50%; background:var(--cherry-deep);
  display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 8px 22px rgba(196,30,58,.35);
  transition:transform .3s var(--bounce);
}
.kv .g-ig:hover .gi-play{ transform:scale(1.12); }
.kv .g-ig .gi-play svg{ width:24px; height:24px; }
.kv .g-ig span{ font-weight:800; font-size:.88rem; color:var(--ink); text-align:center; padding:0 14px; }
.kv .map-ph{ cursor:pointer; }

/* смета печатается только по кнопке (body.print-quote ставит JS);
   обычный Cmd/Ctrl+P печатает сайт как есть */
@media print{
  /* печать всегда светлая, даже если на экране вечерняя тема */
  html[data-view="kids"][data-theme="dark"]{
    --cream:#FFF8F0; --cream-deep:#FDEFDF; --white:#FFFFFF;
    --ink:#3A2E2E; --ink-soft:#6B5A5A;
    --pink:#FFD1DC; --butter:#FFE9A8; --mint:#B8E6D0; --sky:#BFE3F2;
    --cherry-deep:#C41E3A;
  }
  html[data-view="kids"] body{ background:#fff; }
}


/* ============================================================
   v9: новое в детской шапке и футере
   ============================================================ */
/* назад на основной сайт: тихая «таблетка» рядом с логотипом */
.kv .nav-back{
  display:inline-flex; align-items:center; gap:6px; flex:none;
  min-height:44px; padding:0 16px 0 12px; border-radius:999px;
  font-family:var(--font-display); font-weight:700; font-size:.92rem; line-height:1;
  color:var(--ink-soft); text-decoration:none;
  box-shadow:inset 0 0 0 2px var(--cream-deep);
  transition:background .2s, color .2s, transform .3s var(--bounce);
}
.kv .nav-back svg{ width:18px; height:18px; flex:none; }
.kv .nav-back:hover{ background:var(--cream-deep); color:var(--cherry-deep); transform:translateX(-2px); }
/* стрелка у логотипа: только на мобильном, где таблетке «Kavárna» нет места */
.kv .nav-logo .nav-logo-back{ display:none; width:16px; height:16px; color:var(--ink-soft); margin-right:-4px; }
/* порог 680, а не 560: между 560 и 650 px таблетка + слово Lapin Cherry + CTA (ru/cs) не влезали в шапку */
@media (max-width:680px){
  .kv .nav-back{ display:none; }
  .kv .nav-logo .nav-logo-back{ display:block; }
}
@media (max-width:560px){ .kv .nav-inner{ gap:10px; } }
@media (max-width:380px){
  .kv .nav-inner{ gap:8px; }
  .kv .nav-logo{ gap:6px; }
  .kv .nav-cta{ padding:11px 12px; }
}
/* совсем узкие телефоны (< 360): логотип и так ведёт на главную, стрелку прячем, CTA компактнее */
@media (max-width:359px){
  .kv .nav-logo .nav-logo-back{ display:none; }
  .kv .nav-inner{ gap:6px; }
  .kv .nav-cta{ padding:10px 10px; font-size:.8rem; }
}

/* прямой заход на /detske-oslavy: пока ядро не показало детскую панель, не мигаем chic-главной */
html[data-view="kids"]:not(.lc-ready) [data-view-pane="main"]{ display:none; }

/* повёрнутая бегущая строка и блобы не раздвигают страницу на телефоне
   (clip, а не hidden: не создаёт scroll-контейнер, липкая шапка работает) */
.kv{ overflow-x:clip; }

/* мостики из футера в остальные виды сайта */
.kv .foot-cross{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.kv footer .foot-cross a{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  padding:0 18px 0 14px; border-radius:999px;
  box-shadow:inset 0 0 0 2px rgba(255,209,220,.32);
  font-weight:800; font-size:.92rem; color:#F5EDE4; text-decoration:none;
  transition:background .2s, box-shadow .2s, transform .3s var(--bounce);
}
.kv footer .foot-cross a:hover{ background:rgba(255,209,220,.1); box-shadow:inset 0 0 0 2px #FFD1DC; color:#F5EDE4; text-decoration:none; transform:translateY(-2px); }
.kv .foot-cross svg{ width:18px; height:18px; flex:none; color:#FFD1DC; }

/* «Sdílet oslavu» в сводке: как ссылка на e-mail, только с иконкой */
.kv .sum-share{
  display:flex; align-items:center; justify-content:center; gap:7px; width:100%;
  margin-top:6px; padding:8px 0; border:0; background:none; cursor:pointer;
  font-family:var(--font-body); font-weight:700; font-size:.82rem; color:var(--cherry-deep);
  text-decoration:underline; text-underline-offset:2px;
}
.kv .sum-share svg{ width:16px; height:16px; flex:none; }
.kv .sum-share:hover{ text-decoration-thickness:2px; }

/* ночь: в v8 розовые подписи футера (--pink) в темноте почти пропадали */
html[data-view="kids"][data-theme="dark"] .kv .foot-word,
html[data-view="kids"][data-theme="dark"] .kv .foot-title{ color:#FFB3C4; }
html[data-view="kids"][data-theme="dark"] .kv footer a:hover{ color:#FFB3C4; }

/* тач-цели >= 44px на сенсорных экранах (DoD v9); на десктопе всё как в v8.
   Маленькие кнопки (шапка, «Otevřít v mapách», «Sledovat», плашка) - 36-38 px: невидимая зона +4 px
   сверху и снизу; any-pointer, чтобы и ноутбук с сенсорным экраном (основной указатель - мышь) её получил */
@media (any-pointer:coarse){
  .kv .btn-small{ position:relative; }
  .kv .btn-small::after{ content:''; position:absolute; inset:-4px -2px; }  /* невидимо расширяет зону нажатия */
}
@media (pointer:coarse){
  .kv .sum-alt{ padding:12px 0; margin-top:0; }
  .kv .sum-share{ min-height:44px; margin-top:0; }
  .kv .loc-row a{ display:inline-block; padding:12px 0; margin:-12px 0; }
  .kv .foot-links{ gap:0; }
  .kv .foot-links > *{ padding:12px 0; }
  .kv .lang-item{ min-height:44px; }
}

@media (prefers-reduced-motion:reduce){
  .kv .nav-back,.kv footer .foot-cross a{ transition:none; }
  .kv .nav-back:hover,.kv footer .foot-cross a:hover{ transform:none; }
}

/* ============================================================
   Общие модалки ядра (#nav-modal, #lightbox), тост и skip-link
   в детском виде выглядят как в v8, а не как chic
   ============================================================ */
html[data-view="kids"] .skip-link{
  background:var(--ink); color:var(--white); text-decoration:none;
  padding:10px 18px; border-radius:999px; font-family:var(--font-body); font-weight:700;
}
/* chic-слой модалок меняется независимо: всё, что он ставит (блюр подложки, ширины, сетка, шеврон, шрифт подписи),
   здесь явно сбрасываем, чтобы детский вид оставался как в v8 */
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-back{ background:rgba(26,16,22,.55); -webkit-backdrop-filter:none; backdrop-filter:none; cursor:default; }
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-card{
  z-index:1; box-sizing:border-box;
  background:var(--white); color:var(--ink); border:0;
  border-radius:var(--r-card); box-shadow:var(--shadow-pop);
  padding:26px 24px; width:min(420px,100%); max-width:none;
  font-family:var(--font-body); font-size:17px; line-height:1.6;
}
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-title{
  font-family:var(--font-display); font-weight:700; font-size:1.25rem; line-height:1.15; letter-spacing:.01em;
  color:var(--ink); margin:0 0 16px; padding-right:40px; display:flex; gap:10px; align-items:center;
}
/* пин перед «Kudy k nám?» (в v8 был иконкой из спрайта) */
html[data-view="kids"] #nav-modal .modal-title::before{
  content:''; width:26px; height:26px; flex:none; background:var(--cherry);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.6' fill='none' stroke='black' stroke-width='2'/%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='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.6' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
}
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:36px; height:36px; padding:0; margin:0; border-radius:50%; border:0; cursor:pointer;
  background:var(--cream-deep); color:var(--ink); box-shadow:none;
  display:flex; align-items:center; justify-content:center;
}
/* крестик как в v8: жирный символ вместо тонкой линии chic-спрайта */
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-close svg{ display:none; }
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-close::before{ content:'\2715'; font-family:var(--font-body); font-size:1.1rem; font-weight:800; line-height:1; }
html[data-view="kids"] :is(#nav-modal,#lightbox) :focus-visible{ outline:3px solid var(--cherry); outline-offset:3px; }
html[data-view="kids"] #nav-modal .nav-apps{ display:grid; grid-template-columns:1fr; gap:10px; margin-top:0; border-top:0; }
html[data-view="kids"] #nav-modal .nav-app{
  display:flex; align-items:center; justify-content:flex-start; gap:12px; min-height:0;
  border:2.5px solid var(--cream-deep); border-radius:var(--r-chip);
  background:var(--white); padding:13px 16px; cursor:pointer;
  font-family:var(--font-display); font-weight:700; font-size:1rem; line-height:1.2; color:var(--ink);
  text-decoration:none;
  transition:border-color .2s, transform .25s var(--bounce);
}
html[data-view="kids"] #nav-modal .nav-app:hover{ border-color:var(--cherry); background:var(--white); transform:translateY(-2px); }
html[data-view="kids"] #nav-modal .nav-app::after{ content:none; }
/* новые chic-детали модалки (шеврон-стрелка, подпись, улица) - в детском стиле; стрелку прячем, как в v8 */
html[data-view="kids"] #nav-modal .nav-app svg{ display:none; }
html[data-view="kids"] :is(#nav-modal,#lightbox) .kicker{
  display:block; margin:0 0 8px; padding-right:40px;
  font:800 .72rem/1.3 var(--font-body); letter-spacing:.12em; text-transform:uppercase; color:var(--cherry-deep);
}
html[data-view="kids"] #nav-modal .navm-sub{ margin:-6px 0 16px; font:400 .95rem/1.5 var(--font-body); color:var(--ink-soft); }
html[data-view="kids"] :is(#nav-modal,#lightbox) .modal-close:hover{ background:var(--cream-deep); color:var(--ink); border:0; }
/* цветные точки приложений (в v8 - span.na-dot) */
html[data-view="kids"] #nav-modal .nav-app::before{ content:''; width:12px; height:12px; border-radius:50%; flex:none; background:#4285F4; }
html[data-view="kids"] #nav-modal .nav-app[data-navapp="apple"]::before{ background:var(--ink); }
html[data-view="kids"] #nav-modal .nav-app[data-navapp="waze"]::before{ background:#33CCFF; }
html[data-view="kids"] #nav-modal .nav-app[data-navapp="mapy"]::before{ background:#2E8B6A; }
html[data-view="kids"] #lightbox .lightbox-card{ padding:12px; width:min(920px,100%); max-width:none; }
html[data-view="kids"] #lightbox #lightbox-img{ display:block; width:100%; height:auto; max-height:78vh; object-fit:contain; border-radius:14px; }
html[data-view="kids"] #lightbox .lightbox-cap{ padding:0; font:400 .9rem/1.6 var(--font-body); letter-spacing:normal; text-align:center; color:var(--ink-soft); margin:10px 0 2px; }
html[data-view="kids"] #toast{
  background:var(--ink); color:var(--cream); box-shadow:var(--shadow-pop);
  font-family:var(--font-body); font-weight:700; font-size:.95rem; line-height:1.35; text-align:center;
  padding:12px 22px; border-radius:999px; max-width:min(92vw,440px); box-sizing:border-box;
}
/* на телефоне внизу живёт липкая плашка с итогом - тост поднимаем над ней */
@media (max-width:979px){ html[data-view="kids"] #toast{ bottom:96px; } }
@media (prefers-reduced-motion:reduce){
  html[data-view="kids"] #nav-modal .nav-app{ transition:none; }
  html[data-view="kids"] #nav-modal .nav-app:hover{ transform:none; }
}
