@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Light.otf') format('opentype');
  font-style:normal;
  font-weight:300;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Regular.otf') format('opentype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Medium.otf') format('opentype');
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Medium.otf') format('opentype');
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Bold.otf') format('opentype');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Bold.otf') format('opentype');
  font-style:normal;
  font-weight:800;
  font-display:swap;
}
@font-face{
  font-family:'e-Ukraine';
  src:url('../fonts/e-Ukraine-Bold.otf') format('opentype');
  font-style:normal;
  font-weight:900;
  font-display:swap;
}

/* =========================
   Design tokens
========================= */
:root{
  --sunny:#FFD450;
  --royal:#1D3254;
  --sky:#6EB5FF;
  --bg:#F7F9FB;
  --paper:#FFFFFF;
  --paper-soft:#FBFCFF;
  --text:#253044;
  --muted:#627086;
  --line:rgba(29,50,84,.10);
  --shadow-soft:0 18px 50px rgba(29,50,84,.10);
  --shadow-lift:0 24px 70px rgba(29,50,84,.15);
  --radius:16px;
  --radius-lg:24px;
  --section-y:clamp(64px, 7.4vw, 128px);
  --header-offset:92px;
}

/* =========================
   Base
========================= */
*{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-offset);
}
body{
  margin:0;
  color:var(--text);
  font-family:'e-Ukraine',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:14.4px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
  isolation:isolate;
  overflow-x:hidden;

  /* Global BG gradient (applies to whole site) */
  background-color: var(--bg);
  background-image:
    radial-gradient(980px 520px at 6% -4%, rgba(255,212,80,.25), transparent 64%),
    radial-gradient(920px 580px at 94% 4%, rgba(110,181,255,.22), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f7f9fb 38%, #ffffff 100%);
  background-repeat:no-repeat;
}
body::before,
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}
body::before{
  background:
    radial-gradient(circle at 18% 16%, rgba(255,212,80,.16) 0 8%, transparent 18%),
    radial-gradient(circle at 86% 28%, rgba(110,181,255,.14) 0 9%, transparent 21%),
    radial-gradient(circle at 70% 78%, rgba(255,212,80,.10) 0 7%, transparent 17%),
    linear-gradient(115deg, transparent 0 28%, rgba(110,181,255,.055) 28% 29%, transparent 29% 100%);
}
body::after{
  opacity:.34;
  background-image:
    radial-gradient(circle, rgba(29,50,84,.10) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.72), transparent 72%);
}
body > *{
  position:relative;
  z-index:1;
}
img{ max-width:100%; height:auto; display:block; }

/* Headings */
h1,h2,h3{
  font-family:'e-Ukraine',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--royal);
  letter-spacing:0;
  margin:0 0 .4em;
  text-wrap:balance;
}
.h2{ font-size:clamp(25.2px,2.79vw,37.8px); line-height:1.08; }

/* Layout */
.container{ width:min(1180px, calc(100% - clamp(32px, 6vw, 96px))); margin:0 auto; }
.section{ padding:var(--section-y) 0; }
.section--alt{ background:rgba(255,255,255,.72); }

@media (min-width: 1500px){
  :root{ --section-y:clamp(92px, 7vw, 148px); }
  .container{ width:min(1320px, calc(100% - 112px)); }
  body{ font-size:15.3px; }
  .h2{ font-size:clamp(34.2px, 2.7vw, 48.6px); }
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 22px;
  border-radius:999px;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  border:none;
  line-height:1.1;
  transition:box-shadow .22s ease, filter .2s ease, background-color .22s ease, border-color .22s ease, color .22s ease;
  will-change:auto;
}
.btn-primary{
  gap:12px;
  padding-inline:22px 18px;
  color:var(--royal);
  background:linear-gradient(135deg, #FFE073 0%, var(--sunny) 48%, #FFC536 100%);
  box-shadow:0 14px 30px rgba(255,197,54,.28);
}
.btn-outline{ border:2px solid var(--royal); color:var(--royal); background:#fff; }
.btn-ghost-gradient{
  color:var(--royal);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(29,50,84,.14);
  box-shadow:0 12px 28px rgba(29,50,84,.08);
  backdrop-filter:blur(10px);
}
.btn-ghost-gradient:hover{
  background:#fff;
  border-color:rgba(110,181,255,.45);
  box-shadow:0 16px 34px rgba(29,50,84,.12);
}
.btn:hover{ filter:none; }
.btn:active{ transform:none; }

/* Utility */
.rounded{ border-radius:var(--radius); }
.shadow{ box-shadow:0 10px 30px #00000014; }
.text{ color:var(--muted); }
.section-kicker{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:38px;
  padding:8px 13px;
  margin-bottom:12px;
  border:1px solid rgba(29,50,84,.11);
  border-radius:999px;
  color:var(--royal);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.72)),
    radial-gradient(90px 50px at 12% 10%, rgba(255,212,80,.28), transparent 72%);
  box-shadow:0 12px 30px rgba(29,50,84,.08);
}
.section-kicker::before{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.14);
}

/* =========================
   Header
========================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(29,50,84,.08);
  backdrop-filter:blur(18px);
  transition: box-shadow .25s ease, background .25s ease, transform .25s ease;
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 44px rgba(29,50,84,.10);
}

.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  min-height:72px;
  padding:10px 0;
}

/* Logo hover */
.logo{ flex:0 0 auto; }
.wings-brand-asset{
  position:relative;
  display:block;
  flex:0 0 auto;
  overflow:visible;
  aspect-ratio:1;
  border-radius:0;
  background:transparent;
  transition:transform .25s ease, filter .25s ease;
}
.wings-brand-asset img{
  position:absolute;
  top:50%;
  left:50%;
  display:block;
  width:136%;
  max-width:none;
  height:136%;
  object-fit:contain;
  transform:translate(-50%,-50%);
}
.logo:hover .wings-brand-asset{ transform:translateY(-1px) scale(1.01); }
.wings-brand-asset--footer{
  overflow:hidden;
  border-radius:18px;
  background:#fff;
}

/* Primary nav */
.primary-nav .nav-list{
  display:flex; gap:6px; list-style:none; margin:0; padding:5px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(29,50,84,.08);
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.primary-nav .nav-list > li > a{
  position:relative; display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:999px;
  color:#1D3254; text-decoration:none; font-weight:800; font-size:12.6px;
  transition: color .25s ease, background .25s ease, transform .2s ease;
}
.primary-nav .nav-list > li > a::after{
  content:""; position:absolute; left:12px; right:12px; bottom:6px; height:2px;
  background: linear-gradient(90deg, var(--sunny), var(--sky));
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s ease;
  border-radius:2px;
}
.primary-nav .nav-list > li > a:hover::after{ transform:scaleX(1); }
.primary-nav .nav-list > li > a:hover{
  background: rgba(110,181,255,.14);
  color:#1D3254;
  transform: translateY(-1px);
}

/* Account entry */
.header-account-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 16px;
  border:1px solid rgba(29,50,84,.12);
  border-radius:999px;
  color:var(--royal);
  background:rgba(255,255,255,.78);
  box-shadow:0 12px 28px rgba(29,50,84,.08);
  text-decoration:none;
  font-size:12.6px;
  font-weight:900;
  white-space:nowrap;
  transition:transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.header-account-btn:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:rgba(110,181,255,.42);
  box-shadow:0 16px 34px rgba(29,50,84,.12);
}
.header-account-btn.is-admin{
  background:linear-gradient(135deg, rgba(255,212,80,.24), rgba(110,181,255,.18)), #fff;
}
.header-account-btn--mobile{ display:none; }
.mobile-menu-contact{ display:none; }

/* CTA */
.btn-cta{
  position:relative; overflow:hidden;
  box-shadow:0 14px 30px rgba(255,197,54,.28);
  transition: transform .25s ease, box-shadow .25s ease;
}
/* Branded CTA motion: only the arrow moves; the control itself stays still. */
.btn-primary::after{
  content:"→" / "";
  position:relative;
  z-index:2;
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  font-family:inherit;
  font-size:17px;
  font-weight:700;
  line-height:1;
  speak:never;
  transition:transform .26s cubic-bezier(.22,1,.36,1);
}
.btn-primary:focus-visible{
  background:var(--wings-yellow-strong, #ffc52f);
  box-shadow:inset 0 -4px 0 rgba(255,255,255,.66), 0 12px 28px rgba(255,197,54,.24);
  transform:none;
}
.btn-primary:active::after{ transform:translateX(2px); }
.btn-primary:disabled::after,
.btn-primary[aria-disabled="true"]::after{ transform:none; }

@media (hover:hover) and (pointer:fine){
  .btn-primary:not(:disabled):not([aria-disabled="true"]):hover::after{ transform:translateX(5px); }
}

@media (prefers-reduced-motion:reduce){
  .btn-primary::after{ transition:none; }
  .btn-primary:not(:disabled):not([aria-disabled="true"]):hover::after{ transform:none; }
}

/* Burger */
.burger{
  display:none;
  position:relative;
  width:44px; height:40px;
  border:1px solid rgba(29,50,84,.12);
  border-radius:14px;
  background:rgba(255,255,255,.82);
  box-shadow:0 10px 26px rgba(29,50,84,.08);
}
.burger span{
  position:absolute; left:10px; right:10px;
  height:2px; background:#1D3254; border-radius:2px;
  transition:.25s ease;
}
.burger span:nth-child(1){ top:12px; }
.burger span:nth-child(2){ top:19px; }
.burger span:nth-child(3){ top:26px; }
.burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:900px){
  .header-account-btn--desktop{ display:none; }
  .primary-nav{ display:none; }
  .primary-nav.is-open{
    display:block; position:absolute; left:4%; right:4%; top:76px;
    background:#fff;
    border:1px solid rgba(29,50,84,.10);
    border-radius:22px;
    box-shadow:var(--shadow-soft);
  }
  .primary-nav .nav-list{
    flex-direction:column;
    align-items:stretch;
    padding:10px;
    gap:4px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .primary-nav .nav-list > li > a{ width:100%; padding:13px 14px; }
  .primary-nav.is-open .header-account-btn--mobile{
    display:flex;
    margin:0 10px 10px;
    width:calc(100% - 20px);
    min-height:46px;
  }
  .primary-nav.is-open .mobile-menu-contact{
    display:grid;
    gap:2px;
    margin:0 10px 10px;
    padding:12px 14px;
    border:1px solid rgba(29,50,84,.10);
    border-radius:16px;
    color:var(--royal);
    background:#f7f9fb;
    text-decoration:none;
  }
  .mobile-menu-contact span{ color:var(--muted); font-size:12px; font-weight:700; }
  .mobile-menu-contact strong{ font-size:14.4px; }
  .burger{ display:inline-block; margin-left:8px; }
}

/* Focus visible */
.primary-nav a:focus-visible,
.header-account-btn:focus-visible,
.btn-cta:focus-visible,
.logo:focus-visible,
.burger:focus-visible{
  outline:3px solid var(--sky);
  outline-offset:3px;
  border-radius:12px;
}

/* =========================
   Hero v2
========================= */
.hero-v2{
  position:relative;
  isolation:isolate;
  min-height:auto;
  overflow:visible;
  background:#fff;
}
.hero-v2::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,.38) 72%, rgba(255,255,255,.20) 100%),
    radial-gradient(760px 420px at 24% 20%, rgba(255,212,80,.40), transparent 64%),
    radial-gradient(680px 420px at 72% 24%, rgba(110,181,255,.34), transparent 66%),
    var(--hero-bg) center/cover no-repeat;
  opacity:1; transition: transform .5s ease;
}
.hero-v2::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:240px; z-index:0;
  background: linear-gradient(180deg, transparent 0%, rgba(247,249,251,.72) 54%, #F7F9FB 100%);
}
.hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 420px);
  gap:clamp(26px, 5vw, 72px);
  min-height:clamp(540px, calc(100svh - 72px), 740px);
  align-items:center;
  padding:clamp(42px, 6svh, 78px) 0 clamp(56px, 8svh, 90px);
}
.hero-copy{ max-width:680px; }
.hero-title{
  font-size: clamp(34.2px, min(4.86vw, 7.2svh), 66.6px);
  line-height:1;
  letter-spacing:0;
  max-width: 15ch;
  color:#1D3254;
  text-wrap:balance;
}
.hero-sub{
  font-size: clamp(14.4px, min(1.305vw, 2.115svh), 18px);
  color:#43516A;
  max-width: 56ch;
  margin:clamp(14px, 2svh, 18px) 0 clamp(20px, 3svh, 28px);
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.hero-proof-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(18px, 2.4svh, 26px);
}
.hero-proof-pills span{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:9px 15px 9px 13px;
  border:1px solid rgba(29,50,84,.11);
  border-radius:999px;
  color:var(--royal);
  font-size:12.6px;
  font-weight:900;
  line-height:1;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.72)),
    radial-gradient(90px 50px at 12% 10%, rgba(255,212,80,.28), transparent 72%);
  box-shadow:0 12px 30px rgba(29,50,84,.09);
}
.hero-proof-pills span::before{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.14);
}
.hero-guide{
  justify-self:end;
  width:min(100%, 430px);
  padding:clamp(18px, 2vw, 26px);
  border:1px solid rgba(255,255,255,.74);
  border-radius:var(--radius-lg);
  background:linear-gradient(145deg, rgba(255,255,255,.88), rgba(255,255,255,.66));
  box-shadow:var(--shadow-lift);
  backdrop-filter:blur(18px);
}
.hero-guide-kicker{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 12px;
  margin-bottom:clamp(12px, 1.7svh, 16px);
  border:1px solid rgba(29,50,84,.10);
  border-radius:999px;
  background:linear-gradient(120deg, rgba(255,212,80,.34), rgba(110,181,255,.22));
  color:#1D3254;
  font-size:11.7px;
  font-weight:800;
}
.hero-guide h2{
  margin:0;
  color:#1D3254;
  font-size:clamp(19.8px, min(1.98vw, 3.6svh), 28.8px);
  line-height:1.08;
  letter-spacing:0;
}
.hero-guide p{
  margin:clamp(10px, 1.8svh, 14px) 0 clamp(12px, 2svh, 18px);
  color:#526179;
  font-size:14.4px;
}
.hero-guide ul{
  display:grid;
  gap:clamp(7px, 1.2svh, 10px);
  margin:0;
  padding:0;
  list-style:none;
}
.hero-guide li{
  position:relative;
  padding-left:28px;
  color:#253044;
  font-weight:750;
}
.hero-guide li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:12px;
  height:12px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, var(--sky), var(--accent));
  box-shadow:0 0 0 6px rgba(110,181,255,.14);
}
.hero-guide-note{
  display:grid;
  gap:5px;
  margin-top:clamp(16px, 2.2svh, 22px);
  padding:15px 16px;
  border:1px solid rgba(29,50,84,.08);
  border-radius:18px;
  background:
    radial-gradient(120px 80px at 8% 0%, rgba(255,212,80,.24), transparent 72%),
    rgba(255,255,255,.66);
  color:#253044;
}
.hero-guide-note strong{
  color:var(--royal);
  font-weight:900;
}
.hero-guide-note span{
  color:var(--muted);
  font-size:12.6px;
  line-height:1.45;
}
.trust-heading{
  position:relative;
  z-index:1;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:clamp(16px, 2.4vw, 24px);
}
.trust-heading h2{
  max-width:620px;
  margin:0;
  font-family:'e-Ukraine',system-ui,sans-serif;
  font-size:clamp(21.6px, 2.34vw, 32.4px);
  line-height:1.05;
  font-weight:900;
  text-wrap:balance;
}

