/* ════════════════════════════════════════════════════════════
   sections-redesign.css
   Re-hierarchy для секций "Как я работаю" + "Чем работаю"
   и новый блок 3D-симулятора с видео.
   Из handoff bundle Claude Design (2026-04-29).
   ════════════════════════════════════════════════════════════ */

/* Section 1 — Как я работаю */
.row-experience .step-num{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:5.5rem;line-height:1;color:#23a592;
  letter-spacing:-.04em;display:block;margin-bottom:1rem;
  font-variant-numeric:tabular-nums;
}
.row-experience .step-eyebrow{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:#343434;display:block;
}
.row-experience .step-anchor{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:1.55rem;line-height:1.18;color:#343434;
  text-transform:uppercase;margin:0 0 .35rem;letter-spacing:.01em;
}
.row-experience .step-text{
  font-family:'Work Sans',sans-serif;
  font-size:1.125rem;line-height:1.625;font-weight:400;
  letter-spacing:normal;color:#767676;margin:0;
}

/* живой таймер */
.live-timer{
  display:inline-flex;align-items:baseline;gap:.5rem;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:1.1rem;color:#23a592;letter-spacing:.08em;
  font-variant-numeric:tabular-nums;
  margin-top:.6rem;
}
.live-timer .dot{
  width:8px;height:8px;border-radius:50%;background:#23a592;
  animation:liveTimerPulse 1.4s ease-in-out infinite;
  display:inline-block;
}
.live-timer .label{
  font-size:.7rem;font-weight:700;letter-spacing:.14em;
  color:#767676;text-transform:uppercase;
}
@keyframes liveTimerPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.35;transform:scale(.7)}
}

/* Section 2 — Чем работаю — hero stats */
.row-experience .stat-key{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:#767676;display:block;margin-bottom:.5rem;
}
.row-experience .stat-hero{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:6.25rem;line-height:.95;color:#23a592;
  letter-spacing:-.045em;display:flex;align-items:baseline;
  gap:.05em;margin:0 0 .5rem;font-variant-numeric:tabular-nums;
}
.row-experience .stat-hero .unit{
  font-size:1.6rem;font-weight:600;color:#23a592;letter-spacing:0;
  align-self:flex-end;padding-bottom:1.4rem;margin-left:.05em;
}
.row-experience .stat-type{
  font-family:'Montserrat',sans-serif;font-weight:600;
  font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;
  color:#343434;display:block;
}
.row-experience .product-name{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:1.55rem;line-height:1.18;color:#343434;
  text-transform:uppercase;margin:0 0 .35rem;
}
.row-experience .product-name .brand{
  display:block;font-size:.78rem;font-weight:700;
  letter-spacing:.18em;color:#23a592;margin-bottom:.45rem;
}
.row-experience .product-text{
  font-family:'Work Sans',sans-serif;
  font-size:1.125rem;line-height:1.625;font-weight:400;
  letter-spacing:normal;color:#767676;margin:0 0 1rem;
}

