/* ============================================================
   IA · GLOBAL — общие компоненты всего сайта
   Файл: intelligence-art-frontend/assets/css/ia-global.css
   Грузится на ВСЕХ экранах после ia-tokens.css.
   Состав: база/сброс · стекло · шапка · футер · кнопки ·
   универсальный слой ia-* · чипы ia-filter · стрелки каруселей ·
   переходы секций · глобальные фиксы.
   Странично-специфичное здесь ЗАПРЕЩЕНО (живёт в ia-home/-course/-shop/-tools).
   ============================================================ */

/* ── БАЗА / СБРОС ── */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--font-ui);
  background:var(--teal-slate);
  color:var(--frost-grey);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }

/* ── LIQUID GLASS — переиспользуемая утилита ── */
.glass{
  position:relative;
  background:var(--glass-tint);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  border:1px solid var(--glass-edge);
  border-radius:18px;
  box-shadow:var(--glass-inner),
             0 20px 50px -20px rgba(0,0,0,0.65);
  isolation:isolate;
}
/* Верхний блик-полоска — имитация преломлённого света по краю стекла */
.glass::before{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,
            rgba(230,242,243,0.40) 0%,
            rgba(230,242,243,0.04) 28%,
            rgba(95,198,212,0.06) 60%,
            rgba(230,242,243,0.14) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
  z-index:2;
}
/* Прогрессивное улучшение: реальное преломление фона по краю. */
.refraction .glass--refract{
  -webkit-backdrop-filter:blur(18px) saturate(150%) url(#glass-distortion);
  backdrop-filter:blur(18px) saturate(150%) url(#glass-distortion);
}

/* ── АДАПТИВ: переменные шапки + логотип (глобальная часть) ── */
@media (max-width:680px){
  :root{ --header-h:74px; --header-h-min:62px; }
  .logo__word{ font-size:16px; letter-spacing:.16em; }
}

/* ── REDUCED MOTION — глобально ── */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}


/* ── ФУТЕР (шаблон сайтвайдный) ── */
.site-footer{
  position:relative;
  background:#070D0D;                 /* темнее атмосферы секций — отдельная зона */
  color:var(--frost-grey);
  padding:clamp(56px,8vh,104px) 0 clamp(28px,4vh,44px);
}
/* тонкий ХОЛОДНЫЙ разделитель сверху */
.site-footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,
    transparent 0%, rgba(95,198,212,.0) 6%,
    rgba(95,198,212,.45) 50%,
    rgba(95,198,212,.0) 94%, transparent 100%);
  box-shadow:0 0 18px -2px rgba(95,198,212,.3);
}

/* — Верх: вордмарк + монограмма — */
.s8-brand{
  display:flex; align-items:center; gap:clamp(18px,2.2vw,34px);
  padding-bottom:clamp(36px,5vh,64px);
}
.s8-brand__mark{
  width:clamp(64px,7vw,96px); aspect-ratio:1; flex-shrink:0;
  display:grid; place-items:center;
  border-radius:18px;
  border:1px solid var(--glass-edge);
  background:linear-gradient(160deg, rgba(95,198,212,.16), rgba(22,40,42,.42));
  box-shadow:inset 0 1px 0 rgba(230,242,243,.22),
             0 0 28px -10px rgba(95,198,212,.4);
  font-family:var(--font-display);
  font-weight:800; font-size:clamp(26px,3vw,40px); letter-spacing:-1px;
  color:var(--ice-white);
}
.s8-brand__word{
  font-family:var(--font-ui);
  font-weight:800;
  font-size:clamp(2rem,6vw,5.6rem);
  line-height:.96; letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ice-white);
}

/* — Заголовки колонок и ссылки — */
.s8-col__head{
  font-family:var(--font-ui);
  font-weight:700; font-size:12.5px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(159,184,188,.7);
  margin-bottom:clamp(18px,2vw,26px);
}
.s8-links{ display:flex; flex-direction:column; gap:13px; }
.s8-links a{
  display:inline-block; width:fit-content;
  font-size:clamp(14.5px,1.05vw,16px); line-height:1.4;
  color:var(--frost-grey);
  transition:color .2s ease, transform .2s ease;
}
.s8-links a:hover{ color:var(--glacier); transform:translateX(3px); }

/* — Зона подписки: заголовок — */
.s8-sub__title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.4rem,2.1vw,2rem);
  line-height:1.1; letter-spacing:-0.01em; text-transform:uppercase;
  color:var(--ice-white);
  margin-bottom:clamp(18px,2vw,24px);
}
.s8-sub__title .em{ color:var(--ember); text-shadow:0 0 24px rgba(232,148,60,.35); }

