@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/geistmono-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/geistmono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/geistmono-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/geistmono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/geistmono-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/geistmono-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/geistmono-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/geistmono-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/manrope-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/manrope-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/manrope-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/manrope-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/manrope-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/manrope-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/manrope-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/manrope-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/tektur-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/tektur-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/tektur-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/tektur-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/tektur-800-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/tektur-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ═══════════════════════════════════════════════════════════════════════════
   land3-baza-private-master — v3 "STEEL SHOP"
   Aesthetic: industrial split-screen × engineering field journal.
   Layout: sticky-left rail (фото/навигатор) + asymmetric content right.
   Palette: steel + concrete + paper + electric blue accent.
   CSS-prefix .m3-, anti-network compliant.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Palette — completely different from land1 (cream+бордовый) and v2 (carbon+amber) */
  --m3-steel:        #1B2330;
  --m3-steel-2:      #232C3D;
  --m3-steel-3:      #2F3A4F;
  --m3-paper:        #F4F2EC;
  --m3-paper-2:      #E8E4DA;
  --m3-concrete:     #C7C2B7;
  --m3-concrete-2:   #9A958A;
  --m3-ink:          #131A24;
  --m3-ink-soft:     #4A5363;
  --m3-blue:         #3A6EFB;   /* electric blue accent */
  --m3-blue-hot:     #5283FF;
  --m3-blue-deep:    #1E48C2;
  --m3-signal:       #FF4D2E;   /* anti-promise stamps only */
  --m3-line:         rgba(19, 26, 36, 0.10);
  --m3-line-on-steel: rgba(244, 242, 236, 0.10);

  /* Typography — Tektur (display) + Manrope (body) + Geist Mono */
  --m3-font-display: "Tektur", "Helvetica Neue", system-ui, sans-serif;
  --m3-font-body:    "Manrope", "Helvetica Neue", -apple-system, sans-serif;
  --m3-font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, monospace;

  /* Rail / sticky layout */
  --m3-rail-width: 36%;
  --m3-content-pad-x: clamp(28px, 5vw, 80px);

  --m3-w-content: 720px;
  --m3-z-rail: 5;
  --m3-z-sticky: 60;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--m3-font-body);
  font-size: 16px;
  line-height: 1.55;
  color: var(--m3-ink);
  background: var(--m3-paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--m3-blue); outline-offset: 3px; }
.m3-vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.m3-skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.m3-skip:focus { width: auto; height: auto; clip: auto; left: 12px; top: 12px; z-index: 9999; background: var(--m3-blue); color: var(--m3-paper); padding: 8px 14px; font-weight: 700; }

::selection { background: var(--m3-blue); color: var(--m3-paper); }

/* ═══════════════════════════════════════════════════════════
   HEADER — minimal, на steel
   ═══════════════════════════════════════════════════════════ */
.m3-top {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--m3-z-sticky);
  padding: 14px 0;
  background: var(--m3-steel);
  border-bottom: 1px solid var(--m3-line-on-steel);
  color: var(--m3-paper);
}
.m3-top__row {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 0 clamp(20px, 4vw, 40px);
}
.m3-logo { display: inline-flex; flex-direction: column; line-height: 1; gap: 3px; }
.m3-logo__mark {
  font-family: var(--m3-font-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: 0.02em;
  color: var(--m3-paper);
  position: relative;
  padding-left: 18px;
}
.m3-logo__mark::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 12px; height: 2px;
  background: var(--m3-blue);
  transform: translateY(-50%);
}
.m3-logo__sub {
  font-family: var(--m3-font-mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  padding-left: 18px;
}
.m3-top__phone {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--m3-font-mono);
  font-size: 13px;
  font-weight: 500;
  color: var(--m3-paper);
  padding: 10px 14px;
  border: 1px solid var(--m3-line-on-steel);
  border-radius: 0;
  transition: all 180ms;
  min-height: 44px;
  letter-spacing: 0.02em;
}
.m3-top__phone svg { width: 14px; height: 14px; }
.m3-top__phone:hover { background: var(--m3-blue); border-color: var(--m3-blue); color: var(--m3-paper); }
@media (max-width: 599px) {
  .m3-logo__sub { display: none; }
  .m3-top__phone span:not(.m3-vh) { display: none; }
  .m3-top__phone { padding: 10px; aspect-ratio: 1; }
  .m3-top__phone svg { width: 18px; height: 18px; }
}

/* ═══════════════════════════════════════════════════════════
   HERO — split-screen, photo стоит во весь экран слева
   ═══════════════════════════════════════════════════════════ */
.m3-hero {
  position: relative;
  display: grid;
  grid-template-columns: var(--m3-rail-width) 1fr;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--m3-steel);
  color: var(--m3-paper);
  padding-top: 60px;
}
.m3-hero__photo {
  position: relative;
  overflow: hidden;
  background: var(--m3-steel-2);
}
.m3-hero__photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%;
  animation: m3-photoIn 1100ms cubic-bezier(0.22, 1, 0.36, 1) 100ms both;
}
.m3-hero__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, transparent 60%, rgba(27, 35, 48, 0.45) 100%);
  pointer-events: none;
}
.m3-hero__photo-tag {
  position: absolute;
  bottom: 28px;
  left: 28px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(19, 26, 36, 0.75);
  backdrop-filter: blur(8px);
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m3-paper);
  opacity: 0;
  animation: m3-fadeUp 800ms cubic-bezier(0.22, 1, 0.36, 1) 900ms forwards;
}
.m3-hero__photo-tag::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--m3-blue);
  animation: m3-pulse 2.2s ease-in-out infinite;
}

.m3-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px var(--m3-content-pad-x) 64px;
  max-width: 820px;
  position: relative;
}
.m3-hero__meta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  margin-bottom: 36px;
  opacity: 0;
  animation: m3-fadeUp 700ms ease-out 200ms forwards;
}
.m3-hero__meta__bar {
  display: inline-block;
  width: 28px; height: 1px;
  background: var(--m3-blue);
}
.m3-hero__h1 {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(32px, 4.6vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  margin: 0 0 22px;
  color: var(--m3-paper);
  text-transform: uppercase;
}
.m3-hero__h1 span {
  display: block;
  transform: translateY(20px);
  animation: m3-fadeUpVisible 800ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.m3-hero__h1 span:nth-child(1) { animation-delay: 300ms; }
.m3-hero__h1 span:nth-child(2) { animation-delay: 480ms; }
.m3-hero__h1 span:nth-child(3) { animation-delay: 660ms; }
.m3-hero__hl {
  display: inline-block;
  position: relative;
  color: var(--m3-blue);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
}
.m3-hero__hl::before {
  content: "";
  position: absolute;
  left: -8px; right: -8px;
  bottom: 4px;
  height: 8px;
  background: var(--m3-blue);
  opacity: 0.18;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left;
  animation: m3-highlightIn 600ms cubic-bezier(0.22, 1, 0.36, 1) 1200ms forwards;
}
.m3-hero__sub {
  max-width: 52ch;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.55;
  color: var(--m3-paper);
  opacity: 0;
  margin: 0 0 40px;
  animation: m3-fadeUp 700ms ease-out 900ms forwards;
}
.m3-hero__price {
  font-family: var(--m3-font-mono);
  font-size: clamp(13px, 1.4vw, 15px);
  letter-spacing: 0.02em;
  line-height: 1.5;
  color: var(--m3-concrete);
  margin: 0 0 28px;
  opacity: 0;
  animation: m3-fadeUp 700ms ease-out 950ms forwards;
}
.m3-hero__price em {
  font-style: normal;
  font-weight: 700;
  color: var(--m3-blue);
  font-size: 1.15em;
}
.m3-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 36px;
  opacity: 0;
  animation: m3-fadeUp 700ms ease-out 1100ms forwards;
}
.m3-hero__specs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--m3-line-on-steel);
  padding-top: 24px;
  opacity: 0;
  animation: m3-fadeUp 700ms ease-out 1300ms forwards;
}
.m3-hero__spec {
  display: flex; flex-direction: column; gap: 4px;
  padding-right: 20px;
  border-right: 1px solid var(--m3-line-on-steel);
  padding-left: 0;
}
.m3-hero__spec:last-child { border-right: 0; }
.m3-hero__spec:not(:first-child) { padding-left: 20px; }
.m3-hero__spec b {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--m3-paper);
  line-height: 1;
}
.m3-hero__spec span {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  line-height: 1.4;
}