/* =========================
   Start / level check
========================= */
.start-v1{
  padding-top:clamp(34px, 5vw, 72px);
}
.start-panel{
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
  gap:clamp(24px, 4vw, 56px);
  align-items:center;
  padding:clamp(24px, 4vw, 46px);
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  background:
    radial-gradient(540px 260px at 0% 0%, rgba(255,212,80,.22), transparent 70%),
    radial-gradient(560px 300px at 100% 10%, rgba(110,181,255,.20), transparent 72%),
    rgba(255,255,255,.78);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(16px);
}
.start-copy p{
  max-width:58ch;
  margin:0 0 22px;
  color:var(--muted);
  font-size:clamp(14.4px, 1.08vw, 16.2px);
}
.start-steps{
  display:grid;
  gap:12px;
}
.start-step{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  column-gap:14px;
  padding:18px;
  border:1px solid rgba(29,50,84,.08);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  box-shadow:0 12px 30px rgba(29,50,84,.07);
}
.start-step span{
  grid-row:span 2;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:16px;
  color:var(--royal);
  background:linear-gradient(135deg, rgba(255,212,80,.42), rgba(110,181,255,.22));
  font-weight:950;
}
.start-step h3{
  margin:0 0 4px;
  font-size:18px;
}
.start-step p{
  margin:0;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.55;
}

/* Floating feathers */
.hero-decor.feather{
  position:absolute; width:170px; height:170px;
  background:
    radial-gradient(60% 60% at 50% 50%, rgba(255,212,80,.45), rgba(255,212,80,0) 70%),
    radial-gradient(50% 50% at 60% 40%, rgba(110,181,255,.5), rgba(110,181,255,0) 70%);
  filter: blur(4px);
  opacity:.52;
  z-index:0;
  pointer-events:none;
}
.hero-decor.feather.a{ top:16%; right:9%; animation-delay:.2s; }
.hero-decor.feather.b{ bottom:12%; left:5%; animation-delay:1.1s; }

/* Appear animations.
   Скрытое состояние живёт только под .js-reveal: метку ставит инлайн-скрипт в
   <head>, поэтому при заблокированном или упавшем JS текст остаётся видимым.
   Сами значения переопределяет redesign.css — здесь только база. */
.js-reveal .reveal-up{ opacity:0; transform: translateY(14px); }
.js-reveal .reveal-fade{ opacity:0; }
.js-reveal .reveal-in{ opacity:1; transform:none; transition: opacity .7s ease, transform .7s ease; }
.delay-1{ transition-delay:.05s; } .delay-2{ transition-delay:.15s; } .delay-3{ transition-delay:.25s; }

.pulse{ animation:none; }
@keyframes btnPulse{
  0%,100%{ box-shadow:0 8px 20px rgba(255,212,80,.35); }
  50%{ box-shadow:0 12px 26px rgba(255,212,80,.5); }
}

@media (pointer:fine){
  .hero-v2:hover::before{ transform:none; }
}
@media (prefers-reduced-motion: reduce){
  .reveal-up,.reveal-fade,.hero-decor.feather,.pulse{ animation:none !important; transition:none !important; }
}

/* =========================
   About v2
========================= */
.about-v2{ position:relative; }
.about-grid{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:clamp(28px, 4vw, 44px);
  align-items:center;
}
@media (max-width: 980px){
  .about-grid{ grid-template-columns:1fr; gap:28px; }
}
.about-kicker{
  display:inline-flex;
  margin-bottom:16px;
  padding:8px 13px;
  border:1px solid rgba(29,50,84,.08);
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,212,80,.38), rgba(110,181,255,.20));
  box-shadow:0 10px 24px rgba(29,50,84,.06);
}
.about-title{ margin-bottom:10px; }
.about-text{ max-width:58ch; }
.about-meta{ display:none; }
.meta-chip{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:800; font-size:11.7px; color:#1D3254;
  background: rgba(255,255,255,.72);
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 13px;
  box-shadow:0 10px 24px rgba(29,50,84,.06);
}
.meta-chip::before{
  content:""; width:8px; height:8px; border-radius:999px;
  background:var(--sunny);
  box-shadow:0 0 0 3px rgba(255,212,80,.25);
}
.about-signature{
  position:relative;
  margin-top:22px;
  padding:22px 22px 22px 24px;
  border:1px solid rgba(29,50,84,.07);
  border-left:4px solid var(--sunny);
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 38px rgba(29,50,84,.08);
  overflow:hidden;
}
.about-signature::before{
  content:none;
}
.about-signature p{
  position:relative;
  margin:0 0 14px;
  color:#253044;
  font-size:clamp(14.4px, 1.08vw, 16.2px);
  line-height:1.55;
  font-weight:700;
}
.about-signature strong,
.about-signature span{
  display:block;
}
.about-signature strong{
  color:var(--royal);
  font-weight:900;
}
.about-signature span{
  color:var(--muted);
  font-size:12.6px;
}

/* Media frame */
.media-frame{
  position:relative; overflow:hidden; border-radius:var(--radius-lg);
  height: clamp(300px, 38vw, 540px);
  background:
    radial-gradient(170px 130px at 28% 25%, rgba(255,212,80,.48), transparent 72%),
    radial-gradient(210px 150px at 78% 20%, rgba(110,181,255,.46), transparent 74%),
    linear-gradient(135deg,#fff,#EDF6FF);
  border:1px solid rgba(255,255,255,.72);
  box-shadow: var(--shadow-soft);
  isolation:isolate;
}
.media-frame::after{
  content:"";
  position:absolute;
  left:28px;
  right:28px;
  bottom:28px;
  z-index:2;
  display:grid;
  place-items:center;
  min-height:clamp(78px, 9vw, 110px);
  border-radius:24px;
  background:rgba(255,255,255,.62) url('../img/logo-wings.png') center/auto 138% no-repeat;
  border:1px solid rgba(255,255,255,.62);
  backdrop-filter:blur(10px);
}
.media-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover; object-position: center;
  transform: none;
  opacity:.82;
}
.media-glow{
  position:absolute; inset:-1px; border-radius:16px;
  pointer-events:none;
  z-index:1;
  background: linear-gradient(120deg, rgba(255,212,80,.45), rgba(110,181,255,.45));
  opacity:.25;
  mix-blend-mode: screen;
  filter: blur(12px);
}

