:root{
  /* Тёмная тема. Светлая — ниже, в [data-theme="paper"]; она стоит по умолчанию
     атрибутом на <html>. Чтобы сделать тёмную темой сайта по умолчанию,
     достаточно убрать этот атрибут в разметке. */
  --bg:#100E0D; --surface:#191614; --surface-2:#211D1A;
  --line:#2E2926; --line-strong:#3B3330;
  --text:#F3F0ED; --muted:#A79E97; --dim:#908780;
  --red:#C3292D; --red-dark:#5D1415; --red-hot:#E23B3F;
  --grad:linear-gradient(100deg,var(--red),var(--red-dark));
  --h1-grad:linear-gradient(96deg,#F26B5E,var(--red));
  --hdr-bg:rgba(16,14,13,.82);
  --overlay-bg:rgba(16,14,13,.94);
  --cookie-bg:rgba(22,19,17,.97);
  --eyebrow-bg:rgba(25,22,20,.75);
  --hover-tint:rgba(255,255,255,.03);
  --chip-tint:rgba(255,255,255,.06);
  --focus-ring:rgba(195,41,45,.18);
  --btn-shadow:0 6px 22px -8px rgba(195,41,45,.85);
  --btn-shadow-hover:0 12px 28px -8px rgba(195,41,45,.95);
  --card-shadow:none;
  --hero-glow-1:rgba(195,41,45,.30);
  --hero-glow-2:rgba(93,20,21,.34);
  --hero-stripe:rgba(255,255,255,.05);
  --hero-stripe-opacity:.30;
  --callout-wash:rgba(195,41,45,.10);
  --danger-text:#F08A80; --danger-bg:rgba(226,59,63,.10); --danger-line:rgba(226,59,63,.45);
  --ok-text:#8FD9A6; --ok-bg:rgba(94,190,120,.10); --ok-line:rgba(94,190,120,.45);
  --link-underline:rgba(226,59,63,.5);
  --dot-glow:rgba(226,59,63,.20);
  --wrap:1180px; --r:14px;
  --f:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* Светлая тема: тёплый небелый фон, красный только как акцент.
   Значения --dim и --red-hot подобраны по замерам контраста: на светлом
   фоне исходные оттенки не проходили WCAG AA для мелкого текста. */
[data-theme="paper"]{
  --bg:#F6F3F0; --surface:#FFFFFF; --surface-2:#FFFFFF;
  --line:#E4DCD4; --line-strong:#CDBFB3;
  --text:#1A1512; --muted:#5C534C; --dim:#74695F;
  --red:#C3292D; --red-dark:#7A1417; --red-hot:#A81F23;
  --h1-grad:linear-gradient(96deg,#D8352F,#8E1A1C);
  --hdr-bg:rgba(246,243,240,.88);
  --overlay-bg:rgba(255,255,255,.95);
  --cookie-bg:rgba(255,255,255,.97);
  --eyebrow-bg:rgba(255,255,255,.92);
  --hover-tint:rgba(26,21,18,.025);
  --chip-tint:rgba(26,21,18,.06);
  --focus-ring:rgba(195,41,45,.20);
  --btn-shadow:0 6px 18px -8px rgba(195,41,45,.55);
  --btn-shadow-hover:0 12px 24px -8px rgba(195,41,45,.65);
  --card-shadow:0 1px 2px rgba(26,21,18,.04), 0 10px 26px -18px rgba(26,21,18,.16);
  --hero-glow-1:rgba(195,41,45,.10);
  --hero-glow-2:rgba(122,20,23,.06);
  --hero-stripe:rgba(26,21,18,.055);
  --hero-stripe-opacity:.55;
  --callout-wash:rgba(195,41,45,.07);
  --danger-text:#A81F23; --danger-bg:rgba(195,41,45,.07); --danger-line:rgba(195,41,45,.28);
  --ok-text:#1C6E38; --ok-bg:rgba(28,110,56,.07); --ok-line:rgba(28,110,56,.28);
  --link-underline:rgba(195,41,45,.45);
  --dot-glow:rgba(195,41,45,.16);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font:400 17px/1.6 var(--f);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3{margin:0; line-height:1.1; letter-spacing:-.02em; font-weight:800}
p{margin:0}
a{color:inherit}
ul{margin:0; padding:0; list-style:none}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--red-hot); outline-offset:3px; border-radius:4px}

.wrap{width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px}
.skip{position:absolute; left:-9999px}
.skip:focus{left:16px; top:16px; z-index:100; background:var(--red); color:#fff; padding:10px 16px; border-radius:8px}

/* ---------- header ---------- */
.hdr{
  position:sticky; top:0; z-index:50;
  background:var(--hdr-bg); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.hdr__in{display:flex; align-items:center; gap:20px; height:76px}
.logo{display:block; flex:none}
.logo svg,.logo img{height:40px; width:auto; display:block}
.nav{display:flex; gap:28px; margin-left:auto; font-size:16.5px; font-weight:600}
.nav a{text-decoration:none; color:var(--muted); white-space:nowrap; transition:color .18s}
.nav a:hover{color:var(--text)}
/* Текущая страница: aria-current ставит сборщик, подсветка идёт от него —
   отдельного класса-дубликата не нужно. */
.nav a[aria-current="page"]{color:var(--text)}
.nav a[aria-current="page"]::after{content:""; display:block; height:2px; margin-top:5px; border-radius:2px; background:var(--grad)}
.hdr__cta{display:flex; align-items:center; gap:14px; flex:none}
.hdr__tel{text-decoration:none; font-weight:800; font-size:17px; white-space:nowrap; letter-spacing:-.01em}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:13px 22px; border-radius:10px; font-weight:700; font-size:15px;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:transform .16s, box-shadow .16s, background .16s, border-color .16s;
  white-space:nowrap;
}
.btn--red{background:var(--grad); color:#fff; box-shadow:var(--btn-shadow)}
.btn--red:hover{transform:translateY(-2px); box-shadow:var(--btn-shadow-hover)}
.btn--ghost{border-color:var(--line); color:var(--text); background:var(--surface)}
.btn--ghost:hover{border-color:var(--red); background:var(--surface-2)}
.btn--lg{padding:17px 30px; font-size:17px}

/* ---------- бургер и мобильное меню ---------- */
.burger{
  display:none; flex:none; width:44px; height:44px; padding:0; cursor:pointer;
  align-items:center; justify-content:center;
  background:none; border:1px solid var(--line); border-radius:10px;
}
.burger span{position:relative; display:block; width:20px; height:2px; border-radius:2px; background:var(--text); transition:background .15s}
.burger span::before,.burger span::after{
  content:""; position:absolute; left:0; width:20px; height:2px; border-radius:2px;
  background:var(--text); transition:transform .2s;
}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

.menu{
  position:fixed; left:0; right:0; top:76px; z-index:45;
  padding:14px 24px calc(24px + env(safe-area-inset-bottom));
  background:var(--overlay-bg); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  max-height:calc(100dvh - 76px); overflow-y:auto;
}
.menu[hidden]{display:none}
.menu__link{display:block; padding:14px 0; font-size:18px; font-weight:700; text-decoration:none; border-bottom:1px solid var(--line)}
.menu__link[aria-current="page"]{color:var(--red-hot)}
.menu__foot{display:grid; gap:12px; margin-top:22px}
.menu__tel{font-size:21px; font-weight:800; text-decoration:none; letter-spacing:-.01em}
body.menu-open{overflow:hidden}

/* ---------- hero ---------- */
.hero{position:relative; padding:96px 0 84px; overflow:hidden}
.hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 460px at 82% -10%, var(--hero-glow-1), transparent 62%),
    radial-gradient(620px 400px at 6% 108%, var(--hero-glow-2), transparent 66%);
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:var(--hero-stripe-opacity);
  background:repeating-linear-gradient(104deg, var(--hero-stripe) 0 1px, transparent 1px 74px);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 82%);
  mask-image:linear-gradient(180deg,#000,transparent 82%);
}
.hero .wrap{position:relative; z-index:1}
.eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:24px;
  font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--line); background:var(--eyebrow-bg); padding:8px 15px; border-radius:99px;
}
.eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--red-hot); box-shadow:0 0 0 4px var(--dot-glow)}
.hero h1{font-size:clamp(34px,5.6vw,66px); max-width:16ch}
.hero h1 em{font-style:normal; background:var(--h1-grad); -webkit-background-clip:text; background-clip:text; color:transparent}
.hero__lead{margin-top:26px; max-width:60ch; font-size:clamp(17px,1.6vw,20px); color:var(--muted)}
.hero__btns{display:flex; flex-wrap:wrap; gap:14px; margin-top:38px}
.hero__note{margin-top:18px; font-size:14px; color:var(--dim)}