@media (max-width: 959px) {
  /* mobile: шапка НЕ закреплена — скроллится вместе с контентом */
  .m3-top { position: static; }
  /* mobile-first hero: контент-первый, фото демотировано в опорный band ниже */
  .m3-hero {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    min-height: auto;
    padding-top: 0;
  }
  .m3-hero__content {
    order: 1;
    justify-content: flex-start;
    max-width: none;
    padding: 30px 24px 34px;
  }
  .m3-hero__photo {
    order: 2;
    aspect-ratio: auto;
    min-height: 0;
    height: clamp(220px, 50vw, 300px);
  }
  .m3-hero__photo img { object-position: 50% 30%; }
  .m3-hero__photo-tag { bottom: 16px; left: 16px; }
  /* первый экран = eyebrow → H1 → цена → форма → фото мастера; описание уходит ниже */
  .m3-hero__meta { margin-bottom: 18px; }
  .m3-hero__h1 { margin-bottom: 14px; }
  .m3-hero__price { margin-bottom: 18px; }
  .m3-heroform,
  .m3-hero__cta { order: 4; margin-bottom: 0; }
  .m3-hero__sub { order: 5; margin: 18px 0 0; }
  .m3-hero__specs { order: 6; margin-top: 26px; }
}

@media (max-width: 599px) {
  .m3-top { padding: 8px 0; }
  .m3-top__row { padding: 0 16px; }
  .m3-logo__mark { font-size: 20px; }
  .m3-top__phone { min-height: 44px; min-width: 44px; padding: 10px; }
  .m3-hero { padding-top: 0; }
  .m3-hero__content { padding: 24px 18px 30px; }
  .m3-hero__photo { height: clamp(180px, 46vw, 240px); }
  .m3-hero__photo img { object-position: 50% 32%; }
  .m3-hero__sub {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.5;
    margin-top: 16px;
  }
  .m3-heroform__fields { grid-template-columns: 1fr; gap: 9px; }
  .m3-heroform__input { min-height: 46px; }
  .m3-heroform__submit { min-height: 50px; }
  .m3-hero__spec { min-width: 0; padding-right: 10px; }
  .m3-hero__spec:not(:first-child) { padding-left: 10px; }
  .m3-hero__spec span { overflow-wrap: anywhere; }
}

@keyframes m3-photoIn { from { opacity: 0.55; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes m3-fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes m3-fadeUpVisible { from { transform: translateY(20px); } to { transform: translateY(0); } }
@keyframes m3-highlightIn { to { transform: scaleX(1); } }
@keyframes m3-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(58, 110, 251, 0.6); } 50% { box-shadow: 0 0 0 6px rgba(58, 110, 251, 0); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .m3-hero__h1 span, .m3-hero__meta, .m3-hero__sub, .m3-hero__price, .m3-hero__cta, .m3-hero__specs, .m3-hero__photo img, .m3-hero__photo-tag { opacity: 1 !important; transform: none !important; }
}

/* ═══════════════════════════════════════════════════════════
   HERO FORM v4 (codex rescue) — paper inputs ON dark hero
   ═══════════════════════════════════════════════════════════ */
.m3-heroform,
form.m3-heroform.m3-form {
  position: relative;
  max-width: 560px;
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.m3-heroform__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 4px;
}
.m3-heroform__head__label {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-paper);
}
.m3-heroform__head__meta {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m3-paper);
  opacity: 0.85;
}
.m3-heroform__crown, .m3-heroform__crown__dot, .m3-heroform__crown__label, .m3-heroform__crown__meta, .m3-heroform__panel__rivet { display: none; }
.m3-heroform__panel { display: contents; }
.m3-heroform__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.m3-heroform__field {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.m3-heroform__field--car { grid-column: 1 / -1; }
.m3-heroform__field--full { grid-column: 1 / -1; }
.m3-heroform__label {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-paper);
  opacity: 0.78;
  margin-bottom: 5px;
}
@keyframes m3-pulse-bright {
  0%, 100% { box-shadow: 0 0 10px rgba(58, 110, 251, 0.7); transform: scale(1); }
  50%      { box-shadow: 0 0 16px rgba(58, 110, 251, 1);   transform: scale(1.18); }
}


.m3-heroform__row { display: contents; }

/* Input */
.m3-heroform__input {
  font-family: var(--m3-font-body);
  font-size: 15px;
  line-height: 1.35;
  color: var(--m3-ink) !important;
  background: var(--m3-paper);
  border: 1px solid rgba(244, 242, 236, 0.55);
  border-left: 3px solid var(--m3-blue);
  padding: 13px 14px;
  border-radius: 0;
  width: 100%;
  min-height: 50px;
  box-shadow: inset 0 -2px 0 rgba(19, 26, 36, 0.10);
  transition: border-color 180ms, background 180ms, box-shadow 180ms;
  -webkit-text-fill-color: var(--m3-ink);
  caret-color: var(--m3-blue);
}
.m3-heroform__input::placeholder {
  color: var(--m3-ink-soft);
  opacity: 0.7;
}
.m3-heroform__input:hover {
  border-color: rgba(244, 242, 236, 0.85);
}
.m3-heroform__input:focus {
  outline: 0;
  background: #fffdf7;
  border-color: var(--m3-blue);
  box-shadow: 0 0 0 3px rgba(58, 110, 251, 0.24), inset 0 -2px 0 rgba(19, 26, 36, 0.10);
}
.m3-heroform__input:-webkit-autofill,
.m3-heroform__input:-webkit-autofill:hover,
.m3-heroform__input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--m3-ink);
  -webkit-box-shadow: 0 0 0 1000px var(--m3-paper) inset, inset 0 -2px 0 rgba(19, 26, 36, 0.10);
  transition: background-color 9999s;
}

/* Cars-select hero variant — same look as input */
.cars-slot[data-style="hero"] .cars-trigger,
.cars-slot[data-style="hero-dock"] .cars-trigger {
  min-height: 50px;
  width: 100%;
  padding: 13px 14px;
  border: 1px solid rgba(244, 242, 236, 0.55);
  border-left: 3px solid var(--m3-blue);
  border-radius: 0;
  background: var(--m3-paper);
  color: var(--m3-ink);
  font-family: var(--m3-font-body);
  font-size: 15px;
  line-height: 1.35;
  box-shadow: inset 0 -2px 0 rgba(19, 26, 36, 0.10);
  transition: border-color 180ms, background 180ms, box-shadow 180ms;
}
.cars-slot[data-style="hero"] .cars-trigger:hover,
.cars-slot[data-style="hero-dock"] .cars-trigger:hover { border-color: rgba(244, 242, 236, 0.85); }
.cars-slot[data-style="hero"] .cars-trigger:focus,
.cars-slot[data-style="hero"] .cars-trigger:focus-visible,
.cars-slot[data-style="hero-dock"] .cars-trigger:focus,
.cars-slot[data-style="hero-dock"] .cars-trigger:focus-visible {
  outline: 0;
  background: #fffdf7;
  border-color: var(--m3-blue);
  box-shadow: 0 0 0 3px rgba(58, 110, 251, 0.24), inset 0 -2px 0 rgba(19, 26, 36, 0.10);
}
.cars-slot[data-style="hero"] .cars-trigger-label,
.cars-slot[data-style="hero-dock"] .cars-trigger-label { color: var(--m3-ink-soft); opacity: 0.72; }
.cars-slot[data-style="hero"] .cars-trigger-value,
.cars-slot[data-style="hero-dock"] .cars-trigger-value { color: var(--m3-ink); font-weight: 700; }
.cars-slot[data-style="hero"] .cars-trigger-arrow,
.cars-slot[data-style="hero-dock"] .cars-trigger-arrow { color: var(--m3-ink-soft); }
.cars-slot[data-style="hero"] .cars-trigger-clear,
.cars-slot[data-style="hero-dock"] .cars-trigger-clear { background: rgba(19, 26, 36, 0.08); color: var(--m3-ink-soft); }
.cars-slot[data-style="hero"] .cars-trigger-clear:hover,
.cars-slot[data-style="hero-dock"] .cars-trigger-clear:hover { background: var(--m3-blue); color: var(--m3-paper); }