/* соцыконки — холодный стиль, hover-glow */
.s8-social{ display:flex; gap:12px; margin-top:clamp(20px,2.4vw,28px); }
.s8-social a{
  width:44px; height:44px; border-radius:12px;
  display:grid; place-items:center;
  background:rgba(22,40,42,.4);
  border:1px solid var(--glass-edge);
  box-shadow:var(--glass-inner);
  color:var(--frost-grey);
  transition:color .2s ease, transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.s8-social a svg{ width:19px; height:19px; }
.s8-social a:hover{
  color:var(--glacier);
  transform:translateY(-3px);
  border-color:rgba(95,198,212,.5);
  box-shadow:var(--glass-inner), 0 0 24px -6px rgba(95,198,212,.5);
}

/* бейдж DMCA Protected — приглушённо */
.s8-dmca{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:clamp(24px,3vw,32px);
  padding:8px 14px; border-radius:8px;
  background:rgba(22,40,42,.34);
  border:1px solid rgba(230,242,243,.10);
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px; font-weight:600; letter-spacing:.12em;
  color:rgba(159,184,188,.6);
  opacity:.85;
}
.s8-dmca svg{ width:14px; height:14px; color:rgba(95,198,212,.6); }
.s8-dmca b{ color:rgba(230,242,243,.78); font-weight:700; letter-spacing:.08em; }

/* — Нижняя полоса — */
.s8-bottom{
  padding-top:clamp(28px,3.4vw,40px);
  border-top:1px solid rgba(230,242,243,.08);
}
.s8-bottom__row{
  display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:clamp(14px,2vw,28px);
  margin-bottom:clamp(16px,2vw,22px);
}
.s8-copy{
  font-family:var(--font-ui); font-weight:700;
  font-size:14.5px; color:rgba(230,242,243,.72);
}
.s8-legal-links{ display:flex; flex-wrap:wrap; gap:clamp(16px,2vw,30px); }
.s8-legal-links a{
  font-size:14px; color:var(--frost-grey);
  transition:color .2s ease;
}
.s8-legal-links a:hover{ color:var(--glacier); }
/* юридическая строка — мелко, приглушённо */
.s8-legal-text{
  max-width:none;
  font-size:13px; line-height:1.6;
  color:rgba(159,184,188,.55);
}

/* верхняя линия-разделитель над колонками (нативная сборка) */
.site-footer .s8-divider-top{
  border-top:1px solid rgba(230,242,243,.08);
  padding-top:clamp(36px,5vh,56px);
}

/* — Адаптив футера — */
@media (max-width:680px){
  .s8-brand{ flex-direction:column; align-items:flex-start; gap:16px; }
  .s8-bottom__row{ flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce){
  .s8-links a, .s8-social a, .s8-legal-links a{ transition:none !important; }
}


/* ============================================================
   КНОПКИ под Elementor — целятся в саму кнопку, не в обёртку.
   Класс в Advanced → CSS Classes, ОДНИМ словом:
     ia-btn-primary  — главная, янтарная
     ia-btn-ghost    — вторая, холодное стекло
   ============================================================ */
.ia-btn-primary .elementor-button, a.ia-btn-primary,
.ia-btn-ghost   .elementor-button, a.ia-btn-ghost{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:18px 34px !important;
  font-family:"Manrope",sans-serif;
  font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; line-height:1;
  border-radius:15px; color:#E6F2F3 !important;
  transition:transform .2s ease, box-shadow .2s ease;
}
/* блик-пробег при наведении */
.ia-btn-primary .elementor-button::after, a.ia-btn-primary::after,
.ia-btn-ghost   .elementor-button::after, a.ia-btn-ghost::after{
  content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%;
  background:linear-gradient(100deg, transparent, rgba(230,242,243,.35), transparent);
  transform:skewX(-18deg); transition:left .55s cubic-bezier(.4,0,.2,1); z-index:3;
}
.ia-btn-primary:hover .elementor-button::after, a.ia-btn-primary:hover::after,
.ia-btn-ghost:hover   .elementor-button::after, a.ia-btn-ghost:hover::after{ left:130%; }
.ia-btn-primary:hover .elementor-button, a.ia-btn-primary:hover,
.ia-btn-ghost:hover   .elementor-button, a.ia-btn-ghost:hover{ transform:scale(1.02); }
/* ЯНТАРНАЯ */
.ia-btn-primary .elementor-button, a.ia-btn-primary{
  background:linear-gradient(160deg, rgba(232,148,60,.42), rgba(201,122,58,.30)) !important;
  border:1px solid rgba(232,148,60,.55) !important;
  box-shadow:inset 0 1px 0 rgba(255,225,190,.35), 0 14px 38px -12px rgba(232,148,60,.55);
}
.ia-btn-primary:hover .elementor-button, a.ia-btn-primary:hover{
  box-shadow:inset 0 1px 0 rgba(255,225,190,.45), 0 18px 48px -10px rgba(232,148,60,.75);
}
/* ХОЛОДНОЕ СТЕКЛО */
.ia-btn-ghost .elementor-button, a.ia-btn-ghost{
  background:rgba(22,40,42,.32) !important;
  border:1px solid rgba(230,242,243,.14) !important;
  box-shadow:inset 0 1px 0 rgba(230,242,243,.06);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.ia-btn-ghost:hover .elementor-button, a.ia-btn-ghost:hover{
  border-color:rgba(95,198,212,.5) !important;
  box-shadow:inset 0 1px 0 rgba(230,242,243,.06), 0 14px 38px -16px rgba(95,198,212,.4);
}


/* ============================================================
   ШАПКА — стеклянная плашка меню
   Класс ia-header-glass вешается на ВНУТРЕННИЙ контейнер шапки.
   ============================================================ */
.ia-header-glass{
  position:relative;
  border-radius:20px;
  background:rgba(14,26,27,.55);
  -webkit-backdrop-filter:blur(26px) saturate(155%);
  backdrop-filter:blur(26px) saturate(155%);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.10),
             0 0 0 1px rgba(95,198,212,.07),
             0 0 22px -6px rgba(95,198,212,.22),
             0 20px 50px -20px rgba(0,0,0,.65);
}
/* тонкая светящаяся рамка-блик по краю */
.ia-header-glass::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:linear-gradient(135deg,
            rgba(230,242,243,.5) 0%, rgba(230,242,243,.05) 30%,
            rgba(95,198,212,.12) 65%, rgba(230,242,243,.2) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none; z-index:0;
}

/* плавающая центрированная шапка */
.ia-header-glass{
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(1280px, calc(100% - 48px));
}

/* убрать пустую оболочку шаблона шапки (она держит высоту в потоке) */
header.elementor-location-header{
  position:absolute;
  height:0;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  overflow:visible;   /* чтобы плавающая плашка и выпадашки были видны */
}

/* ШАПКА — плавное сжатие при скролле */
.ia-header-glass{
  transition:padding .35s ease, background .35s ease, box-shadow .35s ease, min-height .35s ease;
}
.ia-header-glass img,
.ia-header-glass .elementor-button{
  transition:transform .35s ease;
}

/* когда залипла и проскроллена */
.ia-header-glass.elementor-sticky--effects{
  padding-top:4px !important;
  padding-bottom:4px !important;
  min-height:0 !important;
  background:rgba(14,26,27,.72) !important;
}
.ia-header-glass.elementor-sticky--effects img{
  transform:scale(.86);
}
.ia-header-glass.elementor-sticky--effects .elementor-button{
  transform:scale(.93);
}

/* выпадашка меню (десктоп) — отступ от шапки, скругление, стекло, воздух */
.ia-header-glass .elementor-nav-menu .sub-menu,
.ia-header-glass .elementor-nav-menu ul.sub-menu{
  margin-top:12px !important;
  border-radius:16px !important;
  padding:8px !important;
  background:rgba(16,42,46,.92) !important;
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(230,242,243,.10) !important;
  box-shadow:0 24px 55px -18px rgba(0,0,0,.75) !important;
  overflow:hidden;
}
/* сами пункты — скругление подсветки внутри */
.ia-header-glass .elementor-nav-menu .sub-menu a{
  border-radius:10px !important;
}

/* СВЕТОВОЙ ПРОБЕГ по шапке (отдельный слой, выпадашки не трогает) */
.ia-header-glass::after{
  content:""; position:absolute; inset:0;
  border-radius:inherit;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
  -webkit-mask:linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0);
  background:linear-gradient(108deg,
    transparent 0%,
    rgba(230,242,243,.22) 47%,
    rgba(95,198,212,.18) 53%,
    transparent 100%);
  background-repeat:no-repeat;
  background-size:26% 200%;
  background-position:-40% 0;
  animation:ia-header-sweep 9s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes ia-header-sweep{
  0%   { background-position:-40% 0; opacity:0; }
  6%   { opacity:1; }
  32%  { background-position:140% 0; opacity:1; }
  34%,100%{ opacity:0; }
}
/* содержимое шапки — поверх блика и рамки */
.ia-header-glass > *{ position:relative; z-index:1; }

@media (prefers-reduced-motion: reduce){
  .ia-header-glass::after{ animation:none; }
}

/* ── ШАПКА на мобиле: во всю ширину, бургер слева / кнопка справа ── */
@media (max-width: 767px){
  .ia-header-glass,
  .ia-header-glass.elementor-sticky--effects{
    left:12px !important;
    right:12px !important;
    transform:none !important;
    width:auto !important;
    max-width:none !important;
    border-radius:14px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:8px 10px;
  }

  /* порядок: бургер слева, кнопка справа */
  .ia-header-glass .elementor-widget-wordpress-menu{ order:1; flex:0 0 auto; }
  .ia-header-glass .elementor-widget-button{ order:2; flex:0 0 auto; }

  /* ГАМБУРГЕР — скруглённый квадрат, холодное стекло, без синего обвода фокуса */
  .ia-header-glass .elementor-menu-toggle,
  .ia-header-glass .elementor-menu-toggle:focus,
  .ia-header-glass .elementor-menu-toggle:focus-visible{
    width:46px;
    height:46px;
    border-radius:12px;
    border:1px solid rgba(230,242,243,.14);
    background:rgba(22,40,42,.32);
    color:#E6F2F3;
    display:flex;
    align-items:center;
    justify-content:center;
    outline:none !important;
    box-shadow:none !important;
  }
  .ia-header-glass .elementor-menu-toggle svg{ fill:#E6F2F3; width:22px; height:22px; }
  .ia-header-glass .elementor-menu-toggle:hover{ border-color:rgba(95,198,212,.5); }

  /* КНОПКА «Мой аккаунт» — компактная, фирменная форма */
  .ia-header-glass a.ia-btn-ghost,
  .ia-header-glass .ia-btn-ghost .elementor-button{
    padding:12px 18px !important;
    font-size:12px !important;
    letter-spacing:1.5px !important;
    border-radius:12px !important;
  }

  /* ВЫПАДАШКА бургера: от краёв ЭКРАНА, стекло, отрыв от шапки */
  .ia-header-glass nav.elementor-nav-menu--dropdown,
  .ia-header-glass .elementor-nav-menu--dropdown.elementor-nav-menu__container{
    position:fixed !important;
    top:80px !important;          /* ниже шапки; подгоняется по факту */
    left:12px !important;
    right:12px !important;
    width:auto !important;
    max-height:calc(100vh - 100px);
    overflow-y:auto;
    margin-top:0 !important;
    border-radius:16px !important;
    padding:8px !important;
    background:rgba(16,42,46,.94) !important;
    -webkit-backdrop-filter:blur(18px) saturate(150%);
    backdrop-filter:blur(18px) saturate(150%);
    border:1px solid rgba(230,242,243,.10) !important;
    box-shadow:0 18px 40px -18px rgba(0,0,0,.6) !important;
  }

  /* пункты меню: воздух, скругление подсветки, разделители */
  .ia-header-glass .elementor-nav-menu--dropdown a{
    border-radius:10px !important;
    padding:14px 18px !important;
    color:#E6F2F3 !important;
  }
  .ia-header-glass .elementor-nav-menu--dropdown li{
    border-bottom:1px solid rgba(230,242,243,.07);
  }
  .ia-header-glass .elementor-nav-menu--dropdown li:last-child{
    border-bottom:none;
  }
  .ia-header-glass .elementor-nav-menu--dropdown a:hover,
  .ia-header-glass .elementor-nav-menu--dropdown a:focus{
    background:rgba(95,198,212,.10) !important;
    color:#5FC6D4 !important;
  }

  /* ВЛОЖЕННЫЕ подпункты (Курсы → список): мягче, без своей жирной тени */
  .ia-header-glass .elementor-nav-menu--dropdown .sub-menu{
    position:static !important;
    left:auto !important;
    right:auto !important;
    margin:4px 8px 8px !important;
    border-radius:12px !important;
    background:rgba(10,24,26,.6) !important;
    border:1px solid rgba(230,242,243,.06) !important;
    box-shadow:none !important;
    padding:4px !important;
  }
  .ia-header-glass .elementor-nav-menu--dropdown .sub-menu li{
    border-bottom:none;
  }
  .ia-header-glass .elementor-nav-menu--dropdown .sub-menu a{
    padding:12px 16px !important;
    font-size:14px !important;
  }
}


/* ── ФУТЕР · форма — фокус-свечение полей ── */
.site-footer .elementor-field:focus{
  border-color:rgba(95,198,212,.6) !important;
  box-shadow:0 0 0 3px rgba(95,198,212,.16), 0 0 22px -6px rgba(95,198,212,.5) !important;
  outline:none !important;
}


/* ── БЕСШОВНЫЕ ПЕРЕХОДЫ СЕКЦИЙ ── */
/* ── БЕСШОВНЫЕ ПЕРЕХОДЫ СЕКЦИЙ: растворение краёв в базовый тон ── */
.ia-fade-top{ position:relative; }
.ia-fade-top::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:clamp(90px, 14vw, 220px);
  background:linear-gradient(to bottom, #0E1A1B 0%, rgba(14,26,27,.65) 45%, rgba(14,26,27,0) 100%);
  pointer-events:none; z-index:2;
}
.ia-fade-bottom{ position:relative; }
.ia-fade-bottom::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:clamp(90px, 14vw, 220px);
  background:linear-gradient(to top, #0E1A1B 0%, rgba(14,26,27,.65) 45%, rgba(14,26,27,0) 100%);
  pointer-events:none; z-index:2;
}


/* ══ УНИВЕРСАЛЬНЫЙ СЛОЙ ia-* (секция, заголовки, панель, карточка,
   чип, бейдж, цена, список, линия) ══ */
/* ── СЕКЦИЯ: холодная кинематографичная атмосфера + зерно ──
   Вешается на внешний контейнер любой секции новой страницы.
   Это тот же фон, что у section2-7, но без привязки к номеру. */
.ia-section{
  position:relative;
  padding:clamp(40px,7vh,104px) 0 clamp(72px,13vh,168px);
  background:
    radial-gradient(125% 56% at 50% 4%, rgba(18,42,52,0.50) 0%, transparent 54%),
    radial-gradient(120% 72% at 16% 100%, rgba(15,34,42,0.46) 0%, transparent 60%),
    linear-gradient(180deg, #0A1A1F 0%, #0B1E25 32%, #0A1A1F 66%, #0C2028 100%);
}
.ia-section::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='ni'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ni)'/%3E%3C/svg%3E");
}
.ia-section > *{ position:relative; z-index:1; }

/* ── ШЕЛЛ: центрированная колонка контента по сетке сайта ── */
.ia-shell{
  max-width:var(--shell);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
	

/* ── ЗАГОЛОВКИ СЕКЦИЙ (Playfair 900, капс, тень) ──
   Внутри текста слово-акцент оборачивается в <span class="em">.
   H2-уровень = как s3-head__title; H3-уровень поменьше. */
.ia-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2rem, 4.7vw, 4.4rem);
  line-height:1.04; letter-spacing:-0.01em;
  text-transform:uppercase;
  color:var(--ice-white);
  text-shadow:0 4px 40px rgba(0,0,0,.5);
  margin-bottom:24px;
}
.ia-title--sm{ font-size:clamp(1.5rem, 3vw, 2.65rem); line-height:1.15; }
.ia-title .em{ color:var(--ember); text-shadow:0 0 30px rgba(232,148,60,.4); }
.ia-title .cool{ color:var(--glacier); text-shadow:0 0 26px rgba(95,198,212,.45); }

/* подзаголовок под ia-title */
.ia-sub{
  max-width:66ch;
  font-size:clamp(16px,1.3vw,20px);
  line-height:1.62;
  color:rgba(230,242,243,0.82);
}

/* ── ПАНЕЛЬ: стеклянная плита под текст (как faculty__panel,
   но без фикс-ширины — размер задаёшь в Elementor).
   Использовать ВМЕСТЕ со стеклом: ia-panel glass glass--refract */
.ia-panel{
  padding:clamp(28px,3vw,46px);
  border-radius:24px;
}

/* ── КАРТОЧКА: универсальная (курс/товар/статья).
   Использовать: ia-card glass glass--refract
   Внутри опционально: ia-card__media (img), ia-card__body */
.ia-card{
  display:flex; flex-direction:column;
  border-radius:24px; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.ia-card__media{
  position:relative; overflow:hidden;
  height:clamp(220px,22vw,360px);
}
.ia-card__media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.ia-card__media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 52%, rgba(10,26,31,.55) 100%);
}
	/* мобила: обложка карточки — квадрат, как исходники */
