/* ==========================================================================
   AutoStar — публичный сайт
   ========================================================================== */

body.site { background: var(--n-0); }

/* ───────────── Верхняя строка ───────────── */
.topbar { background: var(--ink-950); color: rgba(255,255,255,.72); font-size: .8125rem; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.25rem; }
.topbar__info, .topbar__links { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.topbar__item { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: inherit; text-decoration: none; }
.topbar__item .icon { width: .95rem; height: .95rem; color: var(--amber-400); }
a.topbar__item:hover { color: #fff; }
.topbar__phone { font-weight: 600; color: #fff; }
.topbar .lang-switch { border-color: rgba(255,255,255,.18); }
.topbar .lang-switch a { color: rgba(255,255,255,.7); }
.topbar .lang-switch a:hover { color: #fff; }
.topbar .lang-switch a.is-active { background: #fff; color: var(--ink-950); }
@media (max-width: 720px) {
  .hide-sm, .topbar__info { display: none; }
  .topbar__inner { justify-content: flex-end; }
}

/* ───────────── Шапка ───────────── */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--border); }
.site-header__inner { display: flex; align-items: center; gap: 2rem; min-height: 4.25rem; }
.site-header__logo { text-decoration: none; flex: none; }
.site-nav { flex: 1; }
.site-nav__list { display: flex; align-items: center; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.site-nav__link {
  position: relative; display: block; padding: .5rem .75rem; border-radius: var(--radius-sm);
  font-size: .9375rem; font-weight: 500; color: var(--ink-800); text-decoration: none;
}
.site-nav__link:hover { color: var(--ink-950); background: var(--n-50); }
.site-nav__link.is-active { color: var(--blue-700); }
.site-nav__link.is-active::after { content: ""; position: absolute; left: .75rem; right: .75rem; bottom: -.82rem; height: 3px; border-radius: 3px 3px 0 0; background: var(--amber-500); }
.site-nav__mobile-extra { display: none; }
.site-header__actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.site-header__toggle { display: none; }

@media (max-width: 1060px) {
  .site-header__cabinet span { display: none; }
  .site-header__cabinet { padding: 0; width: 2.5rem; }
}
@media (max-width: 960px) {
  .site-header__inner { gap: 1rem; }
  .site-header__toggle { display: inline-flex; }
  .site-header__cta { display: none; }
  .site-nav {
    position: fixed; inset: calc(4.25rem + 1px) 0 auto 0; z-index: 49;
    max-height: calc(100vh - 4.25rem); overflow-y: auto;
    padding: 1rem 1.25rem 1.5rem; background: #fff; border-bottom: 1px solid var(--border); box-shadow: var(--shadow-md);
    transform: translateY(-.5rem); opacity: 0; visibility: hidden; transition: opacity .18s, transform .18s, visibility .18s;
  }
  .site-nav.is-open { transform: none; opacity: 1; visibility: visible; }
  .site-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav__link { padding: .85rem .25rem; border-bottom: 1px solid var(--border); border-radius: 0; font-size: 1.0625rem; }
  .site-nav__link.is-active::after { display: none; }
  .site-nav__mobile-extra { display: grid; gap: .5rem; margin-top: 1.25rem; }
  body.nav-open { overflow: hidden; }
}

/* ───────────── Общие секции ───────────── */
.section { padding: 5rem 0; }
.section--tight { padding: 3.5rem 0; }
.section--muted { background: var(--n-50); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.section-head { max-width: 46rem; margin-bottom: 2.5rem; }
.section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
@media (max-width: 720px) { .section { padding: 3.5rem 0; } .lead { font-size: 1.0625rem; } }

/* ───────────── Главный экран ───────────── */
.hero { position: relative; overflow: hidden; background: var(--ink-900); color: #fff; }
.hero::before {
  /* разметка дороги: тонкие линии полос */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background:
    linear-gradient(90deg, transparent 0 calc(100% - 1px), rgba(255,255,255,.05) 0) 0 0 / 120px 100%,
    repeating-linear-gradient(180deg, rgba(242,169,0,.0) 0 26px, rgba(242,169,0,.0) 26px 52px);
  mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 85%);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 85%);
}
.hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px;
  background: repeating-linear-gradient(90deg, var(--amber-500) 0 48px, transparent 48px 84px);
  opacity: .9;
}
.hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 3.5rem; align-items: center; padding-top: 4.5rem; padding-bottom: 5rem; }
.hero__eyebrow { display: inline-flex; align-items: center; gap: .6rem; margin-bottom: 1.25rem; font-size: .875rem; font-weight: 500; color: rgba(255,255,255,.78); }
.hero__eyebrow .icon { color: var(--amber-400); }
.hero h1 { color: #fff; font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.35rem); line-height: 1.08; margin-bottom: 1.25rem; }
.hero h1 em { font-style: normal; color: var(--amber-400); }
.hero__lead { font-size: 1.125rem; line-height: 1.65; color: rgba(255,255,255,.78); max-width: 34rem; margin-bottom: 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2.5rem; }
.hero__facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.hero__facts li { padding: 1.1rem 2rem 0 0; margin-right: 2rem; border-right: 1px solid rgba(255,255,255,.14); }
.hero__facts li:last-child { border-right: 0; margin-right: 0; }
.hero__facts strong { display: block; font-size: 1.375rem; font-weight: 600; color: #fff; letter-spacing: -.01em; }
.hero__facts span { font-size: .875rem; color: rgba(255,255,255,.62); }
@media (max-width: 1020px) {
  .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-top: 3rem; padding-bottom: 3.75rem; }
  .hero__visual { max-width: 560px; }
}
@media (max-width: 560px) {
  .hero__facts { grid-template-columns: 1fr 1fr 1fr; }
  .hero__facts li { padding-right: .75rem; margin-right: .75rem; }
  .hero__facts strong { font-size: 1.125rem; }
  .hero__facts span { font-size: .78rem; }
  .hero__actions .btn { flex: 1 1 100%; }
}

/* Превью экзаменационного интерфейса */
.exam-preview { position: relative; background: #fff; color: var(--text); border-radius: var(--radius-lg); box-shadow: 0 30px 60px -20px rgba(0,0,0,.55); overflow: hidden; }
.exam-preview__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; background: var(--ink-950); color: rgba(255,255,255,.8); font-size: .8125rem; }
.exam-preview__bar strong { color: #fff; font-weight: 600; }
.exam-preview__timer { font-family: var(--font-mono); font-weight: 600; color: #fff; background: rgba(255,255,255,.08); padding: .15rem .5rem; border-radius: 4px; }
.exam-preview__dots { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; padding: .75rem 1rem 0; }
.exam-preview__dots span { height: 6px; border-radius: 2px; background: var(--n-150); }
.exam-preview__dots .ok { background: var(--green-500); }
.exam-preview__dots .bad { background: var(--red-500); }
.exam-preview__dots .cur { background: var(--blue-600); }
.exam-preview__body { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1rem; }
.exam-preview__q { grid-column: 1 / -1; font-weight: 600; font-size: .9375rem; line-height: 1.4; color: var(--ink-950); }
.exam-preview__img { border-radius: var(--radius-sm); border: 1px solid var(--border); overflow: hidden; aspect-ratio: 4 / 3; background: var(--n-50); }
.exam-preview__img img { width: 100%; height: 100%; object-fit: cover; }
.exam-preview__opts { display: grid; gap: .5rem; align-content: start; }
.exam-preview__opt { display: flex; gap: .55rem; padding: .55rem .65rem; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: .8125rem; line-height: 1.35; color: var(--ink-800); }
.exam-preview__opt b { display: inline-flex; align-items: center; justify-content: center; width: 1.35rem; height: 1.35rem; flex: none; border-radius: 4px; background: var(--n-100); font-size: .75rem; }
.exam-preview__opt.is-correct { border-color: var(--green-500); background: var(--green-50); color: var(--green-800); }
.exam-preview__opt.is-correct b { background: var(--green-600); color: #fff; }
.exam-preview__caption { margin-top: .85rem; font-size: .8125rem; color: rgba(255,255,255,.55); display: flex; align-items: center; gap: .4rem; }
@media (max-width: 600px) {
  .hero__visual { display: none; }
}

/* ───────────── Полоса фактов ───────────── */
.facts { border-bottom: 1px solid var(--border); background: #fff; }
.facts__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.fact { padding: 2rem 1.5rem 2rem 0; border-right: 1px solid var(--border); }
.fact + .fact { padding-left: 1.75rem; }
.fact:last-child { border-right: 0; }
.fact__value { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem); font-weight: 600; line-height: 1.05; letter-spacing: -.02em; color: var(--ink-950); font-variant-numeric: tabular-nums; }
.fact__value small { font-size: .55em; font-weight: 600; color: var(--blue-700); margin-left: .1em; }
.fact__label { margin-top: .5rem; font-size: .9375rem; color: var(--text-muted); line-height: 1.4; }
@media (max-width: 860px) {
  .facts__grid { grid-template-columns: 1fr 1fr; }
  .fact { padding: 1.5rem 1rem 1.5rem 0; }
  .fact:nth-child(2n) { border-right: 0; padding-left: 1.25rem; }
  .fact:nth-child(2n+1) { padding-left: 0; }
  .fact:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
}

/* ───────────── Курс ───────────── */
.course-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
@media (max-width: 960px) { .course-layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; } }
.course-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-sm); }
.course-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.75rem 1.75rem 1.25rem; }
.course-card__cat { display: flex; align-items: center; gap: 1rem; }
.course-card__letter { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: var(--radius); background: var(--blue-700); color: #fff; font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; flex: none; }
.course-card__title { margin: 0; font-size: 1.375rem; }
.course-card__subtitle { color: var(--text-muted); font-size: .9375rem; }
.course-card__specs { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.course-card__spec { display: flex; gap: .75rem; padding: 1.1rem 1.75rem; }
.course-card__spec + .course-card__spec { border-left: 1px solid var(--border); }
.course-card__spec .icon { width: 1.35rem; height: 1.35rem; color: var(--blue-700); margin-top: .1rem; }
.course-card__spec strong { display: block; font-size: 1.0625rem; color: var(--ink-950); }
.course-card__spec span { font-size: .8125rem; color: var(--text-muted); }
.course-card__body { padding: 1.5rem 1.75rem; }
.course-card__body p { color: var(--text-muted); }
.course-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.25rem 1.75rem; background: var(--n-25); border-top: 1px solid var(--border); }
.price { display: flex; flex-direction: column; }
.price__label { font-size: .8125rem; color: var(--text-muted); }
.price__value { font-size: 1.875rem; font-weight: 700; letter-spacing: -.02em; color: var(--ink-950); line-height: 1.15; font-variant-numeric: tabular-nums; }
@media (max-width: 520px) {
  .course-card__specs { grid-template-columns: minmax(0, 1fr); }
  .course-card__spec + .course-card__spec { border-left: 0; border-top: 1px solid var(--border); }
  .course-card__head, .course-card__body, .course-card__foot, .course-card__spec { padding-left: 1.25rem; padding-right: 1.25rem; }
}


/* Этапы обучения */
.steps { position: relative; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.steps li { position: relative; padding: 0 0 2rem 3.5rem; counter-increment: step; }
.steps li:last-child { padding-bottom: 0; }
.steps li::before {
  content: counter(step); position: absolute; left: 0; top: 0; width: 2.25rem; height: 2.25rem;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background: #fff; border: 2px solid var(--blue-700); color: var(--blue-700); font-weight: 700; font-size: .9375rem;
}
.steps li::after { content: ""; position: absolute; left: calc(1.125rem - 1px); top: 2.5rem; bottom: .35rem; width: 2px; background: repeating-linear-gradient(180deg, var(--n-300) 0 6px, transparent 6px 12px); }
.steps li:last-child::after { display: none; }
.steps h3 { font-size: 1.0625rem; margin: .3rem 0 .3rem; }
.steps p { margin: 0; color: var(--text-muted); font-size: .9375rem; }
.steps__meta { display: inline-block; margin-left: .35rem; font-size: .8125rem; font-weight: 500; color: var(--blue-700); }

/* ───────────── Платформа ───────────── */
.platform-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 3.5rem; align-items: center; }
@media (max-width: 960px) { .platform-layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; } }
.feature-rows { display: grid; gap: 1.5rem; margin: 2rem 0; padding: 0; list-style: none; }
.feature-rows li { display: flex; gap: 1rem; }
.feature-rows .feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: var(--radius); background: var(--blue-50); color: var(--blue-700); border: 1px solid var(--blue-100); }
.feature-rows h3 { font-size: 1rem; margin: 0 0 .2rem; }
.feature-rows p { margin: 0; font-size: .9375rem; color: var(--text-muted); }

.topics-mock { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-xl); box-shadow: var(--shadow-md); overflow: hidden; }
.topics-mock__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--border); }
.topics-mock__head strong { font-size: .9375rem; }
.topics-mock__row { display: grid; grid-template-columns: 3.25rem 1fr 4.5rem; gap: .9rem; align-items: center; padding: .85rem 1.25rem; border-bottom: 1px solid var(--border); font-size: .875rem; }
.topics-mock__row:last-child { border-bottom: 0; }
.topics-mock__code { font-family: var(--font-mono); font-weight: 600; color: var(--blue-700); font-size: .8125rem; }
.topics-mock__name { color: var(--ink-800); line-height: 1.35; }
.topics-mock__name .progress { margin-top: .4rem; height: .35rem; }
.topics-mock__pct { text-align: right; font-variant-numeric: tabular-nums; color: var(--text-muted); font-weight: 500; }