/* Consent — компактно, без бокса, ПОД submit */
.m3-heroform__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 8px 0 0;
  min-height: 44px;
  padding: 4px 0;
  font-family: var(--m3-font-body);
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: 0;
  color: var(--m3-paper);
  opacity: 0.85;
  cursor: pointer;
}
.m3-heroform__consent input {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  accent-color: var(--m3-blue);
  cursor: pointer;
}
.m3-heroform__consent a {
  color: var(--m3-paper);
  border-bottom: 1px solid rgba(58, 110, 251, 0.7);
  padding-bottom: 1px;
  transition: color 160ms, border-color 160ms;
  font-weight: 600;
  text-decoration: none;
}
.m3-heroform__consent a:hover { color: var(--m3-blue); border-bottom-color: var(--m3-blue); }

/* Submit — codex v4 */
.m3-heroform__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  width: 100%;
  padding: 15px 18px;
  margin-top: 4px;
  border: 0;
  border-radius: 0;
  background: var(--m3-blue);
  color: var(--m3-paper);
  font-family: var(--m3-font-display);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: inset 0 -2px 0 rgba(19, 26, 36, 0.22);
  transition: background 180ms, transform 180ms, box-shadow 180ms;
}
.m3-heroform__submit:hover {
  background: var(--m3-blue-hot);
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(58, 110, 251, 0.28), inset 0 -2px 0 rgba(19, 26, 36, 0.22);
}
.m3-heroform__submit svg { width: 18px; height: 18px; flex-shrink: 0; }

/* Legacy sweep effect (отключаем) */
.m3-heroform__submit--sweep::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(244, 242, 236, 0.25), transparent);
  transform: translateX(-101%);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.m3-heroform__submit:hover {
  background: var(--m3-blue-hot);
  box-shadow: 0 0 28px rgba(58, 110, 251, 0.45);
}
.m3-heroform__submit:hover::before {
  transform: translateX(101%);
}
.m3-heroform__submit > * {
  position: relative;
  z-index: 1;
}
.m3-heroform__submit svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Trust + msg */
.m3-heroform__trust {
  text-align: center;
  margin: 12px 0 0;
  padding: 0;
  font-family: var(--m3-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--m3-paper);
  opacity: 0.92;
  border-top: 0;
}
.m3-heroform .m3-form__msg {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--m3-concrete);
  text-align: center;
  margin: 0;
  min-height: 14px;
}
.m3-heroform .m3-form__msg[data-state="error"] { color: var(--m3-signal); }
.m3-heroform .m3-form__msg[data-state="success"] { color: var(--m3-blue); }

/* Mobile — label выше input */
@media (max-width: 559px) {
  .m3-heroform { margin-top: 24px; }
  .m3-heroform__panel { padding: 22px 18px 18px; }
  .m3-heroform__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .m3-heroform__label {
    text-align: left;
    font-size: 10px;
    letter-spacing: 0.16em;
  }
  .m3-heroform__crown__meta { font-size: 9px; }
}


/* ═══════════════════════════════════════════════════════════
   BUTTONS — sharp, no rounded, no shadow gimmicks
   ═══════════════════════════════════════════════════════════ */
.m3-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 22px;
  font-family: var(--m3-font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  border-radius: 0;
  border: 0;
  cursor: pointer;
  transition: all 200ms cubic-bezier(0.22, 1, 0.36, 1);
  min-height: 52px;
  letter-spacing: -0.005em;
  text-decoration: none;
}
.m3-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.m3-btn--primary {
  background: var(--m3-blue);
  color: var(--m3-paper);
  font-weight: 700;
}
.m3-btn--primary:hover { background: var(--m3-blue-hot); transform: translateY(-2px); }
.m3-btn--primary:active { transform: translateY(0); }
.m3-btn__phone-num {
  font-family: var(--m3-font-mono);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.02em;
  opacity: 0.9;
}
.m3-btn--ghost {
  background: transparent;
  color: var(--m3-ink);
  border: 1px solid var(--m3-ink);
}
.m3-btn--ghost:hover { background: var(--m3-ink); color: var(--m3-paper); }
.m3-btn--ghost-light {
  background: transparent;
  color: var(--m3-paper);
  border: 1px solid rgba(244, 242, 236, 0.3);
}
.m3-btn--ghost-light:hover { background: rgba(244, 242, 236, 0.08); border-color: var(--m3-paper); }
.m3-btn--full { width: 100%; justify-content: center; }

/* ═══════════════════════════════════════════════════════════
   STICKY-RAIL section pattern — desktop only
   На больших экранах left rail залипает фото/визуал, right scroll content
   ═══════════════════════════════════════════════════════════ */
.m3-rail {
  display: grid;
  grid-template-columns: var(--m3-rail-width) 1fr;
  background: var(--m3-paper);
  border-top: 1px solid var(--m3-line);
}
.m3-rail__sticky {
  position: sticky;
  top: 60px;
  height: calc(100vh - 60px);
  background: var(--m3-steel-2);
  color: var(--m3-paper);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px;
}
.m3-rail__sticky__photo {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.m3-rail__sticky__photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%;
  filter: contrast(1.02);
}
.m3-rail__sticky__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(27, 35, 48, 0) 0%, rgba(27, 35, 48, 0.15) 50%, rgba(27, 35, 48, 0.78) 100%),
    linear-gradient(90deg, rgba(27, 35, 48, 0) 60%, rgba(27, 35, 48, 0.35) 100%);
}
.m3-rail__sticky__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 8px;
}
.m3-rail__sticky__kicker {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--m3-blue);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.m3-rail__sticky__kicker::before {
  content: "";
  display: inline-block;
  width: 22px; height: 1px;
  background: var(--m3-blue);
}
.m3-rail__sticky__loc {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  text-align: right;
}

.m3-rail__content {
  padding: clamp(60px, 8vw, 120px) var(--m3-content-pad-x);
  max-width: 900px;
  display: flex;
  flex-direction: column;
  gap: clamp(60px, 8vw, 96px);
}

@media (max-width: 959px) {
  .m3-rail { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .m3-rail__sticky { position: relative; top: 0; height: auto; min-height: 320px; min-width: 0; padding: 32px 24px; }
  .m3-rail__content { min-width: 0; width: 100%; padding: 56px 24px; gap: 48px; }
}

/* ═══════════════════════════════════════════════════════════
   CONTENT BLOCKS внутри rail__content — asymmetric, без numbered sections
   ═══════════════════════════════════════════════════════════ */
.m3-block { display: flex; flex-direction: column; gap: 32px; }
.m3-block__head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: start;
}
.m3-block__tag {
  display: inline-block;
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue);
  padding: 6px 10px;
  border: 1px solid var(--m3-blue);
  white-space: nowrap;
  transform: translateY(8px);
}
.m3-block__title {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--m3-ink);
  margin: 0;
  text-transform: uppercase;
}
.m3-block__lead {
  max-width: 50ch;
  font-size: 17px;
  line-height: 1.55;
  color: var(--m3-ink-soft);
  margin: 0;
}