/* =========================
   Benefits v2
========================= */
.benefits-v2{ position:relative; }
.benefits-grid{
  --gap: clamp(16px, 2vw, 24px);
  display:grid;
  gap:var(--gap);
  margin-top:28px;
  justify-content:center;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  max-width:1100px;
  margin-inline:auto;
}
@media (min-width:1200px){
  .benefits-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); max-width:none; }
}
@media (max-width:1199px) and (min-width:860px){
  .benefits-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width:859px) and (min-width:560px){
  .benefits-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width:559px){
  .benefits-grid{ grid-template-columns: 1fr; justify-items:center; }
  .benefit-card{ max-width:400px; width:100%; }
}
.benefit-card{
  position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78));
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  padding:26px 24px;
  box-shadow: var(--shadow-soft);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, opacity .7s ease, transform .7s ease;
  isolation:isolate;
  opacity:0;
  transform: translateY(14px);
  transition-delay: var(--delay, 0s);
}
.benefit-card.reveal-in{ opacity:1; transform:none; }
.benefit-card::before{
  content:""; position:absolute; inset:0; border-radius:16px; padding:1px;
  background: linear-gradient(90deg, var(--sunny), var(--sky));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:0;
  transition: opacity .25s ease;
}
.benefit-card:hover::before{ opacity:0; }
.benefit-card:hover{
  transform:none;
  box-shadow: var(--shadow-soft);
  border-color: rgba(29,50,84,.08);
}
.benefit-icon{
  width:48px; height:48px;
  border-radius:16px;
  margin-bottom:14px;
  position:relative; overflow:hidden;
  background: rgba(110,181,255,.12);
  border:1px solid rgba(29,50,84,.08);
}
.benefit-icon .wing{
  position:absolute; inset:0;
  background:
    radial-gradient(60% 60% at 20% 50%, rgba(255,212,80,.9), transparent 70%),
    radial-gradient(50% 50% at 70% 50%, rgba(110,181,255,.8), transparent 70%);
  filter: blur(6px);
  transform: translateX(-10%) rotate(-6deg) scale(.9);
  transition: transform .45s ease;
}
.benefit-card:hover .wing{ transform: translateX(-10%) rotate(-6deg) scale(.9); }
.benefit-title{ font-weight:800; color:#1D3254; font-size:16.2px; margin:4px 0 6px; }
.benefit-desc{ color:var(--muted); line-height:1.6; font-size:13.5px; margin:0; }

/* =========================
   Gallery v1
========================= */
.gallery-v1{
  position:relative;
  overflow:hidden;
}
.gallery-v1::before{
  content:"";
  position:absolute;
  inset:-18% 0 -18%;
  height:auto;
  background:
    radial-gradient(760px 420px at 12% 22%, rgba(255,212,80,.13), transparent 68%),
    radial-gradient(820px 460px at 86% 24%, rgba(110,181,255,.13), transparent 70%);
  opacity:.82;
  mask-image:linear-gradient(180deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  pointer-events:none;
  z-index:-1;
}
.gallery-head{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 420px);
  gap:24px;
  align-items:end;
  margin-bottom:30px;
}
.gallery-copy .h2{
  max-width:760px;
  text-wrap:balance;
}
.gallery-sub{
  max-width:66ch;
  margin:12px 0 0;
  color:var(--muted);
  font-size:clamp(14.4px, 1.08vw, 16.2px);
}
.gallery-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.gallery-badges span{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:9px 15px 9px 13px;
  border:1px solid rgba(29,50,84,.11);
  border-radius:999px;
  color:var(--royal);
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.72)),
    radial-gradient(90px 50px at 12% 10%, rgba(255,212,80,.28), transparent 72%);
  font-size:12.6px;
  font-weight:900;
  line-height:1;
  box-shadow:0 12px 30px rgba(29,50,84,.09);
}
.gallery-badges span::before{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.14);
}
.gallery-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr .9fr;
  grid-auto-rows:minmax(360px, auto);
  gap:clamp(16px, 1.8vw, 22px);
}
.gallery-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:360px;
  border:1px solid rgba(29,50,84,.08);
  border-radius:28px;
  background:#eef6ff;
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  opacity:0;
  transform:translateY(14px);
  transition:transform .25s ease, box-shadow .25s ease, opacity .7s ease;
  transition-delay:var(--delay, 0s);
}
.gallery-card.reveal-in{ opacity:1; transform:none; }
.gallery-card.is-featured{
  grid-column:span 1;
  min-height:390px;
}
.gallery-card:hover{
  transform:none;
  box-shadow:var(--shadow-soft);
}
.gallery-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:#eef4fb;
}
.gallery-card:not(.is-featured) .gallery-media{
  aspect-ratio:auto;
}
.gallery-card.is-featured .gallery-media{
  min-height:100%;
}
.gallery-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(16,40,69,0) 20%, rgba(16,40,69,.74) 100%),
    radial-gradient(240px 160px at 18% 16%, rgba(255,212,80,.28), transparent 70%);
  pointer-events:none;
}
.gallery-img,
.gallery-media video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.gallery-media video{
  background:#10213b;
}
.gallery-type{
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:7px 10px;
  border-radius:999px;
  color:#fff;
  background:rgba(16,40,69,.32);
  border:1px solid rgba(255,255,255,.22);
  font-size:12px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(29,50,84,.10);
  backdrop-filter:blur(10px);
}
.gallery-placeholder{
  position:relative;
  min-height:100%;
  height:100%;
  aspect-ratio:auto;
  background:
    radial-gradient(180px 140px at 28% 22%, rgba(255,212,80,.55), transparent 70%),
    radial-gradient(220px 160px at 72% 22%, rgba(110,181,255,.50), transparent 70%),
    #EEF6FF;
}
.gallery-card.is-featured .gallery-placeholder{
  height:100%;
  aspect-ratio:auto;
}
.gallery-placeholder span{
  position:absolute;
  inset:22px;
  display:grid;
  place-items:center;
  border-radius:22px;
  border:1px dashed rgba(29,50,84,.18);
  overflow:hidden;
}
.gallery-placeholder span::before{
  content:"";
  position:relative;
  z-index:1;
  width:clamp(92px, 12vw, 142px);
  aspect-ratio:1;
  border-radius:24px;
  background:#fff url('../img/logo-wings.png') center/136% no-repeat;
  box-shadow:0 14px 34px rgba(29,50,84,.11);
}
.gallery-placeholder span::after{
  content:"";
  position:absolute;
  width:118px;
  height:118px;
  border-radius:38% 62% 58% 42%;
  background:linear-gradient(135deg, rgba(255,212,80,.48), rgba(110,181,255,.44));
  filter:blur(1px);
  transform:rotate(-18deg);
  box-shadow:0 22px 50px rgba(29,50,84,.12);
}
.gallery-card-body{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  margin-top:auto;
  padding:20px;
}
.gallery-label{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  font-size:12px;
  font-weight:900;
}
.gallery-card-body p{
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:13.5px;
  line-height:1.6;
}
.gallery-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:auto;
  padding:9px 12px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-size:11.7px;
  font-weight:900;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.gallery-link:hover{
  background:rgba(255,255,255,.20);
  box-shadow:0 12px 26px rgba(29,50,84,.10);
}
.gallery-link span{
  opacity:.68;
}

/* =========================
   Price v2
========================= */
.price-head{
  display:grid;
  grid-template-columns:minmax(0, .8fr) minmax(280px, .55fr);
  gap:clamp(18px, 4vw, 64px);
  align-items:end;
  max-width:none;
  margin:0 auto;
}
.price-head .h2{
  margin-bottom:0;
}
.price-head p{
  margin:0;
  color:var(--muted);
  font-size:clamp(13.5px, 1.08vw, 16.2px);
  line-height:1.55;
}
.plans-grid{
  --gap: clamp(18px, 2vw, 26px);
  display:grid; gap:var(--gap);
  margin-top:clamp(38px, 4.8vw, 68px);
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  justify-content:center;
  max-width:1180px;
  margin-inline:auto;
}
@media (min-width:1200px){
  .plans-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); max-width:none; }
  .plans-grid:has(.plan-card:first-child:last-child){
    grid-template-columns:minmax(280px, 420px);
    justify-content:center;
  }
  .plans-grid:has(.plan-card:nth-child(2):last-child){
    grid-template-columns:repeat(2, minmax(280px, 390px));
    justify-content:center;
  }
}
@media (min-width:641px) and (max-width:1199px){
  .plans-grid:has(.plan-card:nth-child(3):last-child) .plan-card:last-child{
    grid-column:1 / -1;
    width:min(100%, calc((100% - var(--gap)) / 2));
    justify-self:center;
  }
}
.plan-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:500px;
  overflow:hidden;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(29,50,84,.12);
  border-radius:20px;
  padding:0;
  box-shadow:0 18px 46px rgba(29,50,84,.08);
  transition:box-shadow .25s ease, border-color .25s ease, opacity .7s ease, transform .7s ease;
  isolation:isolate;
  opacity:0;
  transform: translateY(14px);
  transition-delay: var(--delay, 0s);
}
.plan-card.reveal-in{ opacity:1; transform:none; }
.plan-card > *{
  position:relative;
  z-index:1;
}
.plan-card::before{
  content:none;
}
.plan-card::after{
  content:none;
}
.plan-card.is-highlighted{
  border-color:rgba(244,184,33,.9);
  box-shadow:0 24px 58px rgba(29,50,84,.12);
}
.plan-card:hover{ box-shadow:0 24px 58px rgba(29,50,84,.12); border-color:rgba(29,50,84,.17); }
.plan-card.is-highlighted:hover{ border-color:rgba(244,184,33,1); }
.plan-card:focus-within{
  box-shadow:var(--shadow-lift);
  border-color:rgba(110,181,255,.35);
}
.plan-card-head{
  min-height:110px;
  padding:20px 28px 16px;
  background:linear-gradient(112deg, rgba(255,248,228,.82), rgba(239,248,255,.92));
  border-bottom:1px solid rgba(29,50,84,.06);
}
.plan-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:30px;
  margin-bottom:12px;
}
.plan-index{
  color:rgba(29,50,84,.34);
  font-size:13.5px;
  font-weight:700;
  line-height:1;
}
.plan-choice{
  display:inline-flex;
  align-items:center;
  padding:7px 12px;
  border-radius:999px;
  color:var(--royal);
  font-size:12px;
  font-weight:700;
  background:rgba(255,221,111,.42);
  border:1px solid rgba(244,184,33,.38);
  box-shadow:0 8px 18px rgba(244,184,33,.12);
}
.plan-badge{
  display:block;
  color:#1D3254;
  padding:0;
  font-size:12.6px;
  font-weight:700;
}
.plan-card-content{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px 28px;
}
.plan-summary{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(118px, auto);
  align-items:start;
  gap:18px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(29,50,84,.1);
}
.plan-name{
  color:#1D3254;
  margin:0;
  font-size:clamp(19.8px, 1.575vw, 25.2px);
  font-weight:700;
  line-height:1.15;
}
.plan-price{
  max-width:180px;
  margin:2px 0 0;
  color:var(--royal);
  font-size:clamp(14.4px, 1.26vw, 18.9px);
  font-weight:500;
  line-height:1.28;
  text-align:right;
}
.plan-price.is-long{
  font-size:clamp(13.5px, 1.08vw, 16.2px);
}
.plan-features{ margin:14px 0 18px; padding-left:0; color:var(--muted); list-style:none; }
.plan-features li{
  position:relative;
  padding-left:28px;
  margin:9px 0;
  font-size:13.5px;
  line-height:1.45;
}
.plan-features li::before{
  content:"";
  position:absolute;
  left:0;
  top:.64em;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--sky);
  border:2px solid rgba(255,212,80,.82);
  box-shadow:0 0 0 2px rgba(110,181,255,.1);
}
.plan-actions{ display:flex; gap:10px; margin-top:auto; }
.plan-actions .btn{ width:100%; }
.plan-actions .btn-primary{
  min-height:56px;
  border-radius:16px;
  font-size:14.4px;
}

.btn-enroll{
  position:relative; overflow:hidden;
  font-weight:700;
  box-shadow:0 8px 20px rgba(255,212,80,.35);
  transition: transform .25s ease, box-shadow .25s ease;
}
.btn-enroll:hover{ transform: translateY(-2px); box-shadow:0 14px 34px rgba(255,212,80,.48); }

/* Plan saving badge */
.save-badge{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  margin-top:-13px;
  padding:6px 10px;
  font-size:12px;
  font-weight:700;
  color:#1D3254;
  white-space:nowrap;
  background:rgba(238,247,255,.9);
  border:1px solid rgba(110,181,255,.22);
  border-radius:999px;
  box-shadow:0 6px 14px rgba(29,50,84,.06);
}
@media (min-width:1000px){
  .plan-card.is-highlighted.reveal-in{
    transform:translateY(-8px);
  }
}
@media (max-width:520px){
  .save-badge{ padding:5px 8px; }
}

/* =========================
   Modal (enroll)
========================= */
.modal{
  position: fixed; inset:72px 0 0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(14px, 3vw, 34px) clamp(12px, 3vw, 28px);
  background: rgba(7,16,31,0.55);
  backdrop-filter: blur(8px);
  opacity:0; pointer-events:none;
  transition: opacity .3s ease;
}
.modal.is-open{ opacity:1; pointer-events:auto; }
.modal__backdrop{ position:absolute; inset:0; }