/* ───────────── Преимущества ───────────── */
.points { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--border); }
.point { padding: 1.75rem 1.75rem 0 0; }
.point + .point { padding-left: 1.75rem; border-left: 1px solid var(--border); }
.point .icon { width: 1.75rem; height: 1.75rem; color: var(--blue-700); margin-bottom: 1rem; }
.point h3 { font-size: 1.0625rem; margin-bottom: .4rem; }
.point p { margin: 0; color: var(--text-muted); font-size: .9375rem; }
@media (max-width: 960px) {
  .points { grid-template-columns: 1fr 1fr; }
  .point { padding: 1.5rem 1.25rem 1.5rem 0; border-bottom: 1px solid var(--border); }
  .point + .point { padding-left: 0; border-left: 0; }
  .point:nth-child(2n) { padding-left: 1.25rem; border-left: 1px solid var(--border); }
}
@media (max-width: 560px) {
  .points { grid-template-columns: minmax(0, 1fr); }
  .point:nth-child(2n) { padding-left: 0; border-left: 0; }
}

/* ───────────── Отзывы ───────────── */
.testimonials { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.25rem; }
.testimonial { margin: 0; padding: 1.5rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); }
.testimonial blockquote { margin: 0 0 1rem; color: var(--ink-800); line-height: 1.6; }
.testimonial figcaption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-weight: 600; font-size: .9375rem; }
.stars { display: inline-flex; gap: 2px; color: var(--amber-500); }
.stars .icon { width: .95rem; height: .95rem; fill: currentColor; }