/* ─── Service mega-cards — visual cards, не «строки текста» ─── */
.m3-svcmega {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.m3-svcmega__item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: end;
  padding: 32px 32px 28px;
  background: var(--m3-paper-2);
  border-left: 4px solid var(--m3-blue);
  text-decoration: none;
  color: inherit;
  transition: all 240ms cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  overflow: hidden;
}
.m3-svcmega__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--m3-ink);
  opacity: 0;
  z-index: 0;
  transition: opacity 240ms;
}
.m3-svcmega__item > * { position: relative; z-index: 1; }
.m3-svcmega__item:hover {
  border-left-color: var(--m3-blue-hot);
  transform: translateX(8px);
}
.m3-svcmega__item:hover::before { opacity: 1; }
.m3-svcmega__num {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--m3-blue-deep);
  font-weight: 700;
  display: block;
  margin-bottom: 16px;
}
.m3-svcmega__item:hover .m3-svcmega__num { color: var(--m3-blue); }
.m3-svcmega__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.m3-svcmega__title {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--m3-ink);
  margin: 0;
  text-transform: uppercase;
}
.m3-svcmega__item:hover .m3-svcmega__title { color: var(--m3-paper); }
.m3-svcmega__desc {
  font-size: 15px;
  line-height: 1.55;
  color: var(--m3-ink-soft);
  margin: 0;
  max-width: 52ch;
}
.m3-svcmega__item:hover .m3-svcmega__desc { color: var(--m3-concrete); }
.m3-svcmega__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.m3-svcmega__meta li {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
  padding: 5px 10px;
  background: var(--m3-paper);
  border: 1px solid var(--m3-line);
}
.m3-svcmega__item:hover .m3-svcmega__meta li {
  color: var(--m3-paper);
  background: transparent;
  border-color: rgba(244, 242, 236, 0.25);
}
.m3-svcmega__arrow {
  font-family: var(--m3-font-display);
  font-weight: 400;
  font-size: 28px;
  line-height: 1;
  color: var(--m3-blue);
  transition: transform 240ms;
  align-self: end;
  padding-bottom: 4px;
}
.m3-svcmega__item:hover .m3-svcmega__arrow {
  color: var(--m3-blue);
  transform: translateX(6px);
}

@media (max-width: 759px) {
  .m3-block,
  .m3-block__head,
  .m3-svcmega,
  .m3-svcmega__body { min-width: 0; }
  .m3-block__head { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .m3-block__tag { justify-self: start; }
  .m3-svcmega__item { grid-template-columns: 1fr; gap: 16px; padding: 24px 20px 22px; }
  .m3-svcmega__arrow { font-size: 22px; align-self: start; }
}

/* ─── Anti-promise block — full-width photo bleed dark section ─── */
.m3-photobleed {
  background: var(--m3-steel);
  color: var(--m3-paper);
  padding: clamp(80px, 10vw, 140px) 0;
  position: relative;
  overflow: hidden;
}
.m3-photobleed__bg {
  position: absolute; inset: 0; z-index: 0;
}
.m3-photobleed__bg img {
  width: 100%; height: 100%; object-fit: cover; opacity: 0.18; filter: grayscale(0.4);
}
.m3-photobleed__bg::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(27, 35, 48, 0.6) 0%, rgba(27, 35, 48, 0.95) 100%);
}
.m3-photobleed__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--m3-content-pad-x);
}
.m3-photobleed .m3-block__title { color: var(--m3-paper); }
.m3-photobleed .m3-block__lead { color: var(--m3-concrete); }
.m3-photobleed .m3-block__tag { color: var(--m3-signal); border-color: var(--m3-signal); }

.m3-antilist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin: 48px 0 0; padding: 0; list-style: none;
}
.m3-anti {
  padding: 28px;
  border: 1px solid var(--m3-line-on-steel);
  background: rgba(244, 242, 236, 0.04);
  backdrop-filter: blur(4px);
}
.m3-anti__stamp {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-signal);
  margin-bottom: 16px;
}
.m3-anti__stamp::before {
  content: "✕";
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 18px; height: 18px;
  background: var(--m3-signal);
  color: var(--m3-paper);
  font-weight: 700;
}
.m3-anti h3 {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--m3-paper);
  margin: 0 0 12px;
  text-transform: uppercase;
}
.m3-anti p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--m3-concrete);
  margin: 0;
}
@media (max-width: 759px) { .m3-antilist { grid-template-columns: 1fr; } }

