/* =========================================================
   «Золотой Вектор» — ПРЕМИУМ-вариант
   Живой, насыщенный движением. Glassmorphism + gold accents.
   ========================================================= */

/* ===== Фирменный шрифт Evolventa (локальные файлы, без внешних CDN) ===== */
@font-face{ font-family:'Evolventa'; font-weight:400; font-style:normal; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-Regular.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:400; font-style:italic; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-Oblique.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:600; font-style:normal; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-Bold.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:700; font-style:normal; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-Bold.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:800; font-style:normal; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-Bold.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:600; font-style:italic; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-BoldOblique.woff') format('woff'); }
@font-face{ font-family:'Evolventa'; font-weight:700; font-style:italic; font-display:swap;
  src:url('../fonts/evolventa/Evolventa-BoldOblique.woff') format('woff'); }

/* ===== Nunito (локальные woff2, без Google Fonts CDN) ===== */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;unicode-range:'U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2F-F72';src:url('../fonts/nunito/Nunito-400-cyrillic-ext.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;unicode-range:'U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116';src:url('../fonts/nunito/Nunito-400-cyrillic.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;unicode-range:'U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD';src:url('../fonts/nunito/Nunito-400-latin.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:500;font-display:swap;unicode-range:'U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2F-F72';src:url('../fonts/nunito/Nunito-500-cyrillic-ext.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:500;font-display:swap;unicode-range:'U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116';src:url('../fonts/nunito/Nunito-500-cyrillic.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:500;font-display:swap;unicode-range:'U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD';src:url('../fonts/nunito/Nunito-500-latin.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;unicode-range:'U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2F-F72';src:url('../fonts/nunito/Nunito-600-cyrillic-ext.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;unicode-range:'U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116';src:url('../fonts/nunito/Nunito-600-cyrillic.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;unicode-range:'U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD';src:url('../fonts/nunito/Nunito-600-latin.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;unicode-range:'U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2F-F72';src:url('../fonts/nunito/Nunito-700-cyrillic-ext.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;unicode-range:'U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116';src:url('../fonts/nunito/Nunito-700-cyrillic.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;unicode-range:'U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD';src:url('../fonts/nunito/Nunito-700-latin.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;unicode-range:'U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2F-F72';src:url('../fonts/nunito/Nunito-800-cyrillic-ext.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;unicode-range:'U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116';src:url('../fonts/nunito/Nunito-800-cyrillic.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;unicode-range:'U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD';src:url('../fonts/nunito/Nunito-800-latin.woff2') format('woff2');}

:root {
  /* ===== Фирменная палитра «Золотой Вектор» 2026 (брендбук) ===== */
  /* Бордовый (основной) */
  --berry:        #973568;
  --berry-dark:   #7A2B54;
  --berry-deep:   #5C2040;
  --berry-light:  #AC5D86;
  /* Лавандовый (заменяет прежний "sky") */
  --sky:          #9B89C0;   /* lavender основной */
  --sky-soft:     #C3B8D9;   /* lavender 60% */
  --lavender:     #9B89C0;
  --lavender-soft:#D7D0E6;
  /* Розовый */
  --rose:         #D3A3C4;
  --rose-soft:    #E5C8DC;
  --pink:         #D3A3C4;
  --pink-bright:  #F5ACCC;   /* ярко-розовый акцент */
  /* Шалфей */
  --sage:         #AABDA1;
  --sage-soft:    #CCD7C7;
  --sage-tint:    #EEF2EC;
  /* Бежевый */
  --beige:        #CEABB1;
  --beige-soft:   #E2CDD0;
  --beige-tint:   #F5EEEF;
  /* Тёмный сине-фиолетовый (из логотипа) — для акцентного текста */
  --indigo:       #4B4A7E;
  /* Золотой акцент */
  --gold:         #E0A97C;
  --gold-2:       #FFD7A8;
  --gold-hi:      #FFE7C9;

  --bg:           #FBF9F7;
  --cream:        #F5EEEF;
  --ink:          #34303F;
  --muted:        #6E6980;

  --r-lg: 1.5rem;
  --r-xl: 2rem;

  --glass-bg:     rgba(255, 255, 255, 0.62);
  --glass-brd:    rgba(255, 255, 255, 0.7);

  --shadow-soft:  0 20px 50px -24px rgba(75, 74, 126, 0.30),
                  0 8px 20px -12px rgba(75, 74, 126, 0.18);
  --shadow-lift:  0 34px 70px -28px rgba(75, 74, 126, 0.42);
  --glow-gold:    0 0 0 1px rgba(224,169,124,.40), 0 12px 40px -8px rgba(224,169,124,.45);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Единые вертикальные отступы секций (не зависит от загрузки Tailwind CDN) */
section[id]{ padding-top:5rem; padding-bottom:5rem; }
@media (min-width:1024px){ section[id]{ padding-top:7rem; padding-bottom:7rem; } }
#hero{ padding-top:8.5rem; }
@media (min-width:1024px){ #hero{ padding-top:10.5rem; } }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'Nunito', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

h1,h2,h3,h4,.font-display { font-family: 'Evolventa','Nunito',sans-serif; }
.font-400{font-weight:400}.font-500{font-weight:500}.font-600{font-weight:600}
.font-700{font-weight:700}.font-800{font-weight:800}

/* ---- Живой градиентный фон страницы ---- */
.aurora {
  position: fixed;
  inset: -20% -20% auto -20%;
  height: 120vh;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(40% 40% at 20% 20%, rgba(158,195,237,.55), transparent 70%),
    radial-gradient(45% 45% at 85% 15%, rgba(212,162,195,.55), transparent 70%),
    radial-gradient(50% 50% at 60% 80%, rgba(228,206,147,.40), transparent 70%),
    radial-gradient(40% 40% at 10% 90%, rgba(151,54,105,.28), transparent 70%);
  filter: blur(20px);
  animation: auroraShift 22s ease-in-out infinite alternate;
}
@keyframes auroraShift {
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(-3%,2%,0) scale(1.08); }
  100% { transform: translate3d(3%,-2%,0) scale(1.04); }
}
.grain {
  position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Иконки ---- */
.icon { width:1.5rem; height:1.5rem; display:inline-block; fill:currentColor; flex-shrink:0; vertical-align:middle; }
.icon-sm{width:1.25rem;height:1.25rem}
.icon-lg{width:2rem;height:2rem}

/* ---- Стеклянные поверхности ---- */
.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid var(--glass-brd);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-soft);
}
.card {
  background: #fff;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(255,255,255,.6);
}

/* Golden ring highlight */
.ring-gold { box-shadow: var(--glow-gold), var(--shadow-soft); }

.icon-badge {
  display:inline-grid; place-items:center;
  width:3.5rem; height:3.5rem; border-radius:1.25rem;
  box-shadow: inset 0 2px 6px rgba(255,255,255,.6), 0 10px 24px -12px rgba(98,34,68,.4);
}

/* ---- Кнопки ---- */
.btn {
  position: relative;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:54px; padding:0 1.9rem; border-radius:999px;
  font-family:'Evolventa','Nunito',sans-serif; font-weight:500; font-size:1.05rem; line-height:1;
  cursor:pointer; border:none; text-decoration:none;
  transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, background-color .3s;
  will-change: transform;
  overflow: hidden;
}
.btn:focus-visible { outline:3px solid var(--sky); outline-offset:3px; }
.btn-lg{ min-height:62px; font-size:1.15rem; padding:0 2.4rem; }

.btn-primary {
  color:#fff;
  background: linear-gradient(135deg, var(--berry) 0%, var(--berry-deep) 100%);
  box-shadow: 0 14px 30px -10px rgba(151,54,105,.6);
}
/* золотой блик, пробегающий по кнопке */
.btn-primary::after {
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background: linear-gradient(120deg, transparent, rgba(244,228,176,.55), transparent);
  transform: skewX(-20deg);
}
.btn-primary:hover::after { animation: sheen .9s ease; }
@keyframes sheen { to { left:120%; } }
.btn-primary:hover { box-shadow: 0 22px 40px -12px rgba(151,54,105,.7), var(--glow-gold); }

.btn-gold {
  color: var(--berry-deep);
  background: linear-gradient(135deg, var(--gold-hi), var(--gold));
  box-shadow: 0 14px 30px -12px rgba(201,162,75,.6);
}
.btn-gold:hover { box-shadow: var(--glow-gold); }

.btn-glass {
  color: var(--berry);
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.8);
  box-shadow: var(--shadow-soft);
}
.btn-glass:hover { color: var(--berry-dark); }

@media (prefers-reduced-motion: reduce) {
  .btn, .btn-primary::after { transition:none; animation:none; }
}

/* ---- Логотип ---- */
.logo-mark {
  display:grid; place-items:center; width:3rem; height:3rem; border-radius:1rem;
  background: linear-gradient(145deg, var(--berry), var(--berry-deep));
  color: var(--gold-2); box-shadow: var(--shadow-soft); flex-shrink:0;
  position: relative;
}
.logo-mark::before{
  content:''; position:absolute; inset:-2px; border-radius:1.15rem;
  background: conic-gradient(from 0deg, transparent, rgba(244,228,176,.8), transparent 40%);
  opacity:.0; transition:opacity .4s;
}
.logo-mark:hover::before{ opacity:.9; animation: spin 3s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.logo-mark .icon{ fill: var(--gold-2); position:relative; z-index:1; }

/* ---- Header ---- */
#siteHeader{ transition: background-color .35s, box-shadow .35s, backdrop-filter .35s; }
#siteHeader > .max-w-content > .flex{ min-width: 0; }
#siteHeader nav[aria-label="Основная навигация"] .nav-link{
  flex: 0 0 auto;
  white-space: nowrap;
}
/* ---- Шапка: отдельный широкий контейнер (1400px) ----
   Контент страницы остаётся в 1200px, шапка шире — больше воздуха,
   логотип и ссылки крупнее. JS (#headerFit) уплотняет шапку при нехватке места. */
#siteHeader .header-wrap{ max-width: none; }
.header-phone{ white-space: nowrap; }
/* Десктоп по умолчанию (1024–1279px): шапка во всю ширину окна */
@media (min-width: 1024px){
  #siteHeader .header-wrap{ padding-left: 1.5rem; padding-right: 1.5rem; }
  #siteHeader .header-row{ gap: 18px; }
  .site-nav{ gap: 16px; }
  .site-nav .nav-link{ font-size: 0.95rem; }
  .header-phone{ font-size: 0.95rem; }
  .header-logo{ width: 175px; }
}
/* Широкий десктоп (≥1280px): контейнер 1400px, всё крупнее */
@media (min-width: 1280px){
  #siteHeader .header-wrap{ max-width: 1400px; }
  #siteHeader .header-row{ gap: clamp(20px, 2.5%, 40px); }
  .site-nav{ gap: clamp(18px, 2.2%, 36px); }
  .site-nav .nav-link{ font-size: 1.05rem; }
  .header-phone{ font-size: 1.05rem; }
  .header-logo{ width: 200px; }
}
#siteHeader nav[aria-label="Основная навигация"]{
  min-width: 0;
}
#siteHeader.scrolled{
  background: rgba(251,247,244,.8);
  backdrop-filter: saturate(1.5) blur(14px);
  box-shadow: 0 10px 34px -20px rgba(98,34,68,.45);
}

/* Прогресс-бар чтения */
#scrollProgress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:60;
  background: linear-gradient(90deg, var(--berry), var(--gold)); border-radius:0 3px 3px 0;
}

/* ---- Кастомный курсор (десктоп) ---- */
.cursor-dot, .cursor-ring{
  position:fixed; top:0; left:0; border-radius:999px; pointer-events:none; z-index:70;
  transform: translate(-50%,-50%); mix-blend-mode: multiply;
}
.cursor-dot{ width:8px; height:8px; background: var(--berry); }
.cursor-ring{ width:40px; height:40px; border:2px solid rgba(151,54,105,.45); transition: width .2s, height .2s, background-color .2s; }
.cursor-ring.is-hover{ width:64px; height:64px; background: rgba(201,162,75,.12); border-color: rgba(201,162,75,.6); }
@media (hover:none), (prefers-reduced-motion: reduce){ .cursor-dot,.cursor-ring{ display:none; } }

/* ---- Плавающие декоративные капли ---- */
.blob{ position:absolute; border-radius:45% 55% 60% 40% / 55% 45% 55% 45%; opacity:.5; filter:blur(6px); z-index:0; pointer-events:none; }
.float-slow{ animation: floaty 9s ease-in-out infinite alternate; }
.float-mid { animation: floaty 6.5s ease-in-out infinite alternate; }
@keyframes floaty { to { transform: translateY(-26px) rotate(6deg); } }
@media (prefers-reduced-motion: reduce){ .float-slow,.float-mid,.aurora{ animation:none; } }

/* Фирменные декор-элементы (звёзды, лист) */
.deco{ z-index:0; pointer-events:none; user-select:none; }
/* Маскот Ёжик Вектор: нижний левый угол, поднят на 80px от нижнего края блока фото */
.hero-mascot{ z-index:4; pointer-events:none; user-select:none; bottom:80px; }

/* Glass-карточка рейтинга в hero: нижний край бейджа «5,0» ровно на линии
   верхнего края фото (top:0 + translateY(-100%)). */
.hero-rating-card{ top:0; transform:translateY(-100%); }
/* Glass-карточки hero — над маскотом и фото */
.hero-safe-card, .hero-rating-card{ z-index:5; }
@media (prefers-reduced-motion: reduce){ .deco{ animation:none; } }

/* Фирменный паттерн фоном секций (деликатно) */
.has-pattern{ position:relative; }
.has-pattern::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image: var(--pattern-src);
  background-size: 420px auto; background-repeat: repeat;
  opacity: .06;
}
/* Поднимаем контент над паттерном, но НЕ трогаем абсолютно спозиционированный декор */
.has-pattern > *:not(.blob):not(.deco):not(.section-hog){ position:relative; z-index:1; }
.pattern-sage::before{ --pattern-src: url('../brand/pattern/pattern-sage.png'); }
.pattern-pink::before{ --pattern-src: url('../brand/pattern/pattern-pink.png'); }
.pattern-lavender::before{ --pattern-src: url('../brand/pattern/pattern-lavender.png'); }

/* Ёжик-маскот внутри секций */
.section-hog{ position:absolute; z-index:0; pointer-events:none; user-select:none; opacity:.95; }

/* ---- Карточки: hover-lift ---- */
.tilt{ transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s; transform-style: preserve-3d; will-change: transform; }
.tilt:hover{ box-shadow: var(--shadow-lift); }

/* ---- Marquee ---- */
.marquee{ overflow:hidden; }
.marquee-track{ display:flex; gap:3rem; width:max-content; animation: marquee 26s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

/* ---- Reveal fallback (если JS/GSAP не загрузился) ---- */
.reveal{ opacity:0; }
.no-js .reveal, .gsap-ready .reveal{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1 !important; transform:none !important; } }

/* ---- FAQ ---- */
.faq-panel{ overflow:hidden; height:0; }
.faq-item[aria-expanded="true"] .faq-caret{ transform: rotate(180deg); }
.faq-caret{ transition: transform .35s cubic-bezier(.2,.7,.2,1); }

/* ---- Отзывы-карусель ---- */
.testi-track{ display:flex; }
.testi-slide{ flex:0 0 100%; }
.dot{ width:11px; height:11px; border-radius:999px; background:var(--rose); border:none; padding:0; cursor:pointer;
      transition:width .3s, background-color .3s; }
.dot[aria-current="true"]{ width:34px; background: linear-gradient(90deg,var(--berry),var(--gold)); }

/* ---- Photo frame с бликом ---- */
.photo-frame{ border-radius:var(--r-xl); overflow:hidden; box-shadow: var(--shadow-lift); position:relative; }
.photo-frame img{ display:block; width:100%; height:100%; object-fit:cover; }
.photo-frame::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(255,255,255,.18), transparent 40%);
  pointer-events:none;
}

