/* ============================================================
   Irina English — публичные страницы: герой, секции, карточки
   ============================================================ */

/* ---------- доступность ---------- */
.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 300;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--green-deep);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: top 0.25s var(--ease);
}
.skip-link:focus { top: 16px; }

.icon { width: 20px; height: 20px; flex: none; }
.icon-sm { width: 16px; height: 16px; }
.btn svg, .link-arrow svg { width: 18px; height: 18px; }
.flash-close {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: currentColor;
  opacity: 0.55;
  cursor: pointer;
  padding: 2px;
  line-height: 0;
}
.flash-close:hover { opacity: 1; }
.flash-close svg { width: 16px; height: 16px; }

/* ---------- первый экран ---------- */
.hero {
  position: relative;
  padding-top: clamp(28px, 4vw, 54px);
  padding-bottom: clamp(40px, 6vw, 80px);
  overflow: clip;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
.hero-copy { position: relative; z-index: 2; }
.hero h1 {
  font-size: clamp(2.7rem, 5.6vw, 5rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  margin-bottom: 22px;
}
.hero h1 .line { display: block; }
.hero h1 .accent {
  position: relative;
  display: inline-block;
  color: var(--green-deep);
}
.hero h1 .accent::after {
  content: "";
  position: absolute;
  left: -2%;
  right: -2%;
  bottom: 0.06em;
  height: 0.28em;
  z-index: -1;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(213, 255, 91, 0.95), rgba(213, 255, 91, 0.55));
  transform-origin: left center;
  animation: underline-in 1s var(--ease) 0.35s both;
}
@keyframes underline-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.hero .lead { max-width: 56ch; margin-bottom: 26px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero-note {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 20px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-muted);
}
.hero-note .dot { background: var(--lime-deep); box-shadow: 0 0 0 4px rgba(213, 255, 91, 0.3); }

.hero-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}

/* сцена с плавающими объектами */
.scene {
  position: relative;
  aspect-ratio: 1 / 1.02;
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  perspective: 900px;
}
.scene::before {
  content: "";
  position: absolute;
  inset: 6% 4% 10%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, rgba(213, 255, 91, 0.32), rgba(10, 13, 10, 0.55) 58%, transparent 72%);
  filter: blur(18px);
  animation: pulse-soft 9s ease-in-out infinite;
}
.scene-object { position: absolute; will-change: transform; }
.scene-object > * { animation: drift var(--dur, 12s) ease-in-out infinite; animation-delay: var(--delay, 0s); }
.scene-object .layer { display: block; animation-name: float-y-soft; }

.scene-letter {
  width: 46%;
  left: 8%;
  top: 16%;
  --dur: 13s;
  filter: drop-shadow(0 30px 34px rgba(37, 73, 59, 0.22));
}
.scene-card {
  width: 42%;
  right: 2%;
  top: 37%;
  --dur: 15s;
  --delay: -3s;
  filter: drop-shadow(0 22px 30px rgba(37, 73, 59, 0.16));
}
.scene-bubble {
  width: 34%;
  right: 4%;
  top: 6%;
  --dur: 11s;
  --delay: -5s;
  filter: drop-shadow(0 16px 22px rgba(37, 73, 59, 0.14));
}
.scene-paper {
  width: 30%;
  left: 4%;
  top: 55%;
  --dur: 16s;
  --delay: -7s;
  filter: drop-shadow(0 18px 26px rgba(37, 73, 59, 0.14));
}
.scene-ring {
  width: 18%;
  right: 16%;
  bottom: 6%;
  --dur: 14s;
  --delay: -2s;
}
.scene-dot {
  width: 5%;
  left: 46%;
  top: 8%;
  --dur: 9s;
  --delay: -4s;
}
.scene-punct {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--coral);
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
  position: absolute;
  animation: drift 12s ease-in-out infinite;
}
.scene-punct.p1 { left: 44%; bottom: 8%; color: var(--green); }
.scene-punct.p2 { right: 2%; bottom: 22%; color: var(--coral); font-size: clamp(1.4rem, 2.6vw, 2.2rem); animation-delay: -6s; }

.floating-chip {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 999px;
  background: rgba(18, 23, 18, 0.82);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
  font-size: 0.78rem;
  font-weight: 800;
  backdrop-filter: blur(8px);
  white-space: nowrap;
}
.floating-chip.chip-level { left: 0; top: 6%; animation: float-y 8s ease-in-out infinite; }
.floating-chip.chip-next { right: 0; bottom: 12%; animation: float-y 10s ease-in-out -3s infinite; }
.floating-chip .dot { background: var(--lime-deep); }

/* бегущая строка */
.marquee {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(10, 13, 10, 0.6);
  overflow: hidden;
  padding: 14px 0;
  margin-top: clamp(30px, 5vw, 56px);
}
.marquee-track {
  display: flex;
  gap: 34px;
  width: max-content;
  animation: marquee-scroll 36s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee span {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-deep);
  white-space: nowrap;
}
.marquee span::after { content: "✳"; color: var(--coral); font-size: 0.9rem; }
@keyframes marquee-scroll { to { transform: translateX(-50%); } }