.modal__dialog{
  position:relative; z-index:1;
  width:min(920px, 100%);
  max-height:min(calc(100svh - 116px), 900px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  background:
    radial-gradient(420px 220px at 10% 0%, rgba(255,212,80,.18), transparent 68%),
    radial-gradient(480px 260px at 94% 10%, rgba(110,181,255,.18), transparent 70%),
    #fff;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 30px 90px rgba(7,16,31,.28);
  transform: scale(.98) translateY(8px);
  opacity:0;
  transition: transform .28s cubic-bezier(.16,1,.3,1), opacity .28s ease;
}
.modal.is-open .modal__dialog{ transform: scale(1) translateY(0); opacity:1; }

.modal__dialog::-webkit-scrollbar{ width:8px; }
.modal__dialog::-webkit-scrollbar-thumb{ background: rgba(29,50,84,0.25); border-radius:8px; }
.modal__dialog::-webkit-scrollbar-thumb:hover{ background: rgba(29,50,84,0.45); }

.modal__head{
  padding:clamp(22px, 3.2vw, 34px) clamp(20px, 3.5vw, 38px) 0;
}
.modal__eyebrow{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 12px;
  border:1px solid rgba(29,50,84,.09);
  border-radius:999px;
  color:var(--royal);
  background:linear-gradient(135deg, rgba(255,212,80,.34), rgba(110,181,255,.22));
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.modal__title{
  font-size:clamp(23.4px, 2.7vw, 36px);
  line-height:1.06;
  margin:14px 54px 10px 0;
  color:#1D3254;
  text-wrap:balance;
}
.modal__plan{
  background: linear-gradient(90deg,var(--sunny),var(--sky));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.modal__intro{
  max-width:64ch;
  margin:0;
  color:var(--muted);
  font-size:clamp(13.5px, 1.08vw, 15.3px);
}
.modal__benefits{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}
.modal__benefits span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:8px 12px;
  border:1px solid rgba(29,50,84,.08);
  border-radius:999px;
  color:var(--royal);
  background:rgba(255,255,255,.70);
  font-size:11.7px;
  font-weight:850;
  box-shadow:0 8px 20px rgba(29,50,84,.06);
}
.modal__benefits span::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
}
.modal__body{ padding:clamp(18px, 2.4vw, 28px) clamp(20px, 3.5vw, 38px) clamp(22px, 3.2vw, 34px); }

.modal__close{
  position:absolute; top:16px; right:16px;
  width:42px; height:42px;
  border-radius:14px;
  border:1px solid rgba(29,50,84,.10);
  background:rgba(255,255,255,.82);
  cursor:pointer;
  box-shadow:0 10px 24px rgba(29,50,84,.08);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.modal__close:hover{ background:#fff; box-shadow:0 14px 30px rgba(29,50,84,.12); }

.enroll-fallback,
.modal-cf7-wrap{
  max-width:100%;
  margin:0 auto;
}
.f-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-bottom:14px;
}
.f-grid--compact{
  align-items:end;
}
.f-row{ margin-bottom:14px; }
.f-label{
  display:block;
  font-weight:850;
  color:#1D3254;
  margin-bottom:0;
  font-size:12.6px;
}
.f-label span{
  color:var(--muted);
  font-weight:700;
}
.f-label input,
.f-label select,
.f-label textarea,
.enroll-fallback input,
.enroll-fallback select,
.enroll-fallback textarea,
.modal-cf7-wrap input:not([type="submit"]),
.modal-cf7-wrap select,
.modal-cf7-wrap textarea{
  display:block; width:100%;
  background:#fff; color:#1D3254;
  font:inherit; outline:none;
  border:1px solid rgba(29,50,84,.14);
  border-radius:16px;
  padding:14px 16px;
  margin-top:7px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.f-label textarea,
.enroll-fallback textarea,
.modal-cf7-wrap textarea{
  resize:vertical;
  min-height:98px;
}
.enroll-fallback input:focus,
.enroll-fallback select:focus,
.enroll-fallback textarea:focus,
.modal-cf7-wrap input:not([type="submit"]):focus,
.modal-cf7-wrap select:focus,
.modal-cf7-wrap textarea:focus{
  border-color:var(--sky);
  box-shadow:0 0 0 3px rgba(110,181,255,.25);
}
.f-check-row{
  padding:14px 16px;
  border:1px solid rgba(29,50,84,.09);
  border-radius:16px;
  background:rgba(255,255,255,.70);
}
.f-check{ display:inline-flex; align-items:center; gap:10px; font-weight:850; color:#1D3254; }
.f-check input{ width:20px; height:20px; accent-color:var(--sky); flex:0 0 auto; }
.f-actions{ display:flex; justify-content:center; margin-top:18px; }
.f-actions .btn{ min-width:min(100%, 280px); min-height:52px; }
.f-actions .btn:disabled{ opacity:.68; cursor:wait; transform:none; }
.hint{ font-size:12px; color:#66758b; margin:12px auto 0; max-width:58ch; text-align:center; }
.f-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
}
.form-status{
  min-height:22px;
  margin-top:12px;
  text-align:center;
  font-weight:800;
  color:var(--muted);
}
.enroll-fallback.is-success .form-status{ color:#187047; }
.enroll-fallback.is-error .form-status{ color:#b42318; }

.enroll-fallback select,
.modal-cf7-wrap select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%231D3254' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px;
  padding-right:36px;
  cursor:pointer;
}
.modal-cf7-wrap p{ margin:0 0 14px; }
.modal-cf7-wrap label{
  display:block;
  color:var(--royal);
  font-weight:850;
  font-size:12.6px;
}
.modal-cf7-wrap .wpcf7-form{
  display:grid;
  gap:12px;
}
.modal-cf7-wrap .wpcf7-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  min-width:min(100%, 280px);
  padding:13px 22px;
  border:0;
  border-radius:999px;
  color:var(--royal);
  background:linear-gradient(135deg, #FFE073 0%, var(--sunny) 48%, #FFC536 100%);
  box-shadow:0 14px 30px rgba(255,197,54,.28);
  font-weight:900;
  cursor:pointer;
}
.modal-cf7-wrap .wpcf7-not-valid-tip{
  margin-top:6px;
  color:#b42318;
  font-size:12px;
  font-weight:700;
}
.modal-cf7-wrap .wpcf7-response-output{
  margin:12px 0 0 !important;
  padding:12px 14px !important;
  border-radius:14px;
}
body.modal-open{ overflow:hidden; }
@media (max-width:760px){
  .modal{
    inset:68px 0 0;
    align-items:center;
    padding:10px;
  }
  .modal__dialog{
    width:100%;
    max-height:calc(100svh - 88px);
    border-radius:22px;
  }
  .modal__head{
    padding:22px 18px 0;
  }
  .modal__body{
    padding:16px 18px 22px;
  }
  .modal__title{
    margin-right:46px;
  }
  .f-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
}
@media (max-width:560px){
  .modal__title{ font-size:21.6px; }
  .modal__benefits span{
    width:100%;
  }
  .f-actions .btn{
    width:100%;
  }
}

/* =========================
   Legal pages + 404
========================= */
.legal-page,
.error-page{
  min-height:70vh;
  padding:clamp(110px, 11vw, 160px) 0 var(--section-y);
}
.legal-shell{ max-width:1120px; }
.legal-hero{
  max-width:840px;
  padding:clamp(26px, 4vw, 46px);
  border:1px solid var(--line);
  border-radius:32px;
  background:
    radial-gradient(420px 220px at 8% 0%, rgba(255,212,80,.22), transparent 70%),
    radial-gradient(440px 240px at 92% 10%, rgba(110,181,255,.18), transparent 72%),
    rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}
.legal-hero h1{
  margin:12px 0 10px;
  font-size:clamp(32.4px, 4.95vw, 61.2px);
  line-height:1.02;
}
.legal-hero p{ max-width:62ch; margin:0; color:var(--muted); font-size:clamp(14.4px, 1.35vw, 17.1px); }
.legal-updated{ display:block; margin-top:18px; color:var(--muted); font-size:11.7px; font-weight:700; }
.legal-layout{ display:grid; grid-template-columns:240px minmax(0, 1fr); gap:clamp(28px, 5vw, 70px); margin-top:48px; }
.legal-nav{
  position:sticky;
  top:112px;
  align-self:start;
  display:grid;
  gap:8px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.88);
}
.legal-nav strong{ margin-bottom:4px; color:var(--royal); }
.legal-nav a{ padding:7px 9px; border-radius:10px; color:var(--muted); text-decoration:none; font-size:12.6px; }
.legal-nav a:hover{ color:var(--royal); background:#eef6ff; }
.legal-content{ min-width:0; }
.legal-content--single{ max-width:820px; margin:48px auto 0; }
.legal-content section{ scroll-margin-top:112px; padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.legal-content h2{ margin-bottom:12px; font-size:clamp(21.6px, 2.7vw, 30.6px); }
.legal-content p,
.legal-content li{ color:var(--muted); }
.legal-content ul{ display:grid; gap:8px; padding-left:22px; }
.legal-inline-link,
.legal-content a{ color:var(--royal); font-weight:800; text-underline-offset:3px; }
.legal-contacts{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.legal-contacts a{
  padding:10px 14px;
  border:1px solid rgba(110,181,255,.30);
  border-radius:999px;
  background:#eef6ff;
  text-decoration:none;
}
.legal-contacts span{ width:100%; color:var(--muted); }
.legal-summary{ padding:24px !important; border:1px solid rgba(255,212,80,.38) !important; border-radius:22px; background:rgba(255,244,194,.48); }
.f-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  max-width:720px;
  margin:16px auto 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}
.f-consent input{ width:18px; height:18px; margin:1px 0 0; flex:none; accent-color:var(--sky); }
.f-consent a{ color:var(--royal); font-weight:800; text-underline-offset:2px; }
.footer-legal{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.footer-legal a{ color:rgba(255,255,255,.78); font-size:12px; text-decoration:none; }
.footer-legal a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.error-shell{
  display:grid;
  grid-template-columns:minmax(280px, .8fr) minmax(320px, 1fr);
  align-items:center;
  gap:clamp(28px, 6vw, 84px);
}
.error-code{
  color:var(--royal);
  font-family:'e-Ukraine',system-ui,sans-serif;
  font-size:clamp(113.4px, 18vw, 243px);
  font-weight:900;
  line-height:.78;
  letter-spacing:-.08em;
  text-shadow:14px 14px 0 rgba(255,212,80,.55), -10px -10px 0 rgba(110,181,255,.22);
}
.error-content h1{ margin:12px 0; font-size:clamp(34.2px, 4.5vw, 61.2px); line-height:1; }
.error-content p{ max-width:58ch; color:var(--muted); font-size:15.3px; }
.error-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
@media (max-width:800px){
  .legal-layout{ grid-template-columns:1fr; }
  .legal-nav{ position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .legal-nav strong{ grid-column:1/-1; }
  .error-shell{ grid-template-columns:1fr; }
  .error-code{ font-size:clamp(100.8px, 32.4vw, 171px); }
}
@media (max-width:560px){
  .legal-page,.error-page{ padding-top:100px; }
  .legal-hero{ padding:24px 20px; border-radius:24px; }
  .legal-nav{ grid-template-columns:1fr; }
  .legal-nav strong{ grid-column:auto; }
  .error-actions{ display:grid; }
  .error-actions .btn{ width:100%; }
  .footer-legal{ justify-content:flex-start; }
}

/* =========================
   Reviews Slider
========================= */
.reviews-slider-section{
  position:relative;
  padding-top:clamp(64px, 6vw, 92px);
}
.reviews-slider-section::before{
  content:"";
  position:absolute;
  inset:-10% 0 -10%;
  height:auto;
  background:
    radial-gradient(760px 390px at 8% 20%, rgba(255,212,80,.12), transparent 68%),
    radial-gradient(820px 420px at 92% 30%, rgba(110,181,255,.14), transparent 70%);
  mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 84%, transparent 100%);
  pointer-events:none;
  z-index:-1;
}
.reviews-shell{
  position:relative;
  padding:clamp(22px, 3vw, 34px);
  border:1px solid rgba(29,50,84,.08);
  border-radius:32px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.76)),
    radial-gradient(520px 220px at 0% 0%, rgba(255,212,80,.15), transparent 72%),
    radial-gradient(560px 240px at 100% 10%, rgba(110,181,255,.13), transparent 74%);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.reviews-shell::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.64);
  border-radius:24px;
  pointer-events:none;
}
.reviews-head{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(300px, .5fr);
  gap:clamp(22px, 3vw, 38px);
  align-items:start;
}
.reviews-copy .h2{
  max-width:760px;
  text-wrap:balance;
}
.reviews-sub{
  max-width:62ch;
  margin:12px 0 0;
  color:var(--muted);
  font-size:clamp(14.4px, 1.08vw, 16.2px);
}
.reviews-insight{
  position:relative;
  padding:clamp(18px, 1.8vw, 22px);
  border:1px solid rgba(29,50,84,.08);
  border-radius:26px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.76)),
    radial-gradient(260px 150px at 100% 0%, rgba(110,181,255,.18), transparent 72%);
  box-shadow:0 16px 42px rgba(29,50,84,.08);
}
.reviews-insight-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:var(--royal);
  font-size:12px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.reviews-insight-label::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.14);
}
.reviews-insight h3{
  margin:0 0 14px;
  color:var(--royal);
  font-size:clamp(18.9px, 1.53vw, 22.5px);
  line-height:1.12;
}
.reviews-insight ul{
  display:grid;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.reviews-insight li{
  position:relative;
  padding-left:24px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.5;
}
.reviews-insight li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.12);
}
.reviews-proof{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, .7fr) minmax(280px, .55fr);
  gap:18px;
  align-items:center;
  margin-top:clamp(18px, 2.2vw, 24px);
  padding:16px;
  border:1px solid rgba(29,50,84,.07);
  border-radius:24px;
  background:rgba(255,255,255,.62);
}
.reviews-proof-copy{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.reviews-proof-copy strong{
  color:var(--royal);
  font-size:15.3px;
  font-weight:900;
}
.reviews-proof-copy span{
  color:var(--muted);
  font-size:12.6px;
  line-height:1.5;
}
.reviews-proof-actions{
  display:flex;
  justify-content:flex-end;
}
.reviews-stats{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.reviews-stats span{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:38px;
  padding:8px 13px 8px 12px;
  border:1px solid rgba(29,50,84,.11);
  border-radius:999px;
  color:var(--royal);
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.72)),
    radial-gradient(90px 50px at 12% 10%, rgba(255,212,80,.28), transparent 72%);
  font-size:12px;
  font-weight:900;
  box-shadow:0 12px 30px rgba(29,50,84,.08);
}
.reviews-stats span::before{
  content:"";
  width:8px;
  height:8px;
  flex:0 0 auto;
  border-radius:999px;
  background:linear-gradient(135deg, var(--sunny), var(--sky));
  box-shadow:0 0 0 5px rgba(110,181,255,.13);
}
.reviews-slider{
  position:relative;
  z-index:1;
  margin-top:clamp(20px, 2.2vw, 26px);
  user-select:none;
  --g:18px;
  --slides:3;
  --speed:450ms;
}
.rs-viewport{
  overflow:hidden;
  border-radius:var(--radius-lg);
}
.rs-track{
  display:flex; gap:var(--g);
  will-change: transform;
  transform: translate3d(0,0,0);
  transition: transform var(--speed) cubic-bezier(.16,1,.3,1);
  padding:2px;
}
.rs-slide{
  flex: 0 0 calc((100% - (var(--g) * (var(--slides) - 1))) / var(--slides));
}
@media (max-width:1100px){ .reviews-slider{ --slides:2; } }
@media (max-width:640px){ .reviews-slider{ --slides:1; } }