.facts{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:70px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.facts li{background:var(--surface); padding:26px 24px}
.facts b{display:block; font-size:clamp(24px,2.4vw,30px); font-weight:800; letter-spacing:-.02em; margin-bottom:8px}
.facts b.sm{font-size:clamp(17px,1.7vw,20px); line-height:1.25}
.facts span{font-size:14.5px; color:var(--muted); line-height:1.5}

/* ---------- sections ---------- */
section{padding:92px 0; position:relative}
.alt{background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.head{max-width:66ch; margin-bottom:52px}
.head .kicker{display:block; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--red-hot); margin-bottom:16px}
.head h2{font-size:clamp(28px,3.6vw,44px)}
.head p{margin-top:18px; color:var(--muted); font-size:17.5px}

/* services */
.svc{display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:18px}
.svc li{
  position:relative; background:var(--surface-2); border:1px solid var(--line); box-shadow:var(--card-shadow);
  border-radius:var(--r); padding:30px 28px 28px; overflow:hidden;
  transition:transform .18s, border-color .18s;
}
.alt .svc li{background:var(--bg)}
.svc li::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--grad); transform:scaleY(0); transform-origin:top; transition:transform .22s}
.svc li:hover{transform:translateY(-3px); border-color:var(--line-strong)}
.svc li:hover::before{transform:scaleY(1)}
.svc .n{display:block; font-size:13px; font-weight:800; letter-spacing:.1em; color:var(--red-hot); margin-bottom:14px}
.svc h3{font-size:20px; margin-bottom:12px; letter-spacing:-.015em}
.svc p{font-size:15.5px; line-height:1.62; color:var(--muted)}