/* ---------- секционные заголовки ---------- */
.section-head { max-width: 720px; margin-bottom: clamp(28px, 4vw, 46px); }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head.center .eyebrow { justify-content: center; }
.section-head h2 { margin-bottom: 14px; }
.section-head .lead { margin-bottom: 0; }
.section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 44px); }

/* ---------- карточки форматов ---------- */
.format-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 26px 24px 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.3s;
}
.format-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: rgba(37, 73, 59, 0.22); }
.format-card .format-art { display: flex; align-items: center; margin-bottom: 14px; }
.format-card .format-art > svg { height: 66px; width: auto; }
.format-card h3 { margin: 0; }
.format-card p { font-size: 0.9rem; color: var(--ink-soft); margin: 0; }
.format-card .format-link { margin-top: 6px; font-size: 0.86rem; }
.format-card .format-index {
  position: absolute;
  top: 18px; right: 20px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--ink-muted);
}

/* ---------- шаги ---------- */
.path-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.path-step { position: relative; padding: 24px 22px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); }
.path-step::before {
  counter-increment: step;
  content: "0" counter(step);
  display: inline-grid;
  place-items: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--bg-soft);
  color: var(--green-deep);
  font-weight: 800;
  font-size: 0.82rem;
  margin-bottom: 14px;
}
.path-step:nth-child(2)::before { background: rgba(213, 255, 91, 0.6); }
.path-step:nth-child(3)::before { background: rgba(240, 170, 145, 0.5); }
.path-step:nth-child(4)::before { background: var(--green-deep); color: var(--lime); }
.path-step h3 { font-size: 1.02rem; margin-bottom: 6px; }
.path-step p { font-size: 0.86rem; color: var(--ink-soft); margin: 0; }
.path-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 42px; right: -16px;
  width: 16px; height: 1px;
  border-top: 2px dashed var(--line-strong);
}

/* ---------- полоса с цифрами ---------- */
.stats-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.stats-band .stat-cell { background: var(--surface); padding: 26px 24px; }
.stat-cell b { display: block; font-size: clamp(1.7rem, 2.6vw, 2.3rem); letter-spacing: -0.03em; line-height: 1; margin-bottom: 6px; }
.stat-cell span { font-size: 0.86rem; color: var(--ink-muted); }

/* ---------- тёмная CTA-полоса ---------- */
.cta-band {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) auto;
  align-items: center;
  gap: 26px;
  padding: clamp(28px, 4vw, 52px);
  border-radius: var(--radius-xl);
  background: var(--green-deep);
  color: #eef4ea;
}
.cta-band h2 { color: #fff; margin-bottom: 10px; font-size: clamp(1.7rem, 3.2vw, 2.6rem); }
.cta-band p { color: rgba(238, 244, 234, 0.75); max-width: 52ch; margin: 0; }
.cta-band .btn-accent .btn-arrow { background: var(--green-deep); color: var(--lime); }
.cta-band::before, .cta-band::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.cta-band::before { width: 300px; height: 300px; right: 8%; top: -140px; background: radial-gradient(circle, rgba(213, 255, 91, 0.25), transparent 70%); }
.cta-band::after { width: 180px; height: 180px; right: 28%; bottom: -110px; background: radial-gradient(circle, rgba(240, 170, 145, 0.3), transparent 70%); }

/* ---------- teacher block ---------- */
.teacher-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(22px, 3.4vw, 44px);
  align-items: center;
  padding: clamp(24px, 3.6vw, 44px);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.teacher-portrait {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  background: radial-gradient(120% 100% at 20% 0%, rgba(213, 255, 91, 0.5), transparent 55%), linear-gradient(160deg, var(--bg-soft), #f9f8f1);
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
}
.teacher-portrait .portrait-letter {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(6rem, 12vw, 9rem);
  letter-spacing: -0.06em;
  color: var(--green-deep);
  line-height: 1;
  transform: rotate(-6deg);
}
.teacher-portrait .portrait-caption {
  position: absolute;
  left: 16px; bottom: 16px; right: 16px;
  padding: 10px 13px;
  border-radius: 12px;
  background: rgba(18, 23, 18, 0.8);
  backdrop-filter: blur(6px);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--green-deep);
}
.teacher-portrait .ring {
  position: absolute;
  width: 62%;
  aspect-ratio: 1;
  border: 2px dashed rgba(37, 73, 59, 0.28);
  border-radius: 50%;
  animation: spin-slow 40s linear infinite;
}
@keyframes spin-slow { to { transform: rotate(360deg); } }

/* ---------- отзывы/факты ---------- */
.fact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.fact {
  padding: 20px;
  border-radius: var(--radius);
  background: rgba(12, 16, 12, 0.7);
  border: 1px solid var(--line);
}
.fact b { display: block; font-size: 0.95rem; margin-bottom: 5px; }
.fact p { font-size: 0.86rem; color: var(--ink-soft); margin: 0; }

/* ---------- вторичные страницы ---------- */
.page-hero { padding-top: clamp(30px, 5vw, 64px); padding-bottom: clamp(24px, 4vw, 44px); }
.page-hero .lead { max-width: 64ch; }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr); gap: 30px; align-items: center; }
.page-hero-art { justify-self: end; width: min(340px, 100%); filter: drop-shadow(0 24px 40px rgba(37, 73, 59, 0.14)); }
.prose { max-width: 74ch; }
.prose h2 { margin-top: 1.6em; font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin-top: 1.4em; }
.prose p, .prose li { color: var(--ink-soft); font-size: 0.97rem; }
.prose ul { padding-left: 1.25em; }
.prose strong { color: var(--ink); }
.legal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 36px; align-items: start; }
.legal-card h2 { margin-top: 1.5em; font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.25; }
.legal-card h2:first-child { margin-top: 0; }
.legal-card p { color: var(--ink-soft); }
.legal-card p + h2 { margin-top: 1.7em; }
.legal-aside { position: sticky; top: 100px; display: grid; gap: 6px; font-size: 0.88rem; }
.legal-aside a { color: var(--ink-muted); text-decoration: none; padding: 5px 0; }
.legal-aside a:hover { color: var(--ink); }

