/* Omhair landing — чистый CSS, без фреймворков */
:root {
  color-scheme: dark;
  --bg: #050506;
  --bg-card: #0c0c12;
  --bg-card-deep: #0d0d12;
  --bg-elevated: #14141c;
  --surface: #151518;
  --surface-2: #1a1a1f;
  --pink: #ff2d8b;
  --pink-dim: #c91f6a;
  --pink-hot: #ff6eb5;
  --text: #f4f0f5;
  --text-muted: #a89bab;
  --border: rgba(255, 45, 139, 0.22);
  --radius: 14px;
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Manrope", system-ui, sans-serif;
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
  --glow-soft: 0 0 80px rgba(255, 45, 139, 0.2);
  --glow-mid: 0 0 120px rgba(255, 45, 139, 0.28);
  --parallax-y: 0px;
  --max: 1180px;
  --header-bg: rgba(7, 7, 10, 0.72);
  --header-bg-scrolled: rgba(6, 6, 9, 0.88);
  --header-shadow: 0 12px 40px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 45, 139, 0.06) inset;
  --btn-ghost-bg: rgba(16, 16, 22, 0.45);
  --brand-img-bg: #0a0a0a;
  --chip-hover-fg: #fff;
  --chip-hover-extra: 0 8px 24px rgba(0, 0, 0, 0.35);
  --stat-inner-bg:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(255, 45, 139, 0.14), transparent 55%),
    linear-gradient(165deg, #16161f 0%, #08080c 100%);
  --stat-label: rgba(232, 224, 236, 0.82);
  --hero-h1-grad: linear-gradient(118deg, #fff 12%, #f4e8f0 38%, var(--pink-hot) 95%);
  --hero-caption-grad: linear-gradient(transparent, rgba(0, 0, 0, 0.92));
  --bg-grid-spot: rgba(255, 45, 139, 0.18);
  --bg-grid-line: rgba(255, 45, 139, 0.05);
  --link-hover: #ff6eb0;
}

/* Светлая тема: все переменные и блоки ниже с [data-theme="light"] — тёмная тема (:root) не затрагивается. */
[data-theme="light"] {
  color-scheme: light;
  --logo-pink: #ff2d8b;
  --bg: #ffffff;
  --bg-card: #f7f5f9;
  --bg-card-deep: #ebe6ef;
  --bg-elevated: #f2eef6;
  --surface: #faf9fb;
  --surface-2: #f0ecf4;
  --pink: #c91368;
  --pink-dim: #a81058;
  --pink-hot: #e62888;
  --text: #1a1224;
  --text-muted: #5d5266;
  --border: rgba(255, 45, 139, 0.22);
  --shadow: 0 20px 56px rgba(80, 30, 70, 0.09);
  --glow-soft: 0 0 50px rgba(255, 45, 139, 0.14);
  --glow-mid: 0 0 70px rgba(255, 45, 139, 0.2);
  --header-bg: color-mix(in srgb, #fff8fb 78%, var(--logo-pink) 22%);
  --header-bg-scrolled: color-mix(in srgb, #fff5f9 72%, var(--logo-pink) 28%);
  --header-shadow: 0 10px 36px rgba(80, 35, 70, 0.08), 0 0 0 1px rgba(255, 45, 139, 0.08) inset;
  --btn-ghost-bg: color-mix(in srgb, #fff 82%, var(--logo-pink) 18%);
  --brand-img-bg: color-mix(in srgb, #fff 92%, var(--logo-pink) 8%);
  --chip-hover-fg: #1a1224;
  --chip-hover-extra: 0 10px 28px rgba(90, 40, 75, 0.1);
  --stat-inner-bg:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(255, 45, 139, 0.14), transparent 55%),
    linear-gradient(
      165deg,
      color-mix(in srgb, #fff 92%, var(--logo-pink) 8%) 0%,
      color-mix(in srgb, #fff 78%, var(--logo-pink) 22%) 100%
    );
  --stat-label: rgba(45, 38, 58, 0.9);
  --hero-h1-grad: linear-gradient(118deg, #2e1a2a 5%, #4a1f3d 38%, #c4156a 95%);
  --hero-caption-grad: linear-gradient(transparent, color-mix(in srgb, #fff 88%, var(--logo-pink) 12%));
  --bg-grid-spot: rgba(255, 45, 139, 0.06);
  --bg-grid-line: rgba(255, 45, 139, 0.07);
  --link-hover: #c91368;
}

/* светлая тема: страница — белый фон с лёгким градиентом (сетка поверх) */
[data-theme="light"] body {
  background: linear-gradient(180deg, #ffffff 0%, #faf9fc 42%, #f4f0f7 100%);
}

[data-theme="light"] .bg-grid {
  background:
    radial-gradient(ellipse 120% 80% at 50% -20%, var(--bg-grid-spot), transparent 55%),
    linear-gradient(165deg, #ffffff 0%, #faf8fc 45%, #f3eef6 100%);
}

[data-theme="light"] .bg-grid::after {
  opacity: 0.5;
}

/* светлая тема: шапка — нейтральная «стеклянная», без малиновой плашки */
[data-theme="light"] .site-header,
[data-theme="light"] .site-header.is-scrolled {
  background: color-mix(in srgb, #ffffff 88%, var(--logo-pink) 12%);
  border-bottom: 1px solid rgba(45, 38, 58, 0.08);
  box-shadow: 0 4px 28px rgba(45, 30, 60, 0.06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

[data-theme="light"] .site-header.is-scrolled {
  box-shadow: 0 8px 32px rgba(45, 30, 60, 0.08);
}

[data-theme="light"] .brand {
  color: var(--text);
}

[data-theme="light"] .brand-text span {
  color: var(--text-muted);
}

[data-theme="light"] .brand img {
  background: var(--surface);
  box-shadow: 0 0 0 1px rgba(45, 38, 58, 0.08);
}

[data-theme="light"] .nav-main a {
  color: var(--text-muted);
}

[data-theme="light"] .nav-main a::after {
  background: linear-gradient(90deg, transparent, var(--pink), transparent);
}

[data-theme="light"] .nav-main a:hover {
  color: var(--pink);
  text-shadow: none;
}

[data-theme="light"] .site-header .btn-ghost {
  background: transparent;
  color: var(--text);
  border-color: color-mix(in srgb, var(--pink) 32%, transparent);
}

[data-theme="light"] .site-header .btn-ghost:hover {
  background: color-mix(in srgb, var(--pink) 8%, transparent);
  border-color: var(--pink);
  color: var(--pink-dim);
  box-shadow: none;
}

[data-theme="light"] .site-header .btn-primary {
  background: linear-gradient(135deg, var(--pink), var(--pink-dim));
  color: #fff;
  box-shadow: 0 8px 26px rgba(201, 19, 104, 0.28);
}

[data-theme="light"] .site-header .btn-primary:hover {
  color: #fff;
  filter: brightness(1.05);
  box-shadow: 0 10px 32px rgba(201, 19, 104, 0.34);
}

[data-theme="light"] .site-header .btn-theme {
  background: var(--surface-2);
  color: var(--text);
  border-color: rgba(45, 38, 58, 0.12);
}

[data-theme="light"] .site-header .btn-theme:hover {
  color: var(--pink);
  border-color: rgba(255, 45, 139, 0.35);
  box-shadow: 0 4px 18px rgba(90, 40, 75, 0.08);
}

/* светлая тема: слои фона, тени, галерея, баннер */
[data-theme="light"] .ambient {
  opacity: 0.42;
}

[data-theme="light"] .ambient__vignette {
  background: radial-gradient(
    ellipse 75% 65% at 50% 40%,
    transparent 40%,
    color-mix(in srgb, var(--bg) 88%, var(--logo-pink) 12%) 100%
  );
}

/* светлая тема: блоки цифр — спокойные карточки */
[data-theme="light"] .stat-card {
  padding: 0;
  background: transparent;
  box-shadow: none;
}

[data-theme="light"] .stat-card__inner {
  background: linear-gradient(165deg, #ffffff, color-mix(in srgb, #faf8fc 88%, var(--logo-pink) 12%));
  border: 1px solid rgba(255, 45, 139, 0.14);
  box-shadow: 0 10px 36px rgba(80, 35, 70, 0.08);
}

[data-theme="light"] .stat-card__inner::after {
  background: linear-gradient(105deg, transparent 40%, rgba(255, 45, 139, 0.06) 50%, transparent 60%);
}

[data-theme="light"] .stat-card__glow {
  background: radial-gradient(circle at 50% 50%, rgba(255, 45, 139, 0.12), transparent 55%);
  opacity: 0.5;
}

[data-theme="light"] .stat-card__value {
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  filter: none;
}

[data-theme="light"] .stat-card__plus {
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
}

[data-theme="light"] .stat-card__label {
  color: var(--stat-label);
}

[data-theme="light"] .stat-card__edge--tl {
  border-top-color: rgba(255, 45, 139, 0.22);
  border-left-color: rgba(255, 45, 139, 0.22);
}

[data-theme="light"] .stat-card__edge--br {
  border-bottom-color: rgba(255, 45, 139, 0.14);
  border-right-color: rgba(255, 45, 139, 0.14);
}

[data-theme="light"] .stat-card:hover .stat-card__inner {
  box-shadow: 0 14px 44px rgba(80, 35, 70, 0.1);
}

[data-theme="light"] .stat-card:hover {
  box-shadow: none;
}

[data-theme="light"] .promo {
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-card));
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

[data-theme="light"] .promo strong {
  color: var(--pink);
}

[data-theme="light"] .promo h3 {
  color: var(--text);
}

[data-theme="light"] .promo p {
  color: var(--text-muted);
}

[data-theme="light"] .promo::before {
  background: radial-gradient(circle, rgba(255, 45, 139, 0.12), transparent 70%);
}

[data-theme="light"] .promo:hover {
  border-color: rgba(255, 45, 139, 0.35);
  box-shadow: 0 16px 48px rgba(80, 35, 70, 0.1), var(--glow-soft);
}

[data-theme="light"] .orbit-accent--akcii {
  opacity: 0;
  animation: none;
}

[data-theme="light"] .promo__disk-ring {
  opacity: 0.55;
  animation: none;
}

[data-theme="light"] .promo__meta li {
  background: color-mix(in srgb, var(--surface) 92%, var(--logo-pink) 8%);
  border-color: rgba(255, 45, 139, 0.15);
}

[data-theme="light"] .hero-visual-ring--echo {
  opacity: 0;
  animation: none;
}

[data-theme="light"] .orbit-accent--stats {
  opacity: 0;
  animation: none;
}

[data-theme="light"] #raboty .gallery--mosaic {
  background:
    radial-gradient(ellipse 72% 48% at 50% 0%, rgba(255, 45, 139, 0.05), transparent 58%),
    linear-gradient(168deg, color-mix(in srgb, #fff 94%, var(--logo-pink) 6%), color-mix(in srgb, #f5f0f7 92%, var(--logo-pink) 8%));
  border: 1px solid rgba(255, 45, 139, 0.12);
  box-shadow: 0 14px 40px rgba(80, 35, 70, 0.08);
}

[data-theme="light"] .gallery figure {
  box-shadow:
    0 10px 32px rgba(80, 35, 70, 0.07),
    inset 0 0 0 1px color-mix(in srgb, var(--surface) 70%, #fff 30%);
}

[data-theme="light"] .gallery--mosaic figure:hover {
  box-shadow:
    0 0 0 1px rgba(255, 45, 139, 0.18),
    0 12px 36px rgba(80, 35, 70, 0.08),
    inset 0 0 0 1px color-mix(in srgb, var(--surface) 72%, #fff 28%);
}

[data-theme="light"] .gallery-lightbox__backdrop {
  background: color-mix(in srgb, var(--bg) 75%, var(--logo-pink) 25%);
}

[data-theme="light"] .gallery-lightbox__img {
  box-shadow:
    0 0 0 1px rgba(255, 45, 139, 0.14),
    0 20px 56px rgba(45, 30, 60, 0.12),
    0 0 48px rgba(255, 45, 139, 0.1);
}

[data-theme="light"] .team-card__photo {
  background: var(--bg-elevated);
}

[data-theme="light"] .team-card__inner {
  box-shadow: 0 10px 32px rgba(45, 30, 60, 0.07);
}

[data-theme="light"] .contact-card:hover {
  box-shadow: 0 16px 44px rgba(45, 30, 60, 0.09), var(--glow-soft);
}

/* светлая тема: карточка «Почему Omhair» */
[data-theme="light"] .contact-card--why {
  background: linear-gradient(135deg, var(--pink), var(--pink-dim));
  border-color: rgba(255, 255, 255, 0.22);
}

[data-theme="light"] .contact-card--why:hover {
  border-color: rgba(255, 255, 255, 0.38);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
}

[data-theme="light"] .contact-card--why h3,
[data-theme="light"] .contact-card--why .section-head {
  color: #fff;
}

[data-theme="light"] .contact-card--why p {
  color: rgba(255, 255, 255, 0.9) !important;
}

[data-theme="light"] .contact-card--why .btn-primary {
  background: #fff;
  color: var(--pink);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
}

[data-theme="light"] .contact-card--why .btn-primary:hover {
  color: var(--pink-dim);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.14);
}

[data-theme="light"] .cookie-banner {
  background: color-mix(in srgb, var(--bg-elevated) 92%, var(--logo-pink) 8%);
  box-shadow: 0 -10px 40px rgba(80, 35, 70, 0.08);
}

[data-theme="light"] .review-card {
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--surface) 96%, var(--logo-pink) 4%),
    color-mix(in srgb, var(--surface-2) 94%, var(--logo-pink) 6%)
  );
  box-shadow:
    0 0 0 1px color-mix(in srgb, #fff 65%, var(--logo-pink) 35%) inset,
    0 14px 36px rgba(80, 35, 70, 0.07);
}

[data-theme="light"] .price-edit-note,
[data-theme="light"] .masters-footnote {
  background: var(--surface);
  border-color: rgba(45, 38, 58, 0.1);
}

[data-theme="light"] #otzyvy .reviews-marquee__fade--left {
  background: linear-gradient(90deg, var(--bg) 0%, transparent 100%);
}

[data-theme="light"] #otzyvy .reviews-marquee__fade--right {
  background: linear-gradient(270deg, var(--bg) 0%, transparent 100%);
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--pink);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--link-hover);
}

code {
  font-family: ui-monospace, monospace;
  font-size: 0.88em;
  background: var(--bg-elevated);
  padding: 0.12rem 0.35rem;
  border-radius: 6px;
  border: 1px solid var(--border);
}

:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  padding: 0.75rem 1.25rem;
  background: var(--pink);
  color: #000;
  font-weight: 700;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
}

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

/* фон */
.bg-grid {
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(ellipse 120% 80% at 50% -20%, var(--bg-grid-spot), transparent 55%),
    var(--bg);
}

.bg-grid::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--bg-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--bg-grid-line) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, black 0%, transparent 92%);
  pointer-events: none;
  animation: grid-drift 28s linear infinite;
}

@keyframes grid-drift {
  0% {
    background-position: 0 0, 0 0;
  }
  100% {
    background-position: 48px 48px, 48px 48px;
  }
}

/* многослойный светящийся фон */
.ambient {
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  overflow: hidden;
}

.ambient__aurora {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse 55% 45% at 15% 20%, rgba(255, 45, 139, 0.28), transparent 55%),
    radial-gradient(ellipse 50% 40% at 85% 15%, rgba(140, 80, 255, 0.12), transparent 50%),
    radial-gradient(ellipse 40% 50% at 50% 100%, rgba(255, 100, 160, 0.08), transparent 55%);
  filter: blur(40px);
  transform: translate3d(calc(var(--parallax-y) * -0.35), calc(var(--parallax-y) * -0.2), 0);
  will-change: transform;
}

.ambient__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.55;
  animation: orb-float 18s ease-in-out infinite;
}

.ambient__orb--a {
  width: min(42vw, 520px);
  height: min(42vw, 520px);
  top: -8%;
  left: -6%;
  background: radial-gradient(circle, rgba(255, 45, 139, 0.55), transparent 68%);
  animation-duration: 22s;
}

.ambient__orb--b {
  width: min(38vw, 440px);
  height: min(38vw, 440px);
  bottom: 5%;
  right: -4%;
  background: radial-gradient(circle, rgba(180, 90, 255, 0.28), transparent 70%);
  animation-duration: 26s;
  animation-delay: -6s;
}

.ambient__orb--c {
  width: min(28vw, 320px);
  height: min(28vw, 320px);
  top: 38%;
  right: 22%;
  background: radial-gradient(circle, rgba(255, 120, 180, 0.22), transparent 72%);
  animation-duration: 20s;
  animation-delay: -12s;
}

@keyframes orb-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  33% {
    transform: translate3d(2%, -3%, 0) scale(1.05);
  }
  66% {
    transform: translate3d(-3%, 2%, 0) scale(0.96);
  }
}

.ambient__vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 75% 65% at 50% 40%, transparent 40%, rgba(5, 5, 6, 0.92) 100%);
  pointer-events: none;
}

.wrap {
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}

/* шапка шире контента — все пункты меню в один ряд (десктоп) */
.site-header .wrap {
  width: min(100% - 1.25rem, 1340px);
  max-width: 100%;
}

/* шапка */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--border);
  background: var(--header-bg);
  backdrop-filter: blur(16px) saturate(1.35);
  transition: box-shadow 0.35s ease, border-color 0.35s ease, background 0.35s ease;
}