@media (max-width:680px){
  .ia-card__media{
    height:auto;
    aspect-ratio:1/1;
  }
}
.ia-card__body{
  display:flex; flex-direction:column; flex:1;
  padding:clamp(22px,1.9vw,32px);
}
	/* если Elementor вставил обёртку e-con-inner — она должна
   растягиваться и быть колонкой, а не глушить рост body */
.ia-card .e-con-inner{
  flex-grow:1;
  display:flex;
  flex-direction:column;
  width:100%;
}
.ia-card .ia-card__body{ flex-grow:1 !important; }
	
/* hover: подъём + холодный rim-glow + зум фото */
.ia-card:hover{
  transform:translateY(-8px);
  background:rgba(28,50,54,.52);
  box-shadow:var(--glass-inner),
             0 0 0 1px rgba(95,198,212,.20),
             0 0 32px -6px rgba(95,198,212,.42),
             0 30px 60px -24px rgba(0,0,0,.72);
}
.ia-card:hover .ia-card__media img{ transform:scale(1.06); }
	
	/* производительность hover-анимации карточек (Chrome) */
.ia-card{
  will-change:transform;
  transform:translateZ(0);           /* карточка живёт на своём GPU-слое */
}
.ia-card .ia-card__media img{
  will-change:transform;
  backface-visibility:hidden;        /* убирает мерцание при scale */
}

/* ── КНОПКА OWNED / DOWNLOAD — активная тёмно-стеклянная кнопка на купленном
   товаре (та же семантика, что START у курса: «доступ уже есть»). Само­достаточна
   (грузится глобально), чтобы работать в каталоге магазина, на карточке
   кросс-селла в корзине и на странице товара. */