/* ---------- контакты ---------- */
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.contact-item { display: flex; gap: 14px; padding: 20px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--line); }
.contact-item .icon-tile { width: 44px; height: 44px; border-radius: 12px; margin: 0; }
.contact-item .icon-tile svg { width: 21px; height: 21px; }
.contact-item b { display: block; margin-bottom: 2px; font-size: 0.92rem; }
.contact-item a, .contact-item span { font-size: 0.88rem; color: var(--ink-soft); text-decoration: none; word-break: break-word; }

/* ---------- деньги/оферта ---------- */
.offer-mock { position: relative; padding: clamp(22px, 3vw, 34px); border-radius: var(--radius-xl); background: var(--surface); border: 1px dashed rgba(37, 73, 59, 0.35); box-shadow: var(--shadow-sm); }
.offer-mock-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 16px; }
.offer-mock .offer-line { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--line); font-size: 0.88rem; }
.offer-mock .offer-line:last-of-type { border-bottom: 0; }
.offer-mock .offer-line b { font-weight: 700; text-align: right; }
.offer-mock-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }

/* ---------- карточки тарифов: доп. элементы ---------- */
.pricing-note { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; background: rgba(238, 237, 227, 0.7); font-size: 0.84rem; color: var(--ink-soft); }
.pricing-note svg { color: var(--green); }

/* ---------- бронирование: доп. ---------- */
.booking-day-scroll { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.day-chip {
  flex: none;
  min-width: 78px;
  padding: 10px 8px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--surface);
  text-align: center;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.2s, background-color 0.2s, transform 0.2s var(--ease);
}
.day-chip:hover { transform: translateY(-1px); border-color: var(--green); }
.day-chip b { display: block; font-size: 1.05rem; }
.day-chip span { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); }
.day-chip.is-active { background: var(--green-deep); border-color: transparent; color: #fff; }
.day-chip.is-active span { color: rgba(255, 255, 255, 0.7); }
.slots-loading { display: grid; place-items: center; gap: 10px; padding: 30px; color: var(--ink-muted); font-size: 0.88rem; }
.spinner {
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 2.5px solid rgba(37, 73, 59, 0.15);
  border-top-color: var(--green);
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- оплата ---------- */
.pay-status { display: grid; justify-items: center; text-align: center; gap: 12px; padding: clamp(26px, 4vw, 44px); }
.pay-status .status-icon { width: 74px; height: 74px; border-radius: 50%; display: grid; place-items: center; }
.pay-status .status-icon svg { width: 34px; height: 34px; }
.pay-status.is-ok .status-icon { background: var(--lime); color: var(--green-deep); }
.pay-status.is-wait .status-icon { background: var(--bg-soft); color: var(--green); }
.pay-status.is-bad .status-icon { background: rgba(143, 47, 36, 0.12); color: #8f2f24; }
.pay-summary { max-width: 440px; width: 100%; margin: 8px auto 0; text-align: left; }

/* ---------- герой-регистрация ---------- */
.auth-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); gap: clamp(25px, 4vw, 60px); align-items: center; padding-block: clamp(26px, 4vw, 50px); }
.auth-card { width: 100%; max-width: 460px; margin-inline: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); padding: clamp(24px, 3.4vw, 38px); box-shadow: var(--shadow-md); }
.auth-card h1 { font-size: clamp(1.7rem, 2.8vw, 2.15rem); margin-bottom: 8px; }
.auth-card .lead { font-size: 0.94rem; margin-bottom: 22px; }
.auth-side { position: relative; order: -1; }
.auth-side .scene { max-width: 480px; }
.auth-art-note { display: flex; flex-direction: column; gap: 10px; margin-top: 22px; }
.auth-art-note .pill { width: fit-content; }

/* ---------- таймлайн-история ---------- */
.timeline { display: grid; gap: 0; padding-left: 18px; border-left: 2px solid var(--line); }
.timeline-item { position: relative; padding: 0 0 18px 18px; }
.timeline-item::before {
  content: "";
  position: absolute;
  left: -25px; top: 4px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--surface);
  border: 2.5px solid var(--green);
}
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item time { font-size: 0.75rem; color: var(--ink-muted); font-weight: 700; }
.timeline-item p { font-size: 0.88rem; margin: 3px 0 0; }