.site-header.is-scrolled {
  background: var(--header-bg-scrolled);
  border-color: rgba(255, 45, 139, 0.28);
  box-shadow: var(--header-shadow);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 0.85rem;
  padding: 0.55rem 0;
  flex-wrap: nowrap;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--text);
  text-decoration: none;
  flex-shrink: 0;
}

.brand img {
  width: clamp(44px, 4.2vw, 52px);
  height: clamp(44px, 4.2vw, 52px);
  object-fit: contain;
  border-radius: 10px;
  background: var(--brand-img-bg);
  padding: 4px;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease, filter 0.45s ease;
  box-shadow: 0 0 0 1px rgba(255, 45, 139, 0.12);
}

.brand:hover img {
  transform: scale(1.06) rotate(-2deg);
  box-shadow: 0 0 28px rgba(255, 45, 139, 0.35), 0 0 0 1px rgba(255, 45, 139, 0.35);
  filter: drop-shadow(0 0 12px rgba(255, 45, 139, 0.4));
}

.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.brand-text strong {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.32rem);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.brand-text span {
  font-size: clamp(0.62rem, 1.1vw, 0.72rem);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.09em;
}

.nav-main {
  display: flex;
  flex-wrap: nowrap;
  flex: 1 1 auto;
  justify-content: center;
  align-items: center;
  gap: 0.15rem 0.45rem;
  list-style: none;
  margin: 0;
  padding: 0 0.35rem;
  min-width: 0;
}