/* свотчи материала */
.swatch{
  position:relative;width:100%;max-width:200px;height:108px;border-radius:3px;
  overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.1);
  margin:.4rem 0;
}
.swatch::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.22) 48%, transparent 60%);
  background-size:220% 100%;background-position:100% 0;
  transition:background-position 1.2s cubic-bezier(.4,0,.2,1);
}
.row-experience:hover .swatch::after{background-position:-30% 0}
.swatch.monocarbon{background:linear-gradient(180deg,#0d0e10 0%,#1a1c20 100%)}
.swatch.centum{background:linear-gradient(180deg,#e8edf0 0%,#d8e0e6 100%)}
.swatch.crystal{background:linear-gradient(180deg,#dadcdf 0%,#b8bbc0 100%)}
.swatch.crystal::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(circle at 30% 40%, rgba(255,255,255,.4) 0%, transparent 8%),
    radial-gradient(circle at 70% 65%, rgba(255,255,255,.3) 0%, transparent 6%);
}
.swatch .swatch-brand{
  position:absolute;left:.7rem;top:.6rem;z-index:2;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.swatch .swatch-label{
  position:absolute;left:.7rem;bottom:.6rem;z-index:2;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.92);
}
.swatch.centum .swatch-brand,.swatch.crystal .swatch-brand{color:rgba(52,52,52,.45)}
.swatch.centum .swatch-label,.swatch.crystal .swatch-label{color:#3a4944}

/* «Подробнее» link */
.more-link{
  display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:#23a592;border-bottom:1px solid #23a592;padding-bottom:2px;
  transition:color .2s;
}
.more-link:hover{color:#1c8676;border-color:#1c8676}
.more-link .arrow{margin-left:.4em;display:inline-block;transition:transform .2s}
.more-link:hover .arrow{transform:translateX(3px)}
.row-actions{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}

/* counter-up readiness — числа стартуют с нуля для visual swap */
.counter[data-counted=false]{opacity:.5}

/* hover affordance */
.row-experience{transition:background-color .3s ease}
.row-experience .stat-hero,
.row-experience .step-num{transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.row-experience:hover .stat-hero,
.row-experience:hover .step-num{transform:translateX(4px)}

/* responsive */
@media (max-width:767.98px){
  .row-experience .step-num{font-size:4rem;margin-bottom:.5rem}

  #rayno.section{padding:3rem 0}
  #rayno .section-header h2{font-size:1.6rem;line-height:1.15}
  #rayno .row-experience{padding:2rem 0}
  #rayno .row-experience > .col-md-4{margin-bottom:1.4rem}
  #rayno .row-experience > .col-md-4:last-child{margin-bottom:0}

  .row-experience .stat-hero{font-size:4.4rem;line-height:.95;margin:0 0 .4rem}
  .row-experience .stat-hero .unit{font-size:1.2rem;padding-bottom:.85rem}
  .row-experience .stat-key{font-size:.62rem;letter-spacing:.18em;margin-bottom:.5rem}
  .row-experience .stat-type{font-size:.84rem;color:#767676;margin-top:.4rem}

  .swatch{width:200px;max-width:100%;height:108px;margin:0;border-radius:3px}
  .swatch .swatch-brand{font-size:.6rem;left:.7rem;top:.6rem;letter-spacing:.18em}
  .swatch .swatch-label{font-size:.7rem;left:.7rem;bottom:.6rem;letter-spacing:.1em}

  .row-experience .product-name{font-size:1.2rem;line-height:1.2;margin-bottom:.6rem}
  .row-experience .product-name .brand{font-size:.7rem;margin-bottom:.35rem}
  .row-experience .product-text{font-size:1.125rem;line-height:1.625;color:#767676}
}
@media (min-width:768px){
  .row-experience .step-num::after{
    content:'';display:block;width:2.5rem;height:2px;background:#23a592;margin-top:.6rem;
  }
}

/* ═══════════════════════════════════════════════════════════════
   3D-симулятор — стеклянный блок
   ═══════════════════════════════════════════════════════════════ */
.simulator-3d{
  position:relative;padding:5rem 0 6rem;
  background:#ffffff;
  overflow:hidden;
}

.sim-card{
  position:relative;z-index:2;
  max-width:1140px;margin:0 auto;
  background:#0a0b0d;
  border-radius:14px;
  display:block;
  overflow:hidden;
  height:640px;
  box-shadow:0 30px 80px -20px rgba(13,14,16,.35);
  /* Удерживаем композит-слой даже при выходе из viewport — иначе при возврате
     mask и видео пересобираются с задержкой и края «дёргаются». */
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
  contain:layout paint;
}

.sim-stage{
  position:absolute;top:0;bottom:0;left:0;right:-8%;
  z-index:1;
  display:block;overflow:visible;
  background:transparent;
}
.car-wrap{
  position:absolute;top:0;bottom:0;left:0;right:0;display:block;
}
.sim-video,.video-placeholder{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;display:block;
  border:0;border-radius:0;background:#0a0b0d;
  /* Видео всегда на отдельном GPU-слое — при возврате в viewport не пересоздаётся */
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Затемняющий градиент слева — текст читаемый поверх видео */
.sim-card::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,
    rgba(13,14,16,.96) 0%,
    rgba(13,14,16,.9) 28%,
    rgba(13,14,16,.6) 48%,
    rgba(13,14,16,.15) 68%,
    transparent 85%);
}
.sim-card::after{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;z-index:3;
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.4) 50%, transparent 100%);
  pointer-events:none;
}

.sim-card .sim-text{
  position:relative;z-index:3;
  padding:3rem 3rem;
  max-width:520px;
  height:100%;
  display:flex;flex-direction:column;justify-content:center;
}

.sim-eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:1.6rem;
  padding:0;border:0;
}
.sim-eyebrow .dot{
  width:7px;height:7px;border-radius:50%;background:#23a592;
  box-shadow:0 0 0 0 rgba(35,165,146,.7);
  animation:simPulse 2s infinite;
}
@keyframes simPulse{
  0%{box-shadow:0 0 0 0 rgba(35,165,146,.6)}
  70%{box-shadow:0 0 0 8px rgba(35,165,146,0)}
  100%{box-shadow:0 0 0 0 rgba(35,165,146,0)}
}

.sim-card h2{
  color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:3rem;line-height:1.02;margin:0 0 1.5rem;letter-spacing:-.02em;
}
.sim-card h2 .accent{color:#23a592}
.sim-desc{
  color:rgba(255,255,255,.7);font-size:1.05rem;line-height:1.55;
  margin:0 0 2.4rem;max-width:440px;font-weight:400;
}
.sim-cta{
  align-self:flex-start;
  display:inline-flex;align-items:center;gap:.8rem;
  padding:1.15rem 2rem;background:#23a592;color:#fff !important;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;
  border-radius:99px;text-decoration:none !important;
  transition:transform .25s, box-shadow .25s, gap .25s, background .25s;
  box-shadow:0 8px 24px rgba(35,165,146,.35);
  border-bottom:0;
}
.sim-cta:hover,.sim-cta:focus{
  transform:translateY(-2px);gap:1.1rem;background:#1d8e7e;
  color:#fff !important;text-decoration:none !important;border-bottom:0;
  box-shadow:0 12px 32px rgba(35,165,146,.45);
}
.sim-cta .arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;background:#fff;color:#23a592;
  font-size:.8rem;font-weight:700;
}

/* мета-блок */
.sim-meta{
  margin-top:2.6rem;display:flex;flex-direction:column;
  border-top:1px solid rgba(255,255,255,.08);
}
.sim-meta-row{
  display:grid;grid-template-columns:7.5rem 1fr;gap:1.5rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.sim-meta-key{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.45);padding-top:.18rem;
}
.sim-meta-val{
  color:rgba(255,255,255,.92);font-size:.95rem;line-height:1.4;
  font-weight:500;
}
.sim-meta-val b{color:#fff;font-weight:700}
.sim-meta-val .sep{color:rgba(255,255,255,.25);margin:0 .35rem}

/* плейсхолдер пока нет видео */
.video-placeholder{
  position:absolute;inset:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1rem;
  border:none;border-radius:0;
  background:#0a0b0d;
}
.sim-card.light .video-placeholder{background:#e8e8ec}

/* Светлая версия — без карточечности, сливается с белым фоном */
.sim-card.light{
  background:transparent;
  box-shadow:none;
  border-radius:0;
}
.sim-card.light .sim-stage,
.sim-card.light .sim-video,
.sim-card.light .video-placeholder{background:transparent}

/* Растворяем края видео в белый — нет резкого края, нет ощущения карточки */
.sim-card.light .sim-stage{
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, #000 35%, #000 88%, transparent 100%),
    linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image:
    linear-gradient(90deg, transparent 0%, #000 35%, #000 88%, transparent 100%),
    linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
  /* GPU-композитинг — убирает артефакт-полоску по краям маски при AOS-анимации */
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
}

/* Видео внутри маски — тоже на GPU, чтобы границы маски и видео двигались синхронно.
   scale(1.06) скрывает водяной знак Veo за маской по краям видео. */
.sim-card.light .sim-video,
.sim-card.light .video-placeholder{
  transform:translateZ(0) scale(1.10);
  transform-origin:center center;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Диагональный fader — белое от правого нижнего угла до левого верхнего.
   Скрывает Veo-знак и плавно растворяет правую/нижнюю часть видео. */
.sim-card.light .sim-stage::after{
  display:none;
}
.sim-card.light::before{
  background:linear-gradient(90deg,
    rgba(255,255,255,1) 0%,
    rgba(255,255,255,.95) 28%,
    rgba(255,255,255,.6) 48%,
    rgba(255,255,255,.15) 68%,
    transparent 85%);
}
.sim-card.light::after{
  background:none;
}

/* Светлая версия: 3 группы — eyebrow / (h2+desc) / cta */
.sim-card.light .sim-text{
  justify-content:flex-start;
  padding-top:3rem;padding-bottom:3rem;
}
.sim-card.light .sim-text > *{margin:0}
.sim-card.light .sim-text > h2{margin-top:auto;margin-bottom:1.25rem}
.sim-card.light .sim-text > .sim-desc{margin-bottom:0}
.sim-card.light .sim-text > .sim-cta{margin-top:auto}

.sim-card.light .sim-eyebrow{color:#767676}
.sim-card.light h2{color:#0d0e10}
.sim-card.light .sim-desc{color:#5a5a5a}
.sim-card.light .sim-cta{
  background:#0d0e10;
  color:#fff !important;
  border:1px solid #0d0e10;
  border-radius:0;
  box-shadow:none;
}
.sim-card.light .sim-cta:hover,.sim-card.light .sim-cta:focus{
  background:#1d1f24;color:#fff !important;
  box-shadow:none;
}
.sim-card.light .sim-cta .arrow{
  width:auto;height:auto;border-radius:0;background:transparent;
  color:inherit;font-size:1rem;font-weight:400;
}
.sim-card.light .sim-meta{border-top:0}
.sim-card.light .sim-meta-row{border-bottom:0}
.sim-card.light .sim-meta-key{color:#5a5a5a;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.sim-card.light .sim-meta-val{color:#0d0e10}
.sim-card.light .sim-meta-val b{color:#0d0e10;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.sim-card.light .sim-meta-val .sep{color:rgba(0,0,0,.18)}

/* ─── Мобильная адаптация sim-card — Вариант A2 ───
   Текст в normal flow + видео ВНУТРИ потока между описанием и CTA через
   display:contents + flex order. Машина видна целиком (16:9). */
@media (max-width:780px){
  .sim-card{
    height:auto;
    min-height:auto;
    display:flex;
    flex-direction:column;
    padding:3rem 0 3rem;
  }

  /* sim-text "развёртывается" — его дети становятся прямыми детьми sim-card */
  .sim-card .sim-text,
  .sim-card.light .sim-text{
    display:contents;
    padding:0;
    margin:0;
  }

  /* Order: eyebrow → h2 → desc → ВИДЕО → cta */
  .sim-card .sim-eyebrow{order:1}
  .sim-card h2{order:2}
  .sim-card .sim-desc{order:3}
  .sim-card .sim-stage{order:4}
  .sim-card .sim-cta{order:5}

  /* Типография мобильная — эталон #about (Просто доверьтесь мне) */
  .sim-card h2{
    font-family:'Montserrat',sans-serif;
    font-size:2.1rem;line-height:1.2;font-weight:700;
    letter-spacing:normal;color:#343434;
    margin:0 0 1rem;
  }
  .sim-desc{
    font-family:'Work Sans',sans-serif;
    font-size:1.125rem;line-height:1.625;font-weight:400;
    letter-spacing:normal;color:#767676;
    max-width:100%;margin:0 0 1.6rem;
  }
  .sim-eyebrow{font-size:.65rem;margin:0 0 1.4rem}

  /* Кнопка — эталон .btn-below-primary (hero «Позвонить»/«ВКонтакте») */
  .sim-cta{
    display:inline-flex;
    width:auto;
    align-self:flex-start;margin:0;
    padding:14px 24px;
    font-family:'Montserrat',sans-serif;
    font-size:13px;font-weight:600;letter-spacing:.5px;
  }

  /* Светлая версия: обычный вертикальный ритм. Selectors ниже имеют specificity > reset */
  .sim-card.light .sim-text > .sim-eyebrow{margin-top:0;margin-bottom:1.6rem}
  .sim-card.light .sim-text > h2{margin-top:0;margin-bottom:1.5rem;color:#343434}
  .sim-card.light .sim-text > .sim-desc{margin-top:0;margin-bottom:3rem;color:#767676}
  .sim-card.light .sim-stage{margin-top:0;margin-bottom:3rem}
  .sim-card.light .sim-text > .sim-cta{margin-top:0;margin-bottom:0}
  .sim-card.light .sim-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:161.5px;
    height:61.25px;
    align-self:flex-start;
    background:#1a1a1a;
    border:1px solid #1a1a1a;
    border-radius:0;
    padding:14px 24px;
    font-size:13px;font-weight:600;letter-spacing:.5px;
    gap:.5rem;
    white-space:nowrap;
  }
  .sim-card.light .sim-cta .arrow{display:none}

  /* Видео-полоса 16:9 — между description и CTA, по ширине container'а */
  .sim-stage{
    position:relative;
    top:auto;left:auto;right:auto;bottom:auto;
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    overflow:hidden;
    margin:0 0 2.5rem;
  }
  .sim-video,
  .video-placeholder{
    position:absolute;top:0;left:0;
    width:100%;height:100%;
    object-fit:cover;
  }

  /* Скрываем градиент-overlay (был для overlay-композиции) */
  .sim-card::before,
  .sim-card::after,
  .sim-card.light::before,
  .sim-card.light::after{display:none}

  /* На светлой версии mask только вертикальный — растворяет верх и низ видео в белый. */
  .sim-card.light .sim-stage{
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
    -webkit-mask-composite:source-over;
    mask-composite:add;
  }

  /* На мобиле тоже растянут на всё видео — наследует диагональный fader */

  /* sim-meta мелче (если используется на других страницах) */
  .sim-meta{margin-top:1.3rem}
  .sim-meta-row{grid-template-columns:5rem 1fr;gap:.8rem;padding:.55rem 0}
  .sim-meta-key{font-size:.58rem}
  .sim-meta-val{font-size:.8rem}
}

/* ─────────────────────────────────────────────────────────────────
   UNIFIED CTA GLASS BUTTONS
   Все 4 ключевые кнопки на сайте — одной формы/типографики.
   Цвета по семантике: filled (чёрная) и outline (светлая).
   ────────────────────────────────────────────────────────────────── */

/* ── База: форма + типографика для всех 4 кнопок ── */
.hero-desktop-btn,
.hero-cta-below-video .btn-below-primary,
.hero-cta-below-video .btn-below-secondary,
.sim-card.light .sim-cta,
section.bg-light .btn{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 200px !important;
  height: 50px !important;
  padding: 0 32px !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  white-space: nowrap !important;
  border: 1px solid transparent !important;
  transition:
    transform .3s ease,
    background .3s ease,
    box-shadow .3s ease,
    border-color .3s ease,
    color .3s ease !important;
  box-sizing: border-box !important;
}

/* ── FILLED (чёрные стеклянные): ПОЗВОНИТЬ, СИМУЛЯТОР, НАПИСАТЬ ── */
.hero-desktop-btn.filled,
.hero-cta-below-video .btn-below-primary,
.sim-card.light .sim-cta,
section.bg-light .btn{
  background: rgba(0,0,0,0.92) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  backdrop-filter: blur(20px) saturate(1.5);
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.14) !important;
  color: #ffffff !important;
}
/* Иконки и стрелки внутри чёрных filled-кнопок — бирюзовый бренд-акцент */
.hero-desktop-btn.filled ion-icon,
.hero-cta-below-video .btn-below-primary ion-icon,
.sim-card.light .sim-cta .arrow,
section.bg-light .btn ion-icon{
  color: #23a592 !important;
  transition: color .3s ease !important;
}
/* На hover иконка остаётся бирюзовой (фон уже бирюзовый) — переход на белую */
.hero-desktop-btn.filled:hover ion-icon,
.hero-cta-below-video .btn-below-primary:hover ion-icon,
.sim-card.light .sim-cta:hover .arrow,
section.bg-light .btn:hover ion-icon{
  color: #ffffff !important;
}
.hero-desktop-btn.filled:hover,
.hero-desktop-btn.filled:active,
.hero-cta-below-video .btn-below-primary:hover,
.hero-cta-below-video .btn-below-primary:active,
.sim-card.light .sim-cta:hover,
.sim-card.light .sim-cta:focus,
section.bg-light .btn:hover,
section.bg-light .btn:focus,
section.bg-light .btn:active{
  background: rgba(35,165,146,0.85) !important;
  transform: translateY(-2px) !important;
  box-shadow:
    0 14px 36px rgba(35,165,146,0.40),
    inset 0 1px 0 rgba(255,255,255,0.22) !important;
  border-color: rgba(255,255,255,0.28) !important;
  color: #ffffff !important;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .hero-desktop-btn.filled,
  .hero-cta-below-video .btn-below-primary,
  .sim-card.light .sim-cta,
  section.bg-light .btn{ background: #0a0a0a !important; }
}

/* Filled-кнопки поверх видео (ПОЗВОНИТЬ + СИМУЛЯТОР) —
   сплошной чёрный без blur. blur пропускал светлые кадры
   видео сквозь полупрозрачный фон, кнопки выглядели серыми. */
.hero-desktop-btn.filled,
.hero-cta-below-video .btn-below-primary,
.sim-card.light .sim-cta{
  background: #000000 !important;
  background-color: #000000 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  /* Убираем 1px-рамку и inset highlight — они давали белый кант
     по периметру и тонкую светлую полосу сверху (видны на мобильном). */
  border: 1px solid transparent !important;
  box-shadow: 0 10px 28px rgba(0,0,0,0.30) !important;
}
.hero-desktop-btn.filled:hover,
.hero-desktop-btn.filled:active,
.hero-cta-below-video .btn-below-primary:hover,
.hero-cta-below-video .btn-below-primary:active,
.sim-card.light .sim-cta:hover,
.sim-card.light .sim-cta:focus{
  background: #23a592 !important;
  background-color: #23a592 !important;
  box-shadow: 0 14px 36px rgba(35,165,146,0.40) !important;
  border-color: transparent !important;
}

/* На мобильном — жёстко прячем все pseudo-элементы вокруг sim-cta
   и над .sim-card, чтобы они не давали белые полоски/градиенты. */
@media (max-width: 780px){
  .sim-card::before,
  .sim-card::after,
  .sim-card.light::before,
  .sim-card.light::after,
  .sim-card.light .sim-cta::before,
  .sim-card.light .sim-cta::after,
  .sim-card.light .sim-text::before,
  .sim-card.light .sim-text::after{
    display: none !important;
    content: none !important;
    background: none !important;
  }

  /* Корень бага: .sim-card имеет overflow:hidden — на мобильном
     он обрезал левый border-radius у кнопки СИМУЛЯТОР (кнопка
     упиралась в левый край контейнера, клиппинг резал угол).
     Снимаем только overflow — layout кнопки остаётся как был. */
  .sim-card.light{
    overflow: visible !important;
  }
}

/* ─── Бирюзовый фонарик в тёмной CTA «ПОЗВОНИТЬ» (бегущий блик) ─── */
.btn-below-primary,
.hero-desktop-btn.filled{
  position: relative;
  overflow: hidden;
  isolation: isolate;
  /* border-radius наследуется из unified-блока (4px) — кнопка остаётся квадратной */
}
.btn-below-primary::before,
.hero-desktop-btn.filled::before{
  content: "";
  position: absolute;
  top: -50%; left: -90%;
  width: 90%; height: 200%;
  background: radial-gradient(ellipse at center,
    rgba(80,230,210,1) 0%,
    rgba(35,165,146,.90) 25%,
    rgba(35,165,146,.45) 50%,
    rgba(35,165,146,.15) 70%,
    transparent 85%);
  filter: blur(10px);
  mix-blend-mode: screen;
  animation: ze-beam 5s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
/* контент кнопки поверх фонарика */
.btn-below-primary > *,
.hero-desktop-btn.filled > *{
  position: relative;
  z-index: 1;
}
@keyframes ze-beam{
  0%   { transform: translateX(0%);    opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { transform: translateX(200%);  opacity: 0; }
}
@media (prefers-reduced-motion: reduce){
  .btn-below-primary::before,
  .hero-desktop-btn.filled::before{ animation: none; opacity: 0; }
}

/* ── OUTLINE (светлая стеклянная): ВКОНТАКТЕ ── */
.hero-desktop-btn.outline,
.hero-cta-below-video .btn-below-secondary{
  background: rgba(255,255,255,0.78) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  backdrop-filter: blur(20px) saturate(1.5);
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,0.30),
    inset 0 1px 0 rgba(255,255,255,0.85) !important;
  color: #0a0a0a !important;
}
.hero-desktop-btn.outline:hover,
.hero-desktop-btn.outline:active,
.hero-cta-below-video .btn-below-secondary:hover,
.hero-cta-below-video .btn-below-secondary:active{
  background: rgba(255,255,255,0.95) !important;
  transform: translateY(-2px) !important;
  box-shadow:
    0 14px 36px rgba(0,0,0,0.40),
    inset 0 1px 0 rgba(255,255,255,1) !important;
  border-color: rgba(255,255,255,0.85) !important;
  color: #0a0a0a !important;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .hero-desktop-btn.outline,
  .hero-cta-below-video .btn-below-secondary{ background: rgba(255,255,255,0.92) !important; }
}

/* «3D» внутри СИМУЛЯТОР — бирюзовый акцент, остальной текст белый */
.sim-card.light .sim-cta .sim-cta-accent{
  color: #23a592 !important;
  font-weight: 700 !important;
}
.sim-card.light .sim-cta:hover .sim-cta-accent,
.sim-card.light .sim-cta:focus .sim-cta-accent{
  color: #ffffff !important;
}

/* ─────────────────────────────────────────────────────────────────
   АНИМАЦИИ ИКОНОК В CTA-КНОПКАХ
   Все ненавязчивые: короткая фаза «жест», потом длинная пауза.
   prefers-reduced-motion отключает всё — уважаем системную настройку.
   ────────────────────────────────────────────────────────────────── */

/* ПОЗВОНИТЬ — трубка «звонит»: серия покачиваний ±20°, потом пауза */
@keyframes phone-ring{
  0%, 50%, 100% { transform: rotate(0deg); }
  5%  { transform: rotate(-22deg); }
  10% { transform: rotate(22deg); }
  15% { transform: rotate(-18deg); }
  20% { transform: rotate(18deg); }
  25% { transform: rotate(-14deg); }
  30% { transform: rotate(14deg); }
  35% { transform: rotate(-8deg); }
  40% { transform: rotate(8deg); }
  45% { transform: rotate(0deg); }
}
.hero-desktop-btn.filled ion-icon[name="call-outline"],
.hero-cta-below-video .btn-below-primary ion-icon[name="call-outline"]{
  display: inline-block !important;
  transform-origin: 50% 70%;
  will-change: transform;
  animation: phone-ring 2.4s ease-in-out infinite;
}

/* НАПИСАТЬ — письмо «отправляется»: float вверх + scale + лёгкий fade */
@keyframes mail-float{
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.08); }
}
section.bg-light .btn ion-icon[name="mail-outline"]{
  display: inline-block !important;
  will-change: transform;
  animation: mail-float 2s ease-in-out infinite;
}

/* СИМУЛЯТОР 3D — куб вращается в плоскости + лёгкий tilt (видно сразу) */
@keyframes cube-spin{
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(180deg) scale(1.12); }
  100% { transform: rotate(360deg) scale(1); }
}
.sim-card.light .sim-cta ion-icon[name="cube-outline"]{
  display: inline-block !important;
  will-change: transform;
  animation: cube-spin 3s linear infinite;
}

/* На hover все анимации замирают — пользователь сосредоточен на действии */
.hero-desktop-btn.filled:hover ion-icon[name="call-outline"],
.hero-cta-below-video .btn-below-primary:hover ion-icon[name="call-outline"],
section.bg-light .btn:hover ion-icon[name="mail-outline"],
.sim-card.light .sim-cta:hover ion-icon[name="cube-outline"]{
  animation-play-state: paused;
}

/* Уважаем настройку «уменьшить движение» */
@media (prefers-reduced-motion: reduce){
  .hero-desktop-btn.filled ion-icon,
  .hero-cta-below-video .btn-below-primary ion-icon,
  section.bg-light .btn ion-icon,
  .sim-card.light .sim-cta ion-icon{
    animation: none !important;
  }
}

/* На мобильных <420px — слегка сужаем чтобы влезало в столбец */
@media (max-width: 420px){
  .hero-desktop-btn,
  .hero-cta-below-video .btn-below-primary,
  .hero-cta-below-video .btn-below-secondary,
  .sim-card.light .sim-cta,
  section.bg-light .btn{
    min-width: 180px !important;
    padding: 0 24px !important;
    font-size: 12px !important;
  }
}