.review-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.84)),
    radial-gradient(260px 160px at 100% 0%, rgba(110,181,255,.12), transparent 72%);
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  padding:20px;
  box-shadow:var(--shadow-soft);
  transition:box-shadow .25s ease, border-color .25s ease;
  height:100%;
  min-height:340px;
  overflow:hidden;
}
.review-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(145deg, rgba(255,212,80,.54), rgba(110,181,255,.38), transparent 64%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:.70;
  transition: opacity .25s ease;
  pointer-events:none;
}
.review-card:hover::before{ opacity:.70; }
.review-card:hover{
  box-shadow: var(--shadow-soft);
  border-color: rgba(29,50,84,.08);
}
.rev-card-top{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:34px;
  margin-bottom:12px;
}
.rev-card-top > span:first-child{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  color:var(--royal);
  background:linear-gradient(135deg, rgba(255,212,80,.28), rgba(110,181,255,.18));
  border:1px solid rgba(29,50,84,.08);
  font-size:12px;
  font-weight:900;
}
.rev-quote{
  display:block;
  color:rgba(110,181,255,.20);
  font-family:'e-Ukraine',system-ui,sans-serif;
  font-size:52.2px;
  font-weight:900;
  line-height:.7;
  pointer-events:none;
}
.rev-text{
  position:relative;
  z-index:1;
  font-size:13.5px;
  line-height:1.7;
  color:#1d3254;
  margin:0 0 16px;
}
.rev-media{
  position:relative;
  z-index:1;
  border-radius:20px;
  overflow:hidden;
  margin-bottom:16px;
  background:#f1f5fb;
  border:1px solid rgba(29,50,84,.08);
}
.rev-media img.rev-img{
  width:100%;
  aspect-ratio: 16 / 10;
  object-fit:cover;
  display:block;
}
.rev-result{
  position:relative;
  z-index:1;
  margin-top:auto;
  padding:14px 15px;
  border:1px solid rgba(29,50,84,.07);
  border-radius:18px;
  color:var(--royal);
  background:
    linear-gradient(135deg, rgba(255,255,255,.86), rgba(255,255,255,.66)),
    radial-gradient(140px 80px at 0% 0%, rgba(255,212,80,.22), transparent 72%);
  font-size:12.6px;
  font-weight:800;
  line-height:1.45;
}
.rev-result span{
  display:block;
  margin-bottom:4px;
  color:#74839A;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.rev-author{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(29,50,84,.08);
}
.rev-ava{ width:42px; height:42px; border-radius:50%; object-fit:cover; border:1px solid rgba(0,0,0,.08); }
.rev-ava-placeholder{
  width:42px;
  height:42px;
  border-radius:50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.9), transparent 26%),
    linear-gradient(135deg, var(--sunny), var(--sky));
  border:1px solid rgba(29,50,84,.08);
  flex:0 0 auto;
}
.rev-meta{ display:flex; flex-direction:column; }
.rev-name{ font-weight:900; font-size:12.6px; color:#1D3254; }
.rev-role{ font-size:12px; color:var(--muted); }

/* Arrows */
.rs-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px; border-radius:16px;
  border:1px solid rgba(29,50,84,.10);
  background:#fff; color:#1D3254;
  display:grid; place-items:center;
  cursor:pointer;
  box-shadow:0 14px 34px rgba(29,50,84,.12);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.rs-prev{ left:-12px; } .rs-next{ right:-12px; }
.rs-arrow:hover{ transform:translateY(-50%); background:#F7F9FB; }
@media (max-width:640px){ .rs-arrow{ display:none; } }

/* Dots */
.rs-dots{ display:flex; gap:8px; justify-content:center; margin-top:14px; }
.rs-dot{
  width:8px; height:8px; border-radius:999px;
  background:#c8d3e5;
  border:none; padding:0;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
}
.rs-dot[aria-current="true"]{ background:#1D3254; transform: scale(1.25); }
.reviews-bottom{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:clamp(18px, 2.2vw, 24px);
  padding:18px;
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(340px 180px at 8% 0%, rgba(255,212,80,.20), transparent 70%),
    radial-gradient(340px 190px at 100% 20%, rgba(110,181,255,.22), transparent 74%),
    linear-gradient(135deg, var(--royal), #102845);
  box-shadow:0 22px 54px rgba(29,50,84,.15);
}
.reviews-bottom strong,
.reviews-bottom span{
  display:block;
}
.reviews-bottom strong{
  color:#fff;
  font-size:clamp(16.2px, 1.44vw, 21.6px);
  line-height:1.15;
}
.reviews-bottom span{
  margin-top:5px;
  color:rgba(255,255,255,.76);
  font-size:12.6px;
  line-height:1.45;
}
.reviews-cta{
  flex:0 0 auto;
}

@media (prefers-reduced-motion: reduce){
  .rs-track, .review-card, .rs-arrow, .rs-dot{ transition:none !important; }
}

@media (max-width:900px){
  .reviews-head,
  .reviews-proof{
    grid-template-columns:1fr;
  }
  .reviews-proof-actions,
  .reviews-stats{
    justify-content:flex-start;
  }
  .reviews-bottom{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width:640px){
  .reviews-slider-section{
    padding-top:52px;
  }
  .reviews-shell{
    padding:16px;
    border-radius:24px;
  }
  .reviews-shell::before{
    inset:10px;
    border-radius:18px;
  }
  .reviews-insight,
  .reviews-proof,
  .reviews-bottom{
    border-radius:20px;
  }
  .reviews-insight{
    padding:14px;
  }
  .reviews-head{
    gap:16px;
  }
  .reviews-insight h3{
    margin-bottom:10px;
    font-size:18.9px;
  }
  .reviews-insight li{
    font-size:12.6px;
  }
  .reviews-proof{
    padding:14px;
  }
  .reviews-stats span{
    min-height:36px;
    font-size:12px;
  }
  .review-card{
    min-height:330px;
    padding:16px;
    border-radius:20px;
  }
  .rev-media{
    border-radius:16px;
  }
  .reviews-cta{
    width:100%;
  }
}

/* =========================
   Contacts v2
========================= */
.contacts-v2{ position:relative; }
.contacts-grid{
  display:grid;
  gap:clamp(18px, 3vw, 34px);
  grid-template-columns: 1.05fr .95fr;
  margin-top:30px;
}
@media (max-width: 980px){
  .contacts-grid{ grid-template-columns:1fr; }
}

.contacts-media{ display:flex; flex-direction:column; gap:14px; }

.contacts-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-lg);
  border:1px solid rgba(255,255,255,.72);
  background:#fff;
  box-shadow: var(--shadow-soft);
  height: clamp(280px, 34vw, 440px);
  isolation:isolate;
}
.contacts-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  transform: none;
}

.contacts-placeholder{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 500px at 30% 10%, rgba(255,212,80,.25), transparent 60%),
    radial-gradient(900px 420px at 70% 40%, rgba(110,181,255,.22), transparent 55%),
    #fff;
}
.contacts-glow{
  position:absolute; inset:-1px;
  border-radius:16px;
  background: linear-gradient(120deg, rgba(255,212,80,.45), rgba(110,181,255,.45));
  opacity:.18;
  mix-blend-mode: screen;
  filter: blur(14px);
  pointer-events:none;
}

.contacts-cta{
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.78));
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow: var(--shadow-soft);
}
.contacts-cta-title{
  font-weight:900;
  color:var(--royal);
  font-size:16.2px;
  margin-bottom:4px;
}
.contacts-cta-sub{ color:var(--muted); margin-bottom:16px; }

.contacts-card{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  padding:24px;
  box-shadow: var(--shadow-soft);
}
.contacts-list{ display:flex; flex-direction:column; gap:15px; } /* 15px between phone/email/location */