.nav-main a {
  color: var(--text-muted);
  text-decoration: none;
  font-size: clamp(0.72rem, 1.05vw, 0.88rem);
  font-weight: 500;
  position: relative;
  padding: 0.3rem 0.08rem;
  white-space: nowrap;
  transition: color 0.25s ease, text-shadow 0.35s ease;
}

.nav-main a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--pink), transparent);
  opacity: 0;
  transform: scaleX(0.4);
  transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.nav-main a:hover {
  color: var(--text);
  text-shadow: 0 0 24px rgba(255, 45, 139, 0.35);
}

.nav-main a:hover::after {
  opacity: 1;
  transform: scaleX(1);
}

.header-cta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

.site-header .header-cta .btn {
  padding: 0.48rem 0.88rem;
  font-size: clamp(0.76rem, 1vw, 0.86rem);
}

@media (min-width: 901px) and (max-width: 1040px) {
  .nav-main {
    gap: 0.1rem 0.32rem;
    padding: 0 0.2rem;
  }

  .nav-main a {
    font-size: 0.72rem;
    padding: 0.28rem 0.04rem;
  }

  .site-header .header-cta .btn {
    padding: 0.42rem 0.72rem;
    font-size: 0.76rem;
  }
}

.btn-theme {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--btn-ghost-bg);
  color: var(--text-muted);
  cursor: pointer;
  flex-shrink: 0;
  transition:
    border-color 0.25s ease,
    color 0.2s ease,
    box-shadow 0.3s ease,
    transform 0.2s ease,
    background 0.25s ease;
}

.btn-theme:hover {
  color: var(--pink);
  border-color: rgba(255, 45, 139, 0.45);
  box-shadow: 0 0 24px rgba(255, 45, 139, 0.18);
}

.btn-theme:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 3px;
}

.btn-theme__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.btn-theme__icon--moon {
  display: none;
}

[data-theme="light"] .btn-theme__icon--sun {
  display: none;
}

[data-theme="light"] .btn-theme__icon--moon {
  display: flex;
}

@media (max-width: 900px) {
  .nav-main {
    display: none;
  }
}

.chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.4rem;
  overflow-x: auto;
  padding: 0.5rem 0 0.75rem;
  border-bottom: 1px solid var(--border);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.chips a {
  flex: 0 0 auto;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--text-muted);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 600;
  transition:
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    border-color 0.25s ease,
    color 0.2s ease;
}

.chips a:hover {
  color: var(--chip-hover-fg);
  border-color: rgba(255, 45, 139, 0.55);
  transform: translateY(-2px);
  box-shadow: 0 0 28px rgba(255, 45, 139, 0.28), var(--chip-hover-extra);
}

/* кнопки */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.65rem 1.15rem;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    border-color 0.25s ease,
    color 0.25s ease;
}

.btn::after {
  content: "";
  position: absolute;
  inset: -40%;
  background: linear-gradient(
    105deg,
    transparent 35%,
    rgba(255, 255, 255, 0.18) 48%,
    transparent 62%
  );
  transform: translateX(-120%) skewX(-18deg);
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.btn:hover::after {
  transform: translateX(120%) skewX(-18deg);
}

.btn:active {
  transform: scale(0.97);
}

.btn-primary {
  background: linear-gradient(135deg, var(--pink), var(--pink-dim));
  color: #fff;
  box-shadow: 0 10px 36px rgba(255, 45, 139, 0.42), var(--glow-soft);
}

.btn-primary:hover {
  color: #fff;
  box-shadow: 0 16px 52px rgba(255, 45, 139, 0.55), 0 0 60px rgba(255, 45, 139, 0.35);
  transform: translateY(-2px);
}

.btn-ghost {
  background: var(--btn-ghost-bg);
  color: var(--text);
  border: 1px solid var(--border);
  backdrop-filter: blur(8px);
}

.btn-ghost:hover {
  border-color: rgba(255, 45, 139, 0.55);
  color: var(--pink-hot);
  box-shadow: 0 0 32px rgba(255, 45, 139, 0.2);
  transform: translateY(-2px);
}

/* hero */
.hero {
  padding: 3.5rem 0 4rem;
  position: relative;
}

.hero--lux::before {
  content: "";
  position: absolute;
  inset: -12% -8% auto -8%;
  height: min(70vh, 560px);
  background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(255, 45, 139, 0.14), transparent 65%);
  pointer-events: none;
  z-index: 0;
}

.hero--lux .hero-grid {
  position: relative;
  z-index: 1;
}

.hero-copy {
  position: relative;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
}

@media (max-width: 880px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }
}

.hero-badge {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 45, 139, 0.35);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pink-hot);
  margin-bottom: 1rem;
  background: linear-gradient(135deg, rgba(255, 45, 139, 0.14), rgba(255, 45, 139, 0.04));
  box-shadow: 0 0 28px rgba(255, 45, 139, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  animation: badge-pulse 4.5s ease-in-out infinite;
}

@keyframes badge-pulse {
  0%,
  100% {
    box-shadow: 0 0 28px rgba(255, 45, 139, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }
  50% {
    box-shadow: 0 0 44px rgba(255, 45, 139, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  }
}

.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 5vw, 3.35rem);
  font-weight: 600;
  line-height: 1.12;
  margin: 0 0 1rem;
  letter-spacing: -0.02em;
  background: var(--hero-h1-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 32px rgba(255, 45, 139, 0.12));
}

.hero-lead {
  font-size: 1.1rem;
  color: var(--text-muted);
  max-width: 36ch;
  margin: 0 0 1.75rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.hero-meta {
  display: grid;
  gap: 0.75rem;
  font-size: 0.95rem;
}

.hero-meta div {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}

.hero-meta dt {
  margin: 0;
  color: var(--text-muted);
  min-width: 4.5rem;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.hero-meta dd {
  margin: 0;
}

.hero-parallax {
  position: relative;
  perspective: 1200px;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform 0.06s linear;
}

.hero-visual-ring {
  position: absolute;
  inset: -14%;
  border-radius: 50%;
  background: conic-gradient(
    from 120deg,
    rgba(255, 45, 139, 0) 0deg,
    rgba(255, 45, 139, 0.45) 58deg,
    rgba(180, 100, 255, 0.2) 140deg,
    rgba(255, 45, 139, 0) 320deg
  );
  filter: blur(18px);
  opacity: 0.85;
  animation: ring-spin 14s linear infinite;
  pointer-events: none;
  z-index: 0;
}

@keyframes ring-spin {
  from {
    transform: rotate(0deg) scale(1);
  }
  to {
    transform: rotate(360deg) scale(1.02);
  }
}

/* второе кольцо вокруг логотипа — другой угол градиента и обратное вращение */
.hero-visual-ring--echo {
  inset: -22%;
  opacity: 0.38;
  filter: blur(24px);
  animation: ring-spin 19s linear infinite reverse;
  background: conic-gradient(
    from 0deg,
    rgba(147, 51, 234, 0.42) 0deg,
    transparent 110deg,
    rgba(255, 45, 139, 0.28) 210deg,
    rgba(56, 189, 248, 0.12) 280deg,
    transparent 340deg
  );
}

.hero-parallax .hero-visual {
  position: relative;
  z-index: 1;
  transition:
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.55s ease,
    border-color 0.35s ease;
}

.hero-parallax:hover .hero-visual {
  transform: translateZ(12px) rotateY(-3deg) rotateX(2deg) scale(1.01);
  box-shadow: var(--shadow), var(--glow-mid), 0 0 0 1px rgba(255, 45, 139, 0.35);
  border-color: rgba(255, 45, 139, 0.45);
}

.hero-visual {
  position: relative;
  border-radius: calc(var(--radius) + 6px);
  overflow: hidden;
  box-shadow:
    var(--shadow),
    0 0 60px rgba(255, 45, 139, 0.08);
  border: 1px solid var(--border);
}

.hero-visual img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
}

.hero-visual--brand img {
  aspect-ratio: 1;
  object-fit: contain;
  max-height: min(68vh, 520px);
  padding: 1.25rem;
  margin: 0 auto;
  background: radial-gradient(ellipse at center, rgba(255, 45, 139, 0.14), transparent 62%);
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), filter 0.55s ease;
}

.hero-parallax:hover .hero-visual--brand img {
  transform: scale(1.03);
  filter: drop-shadow(0 0 36px rgba(255, 45, 139, 0.45));
}

.hero-visual figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 1.25rem;
  background: var(--hero-caption-grad);
  font-size: 0.85rem;
  color: var(--text-muted);
}

/* stats — карточки с цифрами */
.stats--cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 1rem 1.1rem;
  padding: 2.25rem 0 3rem;
  border-top: 1px solid rgba(255, 45, 139, 0.18);
  border-bottom: 1px solid rgba(255, 45, 139, 0.18);
  position: relative;
}

.stats--orbit-wrap {
  isolation: isolate;
}