.ia-card__btn--owned{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  padding:15px 28px;
  font-family:var(--font-ui, "Manrope", sans-serif);
  font-size:13px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; line-height:1;
  border-radius:15px;
  text-decoration:none;
  color:var(--ice-white, #E6F2F3);
  background:rgba(22,40,42,.45);
  border:1px solid rgba(230,242,243,.18);
  box-shadow:var(--glass-inner, inset 0 1px 0 rgba(230,242,243,.07));
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ia-card__btn--owned::after{
  content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%;
  background:linear-gradient(100deg, rgba(230,242,243,0), rgba(230,242,243,.3), rgba(230,242,243,0));
  transform:skewX(-18deg);
  transition:left .55s cubic-bezier(.4,0,.2,1);
  z-index:3;
}
.ia-card__btn--owned:hover::after{ left:130%; }
.ia-card__btn--owned:hover{
  transform:scale(1.03);
  border-color:rgba(95,198,212,.5);
  box-shadow:var(--glass-inner, inset 0 1px 0 rgba(230,242,243,.07)),
             0 0 26px -8px rgba(95,198,212,.5);
}
/* owned-кнопка: цвет прибит в обоих состояниях, вендорские link-стили не протекают */
a.ia-card__btn--owned,
a.ia-card__btn--owned:hover,
a.ia-card__btn--owned:focus,
a.ia-card__btn--owned:visited{
  color:var(--ice-white, #E6F2F3) !important;
}
a.ia-card__btn--owned:hover{
  border-color:rgba(95,198,212,.5);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.06),
             0 14px 38px -16px rgba(95,198,212,.4);
}

/* ── ЧИП: маленькая стеклянная плитка (фичи, факты, шаги).
   Использовать: ia-chip glass glass--refract */
.ia-chip{
  padding:clamp(20px,1.8vw,28px);
  border-radius:18px;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.ia-chip:hover{
  transform:translateY(-6px);
  background:rgba(28,50,54,.5);
  box-shadow:var(--glass-inner),
             0 0 0 1px rgba(95,198,212,.20),
             0 0 30px -6px rgba(95,198,212,.42),
             0 26px 52px -22px rgba(0,0,0,.68);
}

/* ── БЕЙДЖ: тёплая пилюля-акцент (как «100% бесплатно»).
   Точка внутри: <span class="dot"></span> */
.ia-badge{
  display:inline-flex; align-items:center; gap:9px;
  padding:11px 22px; border-radius:100px;
  font-family:var(--font-ui); font-weight:800;
  font-size:clamp(12px,1.1vw,15px); letter-spacing:.14em; text-transform:uppercase;
  color:var(--ice-white);
  background:linear-gradient(160deg, rgba(232,148,60,.5), rgba(201,122,58,.36));
  border:1px solid rgba(232,148,60,.65);
  box-shadow:inset 0 1px 0 rgba(255,225,190,.4),
             0 0 36px -6px rgba(232,148,60,.65),
             0 14px 30px -14px rgba(0,0,0,.55);
}
.ia-badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--ember);
  box-shadow:0 0 12px var(--ember); }
/* холодный вариант бейджа */
.ia-badge--cool{
  background:rgba(22,40,42,.4);
  border:1px solid rgba(95,198,212,.4);
  box-shadow:var(--glass-inner), 0 0 26px -8px rgba(95,198,212,.4);
}
.ia-badge--cool .dot{ background:var(--glacier); box-shadow:0 0 12px var(--glacier); }

/* ── ЦЕНА: от $750 / $390 (универсальная копия faculty__price).
   HTML: <div class="ia-price"><span class="from">от</span>
   <span class="old">$750</span><span class="sep">/</span>
   <span class="now">$390</span></div> */
.ia-price{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:12px;
}
.ia-price .from{
  font-size:13px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--frost-grey);
}
.ia-price .old{
  font-size:30px; color:var(--frost-grey); text-decoration:line-through;
  text-decoration-thickness:1.5px;
}
.ia-price .sep{ color:var(--frost-grey); font-size:20px; }
.ia-price .now{
  font-size:clamp(42px,3vw,50px); font-weight:800; color:var(--ice-white);
  text-shadow:0 0 20px rgba(95,198,212,.45);
}

/* ── СПИСОК С ЯНТАРНЫМИ МАРКЕРАМИ (как навыки в карточках S3).
   Вешается на ul: ia-list */
.ia-list{ display:flex; flex-direction:column; gap:11px; }
.ia-list li{
  position:relative; padding-left:22px;
  color:rgba(230,242,243,.86);
}
.ia-list li::before{
  content:""; position:absolute; left:4px; top:.52em;
  width:6px; height:6px; border-radius:50%;
  background:var(--ember);
  box-shadow:0 0 8px rgba(232,148,60,.6);
}
/* холодный вариант маркеров */
.ia-list--cool li::before{
  background:var(--glacier);
  box-shadow:0 0 8px rgba(95,198,212,.6);
}

/* ── ТОНКАЯ АКЦЕНТНАЯ ЛИНИЯ под заголовком (как s3-card__rule) ── */
.ia-rule{
  width:54px; height:2px; border-radius:2px;
  background:linear-gradient(90deg, rgba(232,148,60,0), var(--ember), rgba(232,148,60,0));
}
.ia-rule--cool{
  background:linear-gradient(90deg, rgba(95,198,212,0), var(--glacier), rgba(95,198,212,0));
}

/* ── СТРЕЛКИ КАРУСЕЛЕЙ (общий компонент: showreel главной, Tools и др.) ── */
/* Стрелки прокрутки ленты — стеклянные */
.s5-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(14,26,27,.62); border:1px solid var(--glass-edge);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:var(--glass-inner), 0 0 22px -8px rgba(95,198,212,.3);
  color:var(--ice-white);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, opacity .2s ease;
}
.s5-arrow svg{ width:18px; height:18px; }
.s5-arrow:hover{ border-color:rgba(95,198,212,.5);
  box-shadow:var(--glass-inner), 0 0 26px -4px rgba(95,198,212,.5); }
.s5-arrow--prev{ left:-10px; }
.s5-arrow--next{ right:-10px; }
.s5-arrow[disabled]{ opacity:0; pointer-events:none; }

/* ── ЧИПЫ-ФИЛЬТРЫ (общий компонент: Tools-подфильтры и др.;
   страничные скоупы могут дополнять) ── */
/* ── ФИЛЬТРЫ КАТАЛОГА ──
   Блок чипов под заголовком страницы. Логика активного цвета —
   как у активного пункта меню: ледяная подсветка. */
.ia-filters{
  display:flex; flex-wrap:wrap; gap:12px;
}
.ia-filters .ia-filter{
  padding:12px 24px;
  border-radius:100px;
  font-family:var(--font-ui);
  font-weight:700; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--frost-grey);
  background:rgba(22,40,42,.32);
  border:1px solid rgba(230,242,243,.14);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.06);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  cursor:pointer;
  transition:color .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .2s ease;
}
.ia-filters .ia-filter:hover{
  color:var(--ice-white);
  border-color:rgba(95,198,212,.5);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.06), 0 10px 28px -14px rgba(95,198,212,.4);
  transform:translateY(-2px);
}
.ia-filters .ia-filter.is-active{
  color:var(--ice-white);
  background:rgba(95,198,212,.14);
  border-color:rgba(95,198,212,.55);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.12),
             0 0 0 1px rgba(95,198,212,.18),
             0 0 26px -6px rgba(95,198,212,.5);
}

@media (max-width:680px){
  .ia-filters{ gap:9px; }
  .ia-filters .ia-filter{ padding:10px 18px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce){
  .ia-filter{ transition:none; }
  .ia-filter:hover{ transform:none; }
}

/* ── ГЛОБАЛЬНЫЕ ФИКСЫ ── */
.elementor-shape svg{ max-width:100vw; }
html, body{ overflow-x:clip; }

/* ── FACULTY PRICE — общий компонент (главная, курсы) ── */
.faculty__price{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:12px;
  margin:26px 0 28px;
}
.faculty__price .from{
  font-size:13px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--frost-grey);
}
.faculty__price .old{
  font-size:30px; color:var(--frost-grey); text-decoration:line-through;
  text-decoration-thickness:1.5px;
}
.faculty__price .sep{ color:var(--frost-grey); font-size:20px; }
.faculty__price .now{
  font-size:clamp(42px,3vw,50px); font-weight:800; color:var(--ice-white);
  text-shadow:0 0 20px rgba(95,198,212,.45);
}