/* Счётчики */
.count{ font-variant-numeric: tabular-nums; }

/* Hero: glass-карточки на мобильных.
   Десктоп (sm+): рейтинг в правом верхнем углу, «Безопасная среда» снизу слева.
   Мобильные (<640px): обе карточки остаются НА фото, прижаты к левому краю
   (как десктопная раскладка), не падают вниз и не ломают поток страницы. */
@media (max-width: 639.98px){
  .hero-photo{ padding-bottom: 2.75rem; } /* зазор под свисающую нижнюю карточку */
  .hero-photo{ padding-top: 1.75rem; }    /* отступ сверху на мобильной — glass-рейтинг не наезжает на текст/кнопку над фото */
  .hero-rating-card{
    top: 0;              /* нижний край бейджа на линии верхнего края фото (см. базовое правило) */
    transform: translateY(-100%);
    right: 0.75rem;
    padding: 0.5rem 0.75rem;
    gap: 0.5rem;
  }
  .hero-rating-card .icon-badge{ width: 2rem; height: 2rem; }
  .hero-rating-card .rating-sub{ display: none; } /* «оценка родителей» только на десктопе */
  .hero-safe-card{
    bottom: -1.25rem;
    left: 0.75rem; right: auto;
    max-width: 14rem;
    padding: 0.625rem 0.875rem;
    gap: 0.625rem;
  }
  .hero-safe-card .icon-badge{ width: 2.25rem; height: 2.25rem; }
  .hero-mascot{ bottom: 3.5rem; left: auto; right: 0.75rem; } /* маскот не под нижней карточкой */
}