/* ─── Reviews — quote-block style, asymmetric ─── */
.m3-quotes { display: flex; flex-direction: column; gap: 32px; }
.m3-quote {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--m3-line);
}
.m3-quote:last-child { border-bottom: 0; padding-bottom: 0; }
.m3-quote__mark {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 72px;
  line-height: 0.8;
  color: var(--m3-blue);
}
.m3-quote__body p {
  font-size: 18px;
  line-height: 1.5;
  color: var(--m3-ink);
  margin: 0 0 14px;
  font-weight: 500;
}
.m3-quote__author {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.m3-quote__author b { color: var(--m3-ink); font-weight: 700; }
.m3-quote__author span { color: var(--m3-ink-soft); }
@media (max-width: 559px) {
  .m3-quote { grid-template-columns: 1fr; gap: 14px; }
  .m3-quote__mark { font-size: 56px; line-height: 0.7; }
}

/* ─── FORM — на светлом paper-2 для гарантированной читаемости ─── */
.m3-formblock {
  background: var(--m3-paper-2);
  color: var(--m3-ink);
  padding: clamp(60px, 7vw, 90px) 0;
  border-top: 1px solid var(--m3-line);
  border-bottom: 1px solid var(--m3-line);
}
.m3-formblock .m3-block__title { color: var(--m3-ink); }
.m3-formblock .m3-block__lead { color: var(--m3-ink-soft); }
.m3-formblock .m3-block__tag { color: var(--m3-blue); border-color: var(--m3-blue); }
.m3-form-wrap {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  max-width: 1280px;
  margin: 40px auto 0;
  padding: 0 var(--m3-content-pad-x);
  align-items: start;
}
.m3-form-aside {
  font-size: 15px;
  line-height: 1.55;
}
.m3-form-aside h3 {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--m3-ink);
  margin: 0 0 14px;
  text-transform: uppercase;
}
.m3-form-aside p { color: var(--m3-ink); margin: 0 0 16px; }
.m3-mono-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.m3-mono-list li {
  font-family: var(--m3-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--m3-ink);
  padding-left: 24px;
  position: relative;
  line-height: 1.45;
}
.m3-mono-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 14px; height: 1px;
  background: var(--m3-blue);
}
.m3-form-aside__address {
  margin-top: 20px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--m3-ink-soft);
  padding-top: 16px;
  border-top: 1px solid var(--m3-line);
}
.m3-form {
  background: var(--m3-paper);
  padding: 32px;
  border: 1px solid var(--m3-line);
  display: flex; flex-direction: column; gap: 16px;
}
.m3-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.m3-row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.m3-field { display: flex; flex-direction: column; gap: 6px; }
.m3-field__label {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-ink-soft);
}
.m3-req { color: var(--m3-blue); }
.m3-input, .m3-select, .m3-textarea {
  font-family: var(--m3-font-body);
  font-size: 15px;
  line-height: 1.4;
  color: var(--m3-ink) !important;
  background: var(--m3-paper);
  padding: 12px 14px;
  border: 1px solid var(--m3-line);
  border-radius: 0;
  width: 100%;
  transition: border-color 180ms, background 180ms;
  min-height: 46px;
  -webkit-text-fill-color: var(--m3-ink);
}
.m3-input:hover, .m3-select:hover, .m3-textarea:hover { border-color: var(--m3-blue-deep); }
.m3-input:focus, .m3-select:focus, .m3-textarea:focus {
  outline: 0;
  border-color: var(--m3-blue);
  box-shadow: 0 0 0 3px rgba(58, 110, 251, 0.16);
}
.m3-input::placeholder, .m3-textarea::placeholder { color: var(--m3-concrete-2); opacity: 1; }
.m3-input:-webkit-autofill, .m3-input:-webkit-autofill:hover, .m3-input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--m3-ink);
  -webkit-box-shadow: 0 0 0 1000px var(--m3-paper) inset;
  transition: background-color 9999s;
}
.m3-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23131A24' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  -webkit-appearance: none;
  appearance: none;
  padding-right: 36px;
}
.m3-select option { background: var(--m3-paper); color: var(--m3-ink); }
.m3-textarea { min-height: 84px; resize: vertical; padding: 12px 14px; }
.m3-consent {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--m3-ink-soft);
  margin-top: 6px;
  min-height: 44px;
  padding: 4px 0;
  cursor: pointer;
}
.m3-consent input { margin-top: 2px; flex-shrink: 0; width: 20px; height: 20px; accent-color: var(--m3-blue); cursor: pointer; }
.m3-consent a { color: var(--m3-ink); text-decoration: underline; text-decoration-color: var(--m3-blue); text-underline-offset: 3px; }
.m3-form__msg {
  font-family: var(--m3-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  margin: 0;
  min-height: 16px;
}
.m3-form__msg[data-state="success"] { color: var(--m3-blue-deep); }
.m3-form__msg[data-state="error"] { color: var(--m3-signal); }
@media (max-width: 959px) {
  .m3-form-wrap { grid-template-columns: 1fr; gap: 28px; }
  .m3-row--2 { grid-template-columns: 1fr; }
  .m3-form { padding: 24px 20px; scroll-margin-bottom: 90px; }
  .m3-formblock { scroll-margin-bottom: 90px; }
}

/* ─── FAQ — minimal ─── */
.m3-faq { display: flex; flex-direction: column; gap: 0; }
.m3-faq__item {
  border-top: 1px solid var(--m3-line);
  padding: 0;
}
.m3-faq__item:last-child { border-bottom: 1px solid var(--m3-line); }
.m3-faq__sum {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(17px, 1.8vw, 22px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--m3-ink);
  padding: 22px 50px 22px 0;
  cursor: pointer;
  list-style: none;
  position: relative;
  user-select: none;
  text-transform: uppercase;
}
.m3-faq__sum::-webkit-details-marker { display: none; }
.m3-faq__sum::after {
  content: "";
  position: absolute;
  right: 4px; top: 50%;
  width: 20px; height: 20px;
  margin-top: -10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 4v12M4 10h12' stroke='%233A6EFB' stroke-width='2'/%3E%3C/svg%3E");
  background-size: contain;
  transition: transform 220ms;
}
.m3-faq__item[open] .m3-faq__sum::after { transform: rotate(45deg); }
.m3-faq__body {
  padding: 0 60px 24px 0;
  font-size: 16px;
  line-height: 1.65;
  color: var(--m3-ink-soft);
}

/* ─── FOOTER ─── */
.m3-footer {
  background: var(--m3-steel);
  color: var(--m3-paper);
  padding: 80px 0 32px;
  margin-bottom: 0;
}
.m3-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--m3-content-pad-x);
}
.m3-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 56px;
}
.m3-footer__col h4 {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue);
  margin: 0 0 16px;
}
.m3-footer__col p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--m3-paper);
  margin: 0 0 8px;
  opacity: 0.85;
}
.m3-footer__col a { color: var(--m3-paper); border-bottom: 1px solid rgba(244, 242, 236, 0.18); transition: all 180ms; }
.m3-footer__col a:hover { color: var(--m3-blue); border-color: var(--m3-blue); }
.m3-footer__bottom {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--m3-line-on-steel);
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--m3-concrete);
}
@media (max-width: 959px) { .m3-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 559px) { .m3-footer__grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════════
   MODAL — popup form, открывается по data-modal-open
   ═══════════════════════════════════════════════════════════ */
.m3-mdl {
  position: fixed; inset: 0;
  z-index: 1000;
  background: rgba(11, 13, 17, 0.78);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: m3-mdl-fade 200ms ease-out;
}
.m3-mdl[hidden] { display: none; }
html.m3-mdl-locked, html.m3-mdl-locked body { overflow: hidden; }
@keyframes m3-mdl-fade { from { opacity: 0; } to { opacity: 1; } }

.m3-mdl__box {
  width: 100%;
  max-width: 520px;
  background: var(--m3-paper);
  border: 1px solid var(--m3-line);
  position: relative;
  max-height: 92vh;
  overflow-y: auto;
  animation: m3-mdl-up 280ms cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes m3-mdl-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.m3-mdl__close {
  position: absolute;
  top: 12px; right: 12px;
  width: 38px; height: 38px;
  border: 0;
  background: transparent;
  color: var(--m3-ink);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: background 160ms, color 160ms;
}
.m3-mdl__close:hover { background: var(--m3-paper-2); color: var(--m3-blue); }

.m3-mdl__head {
  padding: 32px 32px 16px;
  border-bottom: 1px solid var(--m3-line);
}
.m3-mdl__tag {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue);
  margin-bottom: 12px;
  display: inline-block;
}
.m3-mdl__h {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 26px;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--m3-ink);
  margin: 0 0 10px;
  text-transform: uppercase;
}
.m3-mdl__sub {
  font-size: 14px;
  line-height: 1.5;
  color: var(--m3-ink-soft);
  margin: 0;
}
.m3-mdl__form {
  padding: 24px 32px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.m3-mdl__interest {
  background: var(--m3-paper-2);
  border-left: 3px solid var(--m3-blue);
  padding: 12px 14px;
  font-family: var(--m3-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--m3-ink);
}
.m3-mdl__interest__label {
  display: block;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
  margin-bottom: 4px;
  font-weight: 700;
}
.m3-mdl__interest__value {
  font-weight: 700;
  color: var(--m3-ink);
}
.m3-mdl__note {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--m3-ink-soft);
  margin: 0;
  text-align: center;
}
.m3-mdl__note b { color: var(--m3-ink); }

@media (max-width: 559px) {
  .m3-mdl { align-items: flex-end; padding: 0; }
  .m3-mdl__box { max-height: 96vh; }
  .m3-mdl__head { padding: 28px 22px 14px; }
  .m3-mdl__form { padding: 18px 22px 24px; }
}

/* ═══════════════════════════════════════════════════════════
   CARS-SELECT (адаптация land1 виджета под m3 palette)
   ═══════════════════════════════════════════════════════════ */
.cars-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--m3-line);
  background: var(--m3-paper);
  color: var(--m3-ink);
  font: inherit;
  font-size: 15px;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms, box-shadow 160ms;
  box-sizing: border-box;
  min-height: 46px;
  border-radius: 0;
}
.cars-trigger:hover { border-color: var(--m3-blue-deep); }
.cars-trigger:focus, .cars-trigger:focus-visible {
  outline: 0;
  border-color: var(--m3-blue);
  box-shadow: 0 0 0 3px rgba(58, 110, 251, 0.18);
}
.cars-trigger-label { color: var(--m3-concrete-2); flex: 1; }
.cars-trigger-value { flex: 1; font-weight: 700; color: var(--m3-ink); }
.cars-trigger-arrow { color: var(--m3-ink-soft); font-size: 12px; }
.cars-trigger-clear {
  width: 22px; height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--m3-paper-2);
  color: var(--m3-ink-soft);
  border: 0;
  font-size: 13px;
  cursor: pointer;
  border-radius: 50%;
  transition: all 140ms;
}
.cars-trigger-clear:hover { background: var(--m3-blue); color: var(--m3-paper); }
.cars-select--error .cars-trigger { border-color: var(--m3-signal); }
.cars-trigger.is-loading { opacity: 0.7; pointer-events: none; }
.cars-select-error {
  font-family: var(--m3-font-mono);
  font-size: 12px;
  color: var(--m3-signal);
  margin-top: 6px;
  letter-spacing: 0.04em;
}

/* Picker (bottom-sheet on mobile, dropdown on desktop) */
.cp-overlay {
  position: fixed; inset: 0;
  z-index: 1100;
  background: rgba(11, 13, 17, 0.78);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-start; /* mobile: панель прижата к ВЕРХУ → шапка с ✕ всегда в видимой области (iOS) */
  justify-content: center;
}
.cp-overlay[hidden] { display: none; }
html.cp-locked, html.cp-locked body { overflow: hidden; }