/* ── SECTION HEADING — заголовок секции с иглой (глобальный компонент) ── */
.ia-section-heading .elementor-heading-title,
h2.ia-section-heading, h3.ia-section-heading{
  padding-bottom:16px;
  background:linear-gradient(90deg,
    rgba(230,242,243,0) 0%,
    rgba(230,242,243,.4) 20%,
    rgba(230,242,243,.4) 80%,
    rgba(230,242,243,0) 100%) left bottom / 100% 1px no-repeat;
}

/* -- \u0413\u041e\u0420\u0418\u0417\u041e\u041d\u0422\u0410\u041b\u042c\u041d\u041e\u0415 \u041f\u0410\u041d\u041e\u0420\u0410\u041c\u0418\u0420\u041e\u0412\u0410\u041d\u0418\u0415 (overscroll) --
   \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0442\u044f\u043d\u0443\u0442\u044c \u0435\u0451 \u0432\u0431\u043e\u043a
   (\u0440\u0435\u0437\u0438\u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u043e\u043b\u043b). \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u2014
   \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 pull-to-refresh \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c. */
html, body{
  overscroll-behavior-x:none;
}
/* \u0444\u043e\u0440\u043c\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u0432 \u0444\u0443\u0442\u0435\u0440\u0435 \u0442\u043e\u0440\u0447\u0430\u043b\u0430 \u043d\u0430 6px */
.elementor-form,
.elementor-form .elementor-form-fields-wrapper{
  max-width:100%;
}

/* ============================================================
   AUTH · ФОРМЫ ВХОДА И РЕГИСТРАЦИИ — общий компонент

   Два вендорских шаблона с одинаковой начинкой:
     .academy-login-form-wrapper — попап по Enroll, /dashboard для гостя
     .academy-reg-form          — /student-registration, /instructor-registration
   Оба живут в ia-global.css: форма логина вылетает на любой
   странице, регистрация пойдёт туда же при переходе на попап.

   Вендор целится в `.wrapper .academy-form-group .X` (0,3,0) — бьём
   удвоением обёртки, без !important. Исключения только два:
   инлайн-стили React-модалки и вендорское .academy-btn:hover{box-shadow:none!important}
   ============================================================ */

/* — Карточка: тёмное стекло вместо белой плашки.
     Верхний отступ — от --header-h, чтобы форма не уезжала под шапку — */
.academy-login-form-wrapper.academy-login-form-wrapper,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper,
.academy-reg-form.academy-reg-form{
  margin:calc(var(--header-h) + 56px) auto 60px;
  padding:34px 34px 26px;
  border:1px solid rgba(230,242,243,.10);
  border-radius:20px;
  background:rgba(14,26,27,.55);
  -webkit-backdrop-filter:blur(26px) saturate(155%);
          backdrop-filter:blur(26px) saturate(155%);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.10),
             0 0 0 1px rgba(95,198,212,.07),
             0 20px 50px -20px rgba(0,0,0,.65);
  font-family:var(--font-ui);
}
.academy-login-form-wrapper.academy-login-form-wrapper,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper{ max-width:460px; }
.academy-reg-form.academy-reg-form{ max-width:760px; padding:40px 40px 30px; }

/* вендорская тень при наведении на карточку — гасим */
.academy-login-form-wrapper.academy-login-form-wrapper:hover,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper:hover,
.academy-reg-form.academy-reg-form:hover{
  box-shadow:inset 0 1px 0 rgba(230,242,243,.10),
             0 0 0 1px rgba(95,198,212,.07),
             0 20px 50px -20px rgba(0,0,0,.65);
}

/* — Сетка регистрации: вендор = bootstrap-пара (margin -15 у ряда,
     padding 15 у колонок). Обнуляем ОБА и ставим честный gap — */
.academy-reg-form.academy-reg-form .academy-row{
  margin-left:0;
  margin-right:0;
  gap:0 20px;
}
.academy-reg-form.academy-reg-form .academy-row > .academy-col{
  padding-left:0;
  padding-right:0;
  min-width:0;
}

/* — Заголовок формы логина — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-heading,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-heading{
  margin:0 0 26px;
  font-family:var(--font-display);
  font-size:clamp(24px,3.2vw,30px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.4px;
  color:var(--ice-white);
  text-align:center;
}

/* — Подписи полей — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group label,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group label,
.academy-reg-form.academy-reg-form .academy-form-group label{
  margin-bottom:8px;
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:600;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--frost-grey);
}

/* — Поля ввода — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control,
.academy-reg-form.academy-reg-form .academy-form-control{
  height:52px;
  padding:14px 46px 14px 16px;
  border:1px solid rgba(230,242,243,.14);
  border-radius:12px;
  background:rgba(10,26,31,.55);
  font-family:var(--font-ui);
  font-size:15px;
  color:var(--ice-white);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control::placeholder,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control::placeholder,
.academy-reg-form.academy-reg-form .academy-form-control::placeholder{
  color:rgba(159,184,188,.55);
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control:hover,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control:hover,
.academy-reg-form.academy-reg-form .academy-form-control:hover{
  border-color:rgba(230,242,243,.22);
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control:focus,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control:focus,
.academy-reg-form.academy-reg-form .academy-form-control:focus{
  border-color:rgba(95,198,212,.6);
  background:rgba(10,26,31,.75);
  box-shadow:0 0 0 3px rgba(95,198,212,.16), 0 0 22px -6px rgba(95,198,212,.5);
  outline:none;
}
/* автозаполнение Chrome заливает поле белым — перебиваем */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control:-webkit-autofill,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control:-webkit-autofill,
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control:-webkit-autofill:hover,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control:-webkit-autofill:hover,
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-control:-webkit-autofill:focus,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-control:-webkit-autofill:focus,
.academy-reg-form.academy-reg-form .academy-form-control:-webkit-autofill,
.academy-reg-form.academy-reg-form .academy-form-control:-webkit-autofill:hover,
.academy-reg-form.academy-reg-form .academy-form-control:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ice-white);
  -webkit-box-shadow:inset 0 0 0 1000px rgba(12,30,35,.98);
  caret-color:var(--ice-white);
  transition:background-color 9999s ease-in-out 0s;
}