/* chips */
.chips{display:flex; flex-wrap:wrap; gap:9px}
.chips li{
  border:1px solid var(--line); background:var(--surface-2); color:var(--text);
  padding:9px 16px; border-radius:99px; font-size:14.5px; font-weight:600;
}
.alt .chips li{background:var(--bg)}
.sub{font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin:0 0 16px}
.stack{display:grid; gap:38px}

/* two-col */
.cols{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
.plist li{display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); font-size:16px; align-items:baseline}
.plist li:last-child{border-bottom:0}
.plist li::before{content:""; flex:none; width:7px; height:7px; margin-top:8px; border-radius:2px; background:var(--grad); transform:skewX(-12deg)}

/* details */
.acc{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--surface-2)}
.alt .acc{background:var(--bg)}
.acc+.acc{margin-top:12px}
.acc summary{
  cursor:pointer; padding:20px 24px; font-weight:700; font-size:17px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none;
}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+"; font-size:24px; font-weight:400; color:var(--red-hot); line-height:1; flex:none}
.acc[open] summary::after{content:"−"}
.acc summary:hover{background:var(--hover-tint)}
.acc .body{padding:0 24px 24px; font-size:14.5px; line-height:1.75; color:var(--muted); word-break:break-word}

/* warranty cards + callout */
.wcards{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.wcard{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:30px 28px; box-shadow:var(--card-shadow)}
.alt .wcard{background:var(--bg)}
.wcard h3{font-size:19px; margin-bottom:14px}
.wcard p{font-size:15.5px; line-height:1.62; color:var(--muted)}
.wcard ul{margin-top:16px}
.wcard li{position:relative; padding-left:18px; font-size:15px; line-height:1.55; color:var(--muted); margin-bottom:9px}
.wcard li::before{content:""; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:2px; background:var(--grad); transform:skewX(-12deg)}
.wcard li:last-child{margin-bottom:0}
.badge{display:inline-block; margin-bottom:16px; padding:7px 14px; border-radius:99px; font-size:13px; font-weight:800; letter-spacing:-.01em; background:var(--danger-bg); border:1px solid var(--danger-line); color:var(--danger-text)}
.callout{
  margin-top:22px; border:1px solid var(--line); border-left:3px solid var(--red); border-radius:var(--r);
  padding:32px 34px; background:linear-gradient(112deg,var(--callout-wash),transparent 62%),var(--surface-2);
}
.alt .callout{background:linear-gradient(112deg,var(--callout-wash),transparent 62%),var(--bg)}
.callout h3{font-size:21px; margin-bottom:14px}
.callout p{color:var(--muted); font-size:16px; max-width:78ch}
.callout p+p{margin-top:12px}
.note{margin-top:20px; font-size:14px; color:var(--dim); max-width:80ch}

/* нормочасы */
.acc summary .cnt{margin-right:auto}
.acc .cnt{font-size:12px; font-weight:700; color:var(--dim); background:var(--chip-tint); border-radius:99px; padding:3px 9px; margin-left:10px}
.scroll{overflow-x:auto}
.rt{width:100%; border-collapse:collapse; font-size:14.5px}
.rt th{text-align:left; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); font-weight:700; padding:0 0 11px; border-bottom:1px solid var(--line)}
.rt th:last-child,.rt td:last-child{text-align:right; white-space:nowrap; width:1%; padding-left:24px}
.rt td{padding:11px 0; border-bottom:1px solid var(--line); color:var(--muted); vertical-align:top; line-height:1.45}
.rt tbody tr:last-child td{border-bottom:0}
.rt td:last-child{color:var(--text); font-weight:700; font-variant-numeric:tabular-nums}
.rt td.subrow{padding-left:22px; color:var(--dim)}