.cp-sheet {
  width: 100%;
  max-width: 560px;
  max-height: 100%; /* до низа экрана; длинный список скроллится внутри (cp-scroll) */
  background: var(--m3-paper);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: cp-up 0.22s ease-out;
}
@media (min-width: 768px) {
  .cp-overlay { align-items: center; }
  .cp-sheet { max-height: 80vh; border: 1px solid var(--m3-line); }
}
@keyframes cp-up { from { transform: translateY(24px); opacity: 0.6; } to { transform: translateY(0); opacity: 1; } }

.cp-header {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 10px 10px;
  border-bottom: 1px solid var(--m3-line);
}
.cp-back, .cp-close {
  width: 40px; height: 40px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  color: var(--m3-ink-soft);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 140ms, color 140ms;
}
.cp-back:hover, .cp-close:hover { background: var(--m3-paper-2); color: var(--m3-ink); }
.cp-title {
  flex: 1;
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 15px;
  color: var(--m3-ink);
  text-align: center;
  letter-spacing: 0;
  text-transform: uppercase;
}
.cp-search-wrap { padding: 12px 16px 8px; }
.cp-search {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--m3-line);
  background: var(--m3-paper);
  color: var(--m3-ink);
  font-size: 15px;
  font-family: inherit;
  box-sizing: border-box;
  -webkit-appearance: none;
  border-radius: 0;
}
.cp-search:focus {
  outline: 0;
  border-color: var(--m3-blue);
  box-shadow: 0 0 0 3px rgba(58, 110, 251, 0.18);
}
.cp-scroll {
  flex: 1 1 auto;
  min-height: 0; /* iOS Safari: без этого flex-скролл растягивается на весь контент → шапка уезжает за экран */
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: 12px;
  -webkit-overflow-scrolling: touch;
}
.cp-section { padding: 4px 0; }
.cp-section + .cp-section { margin-top: 4px; border-top: 1px solid var(--m3-line); }
.cp-section-title {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--m3-ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 14px 16px 6px;
}
.cp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px 16px 8px;
}
.cp-chip {
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  border: 1px solid var(--m3-line);
  background: var(--m3-paper);
  color: var(--m3-ink);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  line-height: 1.2;
  transition: all 140ms;
}
.cp-chip:hover { background: var(--m3-blue); border-color: var(--m3-blue); color: var(--m3-paper); }
.cp-chip:active { transform: scale(0.97); }
.cp-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  border: 0;
  background: transparent;
  text-align: left;
  font-family: inherit;
  font-size: 15px;
  color: var(--m3-ink);
  cursor: pointer;
  min-height: 48px;
  transition: background 120ms;
}
.cp-row:hover, .cp-row:focus { background: var(--m3-paper-2); outline: none; }
.cp-row-main { font-weight: 700; letter-spacing: -0.005em; }
.cp-row-sub { color: var(--m3-ink-soft); font-size: 12px; font-family: var(--m3-font-mono); letter-spacing: 0.02em; }
.cp-action {
  display: block;
  width: calc(100% - 32px);
  margin: 16px 16px 12px;
  padding: 14px 16px;
  background: var(--m3-blue);
  color: var(--m3-paper);
  border: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  transition: background 140ms;
  border-radius: 0;
}
.cp-action:hover { background: var(--m3-blue-hot); }
.cp-empty {
  padding: 24px 16px;
  text-align: center;
  color: var(--m3-ink-soft);
  font-size: 14px;
}
.cp-freeform { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.cp-freeform input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--m3-line);
  background: var(--m3-paper);
  color: var(--m3-ink);
  font-size: 15px;
  font-family: inherit;
  border-radius: 0;
}
.cp-freeform input:focus { outline: 0; border-color: var(--m3-blue); }

/* ─── STICKY mobile call-bar ─── */
.m3-stickybar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: var(--m3-z-sticky);
  background: var(--m3-steel);
  border-top: 1px solid var(--m3-line-on-steel);
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  display: none;
  gap: 10px;
  transform: translateY(100%);
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}
.m3-stickybar.is-visible { transform: translateY(0); }
.m3-stickybar__btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 12px 14px;
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
}
.m3-stickybar__btn--call {
  background: transparent;
  color: var(--m3-paper);
  border: 1px solid var(--m3-concrete);
}
.m3-stickybar__btn--lead {
  background: var(--m3-blue);
  color: var(--m3-paper);
}
.m3-stickybar__btn--lead:active { filter: brightness(0.95); }

/* FAB — мессенджеры (Telegram / MAX), без WhatsApp */
.m3-fab {
  position: fixed;
  right: 16px;
  bottom: 86px;
  z-index: calc(var(--m3-z-sticky) + 1);
  display: none;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity 240ms ease, transform 240ms ease;
}
.m3-fab.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.m3-fab__main {
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 0;
  background: var(--m3-blue);
  color: var(--m3-paper);
  box-shadow: 0 6px 18px rgba(19, 26, 36, 0.35);
  cursor: pointer;
  display: grid;
  place-items: center;
}
.m3-fab__main svg { width: 24px; height: 24px; fill: currentColor; }
.m3-fab__menu {
  position: absolute;
  right: 4px;
  bottom: 62px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity 200ms ease, transform 200ms ease;
}
.m3-fab.is-open .m3-fab__menu { opacity: 1; transform: translateY(0); pointer-events: auto; }
.m3-fab__item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px 8px 10px;
  background: var(--m3-paper);
  color: var(--m3-ink);
  font-family: var(--m3-font-body);
  font-weight: 600;
  font-size: 13px;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(19, 26, 36, 0.25);
}
.m3-fab__item__ic { width: 26px; height: 26px; display: grid; place-items: center; flex-shrink: 0; }
.m3-fab__item__ic svg { width: 26px; height: 26px; fill: var(--m3-blue); }
.m3-fab__item__ic img { width: 26px; height: 26px; }

@media (max-width: 959px) {
  .m3-stickybar { display: flex; }
  .m3-fab { display: block; }
  body { padding-bottom: 78px; }
}

/* ═══════════════════════════════════════════════════════════
   DEEP PAGE COMPONENTS (linzy / fary / shumka)
   ═══════════════════════════════════════════════════════════ */

/* Generic section wrapper for deep pages */
.m3-section {
  padding: clamp(60px, 8vw, 110px) 0;
}
.m3-section--paper { background: var(--m3-paper); }
.m3-section--paper-2 { background: var(--m3-paper-2); }
.m3-section--steel { background: var(--m3-steel); color: var(--m3-paper); }
.m3-section--ink { background: var(--m3-ink); color: var(--m3-paper); }
.m3-section__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--m3-content-pad-x);
}

/* Trust strip — slim line of facts */
.m3-trust {
  background: var(--m3-steel);
  color: var(--m3-paper);
  border-top: 1px solid var(--m3-line-on-steel);
  border-bottom: 1px solid var(--m3-line-on-steel);
}
.m3-trust__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--m3-content-pad-x);
  list-style: none;
}
.m3-trust__item {
  display: flex; flex-direction: column; gap: 6px;
  padding: 28px 24px;
  border-right: 1px solid var(--m3-line-on-steel);
}
.m3-trust__item:last-child { border-right: 0; }
.m3-trust__item:first-child { padding-left: 0; }
.m3-trust__item b {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--m3-paper);
  text-transform: uppercase;
}
.m3-trust__item span {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  line-height: 1.45;
}
@media (max-width: 759px) {
  .m3-trust__row { grid-template-columns: repeat(2, 1fr); }
  .m3-trust__item { border-bottom: 1px solid var(--m3-line-on-steel); padding: 22px 18px; }
  .m3-trust__item:first-child { padding-left: 18px; }
  .m3-trust__item:nth-child(2n) { border-right: 0; }
  .m3-trust__item:nth-last-child(-n+2) { border-bottom: 0; }
}