.orbit-accent--stats {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(118%, 940px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    from 200deg,
    transparent 0deg,
    rgba(255, 45, 139, 0.14) 75deg,
    rgba(120, 80, 200, 0.1) 195deg,
    transparent 295deg
  );
  filter: blur(28px);
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
  animation: orbit-accent-stats 18s linear infinite;
}

@keyframes orbit-accent-stats {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}

.stats--orbit-wrap > .stat-card {
  position: relative;
  z-index: 1;
}

.stats--cards::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(92%, 880px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 45, 139, 0.45), transparent);
  pointer-events: none;
  z-index: 2;
}

.stats--cards::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(92%, 880px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 45, 139, 0.35), transparent);
  pointer-events: none;
  z-index: 2;
}

@media (max-width: 720px) {
  .stats--cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

.stat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  text-align: center;
  border-radius: calc(var(--radius) + 6px);
  padding: 2px;
  background: linear-gradient(
    145deg,
    rgba(255, 45, 139, 0.35),
    rgba(255, 45, 139, 0.06) 42%,
    rgba(120, 80, 180, 0.12) 100%
  );
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s ease;
}

.stat-card__inner {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  width: 100%;
  min-height: 8.75rem;
  border-radius: calc(var(--radius) + 4px);
  padding: 1.35rem 0.85rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--stat-inner-bg);
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.stat-card__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.03) 50%, transparent 60%);
  transform: translateX(-100%);
  transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.stat-card:hover .stat-card__inner::after {
  transform: translateX(100%);
}

.stat-card__glow {
  position: absolute;
  inset: -30%;
  background: radial-gradient(circle at 50% 50%, rgba(255, 45, 139, 0.22), transparent 55%);
  opacity: 0.65;
  animation: stat-glow-breathe 5.5s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}

.stat-card:hover .stat-card__glow {
  opacity: 0.95;
  animation-duration: 3.2s;
}

@keyframes stat-glow-breathe {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.55;
  }
  50% {
    transform: scale(1.08);
    opacity: 0.85;
  }
}

.stat-card__edge {
  position: absolute;
  width: 28px;
  height: 28px;
  z-index: 2;
  pointer-events: none;
  opacity: 0.75;
}

.stat-card__edge--tl {
  top: 10px;
  left: 10px;
  border-top: 2px solid rgba(255, 45, 139, 0.5);
  border-left: 2px solid rgba(255, 45, 139, 0.5);
  border-radius: 4px 0 0 0;
}

.stat-card__edge--br {
  bottom: 10px;
  right: 10px;
  border-bottom: 2px solid rgba(255, 45, 139, 0.35);
  border-right: 2px solid rgba(255, 45, 139, 0.35);
  border-radius: 0 0 4px 0;
}

.stat-card__value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.06em;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 5vw, 3rem);
  font-weight: 600;
  line-height: 1;
  min-height: 1.15em;
  margin: 0 0 0.65rem;
  background: linear-gradient(160deg, #fff 0%, var(--pink-hot) 52%, var(--pink-dim) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 32px rgba(255, 45, 139, 0.45));
}

.stat-card__num {
  font-variant-numeric: tabular-nums;
  min-width: 0.6em;
  display: inline-block;
}

.stat-card__plus {
  font-size: 0.72em;
  color: var(--pink-hot);
  -webkit-text-fill-color: var(--pink-hot);
}

.stat-card__label {
  display: block;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--stat-label);
  letter-spacing: 0.03em;
  max-width: 14ch;
}

.stat-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow:
    0 22px 56px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 45, 139, 0.12) inset,
    var(--glow-mid);
}

.stats.is-revealed .stat-card {
  animation: stat-pop 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.stats.is-revealed .stat-card:nth-child(1) {
  animation-delay: 0.05s;
}

.stats.is-revealed .stat-card:nth-child(2) {
  animation-delay: 0.12s;
}

.stats.is-revealed .stat-card:nth-child(3) {
  animation-delay: 0.19s;
}

.stats.is-revealed .stat-card:nth-child(4) {
  animation-delay: 0.26s;
}

.stats.section-reveal:not(.is-revealed) .stat-card {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
}

@keyframes stat-pop {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@supports not (background-clip: text) {
  .stat-card__value,
  .stat-card__plus {
    color: var(--pink);
    background: none;
    -webkit-text-fill-color: unset;
    filter: drop-shadow(0 0 20px rgba(255, 45, 139, 0.4));
  }

  [data-theme="light"] .stat-card__value,
  [data-theme="light"] .stat-card__plus {
    color: #fff;
    -webkit-text-fill-color: #fff;
    filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.2));
  }
}

/* секции */
section {
  padding: 3.5rem 0;
}

.section-head {
  max-width: 40rem;
  margin-bottom: 2rem;
}

.section-head h2 {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 2.35rem);
  margin: 0 0 0.5rem;
  font-weight: 600;
  transition: text-shadow 0.45s ease;
}

main > section.section-reveal.is-revealed:not(.hero--lux) .section-head h2 {
  text-shadow: 0 0 50px rgba(255, 45, 139, 0.12);
}

.section-head p {
  margin: 0;
  color: var(--text-muted);
}

.section-head--wide {
  max-width: min(48rem, 100%);
}

/* карточки услуг */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.card {
  --card-grad: linear-gradient(145deg, rgba(255, 45, 139, 0.1), transparent 52%);
  background:
    var(--card-grad),
    var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.35rem;
  position: relative;
  overflow: hidden;
  transition:
    border-color 0.4s ease,
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s ease;
}

.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 45, 139, 0.16), transparent 42%);
  opacity: 0;
  transition: opacity 0.45s ease;
  pointer-events: none;
}

.card:hover::before {
  opacity: 1;
}

.card:hover {
  border-color: rgba(255, 45, 139, 0.55);
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 22px 56px rgba(0, 0, 0, 0.42), var(--glow-soft);
}

.card > * {
  position: relative;
  z-index: 1;
}

.card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
}

.card p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-muted);
}

/* «О студии» — четыре разных характера карточек */
.cards--studio {
  counter-reset: studiofeat;
  gap: 1.15rem;
}

.cards--studio .card {
  counter-increment: studiofeat;
  min-height: 8.5rem;
  padding: 1.55rem 1.35rem 1.45rem 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  border-radius: calc(var(--radius) + 4px);
}

.cards--studio .card::after {
  content: counter(studiofeat, decimal-leading-zero);
  position: absolute;
  right: 0.75rem;
  top: 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 6vw, 3.5rem);
  font-weight: 600;
  line-height: 1;
  opacity: 0.14;
  color: var(--card-accent, var(--pink));
  pointer-events: none;
  z-index: 0;
  letter-spacing: -0.04em;
}

.cards--studio .card:nth-child(1) {
  --card-accent: #ff2d8b;
  background: linear-gradient(125deg, rgba(255, 45, 139, 0.14) 0%, var(--bg-card) 42%, var(--bg-card) 100%);
  border-color: rgba(255, 45, 139, 0.32);
  box-shadow: inset 4px 0 0 0 var(--card-accent), 0 10px 40px rgba(0, 0, 0, 0.25);
}

.cards--studio .card:nth-child(2) {
  --card-accent: #a78bfa;
  background: linear-gradient(210deg, rgba(139, 92, 246, 0.11) 0%, var(--bg-card) 45%);
  border-color: rgba(139, 92, 246, 0.28);
  box-shadow: inset 0 -3px 0 0 rgba(167, 139, 250, 0.35), 0 10px 40px rgba(0, 0, 0, 0.25);
  border-bottom: 1px solid rgba(139, 92, 246, 0.2);
}

.cards--studio .card:nth-child(3) {
  --card-accent: #fbbf24;
  background: radial-gradient(ellipse 85% 60% at 100% 0%, rgba(251, 191, 36, 0.12), transparent 55%),
    linear-gradient(180deg, var(--bg-card), var(--bg-card-deep));
  border-color: rgba(251, 191, 36, 0.22);
  box-shadow: inset 0 0 0 1px rgba(251, 191, 36, 0.12);
}

.cards--studio .card:nth-child(4) {
  --card-accent: #34d399;
  background: linear-gradient(155deg, rgba(52, 211, 153, 0.09) 0%, var(--bg-card) 50%),
    linear-gradient(90deg, rgba(52, 211, 153, 0.06), transparent 35%);
  border-color: rgba(52, 211, 153, 0.22);
  box-shadow: inset -4px 0 0 0 rgba(52, 211, 153, 0.35), 0 10px 40px rgba(0, 0, 0, 0.25);
}

.cards--studio .card h3 {
  position: relative;
  z-index: 1;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  padding-bottom: 0.6rem;
  margin-bottom: 0.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cards--studio .card h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 3rem;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--card-accent, var(--pink)), transparent);
  opacity: 0.85;
}

.cards--studio .card p {
  position: relative;
  z-index: 1;
  flex: 1;
}

.cards--studio .card:nth-child(1):hover {
  border-color: rgba(255, 45, 139, 0.55);
  box-shadow:
    inset 4px 0 0 0 var(--card-accent),
    0 24px 56px rgba(0, 0, 0, 0.45),
    0 0 48px rgba(255, 45, 139, 0.22);
}