/* — Глазок пароля (вендор ставит его отрицательным margin, глиф — в ::before) — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group .toggle-password,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group .toggle-password,
.academy-reg-form.academy-reg-form .academy-form-group .toggle-password{
  margin-top:16px;
  margin-left:-42px;
  font-size:18px;
  color:transparent;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group .toggle-password::before,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group .toggle-password::before,
.academy-reg-form.academy-reg-form .academy-form-group .toggle-password::before{
  color:rgba(159,184,188,.75);
  transition:color .2s ease;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group .toggle-password:hover::before,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group .toggle-password:hover::before,
.academy-reg-form.academy-reg-form .academy-form-group .toggle-password:hover::before{
  color:var(--glacier);
}

/* — Строка «Remember me» / «Reset password» — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group__forgetmenot label,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group__forgetmenot label{
  margin:0;
  font-size:14px;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
  color:var(--frost-grey);
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-group__forgetmenot input[type=checkbox],
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-form-group__forgetmenot input[type=checkbox]{
  width:18px;
  height:18px;
  margin-right:10px;
  border:1px solid rgba(230,242,243,.22);
  border-radius:5px;
  background:rgba(10,26,31,.55);
  accent-color:var(--ember);
  cursor:pointer;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-text-link{
  font-size:14px;
  font-weight:500;
  color:var(--glacier);
  text-decoration:none;
  transition:color .2s ease;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-form-text-link:hover{
  color:var(--ice-white);
}

/* — Кнопка отправки: янтарный канон (.55 покой → .75 hover) — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple,
.academy-reg-form.academy-reg-form .academy-btn--bg-purple{
  position:relative;
  overflow:hidden;
  width:100%;
  height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid rgba(232,148,60,.55);
  border-radius:15px;
  background:linear-gradient(160deg, rgba(232,148,60,.42), rgba(201,122,58,.30));
  font-family:var(--font-ui);
  font-size:14px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  line-height:1;
  color:var(--ice-white);
  box-shadow:inset 0 1px 0 rgba(255,225,190,.35), 0 14px 38px -12px rgba(232,148,60,.55);
  transition:transform .2s ease, box-shadow .2s ease;
}
/* вендор гасит тень на hover через !important — отвечаем тем же */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple:hover,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple:hover,
.academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple:focus,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple:focus,
.academy-reg-form.academy-reg-form .academy-btn--bg-purple:hover,
.academy-reg-form.academy-reg-form .academy-btn--bg-purple:focus{
  background:linear-gradient(160deg, rgba(232,148,60,.42), rgba(201,122,58,.30));
  color:var(--ice-white);
  transform:scale(1.02);
  box-shadow:inset 0 1px 0 rgba(255,225,190,.45), 0 18px 48px -10px rgba(232,148,60,.75) !important;
}
/* блик-перелив: переиспользуем вендорский ::after вместо своего слоя */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple::after,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple::after,
.academy-reg-form.academy-reg-form .academy-btn--bg-purple::after{
  top:0;
  bottom:0;
  left:-60%;
  width:45%;
  height:auto;
  background:linear-gradient(100deg, rgba(230,242,243,0), rgba(230,242,243,.35), rgba(230,242,243,0));
  transform:skewX(-18deg);
  transition:left .55s cubic-bezier(.4,0,.2,1);
  z-index:3;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple:hover::after,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple:hover::after,
.academy-reg-form.academy-reg-form .academy-btn--bg-purple:hover::after{
  left:130%;
}

/* — Строка «Don’t have an account?» — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-info,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-info{
  margin:18px 0 0;
  font-size:14px;
  color:var(--frost-grey);
  text-align:center;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-info a,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-info a{
  color:var(--glacier);
  font-weight:600;
  text-decoration:none;
  transition:color .2s ease;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-info a:hover,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-info a:hover{
  color:var(--ice-white);
}

/* — Статусы ответа формы — */
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-status__success,
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-status__error,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-status__success,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-status__error,
.academy-reg-form.academy-reg-form .academy-register-form-status__success,
.academy-reg-form.academy-reg-form .academy-register-form-status__error{
  padding:12px 16px;
  border-radius:12px;
  font-size:14px;
  line-height:1.5;
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-status__success,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-status__success,
.academy-reg-form.academy-reg-form .academy-register-form-status__success{
  border:1px solid rgba(95,198,212,.35);
  background:rgba(95,198,212,.10);
  color:var(--ice-white);
}
.academy-login-form-wrapper.academy-login-form-wrapper .academy-login-form-status__error,
.academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-password-reset-form-status__error,
.academy-reg-form.academy-reg-form .academy-register-form-status__error{
  border:1px solid rgba(224,86,86,.40);
  background:rgba(224,86,86,.12);
  color:#F3C9C9;
}

/* — Разделитель OR и контейнер Google —
     саму кнопку рисует Google внутри своего iframe — красить там нечего */
.academy-login-form-wrapper .academy-social-login__divider,
.academy-reg-form .academy-social-login__divider{
  margin:22px 0 16px;
  font-size:13px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:rgba(159,184,188,.7);
}
.academy-login-form-wrapper .academy-social-login__divider::before,
.academy-login-form-wrapper .academy-social-login__divider::after,
.academy-reg-form .academy-social-login__divider::before,
.academy-reg-form .academy-social-login__divider::after{
  border-bottom:1px solid rgba(230,242,243,.12);
}
.academy-login-form-wrapper .academy-social-login__google,
.academy-reg-form .academy-social-login__google{
  display:flex;
  justify-content:center;
  margin:0 0 6px;
}


/* ============================================================
   AUTH · ПОПАП ЛОГИНА (React-модалка вендора)
   Оверлей и подложка заданы ИНЛАЙНОМ — только !important.
   ============================================================ */
.ReactModal__Overlay:has(.academy-react-modal--popup-login){
  background:rgba(6,16,19,.72) !important;
  -webkit-backdrop-filter:blur(10px) saturate(120%);
          backdrop-filter:blur(10px) saturate(120%);
}
.ReactModal__Content:has(.academy-react-modal--popup-login){
  margin-top:6vh !important;
  padding:0 !important;
  border-radius:20px !important;
  background:transparent !important;
  box-shadow:none !important;
  max-width:calc(100vw - 24px);
}

.academy-react-modal.academy-react-modal--popup-login{
  width:min(460px, calc(100vw - 24px));
  padding-top:0;
  border-radius:20px;
  background:transparent;
}
.academy-react-modal--popup-login .academy-react-modal__content{
  padding:0;
  background:transparent;
  overflow:visible;
}
/* в попапе форма не отбивается от шапки — отступы держит модалка */
.academy-react-modal--popup-login .academy-react-modal__content .academy-login-form-wrapper{
  margin:0;
  padding:34px 30px 26px;
  max-width:none;
}

/* крестик закрытия — стеклянный кружок.
   Обёртка с backdrop-filter создаёт свой контекст наложения и перекрывает
   кнопку, идущую раньше в разметке — поднимаем явно. */
.academy-react-modal--popup-login .academy-react-modal__content .academy-btn-close-modal{
  position:absolute;
  z-index:5;
  top:-14px;
  right:-14px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid rgba(230,242,243,.16);
  border-radius:50%;
  background:rgba(22,40,42,.75);
  -webkit-backdrop-filter:blur(10px);
          backdrop-filter:blur(10px);
  box-shadow:0 10px 26px -10px rgba(0,0,0,.7);
  transition:border-color .2s ease, transform .2s ease;
}
.academy-react-modal--popup-login .academy-react-modal__content .academy-btn-close-modal:hover{
  border-color:rgba(95,198,212,.5);
  transform:scale(1.06);
}
.academy-react-modal--popup-login .academy-react-modal__content .academy-btn-close-modal .academy-icon--close::before{
  color:var(--ice-white);
  font-size:15px;
  transition:color .2s ease;
}
.academy-react-modal--popup-login .academy-react-modal__content .academy-btn-close-modal:hover .academy-icon--close::before{
  color:var(--glacier);
}

/* — Плашка результата подтверждения email (прилетает на дашборд) — */
.academy-verify-registration.academy-verify-registration{
  max-width:640px;
  margin:0 auto 20px;
  padding:14px 18px;
  border-radius:12px;
  font-family:var(--font-ui);
  font-size:14px;
}
.academy-verify-registration.academy-verify-registration--success{
  border:1px solid rgba(95,198,212,.35);
  background:rgba(95,198,212,.10);
  color:var(--ice-white);
}
.academy-verify-registration.academy-verify-registration--error{
  border:1px solid rgba(224,86,86,.40);
  background:rgba(224,86,86,.12);
  color:#F3C9C9;
}

/* — Планшет и ниже: регистрация в одну колонку — */
@media (max-width:767px){
  .academy-reg-form.academy-reg-form .academy-row{
    flex-direction:column;
    gap:0;
  }
  .academy-reg-form.academy-reg-form .academy-row > .academy-col{
    flex:0 0 100%;
    max-width:100%;
  }
}

@media (max-width:640px){
  .academy-login-form-wrapper.academy-login-form-wrapper,
  .academy-password-reset-form-wrapper.academy-password-reset-form-wrapper,
  .academy-reg-form.academy-reg-form{
    margin:calc(var(--header-h) + 32px) auto 40px;
    padding:26px 20px 20px;
    border-radius:16px;
  }
  .academy-react-modal--popup-login .academy-react-modal__content .academy-login-form-wrapper{
    margin:0;
    padding:28px 20px 20px;
  }
  .ReactModal__Content:has(.academy-react-modal--popup-login){
    margin-top:4vh !important;
  }
  .academy-react-modal--popup-login .academy-react-modal__content .academy-btn-close-modal{
    top:-10px;
    right:-6px;
  }
}

@media (prefers-reduced-motion: reduce){
  .academy-login-form-wrapper.academy-login-form-wrapper .academy-btn--bg-purple::after,
  .academy-password-reset-form-wrapper.academy-password-reset-form-wrapper .academy-btn--bg-purple::after,
  .academy-reg-form.academy-reg-form .academy-btn--bg-purple::after{
    transition:none;
  }
}

/* ============================================================
   AUTH · ЗАГЛУШКА «УЖЕ ЗАЛОГИНЕН»
   Один шаблон .academy-reg-thankyou на обеих страницах регистрации:
   вендор подменяет им форму, если человек уже вошёл (студент,
   инструктор или админ). Отличается только текст заголовка.
   ============================================================ */
.academy-reg-thankyou.academy-reg-thankyou{
  max-width:560px;
  margin:calc(var(--header-h) + 56px) auto 60px;
  padding:46px 34px 40px;
  border:1px solid rgba(230,242,243,.10);
  border-radius:20px;
  background:rgba(14,26,27,.55);
  -webkit-backdrop-filter:blur(26px) saturate(155%);
          backdrop-filter:blur(26px) saturate(155%);
  box-shadow:inset 0 1px 0 rgba(230,242,243,.10),
             0 0 0 1px rgba(95,198,212,.07),
             0 20px 50px -20px rgba(0,0,0,.65);
  font-family:var(--font-ui);
  text-align:center;
}
.academy-reg-thankyou.academy-reg-thankyou .academy-reg-thankyou__heading{
  margin:0 0 14px;
  font-family:var(--font-display);
  font-size:clamp(26px,3.4vw,34px);
  font-weight:700;
  line-height:1.25;
  letter-spacing:.3px;
  color:var(--ice-white);
}
.academy-reg-thankyou.academy-reg-thankyou .academy-reg-thankyou__description{
  margin:0 0 30px;
  font-size:17px;
  line-height:1.5;
  color:var(--frost-grey);
}
/* вендорская жёлтая плашка ошибки */
.academy-reg-thankyou.academy-reg-thankyou .academy-reg-thankyou__error{
  margin-bottom:24px;
  padding:14px 18px;
  border:1px solid rgba(232,148,60,.40);
  border-radius:12px;
  background:rgba(232,148,60,.12);
  font-size:14px;
  font-weight:500;
  color:#F0D2AE;
}

/* кнопка Go to Dashboard — янтарный канон */
.academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple{
  position:relative;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:18px 34px;
  border:1px solid rgba(232,148,60,.55);
  border-radius:15px;
  background:linear-gradient(160deg, rgba(232,148,60,.42), rgba(201,122,58,.30));
  font-family:var(--font-ui);
  font-size:14px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  line-height:1;
  color:var(--ice-white);
  text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,225,190,.35), 0 14px 38px -12px rgba(232,148,60,.55);
  transition:transform .2s ease, box-shadow .2s ease;
}
.academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple:hover,
.academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple:focus{
  background:linear-gradient(160deg, rgba(232,148,60,.42), rgba(201,122,58,.30));
  color:var(--ice-white);
  transform:scale(1.02);
  box-shadow:inset 0 1px 0 rgba(255,225,190,.45), 0 18px 48px -10px rgba(232,148,60,.75) !important;
}
.academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple::after{
  top:0;
  bottom:0;
  left:-60%;
  width:45%;
  height:auto;
  background:linear-gradient(100deg, rgba(230,242,243,0), rgba(230,242,243,.35), rgba(230,242,243,0));
  transform:skewX(-18deg);
  transition:left .55s cubic-bezier(.4,0,.2,1);
  z-index:3;
}
.academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple:hover::after{
  left:130%;
}

/* строка «You are Logged in as … (Logout)» — выдаётся шорткодом логина
   залогиненному пользователю */
.academy-logged-in-message{
  max-width:560px;
  margin:calc(var(--header-h) + 56px) auto 60px;
  font-family:var(--font-ui);
  font-size:16px;
  color:var(--frost-grey);
  text-align:center;
}
.academy-logged-in-message a{
  color:var(--glacier);
  font-weight:600;
  text-decoration:none;
  transition:color .2s ease;
}
.academy-logged-in-message a:hover{ color:var(--ice-white); }

@media (max-width:640px){
  .academy-reg-thankyou.academy-reg-thankyou{
    margin:calc(var(--header-h) + 32px) auto 40px;
    padding:32px 20px 28px;
    border-radius:16px;
  }
  .academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple{
    width:100%;
    padding:16px 24px;
  }
  .academy-logged-in-message{
    margin:calc(var(--header-h) + 32px) auto 40px;
  }
}

@media (prefers-reduced-motion: reduce){
  .academy-reg-thankyou.academy-reg-thankyou .academy-btn--bg-purple::after{ transition:none; }
}

/* ============================================================
   AUTH · ВИДЫ ВНУТРИ ПОПАПА (register / reset)
   Разметка приходит с нашего роута в обёртке .ia-popup-auth.
   Сами формы уже покрашены выше — здесь только геометрия под модалку:
   снять отступ из-под шапки и сложить регистрацию в одну колонку.
   ============================================================ */
.academy-react-modal--popup-login .academy-react-modal__content .academy-reg-form.academy-reg-form,
.academy-react-modal--popup-login .academy-react-modal__content .academy-password-reset-form-wrapper.academy-password-reset-form-wrapper{
  margin:0;
  padding:34px 30px 26px;
  max-width:none;
}
/* в узкой модалке две колонки не живут — строим столбиком */
.academy-react-modal--popup-login .academy-reg-form.academy-reg-form .academy-row{
  flex-direction:column;
  gap:0;
}
.academy-react-modal--popup-login .academy-reg-form.academy-reg-form .academy-row > .academy-col{
  flex:0 0 100%;
  max-width:100%;
}

/* ссылка возврата к логину */
.ia-popup-auth__back{
  margin:16px 0 0;
  font-family:var(--font-ui);
  font-size:14px;
  text-align:center;
}
.ia-popup-auth__back a{
  color:var(--glacier);
  font-weight:600;
  text-decoration:none;
  transition:color .2s ease;
}
.ia-popup-auth__back a:hover{ color:var(--ice-white); }

/* плавная подмена содержимого при переключении вида */
.academy-react-modal--popup-login .academy-react-modal__content > div{
  transition:opacity .18s ease;
}

/* ── КНОПКА АККАУНТА в шапке (HTML-виджет) ──
   Стекло и блик наследуются от .ia-btn-ghost, но там паддинги героя —
   в шапке кнопка должна быть компактной и сжиматься вместе с логотипом
   при залипании. Обе надписи лежат в одной ячейке сетки — ширину держит
   длинная, поэтому размер не меняется между статусами и после перевода. */
.ia-account-btn{
  text-decoration:none;
  white-space:nowrap;
}
.ia-header-glass .ia-account-btn{
  gap:8px;
  padding:11px 20px !important;
  font-size:12px !important;
  letter-spacing:1.6px !important;
  border-radius:12px !important;
  transition:transform .35s ease, box-shadow .2s ease;
}
.ia-header-glass.elementor-sticky--effects .ia-account-btn{
  transform:scale(.93);
}
.ia-account-btn__icon{
  width:16px;
  height:16px;
  flex:0 0 auto;
  display:block;
}
.ia-account-btn__label{
  display:grid;
  align-items:center;
  justify-items:center;
  line-height:1;
}
.ia-account-btn__label > span{
  grid-area:1 / 1;
}
/* по умолчанию виден вариант для гостя — его же отдаёт кэш страницы.
   ВАЖНО: активную надпись открываем через inherit, а НЕ через visible.
   Elementor у липкой шапки держит клон-распорку (.elementor-sticky__spacer),
   погашенную инлайновым visibility:hidden. Потомок с явным visible
   перебивает скрытого предка и вылезает голым текстом без плашки. */
.ia-account-btn__user{ visibility:hidden; }
.ia-account-btn[data-ia-account-state="user"] .ia-account-btn__guest{ visibility:hidden; }
.ia-account-btn[data-ia-account-state="user"] .ia-account-btn__user{ visibility:inherit; }

@media (max-width:767px){
  .ia-header-glass .ia-account-btn{
    gap:6px;
    padding:10px 14px !important;
    font-size:11px !important;
    letter-spacing:1.2px !important;
  }
  .ia-account-btn__icon{ width:14px; height:14px; }
}

/* ============================================================
   AUTH · СОБСТВЕННАЯ МОДАЛКА (.ia-auth-modal)
   Открывается кнопкой аккаунта в шапке НА ЛЮБОЙ странице.

   Важное отличие от вендорского попапа: там мы живём поверх CSS Academy,
   а здесь его может не быть вообще (главная, блог, магазин).
   Поэтому ниже добавлена структурная обвязка вендорских классов и своя
   иконка глазка — всё со скоупом .ia-auth-modal, чтобы не задеть
   вендорские экраны.
   ============================================================ */
.ia-auth-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:6vh 12px 24px;
  overflow-y:auto;
}
.ia-auth-modal__overlay{
  position:fixed;
  inset:0;
  background:rgba(6,16,19,.72);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
          backdrop-filter:blur(10px) saturate(120%);
}
.ia-auth-modal__panel{
  position:relative;
  z-index:1;
  width:min(460px, calc(100vw - 24px));
}
.ia-auth-modal__slot{ transition:opacity .18s ease; }
body.ia-auth-open{ overflow:hidden; }