/* steps */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:s}
.steps li{position:relative; padding-top:28px; border-top:2px solid var(--line)}
.steps li::before{
  counter-increment:s; content:"0" counter(s);
  position:absolute; top:-2px; left:0; padding-top:0;
  font-size:13px; font-weight:800; color:var(--red-hot); letter-spacing:.1em;
  border-top:2px solid var(--red); padding-right:14px; margin-top:-2px;
}
.steps h3{font-size:18px; margin:22px 0 10px}
.steps p{font-size:15px; color:var(--muted); line-height:1.6}

/* offices */
.offices{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px}
.office{
  display:flex; flex-direction:column;
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r);
  padding:28px; box-shadow:var(--card-shadow);
}
.office dl{margin:0 0 18px}
.alt .office{background:var(--bg)}
.office h3{font-size:20px; margin-bottom:18px}
.office dt{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); margin-bottom:5px}
.office dd{margin:0 0 16px; font-size:15.5px; color:var(--muted); line-height:1.55}
.office dd:last-child{margin-bottom:0}
/* Метка «Мобильные бригады»: значения у неё нет, а <dt> без <dd> невалиден,
   поэтому она вынесена из списка отдельной строкой. */
.office__tag{
  /* margin-top:auto прижимает метку к низу карточки: в сетке колонки
     тянутся до высоты самой длинной, и без этого метки висели вразнобой. */
  display:inline-block; align-self:flex-start; margin:auto 0 0; padding:6px 13px; border-radius:99px;
  font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--red-hot); background:var(--danger-bg); border:1px solid var(--danger-line);
}

/* contacts */
.contact{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:start}
.ctable{border-top:1px solid var(--line)}
.ctable div{display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line)}
.ctable dt{font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dim)}
.ctable dd{margin:0; font-size:19px; font-weight:700; letter-spacing:-.01em}
.ctable dd a{text-decoration:none; border-bottom:1px solid var(--link-underline)}
.ctable dd a:hover{color:var(--red-hot)}
.ctable dd.plain{font-size:16px; font-weight:600; color:var(--muted)}
.req{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:30px}
.alt .req{background:var(--bg)}
.req h3{font-size:18px; margin-bottom:20px}
.req dl{display:grid; grid-template-columns:auto 1fr; gap:12px 20px; font-size:14.5px; margin:0}
.req dt{color:var(--dim); white-space:nowrap}
.req dd{margin:0; color:var(--muted)}

/* форма заявки */
.form{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:32px; box-shadow:var(--card-shadow)}
.alt .form{background:var(--bg)}
.form--solo{max-width:720px; margin:0 auto}
.form h3{font-size:22px; margin-bottom:8px}
.form__lead{font-size:15.5px; color:var(--muted); margin-bottom:26px}
.row{display:grid; grid-template-columns:1fr 1fr; gap:0 16px}
.field{margin-bottom:18px; min-width:0}
.field label{display:block; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--dim); margin-bottom:8px}
.field label .m{color:var(--red-hot)}
.field input,.field select,.field textarea{
  width:100%; padding:13px 15px; border-radius:10px; border:1px solid var(--line);
  background:var(--bg); color:var(--text); font-family:inherit; font-size:16px; line-height:1.4;
  transition:border-color .16s, box-shadow .16s; -webkit-appearance:none; appearance:none;
}
.alt .field input,.alt .field select,.alt .field textarea{background:var(--surface)}
.field textarea{resize:vertical; min-height:96px}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 19px) 21px,calc(100% - 13px) 21px; background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px var(--focus-ring)}
.field[data-invalid="true"] input,.field[data-invalid="true"] select,.field[data-invalid="true"] textarea{border-color:var(--red-hot)}
.err{display:none; margin-top:7px; font-size:13.5px; color:var(--danger-text)}
.field[data-invalid="true"] .err{display:block}
.consent{display:flex; gap:12px; align-items:flex-start; margin:4px 0 22px; font-size:14.5px; line-height:1.5; color:var(--muted)}
.consent input{flex:none; width:19px; height:19px; margin:2px 0 0; accent-color:var(--red)}
.consent a{color:var(--text)}
.consent[data-invalid="true"] .err{display:block}
.hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}
.form__status{display:none; margin-top:18px; padding:15px 18px; border-radius:10px; font-size:15px; line-height:1.5; border:1px solid var(--line)}
.form__status[data-state]{display:block}
.form__status[data-state="success"]{border-color:var(--ok-line); background:var(--ok-bg); color:var(--ok-text)}
.form__status[data-state="error"]{border-color:var(--danger-line); background:var(--danger-bg); color:var(--danger-text)}
.form button[disabled]{opacity:.6; cursor:progress; transform:none}
.form__note{margin-top:16px; font-size:13px; color:var(--dim)}