.cards--studio .card:nth-child(2):hover {
  border-color: rgba(167, 139, 250, 0.45);
  box-shadow:
    inset 0 -3px 0 0 rgba(167, 139, 250, 0.65),
    0 24px 56px rgba(0, 0, 0, 0.45),
    0 0 44px rgba(139, 92, 246, 0.2);
}

.cards--studio .card:nth-child(3):hover {
  border-color: rgba(251, 191, 36, 0.45);
  box-shadow:
    inset 0 0 0 1px rgba(251, 191, 36, 0.35),
    0 24px 56px rgba(0, 0, 0, 0.45),
    0 0 42px rgba(251, 191, 36, 0.15);
}

.cards--studio .card:nth-child(4):hover {
  border-color: rgba(52, 211, 153, 0.45);
  box-shadow:
    inset -4px 0 0 0 rgba(52, 211, 153, 0.55),
    0 24px 56px rgba(0, 0, 0, 0.45),
    0 0 40px rgba(52, 211, 153, 0.16);
}

/* «Услуги» — сетка с ритмом и цветными метками */
.cards--services {
  gap: 1.1rem;
}

.cards--services .card {
  padding: 1.5rem 1.25rem 1.35rem;
  border-radius: calc(var(--radius) + 2px);
  background: var(--bg-card);
}

.cards--services .card:nth-child(6n + 1) {
  --svc-dot: #ff2d8b;
  background: linear-gradient(165deg, rgba(255, 45, 139, 0.07), var(--bg-card) 55%);
  border-color: rgba(255, 45, 139, 0.22);
}

.cards--services .card:nth-child(6n + 2) {
  --svc-dot: #c084fc;
  background: linear-gradient(195deg, rgba(168, 85, 247, 0.08), var(--bg-card) 50%);
  border-color: rgba(168, 85, 247, 0.18);
}

.cards--services .card:nth-child(6n + 3) {
  --svc-dot: #fb7185;
  background: linear-gradient(175deg, rgba(251, 113, 133, 0.07), var(--bg-card) 52%);
  border-color: rgba(251, 113, 133, 0.2);
}

.cards--services .card:nth-child(6n + 4) {
  --svc-dot: #38bdf8;
  background: linear-gradient(185deg, rgba(56, 189, 248, 0.07), var(--bg-card) 50%);
  border-color: rgba(56, 189, 248, 0.18);
}

.cards--services .card:nth-child(6n + 5) {
  --svc-dot: #fbbf24;
  background: linear-gradient(170deg, rgba(251, 191, 36, 0.07), var(--bg-card) 48%);
  border-color: rgba(251, 191, 36, 0.2);
}

.cards--services .card:nth-child(6n + 6) {
  --svc-dot: #4ade80;
  background: linear-gradient(200deg, rgba(74, 222, 128, 0.07), var(--bg-card) 55%);
  border-color: rgba(74, 222, 128, 0.18);
}

.cards--services .card h3 {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.08rem;
  margin-bottom: 0.55rem;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.cards--services .card h3::before {
  content: "";
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--svc-dot, var(--pink));
  box-shadow: 0 0 14px var(--svc-dot, var(--pink));
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
}

.cards--services .card:hover h3::before {
  transform: scale(1.2);
  box-shadow: 0 0 22px var(--svc-dot, var(--pink));
}

.masters-footnote {
  margin-top: 1.35rem;
  padding: 1rem 1.2rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.masters-footnote p {
  margin: 0;
}

.masters-footnote strong {
  color: var(--text);
  font-weight: 600;
}

.price-edit-note {
  margin: 1rem 0 0;
  padding: 0.85rem 1rem;
  max-width: 52ch;
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--text-muted);
  background: var(--bg-elevated);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.price-edit-note code {
  font-size: 0.92em;
}

/* акции */
.promos-section {
  position: relative;
  isolation: isolate;
}

.promos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.promos--featured {
  position: relative;
  grid-template-columns: 1fr;
  max-width: none;
  margin-inline: 0;
  padding-block: 0.35rem;
}

.orbit-accent--akcii {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(96vw, 780px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    from 50deg,
    transparent 0deg,
    rgba(255, 45, 139, 0.11) 85deg,
    transparent 175deg,
    rgba(56, 189, 248, 0.07) 255deg,
    rgba(168, 85, 247, 0.09) 310deg,
    transparent 345deg
  );
  filter: blur(38px);
  opacity: 0.52;
  pointer-events: none;
  z-index: 0;
  animation: orbit-spin-center 25s linear infinite reverse;
}

.promo {
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-card));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  position: relative;
  overflow: hidden;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s ease,
    border-color 0.35s ease;
}

.promo::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -20%;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(255, 45, 139, 0.25), transparent 70%);
  pointer-events: none;
  transition: transform 0.6s ease;
}

.promo--featured {
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  padding: clamp(1.35rem, 3.2vw, 2.35rem) clamp(1.25rem, 4vw, 2.85rem);
  align-items: center;
}

.promo--featured::before {
  width: min(320px, 55vw);
  height: min(320px, 55vw);
  top: -35%;
  right: -12%;
  opacity: 0.9;
}

@media (min-width: 700px) {
  .promo--featured {
    grid-template-columns: minmax(0, 1fr) minmax(10.5rem, 13.5rem);
  }
}

.promo__body {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.promo__meta {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
}

.promo__meta li {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 45, 139, 0.22);
  background: rgba(0, 0, 0, 0.2);
}

.promo__disk {
  position: relative;
  width: min(12.5rem, 88vw);
  max-width: 100%;
  aspect-ratio: 1;
  margin-inline: auto;
  display: grid;
  place-items: center;
  isolation: isolate;
}

.promo__disk-ring {
  position: absolute;
  inset: -10%;
  border-radius: 50%;
  background: conic-gradient(
    from 200deg,
    rgba(255, 45, 139, 0.4) 0deg,
    transparent 45deg,
    rgba(147, 51, 234, 0.28) 120deg,
    transparent 200deg,
    rgba(56, 189, 248, 0.15) 280deg,
    transparent 330deg
  );
  filter: blur(12px);
  opacity: 0.88;
  animation: ring-spin 21s linear infinite reverse;
  pointer-events: none;
}

.promo__disk-inner {
  position: relative;
  z-index: 1;
  width: 76%;
  height: 76%;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: linear-gradient(165deg, var(--bg-elevated), var(--bg-card));
  border: 1px solid rgba(255, 45, 139, 0.38);
  box-shadow:
    inset 0 0 48px rgba(255, 45, 139, 0.1),
    0 0 0 1px rgba(255, 45, 139, 0.12);
}

.promo__disk-pct {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4.2vw, 2.45rem);
  font-weight: 700;
  color: var(--pink);
  line-height: 1;
  letter-spacing: -0.04em;
}

.promo__disk-note {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text-muted);
  margin-top: 0.4rem;
}

.promo:hover {
  transform: translateY(-5px) scale(1.01);
  border-color: rgba(255, 45, 139, 0.45);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5), var(--glow-soft);
}

.promo:hover::before {
  transform: scale(1.15) translate(-4%, 4%);
}

.promo:not(.promo--featured) > * {
  position: relative;
  z-index: 1;
}

.promo--featured > .promo__body,
.promo--featured > .promo__disk {
  position: relative;
  z-index: 1;
}

.promo strong {
  display: block;
  color: var(--pink);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.35rem;
}

.promo h3 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.05rem, 2.1vw, 1.28rem);
}

.promo p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--text-muted);
  max-width: 42rem;
}

/* галерея */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}

.gallery--all {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.gallery--portfolio {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* мозаика «работы»: ровная сетка, одинаковые квадратные кадры */
.gallery--mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.5rem, 1.8vw, 0.95rem);
  padding: 0.25rem;
}

@media (min-width: 640px) {
  .gallery--mosaic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.6rem, 1.6vw, 1rem);
  }
}

@media (min-width: 1100px) {
  .gallery--mosaic {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.65rem, 1.4vw, 1.05rem);
  }
}

/* Кадр секции: спокойная «витрина» вокруг сетки */
#raboty .gallery--mosaic {
  margin-top: 0.5rem;
  padding: clamp(0.85rem, 2.2vw, 1.35rem);
  border-radius: clamp(16px, 2vw, 24px);
  background:
    radial-gradient(ellipse 72% 48% at 50% 0%, rgba(255, 45, 139, 0.06), transparent 58%),
    linear-gradient(168deg, rgba(18, 16, 24, 0.94), rgba(6, 6, 10, 0.58));
  border: 1px solid rgba(255, 45, 139, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 18px 52px rgba(0, 0, 0, 0.3);
}

@media (max-width: 639px) {
  #raboty .gallery--mosaic {
    padding: 0.6rem;
  }
}

@media (max-width: 700px) {
  .gallery:not(.gallery--mosaic) {
    grid-template-columns: 1fr 1fr;
  }
}

.gallery figure.gallery-blur img {
  filter: blur(10px);
  transform: scale(1.06);
}