/* ---------- адаптив публичных страниц ---------- */
@media (max-width: 1080px) {
  .path-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .path-step::after { display: none; }
}
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { text-align: left; }
  .scene { max-width: 470px; aspect-ratio: 1 / 0.92; margin-top: 10px; }
  .auth-layout { grid-template-columns: 1fr; }
  .auth-side { order: 0; display: none; }
  .teacher-card { grid-template-columns: 1fr; }
  .teacher-portrait { max-width: 320px; }
  .cta-band { grid-template-columns: 1fr; }
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-art { display: none; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-aside { position: static; }
  .contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .path-steps { grid-template-columns: 1fr; }
  .stats-band { grid-template-columns: 1fr; }
  .stats-band .stat-cell + .stat-cell { border-top: 1px solid var(--line); }
  .hero-actions .btn { width: 100%; }
  .floating-chip { font-size: 0.72rem; padding: 7px 11px; }
  .scene { max-width: 400px; }
  .marquee span { font-size: 0.76rem; }
  .format-card .format-art { height: 74px; }
  .format-card .format-art svg { height: 66px; }
}


/* ============================================================
   HERO V2 — «Английский под твои цели»
   ============================================================ */
.hv2 {
  position: relative;
  padding: clamp(28px, 4vw, 54px) 0 0;
  overflow: clip;
}
.hv2-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  min-height: clamp(560px, 78vh, 760px);
  padding-bottom: clamp(28px, 4vw, 48px);
}
.hv2-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 16px 8px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.82rem; font-weight: 700; letter-spacing: 0.01em;
  color: var(--ink-soft);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.hv2-eyebrow i {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 4px rgba(213, 255, 91, 0.16), 0 0 18px rgba(213, 255, 91, 0.7);
}
.hv2-title {
  margin: 22px 0 0;
  font-size: clamp(3.1rem, 6.4vw, 5.6rem);
  line-height: 0.94;
  letter-spacing: -0.045em;
  font-weight: 800;
}
.hv2-title span { display: block; }
.hv2-title .line-2 { padding-bottom: 0.1em; }
.hv2-title .line-2 .word > span {
  color: transparent;
  background: linear-gradient(94deg, #d5ff5b 0%, #eaffb0 38%, #f0aa91 96%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}
.hv2-title .word { display: inline-block; }
.hv2-title .word > span {
  display: inline-block;
  animation: word-rise 0.9s var(--ease) both;
  animation-delay: calc(0.12s + var(--i, 0) * 0.07s);
}
@keyframes word-rise {
  from { opacity: 0; transform: translateY(0.42em) rotate(2.4deg); filter: blur(6px); }
  to { opacity: 1; transform: none; filter: none; }
}
.hv2-lead {
  max-width: 34rem;
  margin: 24px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.14rem);
  line-height: 1.6;
  color: var(--ink-soft);
}
.hv2-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.hv2-facts {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 34px; padding-top: 22px;
  border-top: 1px solid var(--line);
  list-style: none;
}
.hv2-facts li {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.78rem; font-weight: 700; color: var(--ink-soft);
  padding: 6px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
}
.hv2-facts svg { width: 14px; height: 14px; color: var(--lime); }

/* ------------------------------------------------------------
   сцена: «E»-медальон в 3D, орбиты и парящие карточки
   ------------------------------------------------------------ */
.hv2-scene {
  position: relative;
  min-height: clamp(440px, 58vh, 620px);
  perspective: 1400px;
  transform-style: preserve-3d;
}
.hv2-scene::before {
  content: ""; position: absolute; inset: 8% 4% 6% 6%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(213, 255, 91, 0.16), transparent 72%);
  filter: blur(24px);
  animation: hero-glow 9s ease-in-out infinite alternate;
}
@keyframes hero-glow { to { opacity: 0.55; transform: scale(1.08); } }

.hv2-stage {
  position: absolute; inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(calc(var(--ry, 0) * -0.35deg)) rotateY(calc(var(--rx, 0) * 0.5deg));
  transition: transform 0.6s var(--ease);
}

/* медальон E */
.hv2-medal {
  position: absolute; left: 50%; top: 50%;
  width: clamp(210px, 22vw, 268px); aspect-ratio: 1;
  transform: translate3d(-50%, -50%, 40px);
  transform-style: preserve-3d;
  animation: medal-float 9s ease-in-out infinite;
}
@keyframes medal-float {
  0%, 100% { transform: translate3d(-50%, -50%, 40px) rotateX(8deg) rotateY(-12deg); }
  50% { transform: translate3d(-50%, -54%, 60px) rotateX(-6deg) rotateY(14deg); }
}
.hv2-medal-face {
  position: absolute; inset: 0;
  border-radius: 30%;
  background:
    radial-gradient(120% 120% at 20% 10%, rgba(255, 255, 255, 0.5), transparent 42%),
    linear-gradient(150deg, #e7ff9c, #d5ff5b 42%, #b9e53e);
  box-shadow:
    0 40px 80px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.25) inset,
    0 30px 60px rgba(213, 255, 91, 0.22);
  display: grid; place-items: center;
  overflow: hidden;
}
.hv2-medal-face::after {
  content: ""; position: absolute; inset: -40% -10% auto -10%; height: 80%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.55), transparent);
  transform: rotate(-18deg);
  animation: medal-sheen 7s ease-in-out infinite;
}
@keyframes medal-sheen { 0%, 55%, 100% { transform: translateY(-30%) rotate(-18deg); } 30% { transform: translateY(60%) rotate(-18deg); } }
.hv2-medal-face b {
  font-size: clamp(7rem, 12vw, 9rem);
  line-height: 1;
  font-weight: 800;
  color: #0b0f0a;
  transform: translateZ(30px);
  letter-spacing: -0.06em;
}
.hv2-medal-shadow {
  position: absolute; inset: 6% 0 -10% 0;
  border-radius: 32%;
  background: #0b0f0a;
  filter: blur(30px);
  opacity: 0.5;
  transform: translateZ(-60px) scale(0.96);
}