.contact-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  border-radius:18px;
  text-decoration:none;
  color:var(--royal);
  background: rgba(110,181,255,.06);
  border:1px solid rgba(29,50,84,.08);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.contact-item::before{
  content:"";
  position:absolute; inset:0;
  border-radius:14px;
  padding:1px;
  background: linear-gradient(90deg, var(--sunny), var(--sky));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:0;
  transition: opacity .2s ease;
}
.contact-item:hover::before{ opacity:.9; }
.contact-item:hover{
  transform: translateY(-3px);
  background: rgba(110,181,255,.10);
  border-color: transparent;
  box-shadow: 0 16px 38px rgba(29,50,84,.10);
}
.ci-ic{
  width:46px; height:46px;
  border-radius:16px;
  display:grid; place-items:center;
  background: rgba(255,212,80,.22);
  border:1px solid rgba(29,50,84,.08);
  flex: 0 0 42px;
}
.ci-body{ display:flex; flex-direction:column; min-width:0; }
.ci-label{ font-size:12px; color:#627086; }
.ci-value{
  font-weight:800;
  color:var(--royal);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ci-arrow{
  margin-left:auto;
  opacity:.75;
  transition: transform .2s ease, opacity .2s ease;
}
.contact-item:hover .ci-arrow{ transform: translateX(2px); opacity:1; }

.contacts-note{
  margin-top:12px;
  display:flex; align-items:center; gap:10px;
  color:#627086;
  font-size:11.7px;
}
.note-dot{
  width:10px; height:10px; border-radius:999px;
  background: radial-gradient(circle at 30% 30%, var(--sunny), transparent 60%),
              radial-gradient(circle at 70% 70%, var(--sky), transparent 60%);
  box-shadow: 0 0 10px rgba(255,212,80,.6);
}
@media (prefers-reduced-motion: reduce){
  .contact-item, .contact-item::before{ transition:none !important; }
}

/* =========================
   FAQ v4 (your markup: .faq-item/.faq-q/.faq-a)
========================= */
.faq-v4{ background:#fff; }
.faq-head{ margin-bottom:18px; max-width:820px; }
.faq-sub{ margin:10px 0 0; color:var(--muted); max-width:70ch; }

.faq-grid{
  display:grid;
  grid-template-columns: .82fr 1.18fr;
  gap:clamp(18px, 3vw, 34px);
  align-items:start;
  margin-top:30px;
}
@media (max-width: 980px){
  .faq-grid{ grid-template-columns: 1fr; }
}

/* Left sticky card */
.faq-side-card{
  position:sticky; top:92px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
  border:1px solid rgba(29,50,84,.08);
  border-radius:var(--radius-lg);
  padding:24px;
  box-shadow:var(--shadow-soft);
}
@media (max-width: 980px){
  .faq-side-card{ position:relative; top:auto; }
}
.faq-side-title{ font-weight:900; font-size:18px; color:var(--royal); margin-bottom:8px; }
.faq-side-text{ color:var(--muted); font-size:13.5px; margin-bottom:18px; }
.faq-side-actions{ display:flex; gap:10px; flex-wrap:wrap; }

.faq-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.faq-chip{
  display:inline-flex; align-items:center;
  font-size:12px; font-weight:800;
  padding:6px 10px;
  border-radius:999px;
  color:var(--royal);
  background: rgba(110,181,255,.12);
  border:1px solid rgba(29,50,84,.08);
}

/* List */
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{
  position:relative;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(29,50,84,.08);
  border-radius:20px;
  box-shadow:0 12px 34px rgba(29,50,84,.08);
  overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  cursor:pointer; /* whole card looks clickable */
}
.faq-item:hover{
  transform: translateY(-3px);
  box-shadow:0 18px 48px rgba(29,50,84,.12);
  border-color: rgba(110,181,255,.35);
}
.faq-item::before{
  content:""; position:absolute; inset:0; border-radius:16px; padding:1px;
  background: linear-gradient(90deg, var(--sunny), var(--sky));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:0;
  transition: opacity .25s ease;
  pointer-events:none;
}
.faq-item:hover::before{ opacity:.9; }

/* Question button */
.faq-q{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:18px 18px;
  background:transparent;
  border:0;
  cursor:pointer;
  text-align:left;
  color:var(--royal);
}
.faq-q-text{ font-weight:900; font-size:14.4px; line-height:1.35; }

/* Icon */
.faq-icon{
  width:30px; height:30px; border-radius:10px;
  border:1px solid rgba(0,0,0,.08);
  background: rgba(110,181,255,.10);
  position:relative;
  flex: 0 0 auto;
  transition: transform .25s ease, background .25s ease;
}
.faq-icon::before, .faq-icon::after{
  content:""; position:absolute; left:50%; top:50%;
  width:14px; height:2px; background: var(--royal);
  transform: translate(-50%,-50%);
  border-radius:2px;
}
.faq-icon::after{ width:2px; height:14px; }
.faq-item.is-open .faq-icon{
  background: rgba(255,212,80,.22);
  transform: rotate(45deg);
  animation: faqPop .35s cubic-bezier(.16,1,.3,1);
}
@keyframes faqPop{
  0%{ transform: rotate(0) scale(.95); }
  100%{ transform: rotate(45deg) scale(1); }
}

/* Answer panel */
.faq-a{ height:0; overflow:hidden; }
.faq-a-inner{
  padding: 0 16px 16px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.65;
}

/* Open state */
.faq-item.is-open{ border-color: rgba(110,181,255,.55); }
.faq-item.is-open::after{
  content:"";
  position:absolute;
  left:0; top:10px; bottom:10px;
  width:4px;
  border-radius:99px;
  background: linear-gradient(180deg, var(--sunny), var(--sky));
}
.faq-item.is-open .faq-a-inner{
  margin: 0 16px 16px;
  padding: 16px;
  border-radius: 16px;
  background: rgba(247,249,251,.9);
  border: 1px solid rgba(0,0,0,.06);
}
.faq-item .faq-a{ cursor:default; } /* text not like button */

/* Accessibility */
.faq-q:focus-visible{
  outline:3px solid var(--sky);
  outline-offset:3px;
  border-radius:14px;
}

@media (prefers-reduced-motion: reduce){
  .faq-item, .faq-icon, .faq-item::before{ transition:none !important; }
}

/* =========================
   FAQ + CTA redesign
========================= */
.faq-redesign{
  padding-top:clamp(68px, 7vw, 104px);
}
.faq-footer{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px, 2.4vw, 28px);
  align-items:stretch;
}
.faq-card,
.faq-cta-card{
  position:relative;
  min-height:100%;
  padding:clamp(24px, 3vw, 34px);
  border-radius:28px;
  border:1px solid rgba(29,50,84,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.84));
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.faq-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(320px 160px at 0% 0%, rgba(255,212,80,.16), transparent 72%),
    radial-gradient(300px 180px at 100% 12%, rgba(110,181,255,.14), transparent 74%);
  pointer-events:none;
}
.faq-card > *,
.faq-cta-card > *{
  position:relative;
  z-index:1;
}
.faq-card .h2{
  max-width:560px;
  margin-bottom:12px;
}
.faq-card > p{
  max-width:58ch;
  margin:0 0 22px;
  color:var(--muted);
  font-size:clamp(13.5px, .99vw, 15.3px);
}
.faq-list--compact{
  gap:10px;
}
.faq-list--compact .faq-item{
  box-shadow:none;
  background:rgba(255,255,255,.76);
}
.faq-list--compact .faq-item:hover{
  transform:none;
  box-shadow:0 12px 30px rgba(29,50,84,.08);
}
.faq-list--compact .faq-q{
  padding:15px 16px;
}
.faq-list--compact .faq-a-inner{
  font-size:12.6px;
}
.faq-cta-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#fff;
  background:
    radial-gradient(420px 220px at 12% 0%, rgba(255,212,80,.20), transparent 68%),
    radial-gradient(440px 260px at 92% 20%, rgba(110,181,255,.20), transparent 70%),
    linear-gradient(135deg, var(--royal), #102845);
  border-color:rgba(255,255,255,.12);
}
.faq-cta-card::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
}
.faq-cta-kicker{
  color:var(--royal);
  background:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.28);
  box-shadow:0 12px 30px rgba(8,22,42,.18);
}
.faq-cta-card h2{
  margin:0 0 12px;
  color:#fff;
  font-size:clamp(30.6px, 3.42vw, 52.2px);
  line-height:1;
}
.faq-cta-card p{
  max-width:48ch;
  margin:0 0 24px;
  color:rgba(255,255,255,.78);
  font-size:clamp(14.4px, 1.08vw, 16.2px);
}
.faq-cta-card .btn{
  align-self:flex-start;
}
@media (max-width: 900px){
  .faq-footer{
    grid-template-columns:1fr;
  }
}

/* =========================
   Footer v2
========================= */
.footer-v2{
  background:
    radial-gradient(700px 360px at 12% 0%, rgba(255,212,80,.20), transparent 60%),
    radial-gradient(720px 420px at 92% 18%, rgba(110,181,255,.20), transparent 62%),
    linear-gradient(180deg, #1D3254 0%, #142640 100%);
  color:#fff;
  margin-top:clamp(36px, 6vw, 72px);
  position:relative;
  overflow:hidden;
}
.footer-v2::before{
  content:"";
  position:absolute; inset:-40px;
  background:
    radial-gradient(500px 240px at 12% 10%, rgba(255,212,80,.18), transparent 60%),
    radial-gradient(520px 260px at 92% 30%, rgba(110,181,255,.18), transparent 60%);
  filter: blur(2px);
  pointer-events:none;
  opacity:.9;
}
.footer-hero{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:24px;
  align-items:end;
  padding:clamp(40px, 6vw, 74px) 0 24px;
}
.footer-kicker{
  color:var(--royal);
  background:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.28);
  box-shadow:0 12px 30px rgba(8,22,42,.18);
}
.footer-title{
  max-width:760px;
  margin:0;
  color:#fff;
  font-size:clamp(30.6px, 4.32vw, 57.6px);
  line-height:1;
  text-wrap:balance;
}
.footer-hero-cta{
  min-width:220px;
  align-self:center;
}
.footer-badges{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding-bottom:28px;
}
.footer-badges span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:8px 13px;
  border-radius:999px;
  color:#fff;
  font-size:11.7px;
  font-weight:900;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.footer-badges span::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--sunny);
  box-shadow:0 0 0 4px rgba(255,212,80,.16);
}
.footer-top{
  position:relative;
  z-index:1;
  display:grid;
  gap:24px;
  grid-template-columns: 1.25fr .95fr .95fr 1fr;
  align-items:start;
  padding:28px 0 30px;
  border-top:1px solid rgba(255,255,255,.14);
}
@media (max-width: 900px){
  .footer-top{ grid-template-columns:1fr; padding:36px 0 18px; }
}

/* logo left */
.footer-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  gap:12px;
}
.footer-logo{
  display:inline-flex; align-items:center; justify-content:flex-start;
  gap:10px;
  text-decoration:none;
  color:#fff;
}
.footer-logo-img{ max-height:44px; width:auto; display:block; }
.footer-logo-text{ font-weight:900; font-size:19.8px; letter-spacing:0; }

.footer-note{
  margin:0;
  color: rgba(255,255,255,.82);
  max-width: 44ch;
}

.footer-col-title{
  font-weight:900;
  margin:6px 0 12px;
  letter-spacing:0;
  color:#fff;
}

.footer-nav-grid{
  display:grid;
  gap:8px;
}
.footer-nav-grid a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:rgba(255,255,255,.84);
  text-decoration:none;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.footer-nav-grid a::after{
  content:"→";
  opacity:.45;
  transition:transform .2s ease, opacity .2s ease;
}
.footer-nav-grid a:hover{
  color:#fff;
  transform:translateY(-2px);
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
}
.footer-nav-grid a:hover::after{
  opacity:1;
  transform:translateX(2px);
}

.footer-cta{
  align-self:flex-start;
  box-shadow:0 10px 28px rgba(255,212,80,.30);
}
.footer-cta:hover{ box-shadow:0 14px 34px rgba(255,212,80,.45); }

.footer-link{
  display:flex;
  align-items:center;
  gap:10px;
  color: rgba(255,255,255,.9);
  text-decoration:none;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
  margin-bottom:15px; /* 15px between phone/email/location */
}
.footer-contacts .footer-link:last-child{ margin-bottom:0; }
.footer-link:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.18);
}

.socials-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.social-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 14px;
  border-radius:999px;
  text-decoration:none;
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.social-pill:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.20);
}

