/* ============================================================
   karta-apvgk.ru — дизайн-система «Дорожный атлас»
   Палитра: кремовый фон, чернильный текст, тёмно-зелёная навигация,
   терракотовые CTA. Классы: семантические, префикс .atlas-*
   ============================================================ */

/* ---------- 1. Шрифты (локальные woff2-сабсеты) ---------- */
@font-face{font-family:'Literata';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/literata-600-cyr.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Literata';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/literata-600-lat.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ptsans-400-cyr.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ptsans-400-lat.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/ptsans-700-cyr.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

/* ---------- 2. Переменные ---------- */
:root{
  --cream:#FAF6EE;        /* фон страницы */
  --ink:#21281F;          /* основной текст */
  --pine:#2D5A3D;         /* тёмно-зелёный: навигация, акценты */
  --pine-dark:#234A31;
  --pine-soft:#EAF0E6;    /* светло-зелёная подложка */
  --terra:#C4562E;        /* терракота: CTA, выделения */
  --terra-dark:#A84523;
  --sand:#E8DFC8;         /* песочный: зебра таблиц, рамки */
  --sand-soft:#F3EDDD;
  --card:#FFFFFF;
  --line:#D8CFB8;         /* линии, границы */
  --muted:#5C6357;        /* вторичный текст */
  --ok:#2D5A3D;
  --warn:#C4562E;
  --serif:'Literata',Georgia,'Times New Roman',serif;
  --sans:'PT Sans',Verdana,Arial,sans-serif;
  --radius:10px;
  --shadow:0 2px 10px rgba(33,40,31,.08);
  --wrap:1200px;
  /* пунктирная «линия маршрута» */
  --route:repeating-linear-gradient(90deg,var(--pine) 0 14px,transparent 14px 24px);
}

/* ---------- 3. База ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.7 var(--sans)}
img,svg{max-width:100%;height:auto}
a{color:var(--pine);text-decoration-color:rgba(45,90,61,.4);text-underline-offset:3px}
a:hover{color:var(--terra)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.25;color:var(--ink);margin:0 0 .6em}
h1{font-size:clamp(1.7rem,4.6vw,2.5rem);letter-spacing:-.01em}
h2{font-size:clamp(1.35rem,3.2vw,1.8rem);margin-top:0}
h3{font-size:1.17rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1.2em;padding-left:1.4em}
li{margin-bottom:.4em}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
:focus-visible{outline:3px solid var(--terra);outline-offset:2px;border-radius:4px}
.atlas-wrap{max-width:var(--wrap);margin:0 auto;padding:0 18px}
.atlas-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 4. Шапка и навигация ---------- */
.atlas-header{background:var(--pine);color:#fff;position:relative;z-index:60}
.atlas-header__in{display:flex;align-items:center;gap:14px;min-height:64px;max-width:var(--wrap);margin:0 auto;padding:8px 18px}
.atlas-logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1.1;white-space:nowrap}
.atlas-logo:hover{color:var(--sand)}
.atlas-logo svg{width:30px;height:36px;flex:none}
.atlas-logo small{display:block;font-family:var(--sans);font-weight:400;font-size:.68rem;opacity:.75;letter-spacing:.04em}
.atlas-nav{margin-left:auto}
.atlas-nav__list{display:flex;gap:2px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.atlas-nav__list a{display:block;padding:9px 12px;color:#fff;text-decoration:none;font-size:.92rem;border-radius:7px;border:1px solid transparent}
.atlas-nav__list a:hover,.atlas-nav__list a[aria-current="page"]{background:var(--pine-dark);border-color:rgba(255,255,255,.25);color:#fff}
.atlas-header__phone{color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;white-space:nowrap;border:1px dashed rgba(255,255,255,.45);border-radius:8px;padding:8px 12px}
.atlas-header__phone:hover{background:var(--pine-dark);color:#fff}
.atlas-burger{display:none;margin-left:auto;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:none;cursor:pointer;padding:11px;flex:none}
.atlas-burger span{display:block;height:2px;background:#fff;margin:5px 0;border-radius:2px;transition:transform .2s,opacity .2s}
.atlas-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.atlas-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.atlas-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:920px){
  .atlas-burger{display:block}
  .atlas-nav{position:absolute;top:100%;left:0;right:0;background:var(--pine-dark);display:none;box-shadow:var(--shadow);margin:0}
  .atlas-nav.is-open{display:block}
  .atlas-nav__list{flex-direction:column;gap:0;padding:8px 12px 14px}
  .atlas-nav__list a{padding:13px 10px;font-size:1.02rem;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0}
  .atlas-header__phone{display:none}
  .atlas-nav .atlas-header__phone{display:block;margin:10px;text-align:center}
}

/* ---------- 5. Хлебные крошки ---------- */
.atlas-crumbs{font-size:.85rem;color:var(--muted);padding:12px 0 0}
.atlas-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.atlas-crumbs li{margin:0}
.atlas-crumbs li+li::before{content:"→";margin:0 6px;color:var(--line)}
.atlas-crumbs a{color:var(--muted)}

/* ---------- 6. Hero с миллиметровой сеткой ---------- */
.atlas-hero{position:relative;padding:44px 0 36px;background:
  linear-gradient(rgba(250,246,238,.55),var(--cream) 92%),
  repeating-linear-gradient(0deg,rgba(45,90,61,.055) 0 1px,transparent 1px 8px),
  repeating-linear-gradient(90deg,rgba(45,90,61,.055) 0 1px,transparent 1px 8px),
  repeating-linear-gradient(0deg,rgba(45,90,61,.09) 0 1px,transparent 1px 40px),
  repeating-linear-gradient(90deg,rgba(45,90,61,.09) 0 1px,transparent 1px 40px)}
.atlas-hero::after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--route)}
.atlas-hero__lead{max-width:760px;font-size:1.06rem}
.atlas-hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.atlas-counter{display:inline-flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 18px;margin:6px 0 16px;box-shadow:var(--shadow);font-size:.95rem}
.atlas-counter b{font-family:var(--serif);font-size:1.5rem;color:var(--pine);font-weight:600}
.atlas-counter .is-date{color:var(--muted)}

/* ---------- 6b. Hero на фото: «атлас с воздуха» (только главная) ---------- */
/* Панорама трассы уходит в фон под чернильно-зелёный scrim палитры,
   текст ложится светлым, карточки «парят» над снимком. */
.atlas-hero--photo{
  padding:56px 0 52px;
  background:
    linear-gradient(180deg,rgba(33,40,31,.60),rgba(35,74,49,.84)),
    repeating-linear-gradient(0deg,rgba(250,246,238,.06) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,rgba(250,246,238,.06) 0 1px,transparent 1px 40px),
    var(--hero-bg,url('/assets/img/generated/trassa-aerial-route.webp')) center 35%/cover no-repeat var(--pine-dark);
}
/* нижняя «дорога» — фирменная терракотовая пунктирная полоса */
.atlas-hero--photo::after{height:4px;background:repeating-linear-gradient(90deg,var(--terra) 0 16px,transparent 16px 28px)}
.atlas-hero--photo h1{color:var(--cream);text-shadow:0 2px 20px rgba(16,22,14,.55)}
.atlas-hero--photo .atlas-hero__lead{color:rgba(250,246,238,.95);text-shadow:0 1px 12px rgba(16,22,14,.5)}
.atlas-hero--photo .atlas-counter{border-color:rgba(255,255,255,.55);box-shadow:0 12px 32px rgba(14,20,12,.5)}
.atlas-hero--photo .atlas-gist{box-shadow:0 16px 40px rgba(14,20,12,.5)}
@media(max-width:560px){.atlas-hero--photo{padding:40px 0 40px;background-position:center 32%}}

/* ---------- 6c. Hero-сетка: контент + виджет проверки штрафа ---------- */
.atlas-hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}
.atlas-hero__main{min-width:0}
@media(max-width:900px){.atlas-hero__grid{grid-template-columns:1fr;gap:22px}}

/* Виджет проверки штрафа по УИН — «парящая» кремово-зелёная карточка */
.atlas-check{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 16px 40px rgba(14,20,12,.5);padding:22px 22px 24px}
.atlas-check__h{font-family:var(--serif);font-weight:600;font-size:1.32rem;color:var(--ink);margin:0 0 4px}
.atlas-check__sub{font-size:.9rem;color:var(--muted);margin:0 0 16px}
.atlas-check__form{display:grid;gap:14px}
.atlas-check__row{display:grid;gap:5px}
.atlas-check__lab{font-size:.88rem;font-weight:700;color:var(--pine)}
.atlas-check__inp{width:100%;min-height:48px;border:1.5px solid var(--line);border-radius:8px;background:var(--cream);color:var(--ink);font:400 1rem/1.4 var(--sans);padding:11px 14px}
.atlas-check__inp:focus{outline:none;border-color:var(--pine);background:#fff;box-shadow:0 0 0 3px rgba(45,90,61,.15)}
.atlas-check__hint{font-size:.8rem;color:var(--muted)}
.atlas-check__hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.atlas-check__consent{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;line-height:1.5;color:var(--muted);cursor:pointer}
.atlas-check__consent input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--pine)}
.atlas-check__consent a{color:var(--pine)}
.atlas-check__err{margin:0;font-size:.86rem;color:var(--terra-dark)}
.atlas-check .atlas-btn{width:100%}
.atlas-check__out{margin-top:16px;padding:16px 18px;border-radius:8px;border:1px solid var(--line);background:var(--sand-soft);font-size:.95rem;line-height:1.55;color:var(--ink)}
.atlas-check__out.is-loading{display:flex;align-items:center;gap:10px;color:var(--muted)}
.atlas-check__spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--pine);border-radius:50%;display:inline-block;animation:atlas-check-spin .7s linear infinite;flex:none}
@keyframes atlas-check-spin{to{transform:rotate(360deg)}}
.atlas-check__out.is-found{border-left:4px solid var(--terra);background:#FBEDE7}
.atlas-check__out.is-empty,.atlas-check__out.is-wait{border-left:4px solid var(--pine);background:var(--pine-soft)}
.atlas-check__tag{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--terra-dark)}
.atlas-check__tag--soft{color:var(--pine)}
.atlas-check__sum{margin:0;font-family:var(--serif);font-weight:600;font-size:1.7rem;color:var(--pine)}
.atlas-check__meta{margin:5px 0 0;font-size:.85rem;color:var(--muted)}
.atlas-check__msg{margin:10px 0 0}