/* орбитальное кольцо */
.hv2-orbit {
  position: absolute; left: 50%; top: 50%;
  width: clamp(360px, 38vw, 470px); aspect-ratio: 1;
  transform: translate(-50%, -50%) rotateX(72deg) translateZ(-40px);
  transform-style: preserve-3d;
  border-radius: 50%;
  border: 1px solid rgba(213, 255, 91, 0.28);
}
.hv2-orbit::before, .hv2-orbit::after {
  content: ""; position: absolute; border-radius: 50%;
}
.hv2-orbit::before { inset: 14%; border: 1px dashed rgba(242, 245, 236, 0.18); }
.hv2-orbit::after {
  inset: -4px;
  border: 2px solid transparent;
  border-top-color: var(--lime);
  animation: orbit-spin 9s linear infinite;
  filter: drop-shadow(0 0 8px rgba(213, 255, 91, 0.7));
}
@keyframes orbit-spin { to { transform: rotate(360deg); } }
.hv2-orbit-2 {
  width: clamp(470px, 50vw, 600px);
  transform: translate(-50%, -50%) rotateX(74deg) rotateZ(34deg) translateZ(-90px);
  border-color: rgba(240, 170, 145, 0.2);
}
.hv2-orbit-2::after { border-top-color: var(--coral); animation-duration: 14s; animation-direction: reverse; }

/* парящие карточки */
.hv2-card {
  position: absolute;
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(160deg, rgba(28, 36, 28, 0.92), rgba(16, 21, 16, 0.88));
  border: 1px solid rgba(242, 245, 236, 0.12);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  transform-style: preserve-3d;
  animation: floaty 8s ease-in-out infinite;
  will-change: transform;
}
.hv2-card small {
  display: block; margin-bottom: 4px;
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-muted);
}
.hv2-card b { font-size: 1.02rem; letter-spacing: -0.02em; }
.hv2-card .card-row { display: flex; align-items: center; gap: 10px; }
.hv2-card .swatch {
  width: 34px; height: 34px; border-radius: 10px;
  display: grid; place-items: center;
  background: rgba(213, 255, 91, 0.14); color: var(--lime);
  font-weight: 800; font-size: 0.82rem;
}
.hv2-card-a { left: 2%; top: 16%; transform: translateZ(90px) rotate(-4deg); animation-delay: -1.4s; }
.hv2-card-b { right: 0%; top: 34%; transform: translateZ(120px) rotate(3deg); animation-delay: -3.6s; }
.hv2-card-c { left: 14%; bottom: 5%; transform: translateZ(70px) rotate(2deg); animation-delay: -5.2s; }

.hv2-bubble {
  position: absolute; right: 8%; bottom: 12%;
  padding: 14px 20px;
  border-radius: 20px 20px 20px 6px;
  background: var(--lime); color: #0b0f0a;
  font-weight: 800; font-size: 0.98rem;
  box-shadow: 0 24px 50px rgba(213, 255, 91, 0.28);
  transform: translateZ(150px) rotate(-2deg);
  animation: pop-in 1.1s var(--ease) 0.5s both, floaty 6.5s ease-in-out 1.6s infinite;
}
.hv2-bubble::after {
  content: ""; position: absolute; left: 8px; bottom: -9px;
  border: 9px solid transparent; border-top-color: var(--lime); border-left-width: 4px;
}
.hv2-letter {
  position: absolute;
  font-family: var(--font-display);
  font-weight: 800;
  color: rgba(242, 245, 236, 0.14);
  line-height: 1;
  transform: translateZ(20px);
  animation: floaty 12s ease-in-out infinite;
}
.hv2-letter-a { left: 4%; top: 53%; font-size: 5.4rem; }
.hv2-letter-b { right: 6%; top: 6%; font-size: 3.2rem; color: rgba(213, 255, 91, 0.35); animation-delay: -4s; }
.hv2-letter-c { left: 47%; bottom: 2%; font-size: 2.4rem; color: rgba(240, 170, 145, 0.4); animation-delay: -7s; }
.hv2-spark {
  position: absolute; border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 6px rgba(213, 255, 91, 0.12), 0 0 24px rgba(213, 255, 91, 0.8);
}
.hv2-spark-a { width: 10px; height: 10px; left: 12%; top: 6%; animation: pulse-dot 3.4s ease-in-out infinite; }
.hv2-spark-b { width: 7px; height: 7px; right: 20%; top: 62%; background: var(--coral); box-shadow: 0 0 0 6px rgba(240, 170, 145, 0.12), 0 0 22px rgba(240, 170, 145, 0.8); animation: pulse-dot 4.6s ease-in-out -1.3s infinite; }
@keyframes pulse-dot { 50% { transform: scale(1.5); opacity: 0.6; } }