.ia-auth-modal__close{
  position:absolute;
  z-index:5;
  top:-14px;
  right:-14px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid rgba(230,242,243,.16);
  border-radius:50%;
  background:rgba(22,40,42,.75);
  color:var(--ice-white);
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px);
          backdrop-filter:blur(10px);
  box-shadow:0 10px 26px -10px rgba(0,0,0,.7);
  transition:border-color .2s ease, transform .2s ease, color .2s ease;
}
.ia-auth-modal__close:hover{
  border-color:rgba(95,198,212,.5);
  color:var(--glacier);
  transform:scale(1.06);
}
.ia-auth-modal__close svg{ width:15px; height:15px; }

/* карточка формы внутри модалки — без отступа из-под шапки */
.ia-auth-modal .academy-login-form-wrapper.academy-login-form-wrapper,
.ia-auth-modal .academy-reg-form.academy-reg-form,
.ia-auth-modal .academy-password-reset-form-wrapper.academy-password-reset-form-wrapper{
  width:100%;
  max-width:none;
  margin:0;
  padding:34px 30px 26px;
}

/* — структурная обвязка: дублирует то, что вендор даёт своим CSS — */
.ia-auth-modal .academy-form-group{
  display:flex;
  flex-direction:column;
  margin-bottom:20px;
}
.ia-auth-modal .academy-form-group label{ display:block; }
.ia-auth-modal .academy-form-group > div{ position:relative; }
.ia-auth-modal .academy-d-flex{ display:flex; }
.ia-auth-modal .academy-flex-row{ flex-direction:row; }
.ia-auth-modal .academy-justify-content-between{ justify-content:space-between; }
.ia-auth-modal .academy-form-group__forgetmenot label{
  display:flex;
  align-items:center;
  cursor:pointer;
}
.ia-auth-modal .academy-row{
  display:flex;
  flex-direction:column;
  margin:0;
}
.ia-auth-modal .academy-col{ width:100%; padding:0; }
.ia-auth-modal .academy-btn{
  position:relative;
  overflow:hidden;
  width:100%;
  border:0;
  cursor:pointer;
}
.ia-auth-modal .academy-btn::after{ content:""; position:absolute; }
.ia-auth-modal .academy-login-form-info{ text-align:center; }
.ia-auth-modal p{ margin:0; }
.ia-auth-modal .academy-social-login__divider{
  display:flex;
  align-items:center;
  width:100%;
  text-align:center;
}
.ia-auth-modal .academy-social-login__divider::before,
.ia-auth-modal .academy-social-login__divider::after{
  content:"";
  flex:1;
}
.ia-auth-modal .academy-social-login__divider::before{ margin-right:10px; }
.ia-auth-modal .academy-social-login__divider::after{ margin-left:10px; }