/* ---------- 7. Блок прямого ответа «Суть» ---------- */
.atlas-gist{border:2px dashed var(--pine);border-radius:var(--radius);background:var(--card);padding:18px 20px 14px;margin:20px 0;position:relative}
.atlas-gist::before{content:"Суть";position:absolute;top:-13px;left:16px;background:var(--pine);color:#fff;font:700 .78rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:20px}
.atlas-gist p{margin-bottom:.6em}
.atlas-gist p:last-child{margin-bottom:0}
.atlas-gist__cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:.95rem}

/* ---------- 8. Кнопки ---------- */
.atlas-btn{display:inline-block;border:0;cursor:pointer;text-decoration:none;text-align:center;font:700 1rem/1.2 var(--sans);border-radius:8px;padding:14px 24px;min-height:48px;transition:background .15s,transform .1s}
.atlas-btn:active{transform:translateY(1px)}
.atlas-btn--main{background:var(--terra);color:#fff}
.atlas-btn--main:hover{background:var(--terra-dark);color:#fff}
.atlas-btn--line{background:transparent;color:var(--pine);border:2px solid var(--pine);padding:12px 22px}
.atlas-btn--line:hover{background:var(--pine);color:#fff}
.atlas-btn--sand{background:var(--sand);color:var(--ink)}
.atlas-btn--sand:hover{background:var(--line);color:var(--ink)}
.atlas-btn--sm{padding:9px 16px;min-height:40px;font-size:.9rem}

/* ---------- 9. Бейджи трасс («указатели») ---------- */
.atlas-road{display:inline-block;background:var(--pine);color:#fff;font:700 .84rem/1 var(--sans);padding:5px 10px 6px;border-radius:7px;border:2px solid #fff;box-shadow:0 0 0 1px var(--pine);white-space:nowrap;text-decoration:none;vertical-align:baseline}
a.atlas-road:hover{background:var(--terra);box-shadow:0 0 0 1px var(--terra);color:#fff}
.atlas-road--reg{background:#fff;color:var(--pine);box-shadow:0 0 0 1px var(--pine)}

/* ---------- 10. Секции и разделители-«маршруты» ---------- */
.atlas-section{padding:38px 0}
.atlas-section--alt{background:var(--sand-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.atlas-section__head{max-width:820px;margin-bottom:20px}
.atlas-route-sep{border:0;height:3px;background:var(--route);margin:0;position:relative;overflow:visible}
.atlas-route-sep::after{content:"";position:absolute;right:0;top:-5px;width:13px;height:13px;border-radius:50%;background:var(--terra);border:3px solid var(--cream)}

/* Фон-hero для лид-секции внутренних страниц — тот же язык, что и на главной
   (см. 6b): чернильно-зелёный scrim палитры, светлый заголовок, «парящая»
   карточка сути, терракотовая пунктирная дорожка снизу. Фото — через --hero-bg. */
.atlas-section--hero{position:relative;padding:52px 0 46px;background:
  linear-gradient(180deg,rgba(33,40,31,.60),rgba(35,74,49,.84)),
  repeating-linear-gradient(0deg,rgba(250,246,238,.06) 0 1px,transparent 1px 40px),
  repeating-linear-gradient(90deg,rgba(250,246,238,.06) 0 1px,transparent 1px 40px),
  var(--hero-bg) center 38%/cover no-repeat var(--pine-dark)}
.atlas-section--hero::after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;height:4px;background:repeating-linear-gradient(90deg,var(--terra) 0 16px,transparent 16px 28px)}
.atlas-section--hero h1{color:var(--cream);text-shadow:0 2px 20px rgba(16,22,14,.55)}
.atlas-section--hero .atlas-updated{background:rgba(250,246,238,.94);color:var(--pine-dark);box-shadow:0 6px 18px rgba(14,20,12,.4)}
.atlas-section--hero .atlas-gist{box-shadow:0 16px 40px rgba(14,20,12,.5)}
@media(max-width:560px){.atlas-section--hero{padding:34px 0 34px;background-position:center 34%}}

/* ---------- 11. Таблицы ---------- */
.atlas-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);margin:0 0 1.4em}
.atlas-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
.atlas-table caption{caption-side:top;text-align:left;font-family:var(--serif);font-weight:600;font-size:1.02rem;padding:14px 16px 10px;color:var(--pine)}
.atlas-table th,.atlas-table td{padding:10px 14px;text-align:left;border-top:1px solid var(--sand);vertical-align:top}
.atlas-table thead th{background:var(--pine);color:#fff;font:700 .84rem/1.3 var(--sans);letter-spacing:.03em;border-top:0;position:sticky;top:0;z-index:2}
.atlas-table tbody tr:nth-child(even){background:var(--sand-soft)}
.atlas-table tbody tr:hover{background:var(--pine-soft)}
.atlas-table td.is-num,.atlas-table th.is-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.atlas-table .is-over{color:var(--terra);font-weight:700}
.atlas-table .is-ok{color:var(--ok);font-weight:700}
.atlas-table-note{font-size:.85rem;color:var(--muted);margin-top:-.8em;margin-bottom:1.4em}

/* ---------- 12. FAQ ---------- */
.atlas-faq{max-width:860px}
.atlas-faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;box-shadow:var(--shadow)}
.atlas-faq summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:baseline;padding:15px 18px;font-family:var(--serif);font-weight:600;font-size:1.04rem;color:var(--pine)}
.atlas-faq summary::-webkit-details-marker{display:none}
.atlas-faq summary::before{content:"+";flex:none;width:22px;height:22px;border:2px solid var(--pine);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 1rem/1 var(--sans);transform:translateY(3px)}
.atlas-faq details[open] summary::before{content:"–";background:var(--pine);color:#fff}
.atlas-faq details[open] summary{border-bottom:1px dashed var(--line)}
.atlas-faq__body{padding:14px 18px 16px}
.atlas-faq__body p:last-child{margin-bottom:0}

/* ---------- 13. Формы ---------- */
.atlas-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 22px;max-width:640px}
.atlas-form--pine{background:var(--pine);border-color:var(--pine-dark);color:#fff}
.atlas-form--pine h2,.atlas-form--pine h3,.atlas-form--pine label{color:#fff}
.atlas-form--pine .atlas-form__hint,.atlas-form--pine .atlas-consent{color:rgba(255,255,255,.82)}
.atlas-form--pine .atlas-consent a{color:var(--sand)}
.atlas-form__row{margin-bottom:14px}
.atlas-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:560px){.atlas-form__grid{grid-template-columns:1fr}}
.atlas-form label{display:block;font-size:.88rem;font-weight:700;margin-bottom:5px}
.atlas-form label .is-opt{font-weight:400;color:var(--muted)}
.atlas-input,.atlas-select,.atlas-textarea{width:100%;min-height:48px;border:1.5px solid var(--line);border-radius:8px;background:var(--cream);color:var(--ink);font:400 1rem/1.4 var(--sans);padding:11px 14px}
.atlas-textarea{min-height:96px;resize:vertical}
.atlas-input:focus,.atlas-select:focus,.atlas-textarea:focus{outline:none;border-color:var(--pine);background:#fff;box-shadow:0 0 0 3px rgba(45,90,61,.15)}
.atlas-input[aria-invalid="true"]{border-color:var(--terra);box-shadow:0 0 0 3px rgba(196,86,46,.15)}
.atlas-form__hint{font-size:.83rem;color:var(--muted);margin-top:4px}
.atlas-consent{display:flex;gap:10px;align-items:flex-start;font-size:.83rem;line-height:1.5;color:var(--muted);margin:14px 0}
.atlas-consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--pine)}
.atlas-form .atlas-btn{width:100%}
.atlas-form__sla{font-size:.86rem;color:var(--muted);text-align:center;margin:10px 0 0}
.atlas-form--pine .atlas-form__sla{color:rgba(255,255,255,.82)}
.atlas-form__error{display:none;background:#FBEDE7;border:1px solid var(--terra);color:var(--terra-dark);border-radius:8px;padding:10px 14px;font-size:.9rem;margin-bottom:12px}
.atlas-form.has-error .atlas-form__error{display:block}
/* honeypot */
.atlas-field-extra{position:absolute!important;left:-6000px;top:auto;width:1px;height:1px;overflow:hidden}
/* экран «спасибо» */
.atlas-form__done{display:none;text-align:center;padding:14px 4px}
.atlas-form__done svg{width:56px;height:56px;margin-bottom:10px}
.atlas-form.is-done form{display:none}
.atlas-form.is-done .atlas-form__done{display:block}

/* ---------- 14. Карточки ---------- */
.atlas-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:0 0 1.4em;padding:0;list-style:none}
.atlas-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:0;display:flex;flex-direction:column;gap:6px}
.atlas-card h3{margin:0;font-size:1.05rem}
.atlas-card h3 a{text-decoration:none}
.atlas-card p{margin:0;font-size:.9rem;color:var(--muted)}
.atlas-card .atlas-card__meta{font-size:.85rem;color:var(--pine);font-weight:700;margin-top:auto}
.atlas-card--link{position:relative}
.atlas-card--link:hover{border-color:var(--pine)}

/* ---------- 15. Карта-схема регионов ---------- */
.atlas-map{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:18px}
.atlas-map__svg{display:block;width:100%;height:auto}
.atlas-tile{cursor:pointer}
.atlas-tile rect{stroke:var(--line);stroke-width:1;transition:fill .12s}
.atlas-tile[data-page] rect{stroke:var(--pine);stroke-width:1.5}
.atlas-tile:hover rect,.atlas-tile:focus rect,.atlas-tile.is-active rect{fill:var(--pine)}
.atlas-tile:hover text,.atlas-tile:focus text,.atlas-tile.is-active text{fill:#fff}
.atlas-tile text{font:700 11px var(--sans);fill:var(--ink);text-anchor:middle;pointer-events:none}
.atlas-tile text+text{font-weight:400;fill:var(--muted)}
.atlas-map__legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.82rem;color:var(--muted);margin-top:10px}
.atlas-map__legend i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--line);vertical-align:-2px;margin-right:5px}
/* панель региона */
.atlas-map-panel{background:var(--card);border:1px solid var(--pine);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:none}
.atlas-map-panel.is-open{display:block}
.atlas-map-panel__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:8px}
.atlas-map-panel__head h3{margin:0}
.atlas-map-panel__count{color:var(--muted);font-size:.9rem}
.atlas-map-panel ul{max-height:300px;overflow:auto;margin:0 0 12px;padding-left:1.2em;font-size:.92rem}
.atlas-map-panel__close{float:right;background:none;border:0;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}
/* фильтр реестра */
.atlas-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.atlas-filter .atlas-input{flex:1 1 240px}
.atlas-filter .atlas-select{flex:0 1 220px}
.atlas-filter__stat{font-size:.88rem;color:var(--muted);align-self:center}
#map-slot{border:2px dashed var(--line);border-radius:var(--radius);background:var(--sand-soft);padding:22px;text-align:center;color:var(--muted);font-size:.92rem;margin-top:14px}