/* Footer links */
.foot-link{ transition: color .2s; }
.foot-link:hover{ color:#fff; }

/* Мобильное меню */
#mobileMenu{ transition: opacity .3s, transform .3s; }
#mobileMenu.hidden-menu{ opacity:0; transform: translateY(-10px); pointer-events:none; }
/* Мобильное меню — почти непрозрачный фон, чтобы пункты хорошо читались */
.mobile-nav{
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(151,54,105,0.10);
  box-shadow: var(--shadow-lift);
}
@supports (backdrop-filter: blur(18px)){
  .mobile-nav{ background: rgba(255,255,255,0.94); }
}

/* sr-only */
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* ---- Био специалистов (раскрытие) ---- */
.bio-panel{ overflow:hidden; height:0; opacity:0; transition: height .4s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
.bio-toggle[aria-expanded="true"] .bio-caret{ transform: rotate(180deg); }
.bio-caret{ transition: transform .35s ease; }
@media (prefers-reduced-motion: reduce){ .bio-panel{ transition:none; } }

/* ---- Отзывы: бесшовная прокручивающаяся лента (marquee) ---- */
.reviews-marquee{
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.reviews-track{
  display: flex;
  gap: 1.5rem;
  width: max-content;
  animation: reviews-scroll 90s linear infinite;
  will-change: transform;
}
.reviews-marquee:hover .reviews-track,
.reviews-marquee:focus-within .reviews-track{ animation-play-state: paused; }
@keyframes reviews-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .reviews-track{ animation: none; }
  .reviews-marquee{ overflow-x: auto; }
}

.review-card{
  flex: 0 0 min(88vw, 420px);
  padding: 1.5rem;
  align-self: stretch;        /* карточки одной высоты в ленте */
}
.review-card--clone{ pointer-events: none; user-select: none; }
.review-extra{ display:flex; }

.review-card__stars{ display:flex; gap:2px; margin-bottom:.75rem; }
.review-card__stars .icon{ width:1.05rem; height:1.05rem; }
.review-card__text{
  color: var(--ink); line-height:1.6; font-size:.97rem; margin:0 0 1.1rem;
}
.review-card__foot{ display:flex; align-items:center; gap:.75rem; }
.review-card__ava{
  display:grid; place-items:center; flex-shrink:0;
  width:2.75rem; height:2.75rem; border-radius:.9rem;
  font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color:#fff; font-size:.95rem;
}
.review-card__name{ font-weight:700; color:var(--ink); line-height:1.1; }
.review-card__date{ font-size:.8rem; color:var(--muted); }

/* Лайтбокс (оставляем для зон центра) */
.lightbox-trigger{ cursor: zoom-in; padding:0; border:none; background:none; }

/* Бейдж «N фото» на карточке зоны */
.room-count{
  position:absolute; top:.75rem; right:.75rem;
  display:inline-flex; align-items:center; gap:.35rem;
  background: rgba(46,38,43,.6); color:#fff;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  font-family:'Evolventa','Nunito',sans-serif; font-weight:500; font-size:.78rem;
  padding:.28rem .6rem; border-radius:999px; pointer-events:none;
}
.room-count .icon{ width:1rem; height:1rem; fill:#fff; }

/* ---- Лайтбокс ---- */
.lb-overlay{
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  background: rgba(46,38,43,.88); backdrop-filter: blur(8px);
  padding: 4vh 4vw; opacity:0; transition: opacity .3s ease;
}
.lb-overlay[hidden]{ display:none; }
.lb-overlay.is-open{ opacity:1; }
.lb-image{
  max-width: min(92vw, 900px); max-height: 88vh; width:auto; height:auto;
  border-radius: 1rem; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6);
  background:#fff;
}
.lb-overlay.is-open .lb-image{ animation: lbIn .35s cubic-bezier(.2,.7,.2,1); }
@keyframes lbIn { from { transform: scale(.94); opacity:0; } to { transform: scale(1); opacity:1; } }
.lb-close, .lb-nav{
  position:absolute; display:grid; place-items:center; cursor:pointer;
  border:none; color:#fff; background: rgba(255,255,255,.14);
  border-radius:999px; transition: background-color .2s, transform .2s;
}
.lb-close{ top:3vh; right:3vw; width:52px; height:52px; }
.lb-nav{ top:50%; transform: translateY(-50%); width:56px; height:56px; }
.lb-prev{ left:2vw; } .lb-next{ right:2vw; }
.lb-close:hover, .lb-nav:hover{ background: rgba(201,162,75,.55); }
.lb-nav:hover{ transform: translateY(-50%) scale(1.08); }
.lb-close:focus-visible, .lb-nav:focus-visible{ outline:3px solid var(--gold-2); outline-offset:2px; }
.lb-counter{ position:absolute; bottom:3vh; left:50%; transform:translateX(-50%); color:#fff; font-family:'Evolventa','Nunito',sans-serif; background:rgba(0,0,0,.35); padding:.4rem 1rem; border-radius:999px; font-size:.9rem; }
@media (max-width:640px){
  .lb-nav{ width:46px; height:46px; }
  .lb-close{ width:46px; height:46px; }
}
@media (prefers-reduced-motion: reduce){
  .lb-overlay, .lb-overlay.is-open .lb-image{ transition:none; animation:none; }
}

/* ========================================================
   ПРЕМИУМ-ЦЕНЫ
   ======================================================== */
.icon-badge--sm{ width:2.75rem; height:2.75rem; border-radius:.9rem; }
.icon-badge--lg{ width:4.25rem; height:4.25rem; border-radius:1.4rem; }

/* Карточка услуги с вариантами абонемента */
.price-svc{
  position: relative;
  border-radius: var(--r-xl);
  background: #fff;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(255,255,255,.6);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
  display:flex; min-width:0;
}
.price-svc__inner{ padding: 1.6rem; display:flex; flex-direction:column; width:100%; min-width:0; }
.price-svc:hover{ box-shadow: var(--shadow-lift); }

/* Популярная услуга — тёмная премиум-карточка с золотой рамкой */
.price-svc--featured{
  background: linear-gradient(160deg, #973669 0%, #622244 100%);
  border: none;
  box-shadow: var(--glow-gold), var(--shadow-lift);
  overflow: hidden;
}
.price-svc--featured::before{
  content:''; position:absolute; inset:0; border-radius:var(--r-xl);
  padding:1.5px; background: linear-gradient(140deg, var(--gold-hi), rgba(228,206,147,.2) 40%, transparent 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events:none;
}
.price-svc--featured::after{
  content:''; position:absolute; width:180%; height:60%; top:-30%; left:-40%;
  background: radial-gradient(closest-side, rgba(244,228,176,.16), transparent);
  pointer-events:none;
}
/* Лента-баннер во всю ширину сверху карточки (не перекрывает заголовок) */
.price-svc__ribbon{
  position:absolute; top:0; left:0; right:0; z-index:2;
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  background: linear-gradient(135deg, var(--gold-hi), var(--gold));
  color: var(--berry-deep); font-family:'Evolventa','Nunito',sans-serif; font-weight:600;
  font-size:.75rem; letter-spacing:.02em; padding:.5rem .65rem;
  box-shadow: 0 6px 16px -8px rgba(201,162,75,.6);
}
.price-svc__ribbon .icon{ fill: var(--berry-deep); }
/* Отступ сверху у популярной карточки — чтобы контент не заезжал под ленту */
.price-svc--featured .price-svc__inner{ padding-top: 3rem; }

/* Таблица вариантов абонемента внутри карточки */
.pkg-table{ margin-top:auto; }
.pkg-head{
  display:grid; grid-template-columns: 1fr 1.15fr .9fr; gap:.5rem;
  font-size:.72rem; text-transform:uppercase; letter-spacing:.03em;
  color: var(--muted); padding:0 .25rem .5rem;
}
.price-svc--featured .pkg-head{ color: rgba(231,215,227,.7); }
.pkg-row{
  display:grid; grid-template-columns: 1fr 1.15fr .9fr; gap:.5rem;
  align-items:center; padding:.7rem .75rem; border-radius:.9rem;
  background: var(--cream); margin-bottom:.5rem;
}
.price-svc--featured .pkg-row{ background: rgba(255,255,255,.1); }
.pkg-cnt{ font-weight:600; color: var(--ink); font-size:.9rem; }
.price-svc--featured .pkg-cnt{ color:#fff; }
.pkg-price{ font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color: var(--berry); font-size:.95rem; }
.price-svc--featured .pkg-price{ color: var(--gold-2); }
.pkg-per{ font-size:.68rem; color: var(--muted); font-weight:400; margin-left:1px; }
.price-svc--featured .pkg-per{ color: rgba(231,215,227,.65); }
.pkg-sum{ text-align:right; font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color: var(--ink); font-size:.95rem; }
.price-svc--featured .pkg-sum{ color:#fff; }
.pkg-price .line-through{ display:block; font-size:.7rem; font-weight:400; }

/* Баннер диагностики */
.diag-banner{
  position: relative; overflow:hidden;
  padding: 2rem 2.25rem; border-radius: var(--r-xl);
  background: linear-gradient(135deg, #7A2B54 0%, #4A1934 100%);
}
@media (min-width:768px){ .diag-banner{ padding: 2.5rem; } }

/* Сетка баннеров: иконка + текст в одну линию на всех экранах,
   кнопка — отдельной строкой снизу на мобильных, справа на десктопе */
.banner-grid{ display:grid; grid-template-columns:auto 1fr; gap:1.25rem; align-items:center; }
.banner-grid > .btn{ grid-column: 1 / -1; justify-self:start; margin-top:.5rem; white-space:nowrap; }
@media (min-width:768px){
  .banner-grid{ grid-template-columns:auto 1fr auto; gap:1.5rem; }
  .banner-grid > .btn{ grid-column:auto; justify-self:end; margin-top:0; }
}

/* Бургер — всегда у правого края шапки (на мобильных) */
.menu-toggle{ margin-left:auto; }

/* ===== Модульная сетка цен (стиль прайс-листа из брендбука) ===== */
.price-cats{ display:flex; flex-direction:column; gap:1.75rem; }

.price-cat{
  border-radius: var(--r-xl);
  padding: 1.5rem;
  border: 2px solid var(--cat-color, var(--berry));
  background: var(--cat-tint, #fff);
}
.price-cat--sage{ --cat-color:#556E4E; --cat-tint:#EEF2EC; }
.price-cat--pink{ --cat-color:#8A3A66; --cat-tint:#F6EDF3; }
.price-cat--lavender{ --cat-color:#5A4A92; --cat-tint:#EBE7F2; }
.price-cat--beige{ --cat-color:#7E5257; --cat-tint:#F5EEEF; }
.price-cat--berry{ --cat-color:#973568; --cat-tint:#F6EDF3; }

.price-cat__label{ display:flex; align-items:center; gap:.65rem; margin-bottom:1.1rem; }
.price-cat__dot{
  display:grid; place-items:center; width:2.25rem; height:2.25rem;
  border-radius:.75rem; background: var(--cat-color); color:#fff; flex-shrink:0;
}
.price-cat__dot .icon{ fill:#fff; }
.price-cat__label h3{ color: var(--cat-color); }

.price-cat__grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

/* Карточка услуги внутри категории */
.price-card{
  display:flex; flex-direction:column; min-width:0;
  background:#fff; border-radius:1.25rem; padding:1.35rem;
  border:1px solid rgba(0,0,0,.05);
  box-shadow: var(--shadow-soft);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
}
.price-card:hover{ box-shadow: var(--shadow-lift); }
.price-card__head{ display:flex; align-items:center; gap:.75rem; margin-bottom:.9rem; }
.price-card__ic{
  display:grid; place-items:center; width:3rem; height:3rem; border-radius:1rem;
  background: var(--cat-tint); color: var(--cat-color); flex-shrink:0;
}
.price-card__ic .icon{ fill: var(--cat-color); }
.price-card--sage{ --cat-color:#556E4E; --cat-tint:#EEF2EC; }
.price-card--pink{ --cat-color:#8A3A66; --cat-tint:#F6EDF3; }
.price-card--lavender{ --cat-color:#5A4A92; --cat-tint:#EBE7F2; }
.price-card--beige{ --cat-color:#7E5257; --cat-tint:#F5EEEF; }
.price-card--berry{ --cat-color:#973568; --cat-tint:#F6EDF3; }

.price-card .pkg-head{
  display:grid; grid-template-columns: 1fr 1.15fr .9fr; gap:.5rem;
  font-size:.72rem; text-transform:uppercase; letter-spacing:.03em;
  color: var(--muted); padding:0 .25rem .5rem;
}
.price-card .pkg-row{
  display:grid; grid-template-columns: 1fr 1.15fr .9fr; gap:.5rem;
  align-items:center; padding:.6rem .7rem; border-radius:.75rem;
  background: var(--cat-tint); margin-bottom:.5rem;
}
.price-card .pkg-cnt{ font-weight:600; color:var(--ink); font-size:.9rem; }
.price-card .pkg-price{ font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color:var(--cat-color); font-size:.95rem; }
.price-card .pkg-per{ font-size:.68rem; color:var(--muted); font-weight:400; margin-left:1px; }
.price-card .pkg-sum{ text-align:right; font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color:var(--ink); font-size:.95rem; }
.price-card .pkg-price .line-through{ display:block; font-size:.7rem; font-weight:400; }
.price-card .btn{ margin-top:auto; }
.price-card__kruzhok{ color: var(--cat-color); font-weight:600; }

/* ===== Вариант D: табы категорий + компактные карточки ===== */
.price-tabs{
  display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.5rem;
}
.price-tab{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.6rem 1.1rem; min-height:44px; border-radius:999px; cursor:pointer;
  border:2px solid transparent; background:#fff; color:var(--ink);
  font-family:'Evolventa','Nunito',sans-serif; font-weight:600; font-size:.95rem;
  box-shadow: var(--shadow-soft);
  transition: background-color .25s, color .25s, border-color .25s, transform .2s;
}
.price-tab .icon{ fill: var(--muted); transition: fill .25s; }
.price-tab:hover{ transform: translateY(-2px); }
.price-tab__n{
  display:inline-grid; place-items:center; min-width:1.35rem; height:1.35rem;
  border-radius:999px; background:rgba(0,0,0,.07); color:var(--muted);
  font-size:.72rem; font-weight:700; padding:0 .3rem;
}
.price-tab.is-active{ background: var(--berry); color:#fff; border-color: var(--berry); }
.price-tab.is-active .icon{ fill:#fff; }
.price-tab.is-active .price-tab__n{ background:rgba(255,255,255,.22); color:#fff; }
.price-tab:focus-visible{ outline:3px solid var(--sky); outline-offset:3px; }

.price-panels{ position:relative; }
.price-panel{
  border-radius: var(--r-xl);
  padding: 1.5rem;
  border: 2px solid var(--cat-color, var(--berry));
  background: var(--cat-tint, #fff);
}
.price-panel[hidden]{ display:none; }
@media (min-width:768px){ .price-panel{ padding:1.75rem; } }

/* Compact-карточка услуги */
.pc-compact .pc-compact__top{ display:flex; align-items:flex-start; gap:.75rem; margin-bottom:.6rem; }
.pc-compact .pc-compact__top h4{ color: var(--ink); }
.pc-compact__price{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem;
  margin-bottom:.7rem;
}
.pc-big{
  font-family:'Evolventa','Nunito',sans-serif; font-weight:700;
  font-size:1.7rem; line-height:1.1; color: var(--cat-color);
}
.pc-per{ font-size:.78rem; color:var(--muted); line-height:1.45; }
.pc-list{ list-style:none; margin:0 0 .35rem; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.pc-list li{
  display:flex; align-items:center; gap:.5rem;
  padding:.5rem .7rem; border-radius:.75rem; background:var(--cat-tint);
}
.pc-list__cnt{ font-weight:600; color:var(--ink); font-size:.82rem; flex:1; }
.pc-list__sum{ font-family:'Evolventa','Nunito',sans-serif; font-weight:600; color:var(--ink); font-size:.9rem; }
/* Новые цены: зачёркнутая старая цена, стрелка, акцентная новая цена, сноска о скидке */
.pc-old{ color:var(--muted); text-decoration:line-through; font-weight:400; font-size:.78rem; white-space:nowrap; }
.pc-sep{ color:var(--muted); margin:0 .15rem; }
.pc-new{ color:var(--cat-accent, var(--cat-color)); font-weight:700; white-space:nowrap; }
.pc-discount-note{ display:flex; align-items:center; justify-content:center; gap:.5rem; color:var(--muted); font-size:.9rem; text-align:center; }
.pc-discount-note .icon{ color:var(--berry-deep); flex-shrink:0; }
/* Таблица тарифов внутри карточки кружка: занятия / 1 занятие / абонемент */
.pc-table{ width:100%; border-collapse:collapse; margin:0 0 .35rem; font-size:.86rem; font-variant-numeric:tabular-nums; }
.pc-table th{
  text-align:left; font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted); padding:.35rem .6rem; border-bottom:1.5px solid var(--cat-color, var(--berry));
}
.pc-table th:last-child{ text-align:right; }
.pc-table td{
  padding:.45rem .6rem; border-bottom:1px solid rgba(0,0,0,.07);
  color:var(--ink); vertical-align:middle;
}
.pc-table tbody tr:last-child td{ border-bottom:none; }
.pc-table tbody tr:nth-child(odd){ background:color-mix(in srgb, var(--cat-color, #973568) 8%, transparent); }
.pc-table td:first-child{ font-weight:600; width:2.5rem; }
.pc-table td:nth-child(2), .pc-table th:nth-child(2){ white-space:nowrap; text-align:right; }
.pc-table td:last-child, .pc-table th:last-child{ text-align:right; white-space:nowrap; font-weight:700; color:var(--cat-accent, var(--cat-color)); }
@media (hover:hover){ .pc-table tbody tr:hover{ background:color-mix(in srgb, var(--cat-color, #973568) 14%, transparent); } }
/* Таблица полных цен всегда открыта (без details/summary) */
.pc-details{ margin-bottom:.25rem; }
.pc-details__title{
  display:block; margin:.15rem 0 .4rem;
  color:var(--cat-color); font-weight:600; font-size:.86rem;
}
.pc-details .pkg-head{ margin-top:.5rem; }
@media (prefers-reduced-motion: reduce){
  .price-tab{ transition:none; }
}

/* ===== Цвета категорий по прайс-листу 29.09.2026 (RGB из брендбука) =====
   Логопедия rgb(228,205,218) · Дефектология rgb(211,209,234)
   Диагностика rgb(250,175,211) · Нейропсихология rgb(211,219,200)
   Подготовка к школе rgb(252,214,233) · «Вектор открытий» rgb(227,205,218) */
.price-cat--sage, .price-panel.price-cat--sage, .price-card--sage{ --cat-color:#E4CDCF; --cat-tint:#F7EFF0; }
.price-cat--pink, .price-panel.price-cat--pink, .price-card--pink{ --cat-color:#D3D1EA; --cat-tint:#EFEEF7; }
.price-cat--lavender, .price-panel.price-cat--lavender, .price-card--lavender{ --cat-color:#D3DBC8; --cat-tint:#EFF2EB; }
.price-cat--beige, .price-panel.price-cat--beige, .price-card--beige{ --cat-color:#FCD6E9; --cat-tint:#FEF2F8; }
.price-cat--berry, .price-panel.price-cat--berry, .price-card--berry{ --cat-color:#E3CDCB; --cat-tint:#F7EFEF; }
/* Карточка «Диагностика» — свой цвет из прайса rgb(250,175,211) */
.price-card--diag{ --cat-color:#FAAFD3; --cat-tint:#FDEDF5; }

/* ========================================================
   ПЛАВАЮЩИЕ КНОПКИ (FAB)
   ======================================================== */
.fab{
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  z-index: 55;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .75rem;
}

/* Общие стили кнопок FAB */
.fab__btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  height: 56px;
  padding: 0 1.35rem;
  border: none;
  border-radius: 999px;
  font-family: 'Evolventa', 'Nunito', sans-serif;
  font-weight: 500;
  font-size: 1rem;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: var(--shadow-lift);
  transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .3s, background-color .3s;
}
.fab__btn .icon{ width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.fab__btn:hover{ transform: translateY(-3px); }
.fab__btn:focus-visible{ outline: 3px solid var(--sky); outline-offset: 3px; }

.fab__btn--book{
  background: linear-gradient(135deg, var(--gold-hi), var(--gold));
  color: var(--berry-deep);
  box-shadow: 0 14px 30px -10px rgba(201,162,75,.6);
}
.fab__btn--book .icon{ fill: var(--berry-deep); }
.fab__btn--book:hover{ box-shadow: var(--glow-gold); }

.fab__btn--contact{
  background: linear-gradient(135deg, var(--berry), var(--berry-deep));
  box-shadow: 0 14px 30px -10px rgba(151,54,105,.6);
}

/* Переключение иконок чат/крестик */
.fab__icon-close{ display: none; }
.fab.is-open .fab__icon-chat{ display: none; }
.fab.is-open .fab__icon-close{ display: inline-block; }
.fab.is-open .fab__btn--contact{ background: var(--berry-deep); }
/* В открытом состоянии подпись «Связаться» прячем ради компактности */
.fab.is-open .fab__btn--contact .fab__btn-label{ display: none; }
.fab.is-open .fab__btn--contact{ padding: 0; width: 56px; justify-content: center; }

/* Меню контактов */
.fab__menu{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .6rem;
  margin-bottom: .25rem;
  opacity: 0;
  transform: translateY(12px) scale(.96);
  transform-origin: bottom right;
  pointer-events: none;
  transition: opacity .28s ease, transform .28s cubic-bezier(.2,.7,.2,1);
}
.fab.is-open .fab__menu{
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.fab__item{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  transform: translateY(8px);
  opacity: 0;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s ease;
}
.fab.is-open .fab__item{ transform: translateY(0); opacity: 1; }
.fab.is-open .fab__item:nth-child(1){ transition-delay: .04s; }
.fab.is-open .fab__item:nth-child(2){ transition-delay: .09s; }
.fab.is-open .fab__item:nth-child(3){ transition-delay: .14s; }

.fab__item-label{
  background: #fff;
  color: var(--ink);
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  font-size: .9rem;
  padding: .4rem .85rem;
  border-radius: 999px;
  box-shadow: var(--shadow-soft);
  white-space: nowrap;
}
.fab__item-icon{
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  color: #fff;
  box-shadow: var(--shadow-soft);
  transition: transform .2s ease;
}
.fab__item-icon .icon{ fill: #fff; }
.fab__item:hover .fab__item-icon{ transform: scale(1.08); }

/* Мобильные: компактнее, прячем текстовые подписи на самих кнопках */
@media (max-width: 480px){
  .fab__btn{ height: 52px; padding: 0 1.1rem; font-size: .95rem; }
  .fab__btn-label{ display: none; }
  .fab__btn{ width: 52px; padding: 0; justify-content: center; }
  .fab.is-open .fab__btn--contact{ width: 52px; height: 52px; }
}

@media (prefers-reduced-motion: reduce){
  .fab__btn, .fab__menu, .fab__item, .fab__item-icon{ transition: none; }
  .fab__btn:hover{ transform: none; }
}

/* ========================================================
   МОДАЛКА СПЕЦИАЛИСТА (карточки команды)
   ======================================================== */
.pm-overlay{
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  background: rgba(46,38,43,.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  padding: 4vh 4vw; opacity:0; transition: opacity .3s ease; overflow-y:auto;
}
.pm-overlay[hidden]{ display:none; }
.pm-overlay.is-open{ opacity:1; }
.pm-panel{
  position:relative; width:min(860px, 100%); max-height:90vh; overflow-y:auto;
  background:#fff; border-radius:var(--r-xl); box-shadow:0 30px 80px -20px rgba(0,0,0,.5);
  overscroll-behavior:contain;
}
.pm-overlay.is-open .pm-panel{ animation: pmIn .35s cubic-bezier(.2,.7,.2,1); }
@keyframes pmIn{ from{ transform:translateY(18px) scale(.97); opacity:0; } to{ transform:none; opacity:1; } }
.pm-close{
  position:absolute; top:1rem; right:1rem; z-index:2;
  display:grid; place-items:center; width:44px; height:44px; border:none; cursor:pointer;
  border-radius:999px; color:#fff; background:rgba(46,38,43,.45);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition: background-color .2s, transform .2s;
}
.pm-close:hover{ background:var(--berry); transform:rotate(90deg); }
.pm-close:focus-visible{ outline:3px solid var(--gold-2); outline-offset:2px; }
.pm-close .icon{ width:1.35rem; height:1.35rem; fill:#fff; }
.pm-head{
  display:grid; grid-template-columns:200px 1fr; gap:1.5rem;
  padding:1.75rem 1.75rem 1.25rem;
  background:linear-gradient(160deg, var(--cream), #fff 70%);
  border-bottom:1px solid rgba(151,53,104,.08);
}
.pm-photo{
  width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top;
  border-radius:1.25rem; box-shadow:var(--shadow-soft);
}
.pm-intro{ display:flex; flex-direction:column; justify-content:center; min-width:0; }
.pm-role{
  display:inline-flex; align-items:center; gap:.4rem;
  color:var(--berry); font-weight:600; font-size:.9rem; margin-bottom:.4rem;
}
.pm-role .icon{ fill:var(--berry); }
.pm-name{ font-size:clamp(1.35rem, 2.6vw, 1.8rem); font-weight:600; color:var(--ink); line-height:1.15; margin-bottom:.85rem; }
.pm-tags{ display:flex; flex-wrap:wrap; gap:.45rem; }
.pm-tag{
  display:inline-block; padding:.32rem .75rem; border-radius:999px;
  background:rgba(155,137,192,.14); color:var(--indigo);
  font-size:.78rem; font-weight:600; line-height:1.2;
}
.pm-body{ padding:1.5rem 1.75rem 2rem; }
.pm-section-title{
  display:flex; align-items:center; gap:.55rem;
  font-size:1.15rem; font-weight:600; color:var(--ink);
  margin:1.4rem 0 .9rem;
}
.pm-section-title:first-child{ margin-top:0; }
.pm-section-title .icon{ fill:var(--berry); }
.pm-edu{ display:flex; flex-direction:column; gap:.7rem; }
.pm-edu__item{
  border-left:4px solid var(--lavender); border-radius:0 .9rem .9rem 0;
  background:var(--bg); padding:.7rem 1rem;
}
.pm-edu__place{ font-weight:700; color:var(--ink); font-size:.92rem; line-height:1.35; }
.pm-edu__spec{ color:var(--muted); font-size:.86rem; line-height:1.45; margin-top:.15rem; }
.pm-about p{ color:var(--muted); font-size:.95rem; line-height:1.65; margin-bottom:.9rem; }
.pm-about p:last-child{ margin-bottom:0; }
.pm-about strong{ color:var(--berry); font-weight:700; }
.pm-cta{ padding:0 1.75rem 1.75rem; }
.pm-cta .pm-book{ width:100%; min-height:52px; justify-content:center; gap:.55rem; }
.pm-cta .pm-book .icon{ fill:#fff; }
@media (max-width:640px){
  .pm-overlay{ padding:2vh 3vw; }
  .pm-head{ grid-template-columns:1fr; gap:1rem; padding:1.5rem 1.25rem 1.1rem; }
  .pm-photo{ max-width:180px; }
  .pm-body{ padding:1.25rem; }
  .pm-cta{ padding:0 1.25rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce){
  .pm-overlay, .pm-overlay.is-open .pm-panel{ transition:none; animation:none; }
  .pm-close:hover{ transform:none; }
}

/* ---- Модалки услуг (блок «Наши услуги») ---- */
.pm-head--service{ grid-template-columns:auto 1fr; align-items:center; }
.pm-tagline{ font-size:1.02rem; color:var(--berry); font-weight:500; margin-top:-.25rem; }
.pm-price-note{
  display:flex; align-items:center; gap:.45rem;
  font-size:.9rem; color:var(--muted); margin-bottom:.85rem;
}
.pm-price-note .icon{ fill:var(--berry); flex-shrink:0; }

/* Компактная кнопка «Подробнее» на карточках услуг */
.btn-ghost{
  color:var(--berry); background:transparent;
  border:1.5px solid rgba(151,53,104,.35); min-height:auto; padding:0 1.1rem;
}
.btn-ghost:hover{ background:rgba(151,53,104,.07); border-color:var(--berry); color:var(--berry-dark); }
.btn-sm{ font-size:.9rem; min-height:42px; }

/* Белый текст бейджей/плашек на светлых пастельных --cat-color нечитабелен —
   читаемый акцент той же гаммы для текста и белых плашек */
.price-cat--sage, .price-card--sage{ --cat-accent:#7A5060; }
.price-cat--pink, .price-card--pink{ --cat-accent:#5E5B94; }
.price-cat--lavender, .price-card--lavender{ --cat-accent:#5C6B4C; }
.price-cat--beige, .price-card--beige{ --cat-accent:#B25C86; }
.price-cat--berry, .price-card--berry{ --cat-accent:#845553; }
.price-card--diag{ --cat-accent:#C24E86; }
.price-card__kruzhok{ color: var(--cat-accent, var(--cat-color)); }
.pc-big{ color: var(--cat-accent, var(--cat-color)); }
.price-card .pkg-price{ color: var(--cat-accent, var(--cat-color)); }
.pc-details__title{ color: var(--cat-accent, var(--cat-color)); }

/* Аварийный уплотнённый режим шапки (ставится JS #headerFit, если блоки не влезают) */
@media (min-width: 1024px){
  #siteHeader.header-compact .header-row{ gap: 12px !important; }
  #siteHeader.header-compact .site-nav{ gap: 10px !important; }
  #siteHeader.header-compact .site-nav .nav-link{ font-size: 0.85rem !important; }
  #siteHeader.header-compact .header-phone{ font-size: 0.85rem !important; }
  #siteHeader.header-compact .header-logo{ width: 150px !important; }
}

/* ---- Секция «Наши услуги»: подвал карточки (цена + кнопки) ---- */
/* Собственные стили (без зависимости от Tailwind CDN):
   строка цены: сумма прижата к левому краю, подпись («за занятие» и т.п.) — к правому;
   кнопки — отдельной строкой ниже, чтобы не наезжали на цену. */
.svc-footer{
  display:flex; flex-direction:column; gap:.75rem;
  padding-top:1rem; border-top:1px solid var(--cream,#F5EEEF);
}
.svc-price{ width:100%; display:flex; flex-direction:row; align-items:baseline; justify-content:space-between; gap:.75rem; }
.svc-price .svc-amount{ font-weight:600; line-height:1.2; white-space:nowrap; margin-right:auto; }
.svc-price .svc-note{ line-height:1.4; text-align:right; white-space:nowrap; flex-shrink:0; }
.svc-actions{ display:flex; align-items:center; gap:.5rem; }

/* Заголовок карточки услуги: иконка и название на одном уровне */
.svc-head{ display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem; min-height:3.5rem; }
.svc-head .icon-badge{ flex-shrink:0; }
.svc-head h3{ line-height:1.25; }

/* Цветные подложки бейжей услуг (собственные классы — без зависимости от Tailwind) */
.bg-lavender-soft{ background-color:#D7D0E6; }
.bg-pink-soft{ background-color:#F4C6DC; }
.bg-gold-soft{ background-color:#FFE7C9; }
.svc-actions > .btn{ flex:1 1 auto; }

/* Маскот в заголовке секции услуг — крупный, прижат к правому краю */
.services-mascot{ margin-left:auto; width:18rem; }
@media (min-width:1280px){ .services-mascot{ width:23rem; } }

/* Hero: слоган под счётчиками */
.hero-tagline{ margin-top:1.5rem; font-size:1.02rem; line-height:1.65; color:var(--ink, #2A2438); max-width:32rem; }
@media (min-width:1024px){ .hero-tagline{ font-size:1.12rem; } }

/* ---- Карусель фото в секции «О центре» ---- */
.about-carousel .ac-track{
  display:flex; height:100%;
  transition: transform .45s cubic-bezier(.25,.7,.3,1);
  will-change: transform;
}
.about-carousel .ac-slide{ flex:0 0 100%; min-width:100%; height:100%; }
.about-carousel .ac-slide img{ display:block; width:100%; height:100%; object-fit:cover; }
.ac-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:999px; border:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.78); color:#973568;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 4px 14px rgba(46,38,43,.18);
  opacity:0; transition: opacity .25s, background .25s, transform .25s;
}
.about-carousel:hover .ac-nav, .about-carousel:focus-within .ac-nav{ opacity:1; }
.ac-nav:hover{ background:#fff; }
.ac-nav:focus-visible{ opacity:1; outline:3px solid var(--gold-2); outline-offset:2px; }
.ac-prev{ left:.6rem; } .ac-next{ right:.6rem; }
@media (hover:none){ .ac-nav{ opacity:1; width:36px; height:36px; } }
.ac-dots{
  position:absolute; bottom:.7rem; left:50%; transform:translateX(-50%);
  display:flex; gap:.4rem; z-index:2; max-width:calc(100% - 6.5rem);
}
.ac-dot{
  width:9px; height:9px; border-radius:999px; border:none; cursor:pointer; padding:0;
  background: rgba(255,255,255,.55); box-shadow:0 1px 3px rgba(46,38,43,.25);
  transition: background .25s, width .25s; flex:0 0 auto;
}
@media (max-width:639px){
  /* 14 точек на узких экранах — компактнее */
  .ac-dot{ width:7px; height:7px; }
  .ac-dot.is-active{ width:16px; }
}
.ac-dot.is-active{ background:#fff; width:22px; }
.ac-dot:focus-visible{ outline:2px solid var(--gold-2); outline-offset:2px; }
.ac-badge{ top:auto; bottom:.65rem; }
.about-carousel.no-js .ac-track{ overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.about-carousel.no-js .ac-track::-webkit-scrollbar{ display:none; }
.about-carousel.no-js .ac-slide{ scroll-snap-align:start; }
@media (prefers-reduced-motion: reduce){
  .about-carousel .ac-track{ transition:none; }
}

/* ==================== Зоны центра: одна линия без переноса ==================== */
.rooms-grid{
  display:flex;
  flex-wrap:nowrap;
  gap:24px;
  align-items:stretch;
}
.rooms-grid > .card{
  flex:1 1 0;
  min-width:0;
  margin:0;
}
/* планшеты/мобильные — горизонтальный свайп со snap */
@media (max-width:1023px){
  .rooms-grid{
    gap:16px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px;
  }
  .rooms-grid::-webkit-scrollbar{ display:none; }
  .rooms-grid > .card{
    flex:0 0 78%;
    max-width:340px;
    scroll-snap-align:center;
  }
}

/* ==================== Блок «Знакомы ситуации?» (боли) ==================== */
.pain-card { display: flex; flex-direction: column; cursor: pointer; background: #fff; border: 1px solid rgba(146, 96, 179, .22); border-radius: var(--r-xl); box-shadow: var(--shadow-soft); padding: 1.5rem; text-align: left; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.pain-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px -18px rgba(98, 34, 68, .35); }
.pain-card:focus-visible { outline: 3px solid var(--berry); outline-offset: 3px; }
/* Заголовок карточки: иконка и текст на одном уровне */
.pain-head { display: flex; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.pain-head .icon-badge { width: 3.25rem; height: 3.25rem; border-radius: 1.1rem; flex-shrink: 0; }
.pain-head h3 { font-family: 'Evolventa', sans-serif; font-weight: 600; font-size: 1.2rem; line-height: 1.3; color: var(--ink); margin: 0; }
.pain-desc { color: var(--muted); font-size: .925rem; line-height: 1.55; margin: 0 0 .75rem; flex: 1; }
.pain-card .pain-more { margin-top: auto; font-weight: 600; font-size: .875rem; }
.pain-card.is-active { border-color: var(--berry); box-shadow: 0 12px 32px rgba(146, 96, 179, .18); }
/* Подсветка целевой услуги при переходе из блока «Знакомы ситуации?» */
@keyframes svc-highlight { 0% { box-shadow: 0 0 0 0 rgba(199, 61, 122, .55); } 100% { box-shadow: 0 0 0 18px rgba(199, 61, 122, 0); } }
.svc-highlight { animation: svc-highlight 1.6s ease-out 2; }
@media (prefers-reduced-motion: reduce) {
  .pain-card { transition: none; }
}