.footer-bottom{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 0 18px;
  border-top:1px solid rgba(255,255,255,.14);
}
.footer-copy{ color: rgba(255,255,255,.78); font-size:12px; }

.footer-backtotop{
  color:#fff; text-decoration:none;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  transition: transform .2s ease, background .2s ease;
}
.footer-backtotop:hover{ transform: translateY(-1px); background: rgba(255,255,255,.10); }

@media (prefers-reduced-motion: reduce){
  .footer-link, .social-pill, .footer-backtotop, .footer-nav-grid a{ transition:none !important; }
}

/* показать общий градиент, убрать белые подложки секций */
.section--alt{ background: transparent; }

/* секции с "белым фоном" — делаем прозрачными */
.faq-v4{ background: transparent; }

/* если price-секция имеет класс/обертку с белым фоном — тоже */
.price-v2,
.section-price,
#price{ background: transparent; }

/* на всякий случай: если у секций был inline/background */
.section{ background: transparent; }

/* ===== Modal close перекрывает заголовок ===== */
.modal__title{
  padding-right: 56px; /* место под крестик */
}

.modal__close{
  top: 12px;
  right: 12px;
  z-index: 2;
}

@media (max-width: 900px){
  .header-inner{
    gap: 6px;
    padding: 10px 0;
  }

  /* кнопка в хедере */
  .btn-cta{
    padding: 12px 16px;
    border-radius: 999px;
    white-space: nowrap;
  }
}

/* планшет: держим кнопку нормально, не обрезаем */
@media (min-width: 640px) and (max-width: 900px){
  .header-inner{ justify-content: space-between; }
}

/* ===== Footer button fit on mobile ===== */
@media (max-width: 480px){
  .footer-cta{
    width: 100%;
    text-align: center;
  }
  .footer-top{
    gap: 18px;
  }
}