/* лента фраз */
.hv2-marquee {
  position: relative;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.02);
  overflow: hidden;
  padding: 18px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}
.hv2-marquee-track {
  display: flex; align-items: center; gap: 30px;
  width: max-content;
  animation: marquee 42s linear infinite;
}
.hv2-marquee:hover .hv2-marquee-track { animation-play-state: paused; }
.hv2-marquee span {
  display: inline-flex; align-items: center; gap: 30px;
  font-size: clamp(0.92rem, 1.4vw, 1.1rem);
  font-weight: 800; letter-spacing: -0.01em;
  color: var(--ink-soft);
  white-space: nowrap;
}
.hv2-marquee i {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(213, 255, 91, 0.6);
  flex: none;
}
.hv2-marquee .is-lime { color: var(--lime); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* секции главной — точечные правки под тёмную тему */
.section-head { position: relative; }
.format-card .format-icon, .step-num { color: var(--lime); }
.cta-band {
  border: 1px solid rgba(213, 255, 91, 0.16);
  background:
    radial-gradient(90% 140% at 0% 0%, rgba(213, 255, 91, 0.14), transparent 60%),
    linear-gradient(150deg, #142019, #0c110d);
}
.page-hero { position: relative; }

/* ============================================================
   AUTH V2 — вход по коду, без пароля
   ============================================================ */
.authv2 {
  position: relative;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 44px) var(--gutter);
  overflow: clip;
}
.authv2-bg {
  position: absolute; inset: 0; pointer-events: none;
}
.authv2-bg::before, .authv2-bg::after {
  content: ""; position: absolute; border-radius: 50%;
  filter: blur(90px);
}
.authv2-bg::before {
  width: 46vw; height: 46vw; left: -8vw; top: -6vw;
  background: rgba(213, 255, 91, 0.12);
  animation: hero-glow 11s ease-in-out infinite alternate;
}
.authv2-bg::after {
  width: 40vw; height: 40vw; right: -6vw; bottom: -10vw;
  background: rgba(240, 170, 145, 0.1);
  animation: hero-glow 13s ease-in-out -4s infinite alternate;
}
.authv2-shell {
  position: relative;
  width: min(100%, 468px);
  animation: authv2-in 0.7s var(--ease) both;
}
@keyframes authv2-in {
  from { opacity: 0; transform: translateY(26px) scale(0.97); }
  to { opacity: 1; transform: none; }
}
.authv2-brand {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  margin-bottom: 22px; text-decoration: none;
}
.authv2-card {
  position: relative;
  padding: clamp(24px, 4vw, 38px);
  border-radius: 28px;
  border: 1px solid rgba(242, 245, 236, 0.12);
  background:
    radial-gradient(120% 120% at 12% 0%, rgba(213, 255, 91, 0.07), transparent 55%),
    linear-gradient(160deg, rgba(24, 31, 24, 0.92), rgba(13, 17, 13, 0.96));
  box-shadow: 0 50px 120px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.03) inset;
  -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px);
}
.authv2-card::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(140deg, rgba(213, 255, 91, 0.25), transparent 38%, transparent 70%, rgba(240, 170, 145, 0.18));
  -webkit-mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
  -webkit-mask-composite: xor; mask-composite: exclude;
  padding: 1px;
}
.authv2-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--lime);
}
.authv2-title {
  margin: 12px 0 0;
  font-size: clamp(1.65rem, 3vw, 2.1rem);
  line-height: 1.08; letter-spacing: -0.035em;
}
.authv2-lead { margin: 12px 0 0; color: var(--ink-soft); font-size: 0.95rem; line-height: 1.6; }
.authv2-steps {
  display: flex; gap: 8px; margin: 22px 0 6px;
  list-style: none; padding: 0;
}
.authv2-steps li {
  flex: 1; height: 4px; border-radius: 999px;
  background: rgba(242, 245, 236, 0.1);
  overflow: hidden;
}
.authv2-steps li i {
  display: block; height: 100%; width: 0;
  background: linear-gradient(90deg, var(--lime), #eaffb0);
  border-radius: inherit;
  box-shadow: 0 0 12px rgba(213, 255, 91, 0.6);
  transition: width 0.6s var(--ease);
}
.authv2-steps li.is-done i, .authv2-steps li.is-active i { width: 100%; }
.authv2-steps li.is-active i { animation: step-pulse 1.8s ease-in-out infinite; }
@keyframes step-pulse { 50% { opacity: 0.55; } }
.authv2-step-label {
  display: flex; justify-content: space-between;
  font-size: 0.74rem; font-weight: 700; color: var(--ink-muted);
  margin-bottom: 18px;
}
.authv2-form { display: grid; gap: 14px; margin-top: 6px; }
.authv2-form .field { margin: 0; }
.authv2-input-wrap { position: relative; }
.authv2-input-wrap .input { padding-left: 46px; }
.authv2-input-wrap svg {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; color: var(--ink-muted); pointer-events: none;
}
.authv2-input-wrap:focus-within svg { color: var(--lime); }
.authv2-hint { font-size: 0.78rem; color: var(--ink-muted); line-height: 1.5; }
.authv2-submit { margin-top: 6px; }
.authv2-alt {
  margin-top: 20px; padding-top: 18px;
  border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 8px 18px;
  font-size: 0.86rem; color: var(--ink-muted);
}
.authv2-alt a { color: #d9f7a9; font-weight: 700; text-decoration: none; }
.authv2-alt a:hover { text-decoration: underline; }
.authv2-trust {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 18px;
  font-size: 0.76rem; color: var(--ink-muted);
}
.authv2-trust svg { width: 14px; height: 14px; color: var(--lime); }

/* ввод кода */
.authv2-code {
  display: flex; gap: 10px; justify-content: space-between;
  margin: 8px 0 4px;
}
.authv2-code input {
  width: 100%; height: 66px;
  text-align: center;
  font: inherit; font-size: 1.6rem; font-weight: 800;
  color: var(--ink);
  background: #0f130e;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  caret-color: var(--lime);
  transition: border-color 0.2s ease, box-shadow 0.25s var(--ease), transform 0.25s var(--ease);
}
.authv2-code input:focus {
  outline: none;
  border-color: rgba(213, 255, 91, 0.7);
  box-shadow: 0 0 0 4px rgba(213, 255, 91, 0.12);
  transform: translateY(-2px);
}
.authv2-code.is-shaking { animation: shake 0.42s ease; }
@keyframes shake {
  20%, 60% { transform: translateX(-7px); }
  40%, 80% { transform: translateX(7px); }
}
.authv2-timer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 2px;
  font-size: 0.82rem; color: var(--ink-muted);
}
.authv2-timer b { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.authv2-resend {
  background: none; border: 0; padding: 0;
  font: inherit; font-weight: 700; font-size: 0.82rem;
  color: #d9f7a9; cursor: pointer;
}
.authv2-resend:disabled { color: var(--ink-muted); cursor: default; }
.authv2-devcode {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px dashed rgba(213, 255, 91, 0.4);
  background: rgba(213, 255, 91, 0.06);
  font-size: 0.84rem; color: var(--ink-soft);
}
.authv2-devcode b {
  display: inline-block; margin-top: 6px;
  font-size: 1.3rem; letter-spacing: 0.28em; color: var(--lime);
  font-variant-numeric: tabular-nums;
}
.authv2-note {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(240, 170, 145, 0.08);
  border: 1px solid rgba(240, 170, 145, 0.22);
  color: #f6c6ae; font-size: 0.84rem; line-height: 1.5;
}

@media (max-width: 960px) {
  .hv2-grid { grid-template-columns: 1fr; min-height: 0; padding-bottom: 12px; }
  .hv2-scene { min-height: 460px; margin-top: 8px; }
  .hv2-title { font-size: clamp(2.7rem, 11vw, 4.2rem); }
  .hv2-card-a { left: 0; top: 6%; }
  .hv2-card-b { right: 0; top: 30%; }
  .hv2-card-c { display: none; }
}
@media (max-width: 560px) {
  .hv2-scene { min-height: 380px; }
  .hv2-medal { width: 176px; }
  .hv2-card { padding: 12px 14px; }
  .hv2-card b { font-size: 0.9rem; }
  .hv2-card-b { display: none; }
  .hv2-marquee { padding: 13px 0; }
  .authv2-code input { height: 56px; font-size: 1.3rem; }
  .authv2-card { border-radius: 22px; }
}
/* ------------------------------------------------------------
   Тёмная тема: номера шагов — читаемый лимес-акцент
   ------------------------------------------------------------ */
.path-step::before {
  background: rgba(213, 255, 91, 0.14) !important;
  color: var(--lime) !important;
  border: 1px solid rgba(213, 255, 91, 0.24);
}
.path-step:nth-child(2)::before { background: rgba(159, 224, 196, 0.13) !important; color: #9fe0c4 !important; border-color: rgba(159, 224, 196, 0.24); }
.path-step:nth-child(3)::before { background: rgba(240, 170, 145, 0.13) !important; color: var(--coral) !important; border-color: rgba(240, 170, 145, 0.24); }
.path-step:nth-child(4)::before { background: rgba(213, 255, 91, 0.2) !important; color: var(--lime) !important; border-color: rgba(213, 255, 91, 0.3); }
/* --- анимационный слой редизайна --- */
.scroll-progress {
  position: fixed; inset: 0 0 auto; height: 3px; z-index: 90; transform-origin: 0 50%;
  transform: scaleX(0); background: linear-gradient(90deg, var(--lime), #9dff6a, var(--coral));
  box-shadow: 0 0 18px rgba(213, 255, 91, 0.55); pointer-events: none;
}
.hv2-medal, .hv2-card, .hv2-bubble { translate: var(--par-x, 0px) var(--par-y, 0px); }
.hv2-card { transition: translate 0.2s linear, box-shadow 0.4s var(--ease), border-color 0.4s ease; }
.hv2-card:hover { box-shadow: 0 22px 60px rgba(0, 0, 0, 0.55); border-color: rgba(213, 255, 91, 0.35); }
.format-tile:hover .icon-tile, .format-card:hover .icon-tile { transform: rotate(-8deg) scale(1.08); }
.icon-tile, .format-icon { transition: transform 0.5s var(--ease), background-color 0.4s ease; }
.price-card { transition: transform 0.45s var(--ease), border-color 0.4s ease, box-shadow 0.45s var(--ease); }
.price-card:hover { transform: translateY(-6px); border-color: rgba(213, 255, 91, 0.3); box-shadow: 0 26px 70px rgba(0, 0, 0, 0.5); }
.btn { overflow: hidden; }
.btn::after {
  content: ""; position: absolute; inset: 0 auto 0 -60%; width: 45%; z-index: -1;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  transform: skewX(-18deg); transition: left 0.6s var(--ease);
}
.btn:hover::after { left: 120%; }
.hv2-title .line-2 .word > span {
  background-size: 220% 100%; animation: heroWordSheen 9s ease-in-out infinite;
}
@keyframes heroWordSheen { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.page-enter { animation: pageEnter 0.7s var(--ease) both; }
@keyframes pageEnter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .hv2-medal, .hv2-card, .hv2-bubble { translate: none; }
  .btn::after { display: none; }
  .page-enter, .hv2-title .line-2 .word > span { animation: none !important; }
  .scroll-progress { display: none; }
}
main { animation: pageEnter 0.65s var(--ease) both; }
.marquee { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
           mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.hv2-marquee, .hv2-marquee-track { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); }
/* портрет преподавателя в тёмной теме (без стоковых фото) */
.teacher-portrait {
  background:
    radial-gradient(120% 100% at 20% 0%, rgba(213, 255, 91, 0.16), transparent 55%),
    radial-gradient(90% 80% at 90% 100%, rgba(240, 170, 145, 0.14), transparent 60%),
    linear-gradient(160deg, #12160f, #0b0e0a);
  border-color: rgba(213, 255, 91, 0.18);
}
.teacher-portrait .portrait-letter { color: var(--lime); opacity: 0.92; }
.teacher-portrait .portrait-caption {
  background: rgba(10, 13, 10, 0.78);
  border: 1px solid rgba(213, 255, 91, 0.16);
  color: var(--ink);
}
.teacher-portrait .ring { border-color: rgba(213, 255, 91, 0.22); }
/* ---------- чек-листы: один маркер, читаемый текст ---------- */
.check-list li { padding-left: 30px; color: var(--ink); }
.check-list li::before { content: none; }
.check-list li > svg {
  position: absolute; left: 0; top: 2px;
  width: 20px; height: 20px; padding: 3px;
  border-radius: 50%;
  background: rgba(213, 255, 91, 0.14);
  color: var(--lime);
  box-sizing: content-box;
}

/* ---------- карточки тарифов: чистая сетка ---------- */
.price-list { list-style: none; padding: 0; }
.price-card .price-list { margin: 16px 0 20px; display: grid; gap: 9px; }
.price-card .price-list li { margin: 0; color: var(--ink-soft); font-size: 0.92rem; }
.price-card .price-list.dot-list li { padding-left: 20px; }
.price-card .price-value { margin: 6px 0 2px; }
.price-card .price-value small { display: inline; color: var(--ink-muted); font-size: 0.9rem; }
.price-card.is-featured .price-value small { color: rgba(242, 245, 236, 0.66); }
.price-card .price-per { margin: 0 0 4px; color: var(--ink-muted); font-size: 0.84rem; font-weight: 700; }
.price-card .pill-row { margin-bottom: 14px; padding-right: 0; }
.price-card h3 { margin-top: 2px; }
.price-card .btn { margin-top: auto; align-self: flex-start; }
.price-card.is-featured .price-list li { color: rgba(242, 245, 236, 0.78); }
.pricing-note { background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line); color: var(--ink-soft); }
.pricing-note svg { color: var(--lime); }
/* документы: длинные заголовки не должны обрезаться */
.legal-hero h1 { overflow-wrap: anywhere; }
.legal-hero .lead { max-width: 62ch; }
@media (max-width: 720px) {
  .legal-hero h1 { font-size: clamp(1.9rem, 8vw, 2.6rem); hyphens: auto; }
  .legal-layout { gap: 20px; }
  .legal-card { padding: 22px 18px; }
  .legal-card h2 { font-size: 1.12rem; }
}
.contact-item .contact-value { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0; }
.contact-item i { display: block; margin-top: 4px; color: var(--ink-muted); font-style: normal; }
.requisites {
  margin-top: 22px;
  padding: 18px 22px;
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.03);
  color: var(--ink-soft);
  font-size: 0.9rem;
}
.requisites b { color: var(--ink); }
.requisites a { color: var(--lime); }
/* правая колонка записи: без sticky — иначе карточки наезжают друг на друга при скролле */
.summary-card { position: static; }
.card-soft {
  background: var(--bg-soft);
  border: 1px solid var(--line);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