/* ───────────── Призыв к действию с формой ───────────── */
.cta-band { background: var(--ink-900); color: #fff; position: relative; overflow: hidden; }
.cta-band::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: repeating-linear-gradient(90deg, var(--amber-500) 0 48px, transparent 48px 84px); }
.cta-band__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); gap: 3rem; align-items: center; padding-top: 4.5rem; padding-bottom: 4.5rem; }
.cta-band h2 { color: #fff; }
.cta-band .lead-form h2 { color: var(--ink-950); }
.cta-band .lead-form p { color: var(--text-muted); font-size: .9375rem; }
.cta-band p { color: rgba(255,255,255,.72); font-size: 1.0625rem; }
.cta-band__phone { display: inline-flex; align-items: center; gap: .65rem; margin-top: .5rem; font-size: 1.5rem; font-weight: 600; color: #fff; text-decoration: none; letter-spacing: -.01em; }
.cta-band__phone .icon { color: var(--amber-400); }
.cta-band__phone:hover { color: var(--amber-400); }
.cta-band .lead-form { background: #fff; color: var(--text); padding: 1.75rem; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
@media (max-width: 900px) { .cta-band__inner { grid-template-columns: minmax(0, 1fr); padding-top: 3.5rem; padding-bottom: 3.5rem; } }

/* ───────────── Внутренние страницы ───────────── */
.page-hero { background: var(--n-50); border-bottom: 1px solid var(--border); padding: 3rem 0 2.75rem; }
.page-hero h1 { margin-bottom: .6rem; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.625rem); }
.page-hero .lead { margin: 0; max-width: 44rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: .875rem; color: var(--text-muted); }
.breadcrumbs a { color: var(--text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--primary); text-decoration: underline; }
.breadcrumbs li + li::before { content: "/"; margin-right: .4rem; color: var(--n-300); }

.prose { max-width: 46rem; font-size: 1.0625rem; line-height: 1.7; color: var(--ink-800); }
.prose h2 { font-size: 1.375rem; margin: 2.25rem 0 .75rem; }
.prose h3 { font-size: 1.125rem; margin: 1.75rem 0 .5rem; }
.prose ul { padding-left: 1.25rem; }
.prose li { margin-bottom: .35rem; }
.prose .note { font-size: .9375rem; color: var(--text-muted); }

/* О школе */
.about-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 3.5rem; }
@media (max-width: 900px) { .about-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }
.fact-list { margin: 0; padding: 0; list-style: none; border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff; }
.fact-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--border); font-size: .9375rem; }
.fact-list li:last-child { border-bottom: 0; }
.fact-list span { color: var(--text-muted); }
.fact-list strong { text-align: right; color: var(--ink-950); font-weight: 600; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.value { padding: 1.5rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); }
.value .icon { width: 1.5rem; height: 1.5rem; color: var(--blue-700); margin-bottom: .85rem; }
.value h3 { font-size: 1.0625rem; }
.value p { margin: 0; color: var(--text-muted); font-size: .9375rem; }
@media (max-width: 800px) { .values { grid-template-columns: minmax(0, 1fr); } }
.team { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem; }
.team-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.team-card__photo { aspect-ratio: 4 / 3; background: var(--n-100); display: flex; align-items: center; justify-content: center; color: var(--n-400); }
.team-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.team-card__photo .icon { width: 2.5rem; height: 2.5rem; }
.team-card__body { padding: 1rem 1.15rem 1.25rem; }
.team-card__body h3 { font-size: 1rem; margin-bottom: .2rem; }
.team-card__body p { margin: 0; font-size: .875rem; color: var(--text-muted); }