.gallery figure {
  margin: 0;
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  border: 1px solid rgba(255, 45, 139, 0.18);
  cursor: zoom-in;
  position: relative;
  transition:
    box-shadow 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    border-color 0.4s ease,
    transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow:
    0 10px 36px rgba(0, 0, 0, 0.42),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.gallery--mosaic figure {
  display: block;
  height: auto;
  min-height: 0;
  outline: none;
  aspect-ratio: 1;
  border-radius: 14px;
}

.gallery--mosaic figure:focus-visible {
  box-shadow:
    0 0 0 2px var(--bg),
    0 0 0 4px var(--pink),
    0 0 28px rgba(255, 45, 139, 0.35);
}

.gallery--mosaic figure:hover {
  z-index: 2;
  border-color: rgba(255, 45, 139, 0.42);
  box-shadow:
    0 0 0 1px rgba(255, 45, 139, 0.2),
    0 12px 36px rgba(0, 0, 0, 0.4),
    inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  transform: translateY(-2px);
}

.gallery--mosaic figure:active {
  transform: translateY(-1px) scale(1.002);
}

.gallery img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gallery--mosaic figure img {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: unset;
  object-fit: cover;
  display: block;
  transform-origin: center center;
  transition:
    transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    filter 0.35s ease;
}

.gallery figure:hover img,
.gallery figure:focus-within img {
  transform: scale(1.14);
}

.gallery--mosaic figure:hover img,
.gallery--mosaic figure:focus-within img {
  transform: scale(1.04);
  filter: brightness(1.03) contrast(1.02);
}

.gallery figure.gallery-blur:hover img,
.gallery figure.gallery-blur:focus-within img {
  filter: blur(10px);
  transform: scale(1.14);
}

.gallery figcaption {
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  color: var(--text-muted);
  background: var(--bg-card);
}

@media (prefers-reduced-motion: reduce) {
  .bg-grid::after {
    animation: none;
  }

  .ambient__orb {
    animation: none;
  }

  .ambient__aurora {
    transform: none;
  }

  .hero-visual-ring {
    animation: none;
  }

  .hero-badge {
    animation: none;
  }

  .section-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .stats.is-revealed .stat-card,
  .stats.section-reveal:not(.is-revealed) .stat-card {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .stat-card__glow {
    animation: none;
    opacity: 0.5;
  }

  .stat-card:hover {
    transform: none;
  }

  .btn::after {
    transition: none;
  }

  .gallery figure,
  .gallery img {
    transition-duration: 0.01ms;
  }

  .gallery--mosaic figure:hover {
    transform: none;
  }

  .gallery figure:hover img,
  .gallery figure:focus-within img {
    transform: none;
    filter: none;
  }

  .hero-parallax:hover .hero-visual {
    transform: none;
  }

  .hero-parallax:hover .hero-visual--brand img {
    transform: none;
    filter: none;
  }

  .orbit-accent--stats {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  :root:not([data-theme="light"]) .price-panel::before {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  :root:not([data-theme="light"]) #o-studii::after {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  :root:not([data-theme="light"]) #raboty::before {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  :root:not([data-theme="light"]) #otzyvy::before {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  .orbit-accent--akcii {
    animation: none !important;
    transform: translate(-50%, -50%);
  }

  .promo__disk-ring {
    animation: none !important;
  }
}

/* lightbox галереи */
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right))
    max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
}

.gallery-lightbox[hidden] {
  display: none !important;
}

.gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 2, 4, 0.88);
  backdrop-filter: blur(10px);
  cursor: zoom-out;
}

.gallery-lightbox__panel {
  position: relative;
  z-index: 1;
  width: min(100%, 96vw);
  max-height: min(94vh, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.gallery-lightbox__panel > * {
  pointer-events: auto;
}

.gallery-lightbox__close {
  position: absolute;
  top: -0.25rem;
  right: 0;
  z-index: 2;
  width: 3rem;
  height: 3rem;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--bg-elevated);
  color: var(--text);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
  box-shadow: 0 0 24px rgba(255, 45, 139, 0.2);
}

.gallery-lightbox__close:hover {
  border-color: var(--pink);
  box-shadow: 0 0 32px rgba(255, 45, 139, 0.45);
  color: var(--pink);
}

.gallery-lightbox__figure {
  margin: 2.5rem 0 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.gallery-lightbox__img {
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: min(78vh, 1200px);
  object-fit: contain;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid rgba(255, 45, 139, 0.25);
  box-shadow:
    0 0 0 1px rgba(255, 45, 139, 0.12),
    0 24px 80px rgba(0, 0, 0, 0.65),
    0 0 60px rgba(255, 45, 139, 0.15);
}

.gallery-lightbox__caption {
  margin: 0;
  padding: 0 1rem;
  text-align: center;
  font-size: 0.95rem;
  color: var(--text-muted);
  max-width: 40rem;
}

body.gallery-lightbox-open {
  overflow: hidden;
}

/* табы прайса */
.price-panel {
  position: relative;
  isolation: isolate;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  transition: box-shadow 0.45s ease, border-color 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* тёмная тема: мягкое вращающееся свечение за прайсом (не как в hero — шире и медленнее) */
:root:not([data-theme="light"]) .price-panel::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 160%;
  height: 160%;
  border-radius: 50%;
  background: conic-gradient(
    from 90deg,
    transparent 0deg,
    rgba(255, 45, 139, 0.06) 100deg,
    transparent 160deg,
    rgba(147, 51, 234, 0.07) 240deg,
    transparent 320deg
  );
  filter: blur(48px);
  opacity: 0.65;
  pointer-events: none;
  z-index: 0;
  animation: orbit-spin-center 44s linear infinite reverse;
}

.price-panel > .tablist,
.price-panel > .tabpanels {
  position: relative;
  z-index: 1;
}

.price-panel:hover {
  border-color: rgba(255, 45, 139, 0.32);
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(255, 45, 139, 0.06) inset, var(--glow-soft);
}

.tablist {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 1rem;
  background: var(--bg-elevated);
  border-bottom: 1px solid var(--border);
  margin: 0;
}

.tablist button {
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: color 0.2s, background 0.2s, border-color 0.2s, transform 0.25s ease, box-shadow 0.25s ease;
}

.tablist button:hover {
  color: var(--text);
  border-color: var(--border);
  transform: translateY(-1px);
}

.tablist button[aria-selected="true"] {
  background: rgba(255, 45, 139, 0.2);
  color: var(--pink-hot);
  border-color: rgba(255, 45, 139, 0.45);
  box-shadow: 0 0 28px rgba(255, 45, 139, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.tabpanels {
  padding: 1rem 1rem 1.5rem;
}

.tabpanel {
  display: none;
}

.tabpanel.is-active {
  display: block;
  animation: fadeIn 0.35s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.table-wrap {
  overflow-x: auto;
  margin: 0 -0.25rem;
  padding: 0 0.25rem;
}

table.price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  min-width: 520px;
}

.price-table th,
.price-table td {
  padding: 0.65rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.price-table th {
  color: var(--pink);
  font-weight: 600;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.price-table td:first-child {
  color: var(--text);
  font-weight: 500;
  min-width: 200px;
}

.price-table td:not(:first-child) {
  color: var(--text-muted);
  white-space: nowrap;
}

.price-note {
  margin-top: 1rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

@keyframes orbit-spin-center {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

/* тёмная тема: «орбитальные» акценты в секциях (вариации градиента и скорости) */
#o-studii {
  position: relative;
  isolation: isolate;
}

:root:not([data-theme="light"]) #o-studii::after {
  content: "";
  position: absolute;
  width: min(72vw, 480px);
  aspect-ratio: 1;
  right: -6%;
  top: 8%;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 40%, rgba(255, 45, 139, 0.12), transparent 58%),
    conic-gradient(from 40deg, transparent, rgba(168, 85, 247, 0.1) 140deg, transparent 260deg);
  filter: blur(32px);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
  animation: orbit-spin-center 36s linear infinite reverse;
}

#o-studii > * {
  position: relative;
  z-index: 1;
}

#raboty {
  position: relative;
  isolation: isolate;
}

:root:not([data-theme="light"]) #raboty::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 38%;
  width: min(96vw, 760px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    rgba(56, 189, 248, 0.07) 80deg,
    rgba(255, 45, 139, 0.12) 175deg,
    rgba(168, 85, 247, 0.09) 270deg,
    transparent 330deg
  );
  filter: blur(38px);
  opacity: 0.48;
  pointer-events: none;
  z-index: 0;
  animation: orbit-spin-center 27s linear infinite;
}

#raboty > * {
  position: relative;
  z-index: 1;
}

#otzyvy {
  position: relative;
  isolation: isolate;
}

:root:not([data-theme="light"]) #otzyvy::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 36%;
  width: min(88vw, 640px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    from 180deg,
    transparent 0deg,
    rgba(255, 45, 139, 0.1) 95deg,
    transparent 200deg,
    rgba(251, 191, 36, 0.06) 285deg,
    transparent 350deg
  );
  filter: blur(40px);
  opacity: 0.42;
  pointer-events: none;
  z-index: 0;
  animation: orbit-spin-center 31s linear infinite reverse;
}

#otzyvy > * {
  position: relative;
  z-index: 1;
}

/* команда */
.team {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
}

.team article {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.25rem;
  text-align: center;
}

.team h3 {
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
}

.team p {
  margin: 0;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.team--masters {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: stretch;
}

@media (max-width: 1100px) {
  .team--masters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .team--masters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 380px) {
  .team--masters {
    grid-template-columns: 1fr;
  }
}

.team--masters .team-card {
  padding: 0;
  border: none;
  background: transparent;
  min-width: 0;
}

.team-card__inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  box-shadow: 0 10px 36px rgba(0, 0, 0, 0.4);
  transition:
    border-color 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.28s ease;
}

