/* Мобильный Safari/Chrome: не «плавать» масштабом из‑за авто‑zoom и пересчёта текста */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Поля < 16px на iOS при фокусе вызывают принудительный zoom страницы */
@media (max-width: 767px) {
  #contact-form input:not([type="checkbox"]):not([type="radio"]),
  #contact-form textarea,
  #contact-form select {
    font-size: 16px;
  }
}

/* Уменьшить ложный double‑tap zoom на кликабельных элементах шапки */
@media (hover: none) and (pointer: coarse) {
  #site-nav a[href],
  #site-nav button {
    touch-action: manipulation;
  }
}

/* Дублируем стек Tailwind: класс .font-sans иначе перебивал бы body одним системным шрифтом */
body.min-h-screen.font-sans {
  font-family: "Onest", ui-sans-serif, system-ui, sans-serif;
}

#site-nav {
  transition: background 0.4s, border-color 0.4s;
  background: transparent;
}
#site-nav.nav-scrolled {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 2px solid rgba(233, 30, 140, 0.2);
}
#site-nav .desk-link {
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  transition: all 0.2s;
  cursor: pointer;
  white-space: nowrap;
  background: transparent;
  border: none;
  font-family: inherit;
}
#site-nav:not(.nav-scrolled) .desk-link {
  color: rgba(255, 255, 255, 0.9);
}
#site-nav:not(.nav-scrolled) .desk-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.15);
}
#site-nav.nav-scrolled .desk-link {
  color: #374151;
}
#site-nav.nav-scrolled .desk-link:hover {
  color: #e91e8c;
  background: #fce4f3;
}
#site-nav .nav-meta {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.25;
}
#site-nav:not(.nav-scrolled) .nav-meta {
  color: rgba(255, 255, 255, 0.8);
}
#site-nav.nav-scrolled .nav-meta {
  color: #6b7280;
}
#site-nav:not(.nav-scrolled) .nav-meta a:hover {
  color: #fff;
}
#site-nav.nav-scrolled .nav-meta a:hover {
  color: #e91e8c;
}
#site-nav .nav-cta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.625rem 1.5rem;
  border-radius: 9999px;
  cursor: pointer;
  border: none;
  font-family: inherit;
  transition: all 0.2s;
  white-space: nowrap;
}
#site-nav:not(.nav-scrolled) .nav-cta {
  background: #ffd600;
  color: #111827;
}
#site-nav:not(.nav-scrolled) .nav-cta:hover {
  background: #fde047;
}
#site-nav.nav-scrolled .nav-cta {
  background: #e91e8c;
  color: #fff;
  box-shadow: 0 10px 15px -3px rgba(233, 30, 140, 0.3);
}
#site-nav.nav-scrolled .nav-cta:hover {
  background: #c2177a;
}
#site-nav .nav-meta-mob {
  font-size: 10px;
  font-weight: 500;
  line-height: 1.25;
}
#site-nav:not(.nav-scrolled) .nav-meta-mob {
  color: rgba(255, 255, 255, 0.8);
}
#site-nav.nav-scrolled .nav-meta-mob {
  color: #6b7280;
}
#site-nav:not(.nav-scrolled) .nav-meta-mob a:hover {
  color: #fff;
}
#site-nav.nav-scrolled .nav-meta-mob a:hover {
  color: #e91e8c;
}
#site-nav:not(.nav-scrolled) #nav-menu-btn {
  color: #fff;
}
#site-nav:not(.nav-scrolled) #nav-menu-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}
#site-nav.nav-scrolled #nav-menu-btn {
  color: #1f2937;
}
#site-nav.nav-scrolled #nav-menu-btn:hover {
  background: #f3f4f6;
}

/*
  Те же анимации, без отключения: подсказки композитору и отдельный слой для героя,
  чтобы снизить рывки на мобильных GPU. JS по-прежнему крутит только видимую карусель.
*/
#home {
  isolation: isolate;
}
#home [data-hero-root] {
  transform: translate3d(0, 0, 0);
  isolation: isolate;
  backface-visibility: hidden;
}
#home [data-hero-layer] {
  will-change: opacity;
  backface-visibility: hidden;
}
#home .ken-burns {
  will-change: transform;
}
#home .blob-morph {
  will-change: border-radius;
}
#home .float-anim,
#home .float-anim-2,
#home .float-anim-3,
#home .spin-slow {
  will-change: transform;
}
.gradient-text-brand,
.gradient-text-magenta-yellow {
  will-change: background-position;
}

/*
  iOS Safari (в т.ч. Chrome на iPhone): лишние слои от will-change/isolation/translate3d на корне героя
  часто дают обратный эффект на ProMotion / больших экранах. Анимации не трогаем — только стек композита.
*/
html.ios #home {
  isolation: auto;
}
html.ios #home [data-hero-root] {
  transform: none;
  isolation: auto;
  backface-visibility: visible;
}
html.ios #home [data-hero-layer] {
  will-change: auto;
  backface-visibility: hidden;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
html.ios #home .ken-burns,
html.ios #home .blob-morph,
html.ios #home .float-anim,
html.ios #home .float-anim-2,
html.ios #home .float-anim-3,
html.ios #home .spin-slow,
html.ios .gradient-text-brand,
html.ios .gradient-text-magenta-yellow {
  will-change: auto;
}

/* Заголовок блока цен: читаемый градиент на белом */
.gradient-text-readable {
  background: linear-gradient(135deg, #ad1457 0%, #006064 40%, #e65100 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Жёлтая/оранжевая колонка цен (JS вставляет класс) */
.programs-price-panel--light,
.programs-price-panel--light i {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}