/* Курсы — сетка */
.courses-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1.5rem; }

/* Контакты */
.contact-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 3rem; }
@media (max-width: 960px) { .contact-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .contact-cards { grid-template-columns: minmax(0, 1fr); } }
.contact-card { padding: 1.25rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); }
.contact-card .icon { width: 1.35rem; height: 1.35rem; color: var(--blue-700); margin-bottom: .75rem; }
.contact-card h2 { font-size: .8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: .4rem; }
.contact-card p, .contact-card a { margin: 0; font-size: 1rem; color: var(--ink-950); font-weight: 500; text-decoration: none; line-height: 1.5; }
.contact-card a:hover { color: var(--primary); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: stretch; }
@media (max-width: 900px) { .contact-layout { grid-template-columns: minmax(0, 1fr); } }
.lead-form { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem; }
.lead-form h2 { font-size: 1.375rem; margin-bottom: .35rem; }
.lead-form > p { color: var(--text-muted); margin-bottom: 1.5rem; }
.lead-form .consent { font-size: .8125rem; color: var(--text-muted); }
.lead-form__success { text-align: center; padding: 2rem 1rem; }
.lead-form__success .icon { width: 3rem; height: 3rem; margin: 0 auto 1rem; color: var(--green-600); }
.hp-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.map { position: relative; min-height: 420px; height: 100%; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border); background: var(--n-100); }
.map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map__link { position: absolute; left: 1rem; bottom: 1rem; }