.team-card:hover .team-card__inner,
.team-card:focus-within .team-card__inner {
  border-color: rgba(255, 45, 139, 0.5);
  box-shadow: 0 18px 50px rgba(255, 45, 139, 0.14);
  transform: translateY(-4px);
}

.team-card__photo {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #0a0a0c;
  cursor: zoom-in;
}

.team-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.team-card:hover .team-card__photo img,
.team-card:focus-within .team-card__photo img {
  transform: scale(1.14);
}

.team-card__body {
  padding: 0.85rem 0.6rem 1rem;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-top: 1px solid rgba(255, 45, 139, 0.12);
}

.team-card__body h3 {
  margin: 0 0 0.3rem;
  font-family: var(--font-body);
  font-size: clamp(0.78rem, 1.05vw, 0.92rem);
  font-weight: 700;
  color: var(--text);
  line-height: 1.28;
  letter-spacing: -0.015em;
}

.team-card__body p {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* контакты / футер */
.contact-layout {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.contact-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: stretch;
}

@media (max-width: 900px) {
  .contact-map-grid {
    grid-template-columns: 1fr;
  }
}

.contact-map-column {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.contact-map-frame {
  position: relative;
  border-radius: calc(var(--radius) + 4px);
  overflow: hidden;
  border: 1px solid var(--border);
  aspect-ratio: 4 / 3;
  min-height: 260px;
  max-height: min(52vh, 440px);
  box-shadow: var(--shadow);
  background: var(--bg-card);
  transition: box-shadow 0.45s ease, border-color 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-map-column:hover .contact-map-frame {
  border-color: rgba(255, 45, 139, 0.38);
  box-shadow: var(--shadow), var(--glow-soft);
  transform: scale(1.01);
}

.contact-map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.contact-map-cta {
  align-self: flex-start;
}

.contact-card--details {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-details-title {
  margin: 0 0 1.25rem;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.5vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--pink);
  letter-spacing: -0.02em;
}

.contact-card--details .contact-details-list dt {
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--text);
}

.contact-card--details .contact-details-list dd {
  font-size: 0.98rem;
  color: var(--text-muted);
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 720px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }
}

.contact-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s ease,
    border-color 0.35s ease;
}

.contact-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 45, 139, 0.35);
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.38), var(--glow-soft);
}

.contact-card dl {
  margin: 0;
  display: grid;
  gap: 1rem;
}

.contact-card dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}

.contact-card dd {
  margin: 0.25rem 0 0;
  font-size: 1rem;
}

.site-footer {
  border-top: 1px solid var(--border);
  padding: 2rem 0;
  margin-top: 2rem;
  font-size: 0.85rem;
  color: var(--text-muted);
  text-align: center;
}

.site-footer__legal {
  margin: 0.75rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  justify-content: center;
  align-items: center;
}

.site-footer__legal a {
  color: var(--text-muted);
  text-decoration: none;
  font-weight: 500;
}

.site-footer__legal a:hover {
  color: var(--pink);
}

/* баннер cookie */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  padding: 1rem max(1rem, env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom))
    max(1rem, env(safe-area-inset-left));
  background: rgba(16, 16, 20, 0.97);
  border-top: 1px solid var(--border);
  box-shadow: 0 -12px 48px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(12px);
}

.cookie-banner[hidden] {
  display: none !important;
}

.cookie-banner__inner {
  width: min(100% - 0rem, var(--max));
  margin-inline: auto;
  display: grid;
  gap: 1rem;
  align-items: center;
}

@media (min-width: 768px) {
  .cookie-banner__inner {
    grid-template-columns: 1fr auto;
    gap: 1.5rem;
  }
}

.cookie-banner__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text);
}

.cookie-banner__text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--text-muted);
  max-width: 62ch;
}

.cookie-banner__text a {
  color: var(--pink);
  font-weight: 600;
}

.cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-start;
}

@media (min-width: 768px) {
  .cookie-banner__actions {
    justify-content: flex-end;
  }
}

/* плавающие контакты: Telegram, Max, WhatsApp, телефон */
.contact-fab {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 250;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.65rem;
  font-family: var(--font-body);
  overflow: visible;
}

body:has(#cookie-banner:not([hidden])) .contact-fab {
  bottom: calc(6.75rem + env(safe-area-inset-bottom));
}

@media (min-width: 768px) {
  body:has(#cookie-banner:not([hidden])) .contact-fab {
    bottom: calc(5.25rem + env(safe-area-inset-bottom));
  }
}

.contact-fab__panel {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.55rem;
  min-width: min(17.5rem, calc(100vw - 2rem - 4rem));
  border-radius: 18px;
  background: rgba(16, 16, 20, 0.96);
  border: 1px solid var(--border);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transform-origin: bottom right;
  animation: contact-fab-in 0.22s ease-out;
}

[data-theme="light"] .contact-fab__panel {
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

.contact-fab__panel[hidden] {
  display: none !important;
}

@keyframes contact-fab-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-fab__panel {
    animation: none;
  }
}

.contact-fab__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.55rem;
  border-radius: 14px;
  text-decoration: none;
  color: var(--text);
  transition: background-color 0.15s ease;
}

.contact-fab__item:hover {
  background: rgba(255, 45, 139, 0.12);
}

.contact-fab__item:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 2px;
}

.contact-fab__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
}

.contact-fab__icon--telegram {
  background: #229ed9;
}

.contact-fab__icon--whatsapp {
  background: #25d366;
}

.contact-fab__icon--phone {
  background: linear-gradient(145deg, var(--pink), #c026d3);
}

.contact-fab__icon--max {
  padding: 0;
  overflow: hidden;
  background: transparent;
}

.contact-fab__icon--max img {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 11px;
  display: block;
}

.contact-fab__text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  text-align: left;
}

.contact-fab__text--multi {
  gap: 0.4rem;
}

.contact-fab__label {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
}

.contact-fab__sub {
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.25;
}

.contact-fab__meta {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 45, 139, 0.2);
}

.contact-fab__meta-label {
  font-size: 0.74rem;
  line-height: 1.2;
  color: #39c7cf;
}

.contact-fab__meta-value {
  font-size: 0.88rem;
  line-height: 1.2;
  color: var(--text);
}

.contact-fab__trigger {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, var(--pink), #9333ea);
  box-shadow: 0 8px 28px rgba(255, 45, 139, 0.42);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  animation: contact-fab-breathe 2.4s ease-in-out infinite;
}

.contact-fab__trigger::before,
.contact-fab__trigger::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 0 1px rgba(255, 45, 139, 0.35);
  pointer-events: none;
  z-index: 0;
  transform: translate(-50%, -50%);
  animation: contact-fab-ripple 2.2s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.contact-fab__trigger::after {
  animation-delay: 1.1s;
  border-color: rgba(147, 51, 234, 0.4);
}

@keyframes contact-fab-breathe {
  0%,
  100% {
    box-shadow: 0 8px 28px rgba(255, 45, 139, 0.42);
    filter: brightness(1);
  }
  50% {
    box-shadow:
      0 10px 40px rgba(255, 45, 139, 0.55),
      0 0 28px rgba(147, 51, 234, 0.28);
    filter: brightness(1.06);
  }
}

@keyframes contact-fab-ripple {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.65;
  }
  100% {
    transform: translate(-50%, -50%) scale(2.05);
    opacity: 0;
  }
}

.contact-fab__trigger:hover {
  animation-play-state: paused;
  transform: scale(1.06);
  box-shadow: 0 10px 32px rgba(255, 45, 139, 0.5);
  filter: brightness(1.05);
}

.contact-fab__trigger:hover::before,
.contact-fab__trigger:hover::after {
  animation-play-state: paused;
  opacity: 0;
}

.contact-fab__trigger:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 3px;
}

.contact-fab.is-open .contact-fab__trigger {
  background: linear-gradient(145deg, #64748b, #475569);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  animation: none;
  filter: none;
}

.contact-fab.is-open .contact-fab__trigger::before,
.contact-fab.is-open .contact-fab__trigger::after {
  display: none;
}

.contact-fab__trigger-icon {
  position: relative;
  z-index: 1;
  grid-area: 1 / 1;
}

@media (prefers-reduced-motion: reduce) {
  .contact-fab__trigger {
    animation: none;
  }

  .contact-fab__trigger::before,
  .contact-fab__trigger::after {
    display: none;
  }
}

.contact-fab__trigger-icon--close {
  display: none;
}

.contact-fab.is-open .contact-fab__trigger-icon--open {
  display: none;
}

.contact-fab.is-open .contact-fab__trigger-icon--close {
  display: block;
}

/* лента отзывов (marquee) */
.reviews-section {
  padding-top: 1rem;
  padding-bottom: 0.5rem;
}

.reviews-marquee {
  position: relative;
  width: 100%;
  margin-top: 0.25rem;
  --reviews-gap: 1rem;
}

.reviews-marquee__row {
  position: relative;
  overflow: hidden;
  margin-bottom: var(--reviews-gap);
}

.reviews-marquee__row:last-child {
  margin-bottom: 0;
}

.reviews-marquee__fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(48px, 7vw, 96px);
  z-index: 2;
  pointer-events: none;
}