/* Section head — same as .m3-block on main page but more compact */
.m3-shead {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: start;
  margin-bottom: 48px;
}
.m3-shead__tag {
  display: inline-block;
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue);
  padding: 6px 10px;
  border: 1px solid var(--m3-blue);
  white-space: nowrap;
  transform: translateY(8px);
}
.m3-shead__title {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 56px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  margin: 0 0 12px;
  text-transform: uppercase;
}
.m3-shead__lead {
  max-width: 56ch;
  font-size: 16px;
  line-height: 1.55;
  margin: 0;
  color: var(--m3-ink-soft);
}
.m3-section--steel .m3-shead__title,
.m3-section--ink .m3-shead__title { color: var(--m3-paper); }
.m3-section--steel .m3-shead__lead,
.m3-section--ink .m3-shead__lead { color: var(--m3-concrete); }
@media (max-width: 759px) {
  .m3-shead { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; }
}

/* 4-step process — horizontal grid with big numbers */
.m3-process {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  list-style: none;
  margin: 0; padding: 0;
  border: 1px solid var(--m3-line);
}
.m3-section--steel .m3-process,
.m3-section--ink .m3-process { border-color: var(--m3-line-on-steel); }
.m3-process__step {
  padding: 36px 28px;
  border-right: 1px solid var(--m3-line);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.m3-section--steel .m3-process__step,
.m3-section--ink .m3-process__step { border-right-color: var(--m3-line-on-steel); }
.m3-process__step:last-child { border-right: 0; }
.m3-process__num {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 56px;
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: var(--m3-blue);
  margin-bottom: 6px;
}
.m3-process__step h3 {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0;
  text-transform: uppercase;
  color: var(--m3-ink);
}
.m3-section--steel .m3-process__step h3,
.m3-section--ink .m3-process__step h3 { color: var(--m3-paper); }
.m3-process__step p {
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
  color: var(--m3-ink-soft);
}
.m3-section--steel .m3-process__step p,
.m3-section--ink .m3-process__step p { color: var(--m3-concrete); }
@media (max-width: 999px) {
  .m3-process { grid-template-columns: repeat(2, 1fr); }
  .m3-process__step { border-bottom: 1px solid var(--m3-line); }
  .m3-process__step:nth-child(2n) { border-right: 0; }
  .m3-process__step:nth-last-child(-n+2) { border-bottom: 0; }
  .m3-section--steel .m3-process__step,
  .m3-section--ink .m3-process__step { border-bottom-color: var(--m3-line-on-steel); }
}
@media (max-width: 559px) {
  .m3-process { grid-template-columns: 1fr; }
  .m3-process__step { border-right: 0; border-bottom: 1px solid var(--m3-line); padding: 28px 22px; }
  .m3-process__step:last-child { border-bottom: 0; }
}

/* 3 benefits — horizontal cards */
.m3-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--m3-line);
  border: 1px solid var(--m3-line);
}
.m3-benefit {
  background: var(--m3-paper);
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.m3-section--paper-2 .m3-benefit { background: var(--m3-paper-2); }
.m3-benefit__no {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-blue-deep);
  font-weight: 700;
}
.m3-benefit h3 {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--m3-ink);
  margin: 0;
  text-transform: uppercase;
}
.m3-benefit p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--m3-ink-soft);
  margin: 4px 0 0;
}
@media (max-width: 959px) { .m3-benefits { grid-template-columns: 1fr; } }

/* Pricing list — clean rows */
.m3-pricelist {
  background: var(--m3-paper-2);
  padding: 36px clamp(28px, 4vw, 48px);
  border-left: 4px solid var(--m3-blue);
}
.m3-pricelist__title {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue-deep);
  margin-bottom: 24px;
  display: block;
}
.m3-pricelist__rows {
  list-style: none;
  margin: 0; padding: 0;
}
.m3-pricelist__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px dashed var(--m3-line);
}
.m3-pricelist__row:last-child { border-bottom: 0; }
.m3-pricelist__label {
  font-size: 15px;
  line-height: 1.45;
  color: var(--m3-ink);
}
.m3-pricelist__val {
  font-family: var(--m3-font-mono);
  font-weight: 600;
  font-size: 15px;
  color: var(--m3-ink);
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.m3-pricelist__val em {
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
  margin-right: 6px;
}
.m3-pricelist__foot {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--m3-line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.m3-pricelist__foot__note {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--m3-ink-soft);
  text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════
   BEFORE/AFTER DIPTYCH (Pattern 1 из research/photo-patterns.md)
   Используется для настоящих пар "до/после" — где разница ВИДНА
   ═══════════════════════════════════════════════════════════ */
.m3-diptych {
  margin: 0 0 32px;
  background: var(--m3-paper);
  border: 1px solid var(--m3-line);
}
.m3-diptych + .m3-diptych { margin-top: 0; }
.m3-diptych__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  aspect-ratio: 16/9;
  overflow: hidden;
  position: relative;
}
.m3-diptych__pair::after {
  content: ""; position: absolute;
  top: 0; bottom: 0; left: 50%;
  width: 2px;
  background: var(--m3-ink);
  z-index: 3;
  transform: translateX(-1px);
}
.m3-diptych__half {
  position: relative;
  overflow: hidden;
  background: var(--m3-steel-2);
}
.m3-diptych__half img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.m3-diptych:hover .m3-diptych__half img { transform: scale(1.04); }
.m3-diptych__stamp {
  position: absolute;
  z-index: 2;
  padding: 6px 12px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: var(--m3-paper);
  border: 1.5px solid currentColor;
  white-space: nowrap;
}
.m3-diptych__stamp--before {
  top: 18px; left: 18px;
  color: var(--m3-signal);
  transform: rotate(-1.2deg);
}
.m3-diptych__stamp--after {
  top: 18px; right: 18px;
  color: var(--m3-blue);
  transform: rotate(1.2deg);
}
.m3-diptych__cap {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding: 14px 20px;
  background: var(--m3-paper-2);
  border-top: 1px solid var(--m3-line);
  margin: 0;
}
.m3-diptych__cap__make {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  color: var(--m3-ink);
}
.m3-diptych__cap__model {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
}
.m3-diptych__cap__time {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--m3-blue-deep);
  white-space: nowrap;
}
.m3-diptych-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
@media (max-width: 999px) {
  .m3-diptych-grid { grid-template-columns: 1fr; }
}
@media (max-width: 559px) {
  .m3-diptych__pair {
    aspect-ratio: 4/5;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }
  .m3-diptych__pair::after {
    top: 50%; left: 0; right: 0;
    width: auto; height: 2px;
    transform: translateY(-1px);
  }
  .m3-diptych__stamp--before { top: 14px; left: 14px; }
  .m3-diptych__stamp--after { top: auto; bottom: 14px; right: 14px; }
  .m3-diptych__cap { grid-template-columns: 1fr; gap: 4px; padding: 12px 16px; }
}

/* ─── PROCESS STRIP (Pattern 2 из photo-patterns.md) ─── */
.m3-strip {
  position: relative;
  margin: 0 calc(var(--m3-content-pad-x) * -1);
}
.m3-strip__rail {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 var(--m3-content-pad-x);
  padding: 0 var(--m3-content-pad-x) 16px;
  margin: 0;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: var(--m3-blue) transparent;
}
.m3-strip__rail::-webkit-scrollbar { height: 6px; }
.m3-strip__rail::-webkit-scrollbar-thumb { background: var(--m3-blue); }
.m3-strip__item {
  flex: 0 0 auto;
  position: relative;
  scroll-snap-align: start;
  background: var(--m3-steel-2);
  border: 1px solid var(--m3-line);
  overflow: hidden;
  margin: 0;
}
.m3-strip__item--portrait { width: 320px; aspect-ratio: 4/5; }
.m3-strip__item--landscape { width: 520px; aspect-ratio: 16/10; }
.m3-strip__item--square { width: 380px; aspect-ratio: 1/1; }
@media (max-width: 559px) {
  .m3-strip__item--portrait,
  .m3-strip__item--landscape,
  .m3-strip__item--square { width: 78vw; }
}
.m3-strip__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}
.m3-strip__item:hover img { transform: scale(1.04); }
.m3-strip__num {
  position: absolute; top: 14px; left: 14px;
  font-family: var(--m3-font-display);
  font-weight: 800;
  font-size: 38px;
  line-height: 0.85;
  color: var(--m3-blue);
  text-shadow: 2px 2px 0 rgba(11,13,17,0.7);
  letter-spacing: -0.04em;
  z-index: 2;
}
.m3-strip__op {
  position: absolute; bottom: 14px; left: 14px;
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-paper);
  padding: 6px 10px;
  background: rgba(11, 13, 17, 0.78);
  backdrop-filter: blur(4px);
  z-index: 2;
}
.m3-strip__cap {
  margin: 16px var(--m3-content-pad-x) 0;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
}
.m3-strip__cap b { color: var(--m3-blue-deep); font-weight: 700; }