/* ===== Layout refresh responsive polish ===== */
@media (max-width: 900px){
  :root{
    --section-y:60px;
    --header-offset:84px;
  }

  .site-header{ background:rgba(255,255,255,.94); }
  .header-inner{ min-height:68px; }
  .logo .wings-brand-asset{ width:60px; }
  .header-inner > .btn-cta{ margin-left:auto; }

  .hero-v2,
  .hero-inner{
    min-height:auto;
  }
  .hero-inner{
    padding:64px 0 58px;
    grid-template-columns:1fr;
    gap:24px;
  }
  .hero-v2::before{
    background:
      linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.86) 58%, rgba(255,255,255,.72) 100%),
      radial-gradient(520px 320px at 18% 10%, rgba(255,212,80,.38), transparent 64%),
      radial-gradient(500px 340px at 82% 8%, rgba(110,181,255,.30), transparent 66%),
      var(--hero-bg) center/cover no-repeat;
  }
  .hero-title{ max-width:12ch; }
  .hero-sub{ max-width:42ch; }
  .hero-guide{
    justify-self:start;
    width:min(100%, 560px);
    padding:22px;
  }
  .hero-proof-pills{
    max-width:620px;
  }
  .trust-heading{
    display:block;
  }
  .trust-heading .section-kicker{
    margin-bottom:10px;
  }
  .start-panel{
    grid-template-columns:1fr;
  }
  .price-head{
    grid-template-columns:1fr;
    gap:14px;
    align-items:start;
  }

  .benefit-card,
  .plan-card,
  .contacts-card,
  .contacts-cta,
  .faq-side-card,
  .review-card{
    border-radius:20px;
  }

  .reviews-head,
  .gallery-head,
  .footer-hero{
    grid-template-columns:1fr;
    align-items:start;
  }
  .reviews-proof{
    justify-self:start;
    width:100%;
  }
  .reviews-stats{
    justify-content:flex-start;
  }
  .gallery-badges{
    justify-content:flex-start;
  }
  .gallery-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .gallery-card.is-featured{
    grid-column:span 1;
    min-height:360px;
  }
  .reviews-cta,
  .footer-hero-cta{
    width:100%;
  }
  .footer-top{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 640px){
  :root{
    --section-y:52px;
    --header-offset:76px;
  }
  .container{ width:min(100% - 32px, 1180px); }

  .header-inner > .btn-cta{
    padding:10px 13px;
    min-height:42px;
    font-size:11.7px;
  }
  .burger{ width:42px; height:38px; }

  .hero-inner{
    padding:34px 0 34px;
    gap:16px;
  }
  .hero-title{
    font-size:clamp(30.6px, 9.54vw, 39.6px);
    line-height:1.02;
    max-width:11ch;
  }
  .hero-sub{
    font-size:13.5px;
    line-height:1.55;
    margin:12px 0 18px;
  }
  .hero-actions{ gap:10px; }
  .hero-actions .btn{
    width:100%;
    min-height:46px;
  }
  .hero-proof-pills{
    gap:8px;
  }
  .hero-proof-pills span{
    min-height:38px;
    padding:8px 12px;
    font-size:11.7px;
  }
  .hero-guide{
    border-radius:20px;
    padding:15px;
  }
  .hero-guide h2{
    font-size:18.9px;
  }
  .hero-guide p,
  .hero-guide li{
    font-size:12.6px;
  }
  .hero-guide p{
    display:none;
  }
  .hero-guide ul{
    gap:7px;
  }
  .hero-guide-note{
    display:none;
  }
  .trust-heading h2{
    font-size:21.6px;
  }
  .start-panel{
    padding:20px;
    border-radius:22px;
  }
  .start-step{
    grid-template-columns:1fr;
    gap:8px;
  }
  .start-step span{
    grid-row:auto;
  }

  .about-media{ order:0; }
  .media-frame,
  .contacts-frame{
    height:250px;
  }
  .benefit-card,
  .plan-card,
  .contacts-card,
  .contacts-cta,
  .faq-side-card,
  .gallery-card,
  .reviews-shell{
    padding:20px;
  }
  .gallery-card{
    padding:0;
  }
  .plans-grid,
  .benefits-grid,
  .gallery-grid,
  .contacts-grid,
  .faq-grid{
    margin-top:22px;
  }
  .gallery-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .gallery-card,
  .gallery-card.is-featured{
    min-height:260px;
  }
  .gallery-card-body{
    padding:16px;
  }
  .price-head p,
  .gallery-sub{
    font-size:13.5px;
  }
  .plan-card{
    min-height:450px;
    padding:0;
    border-radius:20px;
  }
  .plan-card-head{
    min-height:104px;
    padding:18px 20px 16px;
  }
  .plan-card-top{
    margin-bottom:10px;
  }
  .plan-index{
    font-size:12.6px;
  }
  .plan-card-content{
    padding:24px 20px 20px;
  }
  .plan-summary{
    grid-template-columns:minmax(0, 1fr) minmax(104px, auto);
    gap:12px;
    padding-bottom:20px;
  }
  .plan-name{
    font-size:19.8px;
  }
  .plan-price{
    font-size:13.5px;
  }
  .plan-features{
    margin:16px 0 20px;
  }
  .plan-features li{
    margin:10px 0;
    font-size:12.6px;
  }

  .contact-item{
    align-items:flex-start;
  }
  .ci-arrow{ padding-top:12px; }

  .reviews-shell{
    border-radius:24px;
    margin-inline:-4px;
  }
  .review-card{
    min-height:300px;
    padding:20px;
  }
  .footer-title{
    font-size:clamp(28.8px, 9vw, 39.6px);
  }
  .footer-top{
    grid-template-columns:1fr;
  }
  .footer-bottom{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* =========================
   Blog archive
========================= */
.blog-archive-page,
.single-article{
  background:
    radial-gradient(760px 420px at 4% 6%, rgba(255,212,80,.13), transparent 68%),
    radial-gradient(820px 520px at 96% 8%, rgba(110,181,255,.14), transparent 68%);
}
.blog-archive-hero{
  padding:clamp(76px, 8.5vw, 132px) 0 clamp(44px, 5vw, 72px);
}
.blog-archive-hero__inner{
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(300px, .62fr);
  gap:clamp(32px, 8vw, 130px);
  align-items:end;
}
.blog-archive-hero h1{
  margin:0;
  font-size:clamp(43.2px, 5.4vw, 75.6px);
  line-height:.98;
  letter-spacing:-.025em;
}
.blog-archive-hero p{
  max-width:34ch;
  margin:0;
  color:var(--muted);
  font-size:clamp(15.3px, 1.395vw, 19.8px);
  line-height:1.55;
}
.blog-listing{
  padding:0 0 var(--section-y);
}
.blog-categories{
  display:flex;
  align-items:stretch;
  margin-bottom:clamp(30px, 3.5vw, 48px);
  padding:4px;
  overflow-x:auto;
  border:1px solid rgba(29,50,84,.12);
  border-radius:18px;
  background:rgba(255,255,255,.88);
  box-shadow:0 16px 42px rgba(29,50,84,.08);
  scrollbar-width:none;
}
.blog-categories::-webkit-scrollbar{ display:none; }
.blog-categories a{
  display:flex;
  flex:1 0 auto;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:10px 22px;
  border-right:1px solid rgba(29,50,84,.08);
  color:var(--royal);
  font-size:12.6px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  transition:background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.blog-categories a:last-child{ border-right:0; }
.blog-categories a:hover{ background:rgba(110,181,255,.08); }
.blog-categories a[aria-current="page"]{
  border-right-color:transparent;
  border-radius:14px;
  background:linear-gradient(135deg, #FFE073, var(--sunny));
  box-shadow:0 10px 24px rgba(255,197,54,.23);
}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(20px, 2.5vw, 30px);
  transition:opacity .2s ease;
}
.blog-grid[aria-busy="true"]{ opacity:.56; }
.blog-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(29,50,84,.12);
  border-radius:20px;
  background:rgba(255,255,255,.9);
  box-shadow:0 14px 38px rgba(29,50,84,.065);
  transition:transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.blog-card:hover{
  transform:translateY(-5px);
  border-color:rgba(110,181,255,.4);
  box-shadow:0 24px 56px rgba(29,50,84,.12);
}
.blog-card:focus-within{
  border-color:var(--sky);
  box-shadow:0 0 0 4px rgba(110,181,255,.18), 0 20px 48px rgba(29,50,84,.1);
}
.blog-card__media{
  display:block;
  aspect-ratio:4 / 3;
  margin:8px 8px 0;
  overflow:hidden;
  border-radius:14px;
  background:#eef4fb;
  text-decoration:none;
}
.blog-card__media > img,
.blog-card__media .blog-card__fallback,
.blog-card__fallback > img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.blog-card__media > img{
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.blog-card:hover .blog-card__media > img{ transform:scale(1.035); }
.blog-card__fallback{
  position:relative;
  display:grid;
  place-items:center;
  color:var(--royal);
}
.blog-card__fallback > img{
  position:absolute;
  inset:0;
  opacity:.72;
}
.blog-card__fallback .wings-brand-asset{
  position:relative;
  z-index:1;
  width:clamp(96px, 12vw, 148px);
  border-radius:24px;
  box-shadow:0 16px 42px rgba(29,50,84,.12);
}
.blog-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:20px 20px 18px;
}
.blog-card__category{
  align-self:flex-start;
  margin-bottom:10px;
  color:#2775d4;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.blog-card__category:hover{ text-decoration:underline; }
.blog-card__title{
  margin:0 0 10px;
  font-size:clamp(18px, 1.485vw, 22.5px);
  line-height:1.26;
}
.blog-card__title a{
  color:inherit;
  text-decoration:none;
}
.blog-card__excerpt{
  margin:0 0 22px;
  color:var(--muted);
  font-size:12.6px;
  line-height:1.62;
}
.blog-card__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:auto;
  color:var(--muted);
  font-size:12px;
}
.blog-card__meta span,
.blog-card__meta a{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.blog-card__meta a{
  color:#2775d4;
  font-weight:700;
  text-decoration:none;
}
.blog-card__meta svg{
  width:17px;
  height:17px;
  flex:0 0 auto;
}
.blog-load-more-wrap{
  display:grid;
  justify-items:center;
  margin-top:clamp(34px, 4vw, 54px);
}
.blog-load-more{
  min-width:220px;
  border-radius:15px;
}
.blog-load-more[hidden]{ display:none; }
.blog-load-status{
  min-height:24px;
  margin:10px 0 0;
  color:#9b3f36;
  font-size:11.7px;
}
.blog-empty{
  grid-column:1 / -1;
  padding:clamp(38px, 6vw, 76px);
  border:1px dashed rgba(29,50,84,.18);
  border-radius:20px;
  text-align:center;
  background:rgba(255,255,255,.7);
}
.blog-empty h2{ margin-bottom:8px; }
.blog-empty p{ margin:0; color:var(--muted); }

/* =========================
   Single article
========================= */
.article-hero{
  padding-top:clamp(64px, 7vw, 112px);
}
.article-hero__grid{
  display:block;
  width:100%;
}
.article-hero__title h1{
  max-width:22ch;
  margin:0;
  font-size:clamp(37.8px, 4.59vw, 64.8px);
  line-height:1.04;
  letter-spacing:-.025em;
}
.article-hero__lead{
  max-width:32ch;
  margin:4px 0 0;
  color:var(--muted);
  font-size:clamp(16.2px, 1.395vw, 20.7px);
  line-height:1.55;
}
.article-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 18px;
  margin-top:24px;
  color:var(--muted);
  font-size:12px;
}
.article-meta span,
.article-meta a{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.article-meta a{
  color:#2775d4;
  font-weight:600;
  text-decoration:none;
}
.article-meta a:hover{ text-decoration:underline; }
.article-meta svg{ width:17px; height:17px; }
.article-hero__media{
  aspect-ratio:2.35 / 1;
  margin:clamp(34px, 4vw, 54px) 0 0;
  overflow:hidden;
  border-radius:22px;
  clip-path:polygon(0 0, 88% 0, 100% 100%, 0 100%);
  box-shadow:0 22px 64px rgba(29,50,84,.13);
  background:#eef4fb;
}
.article-hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.article-layout{
  display:grid;
  grid-template-columns:minmax(180px, 230px) minmax(0, 820px);
  justify-content:center;
  gap:clamp(40px, 6vw, 84px);
  padding-top:clamp(48px, 6vw, 82px);
  padding-bottom:var(--section-y);
}
.article-layout.has-no-toc{ grid-template-columns:minmax(0, 820px); }
.article-sidebar{
  min-width:0;
  width:100%;
  justify-self:center;
}
.article-toc--desktop{
  position:sticky;
  top:calc(var(--header-offset) + 26px);
  width:100%;
  max-width:218px;
  margin-inline:auto;
}
.article-toc__title,
.article-toc--mobile summary{
  margin-bottom:16px;
  color:var(--royal);
  font-size:12.6px;
  font-weight:700;
}
.article-toc ol{
  margin:0;
  padding:0 0 0 18px;
  border-left:1px solid rgba(29,50,84,.16);
  list-style:none;
}
.article-toc li{ margin:0; }
.article-toc a{
  position:relative;
  isolation:isolate;
  display:block;
  margin:2px 0;
  padding:8px 10px 8px 14px;
  border-radius:10px;
  color:var(--muted);
  font-size:11.7px;
  line-height:1.42;
  text-decoration:none;
  transition:color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.article-toc .is-level-3 a{
  padding-left:26px;
  font-size:12px;
}
.article-toc a::before{
  content:"";
  position:absolute;
  left:-9px;
  top:15px;
  width:7px;
  height:7px;
  border:2px solid #fff;
  border-radius:50%;
  background:#cbd8e8;
  box-shadow:0 0 0 1px rgba(29,50,84,.14);
  z-index:1;
}
.article-toc a:hover,
.article-toc a[aria-current="true"]{
  color:var(--royal);
  transform:translateX(2px);
}
.article-toc a[aria-current="true"]{
  background:transparent;
  box-shadow:none;
  font-weight:600;
}
.article-toc a[aria-current="true"]::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 0 0 14px;
  border-radius:10px;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 22px rgba(29,50,84,.07);
}
.article-toc a[aria-current="true"]::before{
  background:var(--sunny);
  box-shadow:0 0 0 5px rgba(255,212,80,.22);
}
.article-toc--mobile{ display:none; }
.article-content{
  color:#4f5e73;
  font-size:clamp(14.4px, 1.044vw, 16.2px);
  line-height:1.8;
}
.article-content > *:first-child{ margin-top:0; }
.article-content h2,
.article-content h3{
  scroll-margin-top:calc(var(--header-offset) + 28px);
}
.article-content h2{
  margin:clamp(42px, 5vw, 64px) 0 16px;
  font-size:clamp(25.2px, 2.7vw, 36px);
  line-height:1.18;
}
.article-content h3{
  margin:34px 0 12px;
  font-size:clamp(18.9px, 1.8vw, 24.3px);
  line-height:1.26;
}
.article-content p{ margin:0 0 22px; }
.article-content ul,
.article-content ol{ margin:0 0 26px; padding-left:1.25em; }
.article-content li{ margin:8px 0; padding-left:.2em; }
.article-content li::marker{ color:#e6ac00; }
.article-content blockquote{
  margin:34px 0;
  padding:22px 26px;
  border-left:4px solid var(--sunny);
  border-radius:0 16px 16px 0;
  background:rgba(255,255,255,.74);
  color:var(--royal);
}
.article-content a{ color:#2775d4; }
.article-content figure,
.article-content .wp-block-video,
.article-content .wp-block-embed{
  margin:clamp(30px, 4vw, 48px) 0;
}
.article-content figure img,
.article-content video,
.article-content iframe,
.article-content .wp-block-embed__wrapper{
  width:100%;
  border-radius:18px;
}
.article-content figure img,
.article-content video{
  height:auto;
}
.article-content .wp-block-embed__wrapper{
  position:relative;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#e8eef7;
}
.article-content .wp-block-embed__wrapper iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.article-content .is-style-wings-article-media img,
.article-content .is-style-wings-article-media video,
.article-content .is-style-wings-article-media .wp-block-embed__wrapper{
  clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
}
.article-content figcaption{
  margin-top:10px;
  color:var(--muted);
  font-size:12px;
  text-align:left;
}
.article-content .wp-block-separator{
  margin:44px 0;
  border-color:rgba(29,50,84,.12);
}
.is-style-wings-resource-cta,
.is-style-wings-enroll-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin:clamp(34px, 5vw, 60px) 0;
  padding:24px 26px;
  border:1px solid rgba(29,50,84,.16);
  border-radius:18px;
  background:rgba(255,255,255,.86);
  box-shadow:0 14px 34px rgba(29,50,84,.06);
}
.is-style-wings-enroll-cta{
  border-color:rgba(244,184,33,.52);
  background:
    radial-gradient(300px 180px at 0% 0%, rgba(255,212,80,.24), transparent 72%),
    radial-gradient(340px 220px at 100% 100%, rgba(110,181,255,.2), transparent 72%),
    rgba(255,255,255,.92);
}
.article-column > .is-style-wings-enroll-cta{ margin-bottom:0; }
.is-style-wings-resource-cta > *,
.is-style-wings-enroll-cta > *{ margin:0; }
.is-style-wings-resource-cta h2,
.is-style-wings-resource-cta h3,
.is-style-wings-enroll-cta h2,
.is-style-wings-enroll-cta h3{
  margin:0 0 5px;
  font-size:clamp(18px, 1.8vw, 25.2px);
  line-height:1.2;
}
.is-style-wings-resource-cta p,
.is-style-wings-enroll-cta p{
  max-width:52ch;
  margin:0;
  color:var(--muted);
  font-size:11.7px;
  line-height:1.55;
}
.is-style-wings-resource-cta .wp-block-buttons,
.is-style-wings-enroll-cta .wp-block-buttons{
  flex:0 0 auto;
  margin:16px 0 0;
}
.is-style-wings-resource-cta .wp-block-button__link,
.is-style-wings-enroll-cta .wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 20px;
  border:1.5px solid var(--royal);
  border-radius:12px;
  color:var(--royal);
  background:#fff;
  font-family:'e-Ukraine',system-ui,sans-serif;
  font-size:11.7px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .18s ease, box-shadow .2s ease;
}
.is-style-wings-enroll-cta .wp-block-button__link{
  border-color:transparent;
  background:linear-gradient(135deg, #FFE073, var(--sunny));
  box-shadow:0 12px 28px rgba(255,197,54,.26);
}
.is-style-wings-resource-cta .wp-block-button__link:hover,
.is-style-wings-enroll-cta .wp-block-button__link:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(29,50,84,.13);
}

@media (max-width: 980px){
  .blog-archive-hero__inner{
    grid-template-columns:1fr;
    gap:18px;
  }
  .blog-archive-hero p{ max-width:48ch; }
  .blog-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .article-hero__grid{ gap:36px; }
  .article-layout{
    grid-template-columns:minmax(160px, 200px) minmax(0, 1fr);
    gap:36px;
  }
}

@media (max-width: 740px){
  .blog-archive-hero{
    padding:52px 0 34px;
  }
  .blog-archive-hero h1{
    font-size:clamp(37.8px, 11.7vw, 52.2px);
  }
  .blog-categories{
    margin-inline:-16px;
    padding-inline:16px;
    border-right:0;
    border-left:0;
    border-radius:0;
    box-shadow:0 10px 30px rgba(29,50,84,.06);
  }
  .blog-categories a{
    flex:0 0 auto;
    min-height:48px;
    padding-inline:17px;
  }
  .blog-grid{ grid-template-columns:1fr; }
  .blog-card__media{ aspect-ratio:16 / 10; }
  .blog-card__body{ padding:18px; }
  .blog-card__title{ font-size:19.8px; }
  .article-hero{
    padding-top:50px;
  }
  .article-hero__grid{
    grid-template-columns:1fr;
    gap:22px;
  }
  .article-hero__title h1{
    max-width:none;
    font-size:clamp(32.4px, 9.45vw, 45px);
  }
  .article-hero__lead{
    max-width:40ch;
    font-size:15.3px;
  }
  .article-meta{ margin-top:18px; }
  .article-hero__media{
    aspect-ratio:4 / 3;
    margin-top:28px;
    border-radius:18px;
    clip-path:none;
  }
  .article-layout,
  .article-layout.has-no-toc{
    display:block;
    padding-top:34px;
  }
  .article-sidebar{ display:none; }
  .article-toc--mobile{
    display:block;
    margin:0 0 34px;
    padding:16px 18px;
    border:1px solid rgba(29,50,84,.12);
    border-radius:16px;
    background:rgba(255,255,255,.85);
  }
  .article-toc--mobile summary{
    margin:0;
    cursor:pointer;
    list-style-position:inside;
  }
  .article-toc--mobile[open] summary{ margin-bottom:16px; }
  .article-toc--mobile ol{ margin-left:4px; }
  .article-content{
    font-size:14.4px;
    line-height:1.75;
  }
  .article-content h2{ margin-top:42px; }
  .article-content .is-style-wings-article-media img,
  .article-content .is-style-wings-article-media video,
  .article-content .is-style-wings-article-media .wp-block-embed__wrapper{
    clip-path:none;
  }
  .is-style-wings-resource-cta,
  .is-style-wings-enroll-cta{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
    padding:20px;
  }
  .is-style-wings-resource-cta .wp-block-buttons,
  .is-style-wings-enroll-cta .wp-block-buttons,
  .is-style-wings-resource-cta .wp-block-button,
  .is-style-wings-enroll-cta .wp-block-button,
  .is-style-wings-resource-cta .wp-block-button__link,
  .is-style-wings-enroll-cta .wp-block-button__link{
    width:100%;
  }
}