/* footer */
.ftr{border-top:1px solid var(--line); padding:44px 0 40px; font-size:14.5px; color:var(--dim)}
.ftr__in{display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:center}
.ftr a{color:var(--muted)}

/* уведомление о cookie */
.cookie{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  display:flex; align-items:center; gap:20px;
  padding:16px 24px calc(16px + env(safe-area-inset-bottom));
  background:var(--cookie-bg); backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
}
.cookie[hidden]{display:none}
.cookie p{flex:1; margin:0; font-size:14px; line-height:1.55; color:var(--muted); max-width:82ch}
.cookie a{color:var(--text)}
.cookie .btn{flex:none; padding:11px 24px; font-size:14.5px}

/* mobile action bar */
.bar{display:none}

@media (max-width:1080px){
  .wcards{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr); gap:32px}
  .cols,.contact{grid-template-columns:1fr; gap:44px}
}
@media (max-width:1180px){ .hdr__cta .btn{display:none} }
@media (max-width:1000px){
  .nav{display:none}
  .burger{display:inline-flex}
  .facts{grid-template-columns:1fr}
  .menu{top:66px; max-height:calc(100dvh - 66px)}
  .hdr__cta{margin-left:auto}
  .hdr__in{height:66px}
  section{padding:66px 0}
  .hero{padding:64px 0 56px}
  .facts{margin-top:48px}
}
@media (max-width:640px){
  body{font-size:16px; padding-bottom:76px}
  .wrap{padding:0 18px}
  .hdr__tel{font-size:15px}
  /* Логотип, телефон и бургер в 390 px не помещаются. Телефон убираем:
     он остаётся в бургере и в нижней панели, а бургер терять нельзя. */
  .hdr__tel{display:none}
  .logo svg,.logo img{height:34px}
  .hdr__cta .btn{display:none}
  .svc{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .form{padding:24px 20px}
  .callout{padding:26px 22px}
  .rt{font-size:14px}
  .steps{grid-template-columns:1fr}
  .hero__btns .btn{flex:1 1 100%}
  .cookie{
    flex-direction:column; align-items:stretch; gap:12px;
    padding:16px 18px; bottom:calc(76px + env(safe-area-inset-bottom));
  }
  .cookie p{font-size:13.5px}
  .cookie .btn{width:100%}
  .bar{
    display:flex; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:60;
    padding:11px 14px calc(11px + env(safe-area-inset-bottom));
    background:var(--overlay-bg); backdrop-filter:blur(14px); border-top:1px solid var(--line);
  }
  .bar .btn{flex:1; padding:14px 12px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important; animation:none !important}
}


/* ---------- страница политики ---------- */
.doc{max-width:820px; margin:0 auto; padding:64px 24px 96px}
.doc h1{font-size:clamp(28px,4vw,42px); margin-bottom:14px}
.doc .upd{color:var(--dim); font-size:14.5px; margin-bottom:44px}
.doc h2{font-size:clamp(20px,2.4vw,25px); margin:44px 0 16px}
.doc p,.doc li{color:var(--muted); font-size:16.5px; line-height:1.7}
.doc p+p{margin-top:14px}
.doc ul{margin:14px 0 0; padding-left:22px; list-style:disc}
.doc li{margin-bottom:9px}
.doc a{color:var(--text)}
.doc .back{display:inline-block; margin-bottom:34px; font-size:15px; color:var(--muted); text-decoration:none}
.doc .back:hover{color:var(--text)}
.doc .warn{margin:40px 0 0; padding:20px 22px; border:1px solid var(--line); border-left:3px solid var(--red); border-radius:var(--r); background:var(--surface-2); font-size:15px; color:var(--muted)}