/* ---------- 16. Калькулятор ---------- */
.atlas-calc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.atlas-calc__controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:14px}
.atlas-calc__axles{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.atlas-calc__axle{flex:1 1 120px;min-width:110px;background:var(--sand-soft);border:1px solid var(--line);border-radius:8px;padding:10px}
.atlas-calc__axle b{display:block;font-size:.8rem;margin-bottom:4px;color:var(--pine)}
.atlas-calc__axle .atlas-input{min-height:42px;padding:8px 10px;font-size:.95rem}
.atlas-calc__axle label{font-size:.75rem;font-weight:400;color:var(--muted);display:block;margin:6px 0 2px}
.atlas-calc__result{margin-top:6px}
.atlas-verdict{border-radius:8px;padding:14px 16px;font-weight:700;margin-bottom:14px}
.atlas-verdict--ok{background:var(--pine-soft);border:1px solid var(--pine);color:var(--pine-dark)}
.atlas-verdict--over{background:#FBEDE7;border:1px solid var(--terra);color:var(--terra-dark)}
.atlas-verdict small{display:block;font-weight:400;color:var(--muted);margin-top:4px}

/* ---------- 17. Табы ---------- */
.atlas-tabs__bar{display:flex;flex-wrap:wrap;gap:6px;border-bottom:2px solid var(--line);margin-bottom:16px}
.atlas-tabs__btn{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:10px 14px;font:700 .95rem var(--sans);color:var(--muted);cursor:pointer;min-height:44px}
.atlas-tabs__btn[aria-selected="true"]{color:var(--pine);border-bottom-color:var(--terra)}
.atlas-tabs__panel[hidden]{display:none}

/* ---------- 18. Шаги ---------- */
.atlas-steps{list-style:none;counter-reset:step;padding:0;max-width:820px}
.atlas-steps>li{counter-increment:step;position:relative;padding:0 0 22px 62px;margin:0}
.atlas-steps>li::before{content:counter(step);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:50%;background:var(--pine);color:#fff;font:600 1.15rem/42px var(--serif);text-align:center}
.atlas-steps>li:not(:last-child)::after{content:"";position:absolute;left:20px;top:46px;bottom:2px;border-left:2px dashed var(--line)}
.atlas-steps b:first-child{font-family:var(--serif);font-size:1.05rem}

/* ---------- 19. Служебные блоки ---------- */
.atlas-note{background:var(--sand-soft);border-left:4px solid var(--pine);border-radius:0 8px 8px 0;padding:12px 16px;font-size:.93rem;margin:0 0 1.4em}
.atlas-note--terra{border-left-color:var(--terra)}
.atlas-source-line{font-size:.85rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px;margin-top:26px}
.atlas-updated{display:inline-block;background:var(--pine-soft);color:var(--pine-dark);font-size:.82rem;border-radius:16px;padding:4px 12px}
/* мостик «штраф уже пришёл» */
.atlas-bridge{background:var(--pine);border-radius:var(--radius);color:#fff;padding:26px 24px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.atlas-bridge h2,.atlas-bridge h3{color:#fff}
.atlas-bridge p{color:rgba(255,255,255,.88)}
.atlas-bridge .atlas-form{background:#fff;border:0}
@media(max-width:820px){.atlas-bridge{grid-template-columns:1fr}}

/* ---------- 20. Изображения с graceful-заглушкой ---------- */
.atlas-art{position:relative;border-radius:var(--radius);overflow:hidden;background:
  linear-gradient(rgba(45,90,61,.06),rgba(45,90,61,.06)),
  repeating-linear-gradient(0deg,rgba(45,90,61,.08) 0 1px,transparent 1px 24px),
  repeating-linear-gradient(90deg,rgba(45,90,61,.08) 0 1px,transparent 1px 24px),var(--sand-soft);
  border:1px solid var(--line);margin:0 0 1.4em}
.atlas-art img{display:block;width:100%;height:auto}
.atlas-art figcaption{font-size:.83rem;color:var(--muted);padding:8px 14px;border-top:1px solid var(--line);background:var(--card)}
.atlas-art.is-missing::before{content:"Иллюстрация готовится";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem}
.atlas-art.is-missing{min-height:180px}
.atlas-art.is-missing img{visibility:hidden;min-height:180px}

/* ---------- 21. Sticky-бар (мобайл) ---------- */
.atlas-sticky{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(250,246,238,.97);border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(33,40,31,.12)}
.atlas-sticky .atlas-btn{flex:1;padding:12px 10px;font-size:.92rem}
@media(max-width:820px){.atlas-sticky{display:flex}body{padding-bottom:76px}}

/* ---------- 22. Футер с компасной розой ---------- */
.atlas-footer{background:var(--pine-dark);color:rgba(255,255,255,.85);margin-top:48px;font-size:.9rem}
.atlas-footer a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.atlas-footer a:hover{color:var(--sand)}
.atlas-footer__top{display:grid;grid-template-columns:220px repeat(auto-fit,minmax(180px,1fr));gap:26px;padding:36px 0 26px}
@media(max-width:820px){.atlas-footer__top{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.atlas-footer__top{grid-template-columns:1fr}}
.atlas-footer h4{color:#fff;font-size:.98rem;margin-bottom:.7em}
.atlas-footer ul{list-style:none;margin:0;padding:0}
.atlas-footer li{margin-bottom:8px}
.atlas-footer__compass{opacity:.9}
.atlas-footer__compass svg{width:92px;height:92px;display:block;margin-bottom:10px}
.atlas-footer__bottom{border-top:1px dashed rgba(255,255,255,.25);padding:16px 0 22px;font-size:.8rem;color:rgba(255,255,255,.6)}
.atlas-footer__bottom p{margin-bottom:.5em}

/* ---------- 23. Утилиты ---------- */
.atlas-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:820px){.atlas-grid-2{grid-template-columns:1fr}}
.atlas-lead-strong{font-size:1.08rem}
.atlas-muted{color:var(--muted)}
.atlas-center{text-align:center}
.atlas-mt-0{margin-top:0}.atlas-mb-0{margin-bottom:0}
.js-phone-block{display:none}
.js-phone-block.is-on{display:inline-block}
@media(max-width:920px){.atlas-nav .js-phone-block.is-on{display:block}}

/* ---------- 24. Печать ---------- */
@media print{
  .atlas-header,.atlas-sticky,.atlas-footer,.atlas-form,.atlas-bridge{display:none}
  body{background:#fff}
}