/* ─── Cases grid (для одиночных фото — process / result) ─── */
.m3-cases {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 959px) { .m3-cases { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 559px) { .m3-cases { grid-template-columns: 1fr; } }
.m3-case {
  position: relative;
  overflow: hidden;
  background: var(--m3-steel-2);
  border: 1px solid var(--m3-line);
  aspect-ratio: 4/3;
  margin: 0;
  cursor: pointer;
}
.m3-case img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
  display: block;
}
.m3-case:hover img { transform: scale(1.05); }
.m3-case__cap {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 18px 16px 14px;
  background: linear-gradient(180deg, transparent 0%, rgba(11, 13, 17, 0.85) 60%, rgba(11, 13, 17, 0.95) 100%);
  color: var(--m3-paper);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin: 0;
}
.m3-case__cap b {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.005em;
  color: var(--m3-paper);
  text-transform: uppercase;
}
.m3-case__cap span {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-blue);
  font-weight: 600;
}
.m3-case__cap span.is-before { color: var(--m3-signal); }

/* Shumka — full table с тремя ценовыми тирами в отдельных столбцах */
.m3-shumka-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.m3-shumka-tab {
  flex: 1 1 auto;
  min-height: 48px;
  padding: 12px 18px;
  background: var(--m3-paper);
  border: 1px solid var(--m3-ink);
  color: var(--m3-ink);
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 160ms, color 160ms;
}
.m3-shumka-tab:hover { border-color: var(--m3-blue); color: var(--m3-blue-deep); }
.m3-shumka-tab:focus-visible {
  outline: 2px solid var(--m3-blue);
  outline-offset: 2px;
}
.m3-shumka-tab.is-active {
  background: var(--m3-ink);
  color: var(--m3-paper);
  border-color: var(--m3-ink);
}
@media (max-width: 559px) {
  .m3-shumka-tabs { gap: 6px; }
  .m3-shumka-tab { flex: 1 1 0; min-width: 0; padding: 12px 8px; font-size: 12px; letter-spacing: 0; }
}

.m3-shumka {
  margin: 0;
  background: var(--m3-paper-2);
  border: 1px solid var(--m3-line);
}
.m3-shumka__group + .m3-shumka__group { border-top: 2px solid var(--m3-ink); }
.m3-shumka__group[hidden] { display: none; }
.m3-shumka__title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 24px 14px;
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.005em;
  color: var(--m3-ink);
  text-transform: uppercase;
  border-bottom: 1px solid var(--m3-line);
  background: var(--m3-paper);
}
.m3-shumka__title__icon {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--m3-blue);
}
.m3-shumka__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--m3-font-body);
  font-size: 14px;
}
.m3-shumka__table thead th {
  padding: 12px 20px;
  font-family: var(--m3-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
  text-align: right;
  border-bottom: 1px solid var(--m3-line);
  background: var(--m3-paper-2);
}
.m3-shumka__table thead th:first-child { text-align: left; }
.m3-shumka__table thead th .m3-shumka__hint {
  display: block;
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--m3-concrete-2);
  font-weight: 500;
  margin-top: 2px;
}
.m3-shumka__table tbody tr { border-bottom: 1px dashed var(--m3-line); }
.m3-shumka__table tbody tr:last-child { border-bottom: 0; }
.m3-shumka__table tbody td {
  padding: 14px 20px;
  color: var(--m3-ink);
  text-align: right;
  font-family: var(--m3-font-mono);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.m3-shumka__table tbody td:first-child {
  font-family: var(--m3-font-body);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0;
  text-align: left;
  color: var(--m3-ink);
}
.m3-shumka__table tbody td.is-best { color: var(--m3-blue-deep); }
.m3-shumka__table tbody td .m3-shumka__from {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--m3-ink-soft);
  font-weight: 400;
  margin-right: 4px;
}
/* Пакеты под ключ — 3 карточки со скидкой */
.m3-shumka__pkg {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 959px) { .m3-shumka__pkg { grid-template-columns: 1fr; } }
.m3-shumka__pkg__card {
  background: var(--m3-paper);
  border: 1px solid var(--m3-ink);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}
.m3-shumka__pkg__card:nth-child(3) {
  background: var(--m3-ink);
  color: var(--m3-paper);
  border-color: var(--m3-ink);
}
.m3-shumka__pkg__lvl {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-blue);
}
.m3-shumka__pkg__name {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--m3-ink);
  margin: 0;
  text-transform: uppercase;
}
.m3-shumka__pkg__card:nth-child(3) .m3-shumka__pkg__name { color: var(--m3-paper); }
.m3-shumka__pkg__desc {
  font-size: 14px;
  line-height: 1.5;
  color: var(--m3-ink-soft);
  margin: 4px 0;
  flex-grow: 1;
}
.m3-shumka__pkg__card:nth-child(3) .m3-shumka__pkg__desc { color: var(--m3-concrete); }
.m3-shumka__pkg__prices {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--m3-line);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.m3-shumka__pkg__card:nth-child(3) .m3-shumka__pkg__prices { border-top-color: rgba(244,242,236,0.2); }
.m3-shumka__pkg__old {
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--m3-ink-soft);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--m3-ink-soft);
}
.m3-shumka__pkg__card:nth-child(3) .m3-shumka__pkg__old { color: var(--m3-concrete-2); }
.m3-shumka__pkg__new {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--m3-blue);
}

/* Legacy legend (если не использовать — оставлено) */
.m3-shumka__legend {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--m3-line);
  margin-top: 28px;
}
.m3-shumka__legend__cell {
  background: var(--m3-paper);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.m3-shumka__legend__lvl {
  font-family: var(--m3-font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--m3-ink-soft);
}
.m3-shumka__legend__name {
  font-family: var(--m3-font-display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--m3-ink);
  text-transform: uppercase;
}
.m3-shumka__legend__desc {
  font-family: var(--m3-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: var(--m3-ink-soft);
  margin: 4px 0 0;
}
@media (max-width: 759px) {
  .m3-shumka__table thead { display: none; }
  .m3-shumka__table, .m3-shumka__table tbody, .m3-shumka__table tr, .m3-shumka__table td { display: block; }
  .m3-shumka__table tbody tr { padding: 14px 20px; border-bottom: 1px dashed var(--m3-line); }
  .m3-shumka__table tbody td { padding: 6px 0; text-align: left; }
  .m3-shumka__table tbody td:first-child { font-weight: 700; padding-bottom: 8px; border-bottom: 1px solid var(--m3-line); margin-bottom: 4px; }
  .m3-shumka__table tbody td:not(:first-child)::before {
    content: attr(data-tier) ":";
    font-family: var(--m3-font-mono);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--m3-ink-soft);
    margin-right: 8px;
    font-weight: 400;
  }
  .m3-shumka__legend { grid-template-columns: 1fr; gap: 1px; }
}

/* Deep-hero — reuse .m3-hero with a breadcrumb addition. Add only crumb styling. */
.m3-hero__crumb {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--m3-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--m3-concrete);
  margin-bottom: 24px;
  opacity: 0;
  animation: m3-fadeUp 700ms ease-out 200ms forwards;
}
.m3-hero__crumb a {
  color: var(--m3-concrete);
  border-bottom: 1px solid rgba(199, 194, 183, 0.3);
}
.m3-hero__crumb a:hover { color: var(--m3-blue); border-color: var(--m3-blue); }
.m3-hero__crumb__sep { opacity: 0.5; }