/* Галерея */
.gallery-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.75rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.gallery-item { margin: 0; border-radius: var(--radius-lg); overflow: hidden; background: var(--n-100); border: 1px solid var(--border); }
.gallery-item a { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
.gallery-item a:hover img { transform: scale(1.03); }
.gallery-item figcaption { padding: .7rem .9rem; font-size: .875rem; color: var(--ink-800); background: #fff; }
.lightbox { width: min(1100px, calc(100vw - 2rem)); padding: 0; border: 0; background: transparent; }
.lightbox::backdrop { background: rgba(7,16,29,.88); }
.lightbox img { max-height: 82vh; width: auto; margin: 0 auto; border-radius: var(--radius); }
.lightbox__caption { text-align: center; color: #fff; margin-top: .75rem; }
.lightbox__close { position: fixed; top: 1rem; right: 1rem; color: #fff; background: rgba(255,255,255,.12); border: 0; border-radius: 50%; width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; }

/* ───────────── Подвал ───────────── */
.site-footer { background: var(--ink-950); color: rgba(255,255,255,.66); font-size: .9375rem; padding: 4rem 0 0; }
.site-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 2.5rem; padding-bottom: 3rem; }
.site-footer__logo { display: inline-block; margin-bottom: 1rem; text-decoration: none !important; }
.site-footer__brand p { max-width: 22rem; }
.site-footer__legal { margin: 1rem 0 0; font-size: .8125rem; color: rgba(255,255,255,.55); }
.site-footer__legal div { display: flex; gap: .4rem; }
.site-footer__legal dt { color: rgba(255,255,255,.45); }
.site-footer__legal dd { margin: 0; }
.site-footer__title { font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; }
.site-footer__links { margin: 0; padding: 0; list-style: none; display: grid; gap: .55rem; }
.site-footer__contacts { margin: 0 0 1.25rem; padding: 0; list-style: none; display: grid; gap: .75rem; }
.site-footer__contacts li { display: flex; gap: .65rem; line-height: 1.5; }
.site-footer__contacts .icon { color: var(--amber-400); margin-top: .2rem; }
.site-footer__social { display: flex; gap: .5rem; }
.site-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.16); }
.site-footer__social a:hover { background: rgba(255,255,255,.08); text-decoration: none; }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.1); font-size: .8125rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__policies { display: flex; gap: 1.25rem; }
@media (max-width: 960px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }

/* Мобильная панель действий */
.mobile-cta { display: none; }
@media (max-width: 720px) {
  .mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: 1fr 1.4fr; gap: .5rem; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); border-top: 1px solid var(--border); box-shadow: 0 -6px 20px rgba(13,26,45,.08); }
  .site-footer { padding-bottom: 4.5rem; }
}

/* Появление при прокрутке (только если JS включён) */
.js-reveal [data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js-reveal [data-reveal].is-visible { opacity: 1; transform: none; }