.reviews-marquee__fade--left {
  left: 0;
  background: linear-gradient(90deg, var(--bg, #0a0a0c) 0%, transparent 100%);
}

.reviews-marquee__fade--right {
  right: 0;
  background: linear-gradient(270deg, var(--bg, #0a0a0c) 0%, transparent 100%);
}

.reviews-marquee:hover .reviews-marquee__track {
  animation-play-state: paused;
}

.reviews-marquee__track {
  display: flex;
  width: max-content;
  gap: var(--reviews-gap);
  will-change: transform;
  animation: reviews-marquee-x 36s linear infinite;
}

.reviews-marquee__track--a {
  animation-duration: 38s;
}

.reviews-marquee__row--reverse .reviews-marquee__track {
  animation-direction: reverse;
  animation-duration: 30s;
}

@keyframes reviews-marquee-x {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

.review-card {
  flex: 0 0 auto;
  /* не min(100%, …): процент от ширины ряда ломает трек с width:max-content — карточки растягиваются на весь экран */
  width: clamp(16rem, 36vw, 21rem);
  max-width: 21rem;
  min-height: 7.5rem;
  box-sizing: border-box;
  padding: 1.05rem 1.15rem;
  border-radius: var(--radius, 1rem);
  border: 1px solid color-mix(in srgb, var(--border, rgba(255, 255, 255, 0.12)) 80%, transparent);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--surface, #151518) 92%, transparent), color-mix(in srgb, var(--surface-2, #1a1a1f) 88%, transparent));
  box-shadow:
    0 0 0 1px color-mix(in srgb, #fff 4%, transparent) inset,
    0 18px 40px color-mix(in srgb, #000 45%, transparent);
  backdrop-filter: blur(12px);
}

.review-card__head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.65rem;
}

.review-card__head img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
}

.review-card__name {
  margin: 0;
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--text);
  font-family: var(--font-display);
}

.review-card__user {
  margin: 0.1rem 0 0;
  font-size: 0.78rem;
  color: var(--text-muted);
}

.review-card__text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--text-muted) 92%, var(--text));
  quotes: none;
}

.reviews-note {
  margin: 1.35rem 0 0;
  font-size: 0.8rem;
  color: var(--text-muted);
  text-align: center;
  line-height: 1.45;
}

@media (max-width: 640px) {
  .review-card {
    width: min(88vw, 21rem);
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reviews-marquee__track {
    animation: none !important;
    flex-wrap: wrap;
    width: 100% !important;
    justify-content: center;
    transform: none !important;
  }

  .reviews-marquee__row {
    overflow: visible;
  }

  .reviews-marquee .review-card[aria-hidden="true"] {
    display: none;
  }

  .reviews-marquee:hover .reviews-marquee__track {
    animation-play-state: running;
  }
}

/* появление секций при скролле */
main > section.section-reveal:not(.hero--lux) {
  opacity: 0;
  transform: translate3d(0, 40px, 0);
  filter: blur(5px);
  transition:
    opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.85s ease;
}

main > section.section-reveal.is-revealed:not(.hero--lux) {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: none;
}

/* Полоса цифр не скрываем целиком — только анимация карточек (.stat-pop) */

@supports not (background-clip: text) {
  .hero h1 {
    color: var(--text);
    background: none;
    -webkit-text-fill-color: unset;
    filter: none;
  }
}

/* страница политики */
.legal-page main {
  padding-top: 2rem;
  padding-bottom: 4rem;
}

.legal-doc {
  max-width: 52rem;
  margin: 0 auto;
}

.legal-doc h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.5rem);
  font-weight: 600;
  margin: 0 0 0.5rem;
  line-height: 1.15;
}

.legal-doc .legal-updated {
  margin: 0 0 2rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.legal-doc h2 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  margin: 2rem 0 0.65rem;
  color: var(--text);
}

.legal-doc h3 {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 600;
  margin: 1.35rem 0 0.45rem;
  color: var(--text);
}

.legal-doc p,
.legal-doc li {
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.65;
}

.legal-doc p {
  margin: 0 0 1rem;
}

.legal-doc ul {
  margin: 0 0 1rem;
  padding-left: 1.35rem;
}

.legal-doc li {
  margin-bottom: 0.4rem;
}

.legal-doc a {
  font-weight: 600;
}

.masters-canonical {
  margin: 1.5rem 0 2rem;
  padding: 1.1rem 1.25rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  font-size: 0.95rem;
  line-height: 1.55;
}

.masters-canonical p {
  margin: 0;
}

.masters-canonical p + p {
  margin-top: 0.65rem;
}

.masters-canonical .btn {
  margin-top: 0.5rem;
}

[data-theme="light"] .masters-canonical {
  background: var(--surface);
  border-color: rgba(45, 38, 58, 0.1);
}

/* Залипшая вертикальная кнопка «Онлайн-примерка» */
.primerka-tab {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 240;
  display: flex;
  align-items: stretch;
  justify-content: center;
  min-width: 2.35rem;
  padding: 0.85rem 0.4rem;
  border-radius: 14px 0 0 14px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(180deg, #ff5aa8 0%, #ff2d8b 45%, #c44dff 100%);
  box-shadow:
    -4px 0 24px rgba(255, 45, 139, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.12) inset;
  transform: translateY(-50%);
  transition: transform 0.22s ease, box-shadow 0.22s ease, min-width 0.22s ease, padding 0.22s ease;
  -webkit-tap-highlight-color: transparent;
}

.primerka-tab::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 55%);
  pointer-events: none;
}

.primerka-tab__stack {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.35rem 0;
}

.primerka-tab__icon {
  display: block;
  flex-shrink: 0;
  width: 1.05rem;
  height: 1.05rem;
  opacity: 0.95;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}

.primerka-tab__text {
  font-family: var(--font-body, "Manrope", system-ui, sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
}

.primerka-tab:hover {
  min-width: 2.55rem;
  padding-right: 0.5rem;
  transform: translateY(-50%) translateX(-2px);
  box-shadow:
    -8px 0 32px rgba(255, 45, 139, 0.48),
    0 0 0 1px rgba(255, 255, 255, 0.18) inset;
  color: #fff;
}

.primerka-tab:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

@media (max-width: 767px) {
  .primerka-tab {
    min-width: 2rem;
    padding: 0.7rem 0.32rem;
    border-radius: 12px 0 0 12px;
  }

  .primerka-tab__text {
    font-size: 0.66rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .primerka-tab {
    transition: none;
  }
}

[data-theme="light"] .primerka-tab {
  box-shadow:
    -4px 0 20px rgba(255, 45, 139, 0.28),
    0 0 0 1px rgba(255, 45, 139, 0.15) inset;
}

/* ===== Онлайн-примерка: промо-блок сразу под логотипом ===== */
.primerka-promo {
  margin-top: 1.25rem;
  margin-bottom: 0.25rem;
}
.primerka-promo__card {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding: clamp(1.4rem, 3vw, 2.4rem);
  border-radius: calc(var(--radius) + 6px);
  background:
    radial-gradient(ellipse 90% 130% at 100% 0%, rgba(255, 45, 139, 0.2), transparent 60%),
    linear-gradient(150deg, var(--bg-elevated), var(--bg-card-deep));
  border: 1px solid var(--border);
  box-shadow: var(--shadow), 0 0 0 1px rgba(255, 45, 139, 0.06) inset;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    border-color 0.25s ease;
}
.primerka-promo__card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 45, 139, 0.5);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.5), var(--glow-mid);
}
.primerka-promo__glow {
  position: absolute;
  inset: auto -20% -70% auto;
  width: 60%;
  height: 170%;
  background: radial-gradient(circle, rgba(255, 45, 139, 0.28), transparent 70%);
  filter: blur(45px);
  pointer-events: none;
}
.primerka-promo__text {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}
.primerka-promo__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  background: rgba(255, 45, 139, 0.12);
  border: 1px solid var(--border);
  color: var(--pink-hot);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.primerka-promo__badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--pink);
  box-shadow: 0 0 10px var(--pink);
  animation: primerka-promo-pulse 1.6s ease-in-out infinite;
}
@keyframes primerka-promo-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.65); }
}
.primerka-promo__title {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4.6vw, 3rem);
  line-height: 1.05;
  margin: 0.7rem 0 0.55rem;
  background: var(--hero-h1-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.primerka-promo__lead {
  margin: 0 0 1.3rem;
  color: var(--text-muted);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  line-height: 1.5;
  max-width: 38ch;
}
.primerka-promo__btn {
  font-size: 1.02rem;
  padding: 0.85rem 1.9rem;
}
.primerka-promo__visual {
  position: relative;
  flex: 0 0 auto;
  width: clamp(120px, 22vw, 190px);
}
.primerka-promo__photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius);
  border: 2px dashed rgba(255, 45, 139, 0.45);
  background: rgba(255, 45, 139, 0.05);
  color: var(--pink-hot);
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
}
.primerka-promo__photo svg {
  width: 40px;
  height: 40px;
}
@media (max-width: 720px) {
  .primerka-promo__card {
    flex-direction: column-reverse;
    align-items: stretch;
    text-align: center;
    gap: 1.25rem;
  }
  .primerka-promo__lead {
    max-width: none;
  }
  .primerka-promo__badge {
    align-self: center;
  }
  .primerka-promo__visual {
    width: min(150px, 48%);
    margin: 0 auto;
  }
  .primerka-promo__btn {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .primerka-promo__badge-dot { animation: none; }
  .primerka-promo__card { transition: none; }
}