/* — Глазок пароля своей маской: вендорский иконочный шрифт
     грузится только на их страницах. Весь блок с !important — перебиваем
     своё же глобальное правило с отрицательными полями — */
.ia-auth-modal .toggle-password{
  position:absolute !important;
  top:50% !important;
  right:14px !important;
  left:auto !important;
  width:20px;
  height:20px;
  margin:0 !important;
  transform:translateY(-50%);
  cursor:pointer;
}
.ia-auth-modal .toggle-password::before{
  content:"" !important;
  display:block;
  width:20px;
  height:20px;
  background:rgba(159,184,188,.75);
  transition:background .2s ease;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
}
.ia-auth-modal .toggle-password:hover::before{ background:var(--glacier); }
.ia-auth-modal .toggle-password.academy-icon--lock::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.9 17.9A10.1 10.1 0 0 1 12 20C5 20 1 12 1 12a18.5 18.5 0 0 1 5.1-5.9M9.9 4.2A9.1 9.1 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.2 3.2m-6.7-1.1a3 3 0 1 1-4.2-4.2'/%3E%3Cpath d='M1 1l22 22'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.9 17.9A10.1 10.1 0 0 1 12 20C5 20 1 12 1 12a18.5 18.5 0 0 1 5.1-5.9M9.9 4.2A9.1 9.1 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.2 3.2m-6.7-1.1a3 3 0 1 1-4.2-4.2'/%3E%3Cpath d='M1 1l22 22'/%3E%3C/svg%3E");
}

/* — Спиннер на кнопке: тоже без вендорского шрифта — */
.ia-auth-spinner{
  display:inline-block;
  width:14px;
  height:14px;
  border:2px solid rgba(230,242,243,.35);
  border-top-color:var(--ice-white);
  border-radius:50%;
  animation:ia-auth-spin .7s linear infinite;
}
.ia-auth-spinner::before{ content:none !important; }
@keyframes ia-auth-spin{ to{ transform:rotate(360deg); } }

@media (max-width:640px){
  .ia-auth-modal{ padding:4vh 12px 20px; }
  .ia-auth-modal .academy-login-form-wrapper.academy-login-form-wrapper,
  .ia-auth-modal .academy-reg-form.academy-reg-form,
  .ia-auth-modal .academy-password-reset-form-wrapper.academy-password-reset-form-wrapper{
    padding:28px 20px 20px;
  }
  .ia-auth-modal__close{ top:-10px; right:-6px; }
}

@media (prefers-reduced-motion: reduce){
  .ia-auth-spinner{ animation-duration:2s; }
}

/* ── КНОПКА GOOGLE в нашем попапе ──
   Рисует её скрипт Google. Попытки перекрасить её изнутри либо слетают,
   либо убивают клик — проверено. Поэтому контейнер только центрирует,
   больше ничего. Скрываем блок до отрисовки, чтобы не мигал голый разделитель OR
   пока грузится скрипт. В вендорский попап не лезем — там всё его. */
.ia-auth-modal .academy-social-login:not([data-ia-social="done"]){
  visibility:hidden;
}
.ia-auth-modal .academy-social-login__google,
.academy-react-modal--popup-login .academy-social-login__google{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:0;
  background:none;
  box-shadow:none;
}
.ia-auth-modal .academy-social-login,
.academy-react-modal--popup-login .academy-social-login{
  padding-bottom:4px;
}