/* Саммит Банк — публичный сайт. Оформление ТЗ 3.0 «Контраст и движение».
   Только локальные ресурсы (CSP: style-src/font-src 'self'). Шрифты Manrope и Lora — OFL, лицензии в /fonts. */

@font-face { font-family: Manrope; src: url("../fonts/Manrope.woff") format("woff"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: Lora; src: url("../fonts/Lora.woff") format("woff"); font-weight: 400 700; font-display: swap; }

:root {
  --bg: #f3f4ee;
  --paper: #fffefb;
  --ink: #102f29;
  --muted: #4d625a;
  --line: #cbd5ce;
  --soft: #e8eee4;
  --green: #005b49;
  --green-hover: #004a3c;
  --gold: #c4a566;
  --gold-soft: #f2e5c4;
  --dark: #123e32;
  --radius: 10px;
  --radius-sm: 6px;
  --shadow: #102f2922;
  --serif: Lora, Georgia, "Times New Roman", serif;
  --sans: Manrope, Arial, "Helvetica Neue", Helvetica, sans-serif;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 450 16px/1.6 var(--sans); }
h1, h2 { font-family: var(--serif); font-weight: 500; line-height: 1.2; margin: 0 0 .5em; }
h3 { font-family: var(--sans); font-weight: 650; line-height: 1.3; letter-spacing: -.01em; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
a { color: var(--green); }
a:hover { color: var(--green-hover); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 2px; }
img { max-width: 100%; height: auto; }
button, select, input { font: inherit; color: inherit; }
button, a, select { touch-action: manipulation; }
[hidden] { display: none !important; }

.wrap { width: 100%; max-width: 1320px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
@media (min-width: 768px) { .wrap { padding-left: 24px; padding-right: 24px; } }
@media (min-width: 1024px) { .wrap { padding-left: 40px; padding-right: 40px; } }

.skip { position: absolute; left: -9999px; top: 8px; z-index: 10; background: var(--paper); padding: 8px 12px; border-radius: 6px; }
.skip:focus { left: 16px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.muted { color: var(--muted); }
.small { font-size: 14px; }
.icon { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

/* ---------- Кнопки и ссылки ---------- */
.btn { display: inline-flex; align-items: center; gap: 16px; min-height: 46px; padding: 11px 20px; border: 1px solid transparent; border-radius: 5px; font-size: 15px; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer; transition: transform .2s, box-shadow .2s, background-color .2s; }
.btn-primary, .button { background: var(--green); color: #fff; }
.btn-primary:hover, .button:hover { background: var(--green-hover); color: #fff; transform: translateY(-2px); box-shadow: 0 8px 18px var(--shadow); }
.btn-gold { background: var(--gold-soft); color: #173b2e; }
.btn-gold:hover { background: #e8d6ab; color: #173b2e; transform: translateY(-2px); box-shadow: 0 8px 18px #00000030; }
.btn-outline { background: var(--paper); border-color: var(--line); color: var(--ink); }
.btn-outline:hover { border-color: var(--green); color: var(--green); }
.btn-small { min-height: 40px; padding: 7px 14px; font-size: 14px; background: var(--green); color: #fff; }
.button { display: inline-block; padding: 10px 18px; border-radius: var(--radius-sm); text-decoration: none; transition: transform .2s, box-shadow .2s, background-color .2s; }
.text-link { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; color: var(--green); text-decoration: none; }
a.text-link:hover { text-decoration: underline; }
.eyebrow { font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--green); font-weight: 700; margin: 0 0 16px; }

/* ---------- Шапка (ТЗ 2.0, п. 3) ---------- */
.site-header { position: relative; z-index: 20; background: var(--paper); border-bottom: 1px solid var(--line); }
.header-top { display: flex; align-items: center; gap: 8px 36px; min-height: 92px; padding-top: 10px; padding-bottom: 10px; }
.brand { display: inline-flex; align-items: center; gap: 14px; color: var(--ink); text-decoration: none; flex-shrink: 0; }
.brand:hover { color: var(--ink); }
.brand-mark { display: block; width: 38px; height: 38px; }
.brand-mark .m1, .brand-mark .m2, .brand-mark .m3 { fill: var(--green); }
.brand-mark .m4 { fill: var(--gold); }
.brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 26px; letter-spacing: 1.5px; line-height: 1; }
.brand-name small { display: block; margin-top: 7px; font: 10px/1 var(--sans); letter-spacing: 7px; text-align: right; }

.audiences { display: flex; gap: 24px; align-self: stretch; }
.audiences a { display: flex; align-items: center; min-height: 44px; border-bottom: 2px solid transparent; color: var(--muted); font-size: 15px; text-decoration: none; white-space: nowrap; }
.audiences a:hover { color: var(--ink); }
.audiences a[aria-current] { color: var(--green); border-bottom-color: var(--green); }

.header-tools { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.city { display: flex; align-items: center; gap: 6px; color: var(--ink); font-size: 15px; }
.city .icon { color: var(--green); }
.city select { max-width: 190px; min-height: 44px; padding: 8px 4px; border: 0; background: transparent; color: var(--ink); font-size: 15px; cursor: pointer; }
.ibank { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; min-height: 44px; padding: 9px 18px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); font-size: 14px; text-decoration: none; white-space: nowrap; }
.ibank span[aria-hidden] { color: var(--green); }
.ibank:hover { border-color: var(--green); color: var(--green); }

.header-nav { border-top: 1px solid var(--line); }
.header-nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 62px; }
.main-nav { min-width: 0; }
.nav-list { display: flex; flex-wrap: nowrap; align-items: center; gap: 0 36px; margin: 0; padding: 0; list-style: none; }
.nav-list > li { position: relative; }
.nav-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font-size: 15px; text-decoration: none; white-space: nowrap; cursor: pointer; }
.nav-link:hover, .nav-link.is-active, .nav-link[aria-current] { color: var(--green); }
.main-nav .nav-link[aria-current], .main-nav .nav-link.is-active { box-shadow: inset 0 -2px 0 var(--green); }
.contact-link { flex-shrink: 0; color: var(--muted); font-size: 14px; text-decoration: none; white-space: nowrap; }
.contact-link:hover { color: var(--green); text-decoration: underline; }

/* Раскрывающаяся группа: единый шеврон 8×8 px, 1,5 px, отступ 10 px, вверх при открытии */
.nav-dd summary { list-style: none; }
.nav-dd summary::-webkit-details-marker { display: none; }
.chevron { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-left: 10px; }
.chevron::before { content: ""; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s; }
.nav-dd[open] .chevron::before { transform: translateY(2px) rotate(225deg); }
.nav-dd-list { position: absolute; top: calc(100% + 9px); left: -18px; z-index: 30; min-width: 260px; margin: 0; padding: 8px 0; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); box-shadow: 0 14px 30px #12302624; list-style: none; }
.nav-dd-list a { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 18px; color: var(--ink); font-size: 15px; text-decoration: none; white-space: nowrap; }
.nav-dd-list a:hover, .nav-dd-list a:focus-visible { background: var(--soft); color: var(--green); }
.nav-dd-list a[aria-current] { color: var(--green); font-weight: 700; }
.nav-dd-list .ext { color: var(--green); }
.motion-off .chevron::before { transition: none; }

/* Компактная навигация (< 900 px): кнопка «Меню», панель на всю ширину */
.mobile-menu { display: none; }
.mobile-menu summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: 15px; cursor: pointer; list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.burger { width: 16px; height: 2px; background: currentColor; box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor; }
.mobile-menu[open] summary { border-color: var(--green); color: var(--green); }
.mobile-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; max-height: calc(100vh - 120px); overflow-y: auto; padding: 8px 20px 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: 0 18px 30px #12302620; }
.mobile-panel .nav-list { flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 0; }
.mobile-panel .nav-list > li { border-bottom: 1px solid var(--line); }
.mobile-panel .nav-link { display: flex; min-height: 48px; font-size: 16px; }
.mobile-panel .nav-link[aria-current] { font-weight: 700; }
.nav-section { padding: 10px 0 4px; }
.nav-section-title { display: block; color: var(--muted); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.nav-section ul { margin: 0; padding: 0 0 0 12px; list-style: none; }
.mobile-extra { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding-top: 16px; }

@media (max-width: 1099px) {
  .header-top { gap: 8px 24px; }
  .nav-list { gap: 0 26px; }
}
@media (max-width: 899px) {
  .header-top { flex-wrap: wrap; gap: 4px 16px; min-height: 0; padding-top: 12px; padding-bottom: 0; }
  .brand-name { font-size: 22px; }
  .brand-mark { width: 34px; height: 34px; }
  .audiences { order: 4; width: 100%; gap: 20px; }
  .header-tools { order: 2; gap: 12px; }
  .header-tools .ibank { display: none; }
  .city select { max-width: 150px; }
  .mobile-menu { display: block; order: 3; }
  .header-nav { display: none; }
}
@media (max-width: 479px) {
  .header-tools { order: 5; width: 100%; margin-left: 0; }
  .header-top { padding-bottom: 4px; }
  .mobile-menu { margin-left: auto; }
}

/* Тёмная шапка: локальная палитра также применяется к раскрытым меню. */
.site-header {
  --paper: #123e32;
  --ink: #fffef7;
  --muted: #c6d8cf;
  --green: #e5cb91;
  --green-hover: #f4e4bc;
  --line: #416458;
  --soft: #204e40;
  background: var(--paper);
  color: var(--ink);
  color-scheme: dark;
}
.site-header .brand-mark .m1,
.site-header .brand-mark .m2,
.site-header .brand-mark .m3 { fill: #78baa3; }
.site-header .brand-mark .m4 { fill: #d8b973; }
.site-header .city select option { background: #123e32; color: #fffef7; }
.site-header .ibank { background: #204e40; }
.site-header .ibank:hover { background: #2a5a49; }
.site-header .mobile-menu summary:hover { background: #204e40; }

/* Согласованная отдельная панель и крупный знак на высоту двух строк. */
.site-header { width: calc(100% - 48px); max-width: 1240px; margin: 24px auto 0; border: 1px solid #325548; border-radius: 16px; box-shadow: 0 12px 35px #123e3210; }
.site-header .brand { gap: 12px; }
.site-header .brand-mark { width: 43px; height: auto; overflow: visible; }
.site-header .brand-name { font: 500 25px/1.05 var(--serif); letter-spacing: 1.4px; }
.site-header .brand-name small { text-align: left; letter-spacing: 5px; font-size: 9px; margin-top: 8px; color: #dbc28a; }
.site-header .mobile-panel { border-radius: 0 0 16px 16px; }
@media (min-width: 900px) {
  .site-header { padding-left: 280px; min-height: 160px; }
  .site-header .brand { position: absolute; left: 30px; top: 0; bottom: 0; width: 226px; gap: 16px; }
  .site-header .brand-mark { width: 62px; flex-shrink: 0; }
  .site-header .brand-name { font-size: 30px; letter-spacing: 1px; }
  .site-header .brand-name small { margin-top: 11px; font-size: 11px; letter-spacing: 7px; }
  .site-header .header-top { min-height: 88px; padding: 16px 28px 12px 0; gap: 24px; }
  .site-header .header-nav { margin: 0 28px 0 0; }
  .site-header .header-nav .wrap { min-height: 70px; gap: 18px; padding: 0; }
  .site-header .nav-list { gap: 24px; }
  .site-header .nav-link { font-size: 13px; }
  .site-header .contact-link { font-size: 12px; }
  .site-header .audiences { gap: 20px; }
  .site-header .audiences a { font-size: 13px; }
  .site-header .header-tools { gap: 18px; }
  .site-header .city select, .site-header .ibank { font-size: 13px; }
}
@media (min-width: 900px) and (max-width: 1140px) {
  .site-header { padding-left: 246px; }
  .site-header .brand { left: 22px; width: 206px; gap: 12px; }
  .site-header .brand-mark { width: 52px; }
  .site-header .brand-name { font-size: 28px; }
  .site-header .header-nav .wrap { flex-wrap: wrap; gap: 0; padding-bottom: 10px; }
  .site-header .nav-list { gap: 18px; }
  .site-header .header-tools { gap: 12px; }
}
@media (max-width: 899px) {
  .site-header .header-top { padding: 16px 20px; gap: 12px 16px; }
}
@media (max-width: 479px) {
  .site-header { width: calc(100% - 24px); margin-top: 12px; border-radius: 12px; }
  .site-header .header-top { padding: 14px 16px 8px; }
  .site-header .brand-name { font-size: 23px; }
  .site-header .brand-mark { width: 36px; }
  .site-header .mobile-menu summary { padding: 8px 10px; }
}

/* ---------- Основная часть ---------- */
main { display: block; padding-top: 28px; padding-bottom: 64px; }
main.home { padding-top: 0; padding-bottom: 0; overflow-x: clip; }

/* ---------- Главная (ТЗ 3.0, п. 4.1) ---------- */
.home .eyebrow { margin: 0 0 20px; color: var(--green); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.home-hero { display: grid; grid-template-columns: 1.25fr 1fr; align-items: center; gap: 20px; min-height: 600px; padding: 55px 0 40px; }
.hero-copy h1 { max-width: 12em; margin: 0; font: 500 clamp(2.5rem, 4.1vw, 3.625rem)/1.17 var(--serif); letter-spacing: -.035em; }
.hero-copy h1 em { display: block; color: #00634d; font-style: normal; }
.hero-copy .hero-lead { max-width: 30em; margin: 25px 0 0; color: #435b50; font-size: 18px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 32px; }
.hero-actions .btn { min-height: 48px; padding: 12px 22px; font-weight: 600; }
.hero-link { color: var(--ink); font-size: 14px; font-weight: 650; text-decoration: none; }
.hero-link:hover { color: var(--green); text-decoration: underline; }
.hero-foot { display: flex; align-items: center; gap: 14px; margin: 55px 0 0; color: var(--muted); font-size: 12px; }
.hero-foot::before { content: ""; width: 36px; height: 1px; background: #977a42; }

/* Знак: ровно четыре ромба, три зелёных и нижний золотой; материал статичен, без бликов и смены цвета */
.sculpture { position: relative; display: grid; place-items: center; height: 430px; }
.sculpture .halo { position: absolute; inset: 15px -20px; background: radial-gradient(ellipse, #d2dfcb 0, #e6eadd80 45%, transparent 70%); pointer-events: none; }
.sculpture .orbital { position: absolute; width: 365px; height: 365px; border: 1px solid #a1b7a638; border-radius: 50%; transform: rotateX(50deg) rotateZ(-22deg); pointer-events: none; }
.sculpture .ground { position: absolute; bottom: 42px; width: 230px; height: 25px; border-radius: 50%; background: #102f2918; filter: blur(13px); }
.float-stage { position: relative; z-index: 1; }
.gem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; width: 200px; height: 200px; transform: rotate(45deg); }
.gem { display: block; border: 1px solid #ffffff65; border-radius: 10px; background: linear-gradient(130deg, #72b09c 0, #1c8066 40%, #004e3d 100%);
  box-shadow: 1px 1px 0 #034d3e, 3px 3px 0 #034d3e, 5px 5px 0 #034d3e, 7px 7px 0 #034d3e, 15px 20px 25px #123d3426; }
.gem.g4 { background: linear-gradient(130deg, #f4e7bf, #d7bc7d 45%, #ac8845); box-shadow: 1px 1px 0 #977336, 3px 3px 0 #977336, 5px 5px 0 #977336, 7px 7px 0 #977336, 15px 20px 25px #123d3426; }
.gem.g1 { --tx: -65px; --ty: -65px; }
.gem.g2 { --tx: 65px; --ty: -65px; --assembly-delay: .12s; }
.gem.g3 { --tx: -65px; --ty: 65px; --assembly-delay: .24s; }
.gem.g4 { --tx: 65px; --ty: 65px; --assembly-delay: .36s; }
.art-caption { position: absolute; bottom: 0; margin: 0; color: #4c6354; font-size: 9px; letter-spacing: .2em; text-transform: uppercase; }
/* Одна автоматическая сборка; без JS знак остаётся собранным.
   Части не исчезают: меняется только положение и масштаб. */
.sculpture.is-pending .gem { transform: translate(calc(var(--tx) * var(--assembly-spread, 1.6)), calc(var(--ty) * var(--assembly-spread, 1.6))) scale(.88); }
.sculpture.is-assembling .gem { animation: gem-assemble 2s cubic-bezier(.2, .7, .2, 1) var(--assembly-delay, 0s) both; }
.sculpture.is-floating .float-stage { animation: gem-float 7s ease-in-out infinite; }
.sculpture.is-paused .float-stage, .sculpture.is-paused .gem { animation-play-state: paused; }
@keyframes gem-assemble {
  0% { transform: translate(calc(var(--tx) * var(--assembly-spread, 1.6)), calc(var(--ty) * var(--assembly-spread, 1.6))) scale(.88); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes gem-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
.motion-controls { position: absolute; right: 0; bottom: 14px; z-index: 2; display: flex; gap: 16px; }
.motion-controls button { min-height: 32px; padding: 5px 0; border: 0; border-bottom: 1px solid #a8baad; background: transparent; color: #425d50; font-size: 11px; cursor: pointer; }
.motion-controls button:hover { color: var(--green); border-color: var(--green); }

/* Быстрые действия */
.home-shortcuts { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 22px 0; border-top: 1px solid #bdcbc1; border-bottom: 1px solid #bdcbc1; list-style: none; counter-reset: sc; }
.home-shortcuts li { counter-increment: sc; border-right: 1px solid var(--line); }
.home-shortcuts li:last-child { border-right: 0; }
.home-shortcuts a { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 4px 24px; color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.home-shortcuts li:first-child a { padding-left: 0; }
.home-shortcuts a::before { content: counter(sc, decimal-leading-zero); color: #6b7e71; font-size: 10px; font-weight: 450; }
.home-shortcuts a::after { content: "↗"; margin-left: auto; color: #00634d; font-size: 18px; font-weight: 400; }
.home-shortcuts a:hover { color: var(--green); }

/* Курсы — рабочий блок главной: на общем фоне, между быстрыми действиями и предложениями */
.rates-card { display: grid; grid-template-columns: 220px minmax(0, 1fr) 260px; gap: 12px 40px; align-items: start; padding: 48px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 16px; }
.rates-card h2 { margin-bottom: 14px; font-size: 28px; }
.office-form { display: flex; flex-wrap: wrap; gap: 8px; }
.office-form label, .office-label { width: 100%; color: var(--muted); font-size: 13px; }
.rates-side { min-width: 0; }
.office-picker { position: relative; width: 100%; min-width: 0; font-size: 15px; }
.office-picker summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; border: 1px solid #a9bbb0; border-radius: 6px; background: var(--paper); line-height: 1.45; overflow-wrap: anywhere; cursor: pointer; list-style: none; }
.office-picker summary::-webkit-details-marker { display: none; }
.office-picker-options { position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; width: 100%; padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); box-shadow: 0 8px 24px #123e321a; }
.office-picker-options button { display: block; width: 100%; min-height: 44px; padding: 10px; border: 0; border-radius: 4px; background: transparent; color: var(--ink); font: inherit; line-height: 1.45; text-align: left; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
.office-picker-options button:hover, .office-picker-options button[aria-current] { background: #123e3210; color: var(--green); }
.office-picker-options button[aria-current] { font-weight: 650; }
.office-picker summary:focus-visible, .office-picker-options button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.office-form select { width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid #a9bbb0; border-radius: 6px; background: var(--paper); font-size: 15px; }
.rates-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rates-table thead th { padding: 0 0 8px 16px; color: var(--muted); font-size: 13px; font-weight: 450; text-align: right; }
.rates-table thead th:first-child { padding-left: 0; text-align: left; }
.rates-table tbody th { padding: 9px 0; border-top: 1px solid var(--line); font-weight: 450; text-align: left; }
.rates-table td { padding: 9px 0 9px 16px; border-top: 1px solid var(--line); font-size: 17px; font-weight: 600; text-align: right; white-space: nowrap; }
.rates-table .code { margin-right: 8px; font-weight: 700; }
.rates-table .cur-name { color: var(--muted); font-size: 14px; }
.rates-table .units { display: block; color: var(--muted); font-size: 12px; }
.rates-note { color: var(--muted); font-size: 13px; }
.rates-note p { margin-bottom: 10px; }
.rates-note .text-link { margin-top: 4px; font-size: 14px; }
.notice { padding: 8px 12px; border-left: 3px solid var(--gold); background: #fbf3df; color: var(--ink); }

/* Предложения */
.home-section { padding: 75px 0; }
.home-section .section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; }
.home-section .section-head h2 { margin: 0; font-size: 34px; letter-spacing: -.01em; }
.home-section .section-head a { color: var(--ink); font-size: 13px; font-weight: 650; text-decoration: none; }
.home-section .section-head a:hover { color: var(--green); text-decoration: underline; }
.solution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin: 0; padding: 0; list-style: none; }
.solution { position: relative; display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); }
.solution-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 30px; border-radius: 50%; background: var(--soft); color: var(--green); }
.solution h3 { margin: 0; font-size: 22px; }
.solution p { flex: 1; margin: 15px 0 30px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.solution a { display: flex; justify-content: space-between; color: var(--green); font-size: 13px; font-weight: 700; text-decoration: none; }
.solution a::after { content: "→"; }
.solution a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.solution:has(a:focus-visible) { outline: 3px solid var(--gold); outline-offset: 2px; }
.solution a:focus-visible { outline: none; }
.solution:hover { border-color: #9fb4a6; }

/* Бизнес */
.business-panel { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; padding: 52px; border-radius: 12px; background: var(--dark); color: #fffdf4; scroll-margin-top: 16px; }
.business-panel .eyebrow { color: #e2c995; }
.business-panel h2 { max-width: 12em; margin: 0; color: #fffdf4; font-size: 42px; line-height: 1.25; }
.business-panel p { margin: 24px 0; color: #d1ddd2; font-size: 15px; }
.business-panel .btn { border: 0; background: var(--gold-soft); color: #183b2c; }
.business-panel .btn:hover { background: #e8d6ab; color: #183b2c; }
.business-list { align-self: center; margin: 0; padding: 0; list-style: none; }
.business-list a { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; border-bottom: 1px solid #ffffff38; color: #fff; font-size: 17px; text-decoration: none; }
.business-list a::after { content: "↗"; color: #e2c995; }
.business-list a:hover { text-decoration: underline; }

/* Контакт */
.home-contact { padding: 80px 0; text-align: center; scroll-margin-top: 16px; }
.home-contact h2 { margin: 0; font-size: 42px; }
.home-contact > p:not(.eyebrow) { margin: 22px auto 28px; max-width: 36em; color: var(--muted); }
.home-office { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; margin: 0 0 24px; color: var(--muted); font-size: 14px; }
.home-office a { color: var(--ink); font-weight: 600; }

@media (max-width: 1050px) {
  .home-hero { grid-template-columns: 1.3fr 1fr; min-height: 530px; }
  .gem-grid { width: 160px; height: 160px; }
  .sculpture .orbital { width: 280px; height: 280px; }
  .home-shortcuts a { padding: 4px 14px; font-size: 12px; }
  .business-panel { gap: 30px; padding: 35px; }
  .hero-copy h1 { font-size: 44px; }
  .hero-copy .hero-lead { font-size: 16px; }
  .rates-card { grid-template-columns: 200px minmax(0, 1fr); }
  .rates-note { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .home-hero { grid-template-columns: minmax(0, 1fr); gap: 0; min-height: 0; padding: 36px 0 30px; }
  .hero-copy h1 { font-size: 37px; letter-spacing: -.03em; }
  .hero-actions { gap: 16px; }
  .hero-foot { margin-top: 28px; }
  .gem-grid { width: 130px; height: 130px; gap: 8px; }
  .sculpture .orbital { width: 230px; height: 230px; }
  .sculpture .halo { inset: 0; }
  .sculpture .ground { bottom: 62px; }
  .sculpture { height: 320px; min-width: 0; --assembly-spread: .5; overflow: hidden; }
  .art-caption { bottom: 48px; font-size: 8px; }
  .motion-controls { left: 0; bottom: 0; justify-content: center; }
  .motion-controls button { min-height: 44px; }
  .home-shortcuts { grid-template-columns: 1fr 1fr; gap: 12px 0; padding: 16px 0; }
  .home-shortcuts li:nth-child(2) { border-right: 0; }
  .home-shortcuts a, .home-shortcuts li:first-child a { padding: 0 12px; }
  .rates-card { grid-template-columns: minmax(0, 1fr); padding: 36px 0; }
  .rates-table .cur-name { display: block; font-size: 13px; }
  .rates-table td { padding-left: 10px; font-size: 16px; }
  .solution-grid { grid-template-columns: minmax(0, 1fr); }
  .home-section { padding: 45px 0; }
  .home-section .section-head h2 { font-size: 28px; }
  .solution { padding: 22px; }
  .solution-icon { position: absolute; top: 22px; right: 22px; margin: 0; }
  .solution p { margin-bottom: 20px; }
  .business-panel { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 26px; }
  .business-panel h2, .home-contact h2 { font-size: 32px; }
  .home-contact { padding: 50px 0; }
}

/* ---------- Подвал ---------- */
.site-footer { border-top: 1px solid var(--line); background: var(--paper); color: var(--muted); font-size: 14px; }
.footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding-top: 28px; padding-bottom: 28px; }
.footer-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.footer-brand p { margin: 0; }
.footer-brand .brand-name { font-size: 18px; }
.footer-brand .brand-mark { width: 26px; height: 26px; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.footer-nav a, .footer-contact a { color: var(--ink); text-decoration: none; }
.footer-nav a:hover, .footer-contact a:hover { color: var(--green); text-decoration: underline; }
.footer-contact { display: flex; flex-direction: column; gap: 2px; }

/* ---------- Внутренние страницы: визуальная система (internal-pages-design-system v1.0) ----------
   Все правила — внутри .internal-page: главная (.home) не затрагивается.
   Размеры — через переменные в rem при корневом 16 px (п. 3), отступы — шкала 8/16/24 (п. 4). */
.internal-page {
  --text-h1: 2.75rem;     /* 44 — ТЗ 2.0, п. 6 */
  --text-h2: 1.75rem;     /* 28 */
  --text-h3: 1.375rem;    /* 22 */
  --text-lead: 1.125rem;  /* 18 */
  --text-body: 1.0625rem; /* 17 */
  --text-ui: 1rem;        /* 16 */
  --text-meta: .875rem;   /* 14 */
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-section: 3.5rem;
  --card-pad: 1.5rem;
  --card-gap: 1.5rem;
  --control-h: 3rem;
  --measure: 70ch;
  font-size: var(--text-body);
  line-height: 1.55;
}
@media (max-width: 1023px) {
  .internal-page { --text-h1: 2.25rem; --text-h2: 1.625rem; --text-h3: 1.3125rem; --text-lead: 1.0625rem; --space-section: 3rem; }
}
@media (max-width: 767px) {
  .internal-page { --text-h1: 2.25rem; --text-h2: 1.5rem; --text-h3: 1.25rem; --text-lead: 1.0625rem; --text-body: 1rem;
    --space-section: 2.25rem; --card-pad: 1.25rem; --card-gap: 1rem; }
}

/* Типографика: H1 с засечками, H2/H3 и интерфейс — без засечек (п. 2). У Arial есть только 400 и 700. */
.internal-page h1 { margin: var(--space-1) 0 var(--space-2); font: 500 var(--text-h1)/1.15 var(--serif); letter-spacing: -.025em; }
.internal-page h2 { margin: 0 0 var(--space-2); font: 500 var(--text-h2)/1.25 var(--serif); letter-spacing: -.01em; }
.internal-page h3 { margin: 0 0 var(--space-1); font: 650 var(--text-h3)/1.35 var(--sans); letter-spacing: -.01em; }
.internal-page h4 { margin: 0 0 var(--space-1); font: 650 var(--text-body)/1.45 var(--sans); }
.internal-page .lead { max-width: 65ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.5; }
.internal-page .meta, .internal-page .crumbs, .internal-page .doc-meta { font-size: var(--text-meta); line-height: 1.45; }
.internal-page .btn { min-height: var(--control-h); font-size: var(--text-ui); }
.internal-page .btn-small, .internal-page .btn-compact { min-height: 2.75rem; }
.internal-page .section { margin-top: var(--space-section); }
.internal-page .section-title { margin-bottom: var(--space-3); }
.empty { padding: var(--space-3, 1.5rem); border: 1px dashed var(--line); border-radius: var(--radius-sm); color: var(--muted); }

/* Заголовок страницы: крошки → H1 → описание → действия, без пустой области (п. 5) */
.page-head { position: relative; margin-bottom: var(--space-4); padding-bottom: var(--space-3); border-bottom: 1px solid var(--line); }
.crumbs { display: flex; flex-wrap: wrap; gap: 4px 8px; color: var(--muted); }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--green); }
.page-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
/* Фирменный акцент продуктовой страницы — малая композиция ромбов, как на главной (п. 2, один акцент) */
.page-head.has-accent { padding-right: 180px; }
.head-accent { position: absolute; right: 36px; top: 50%; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 92px; height: 92px;
  transform: translateY(-50%) rotate(45deg); }
.head-accent b { border-radius: 3px; background: linear-gradient(135deg, #43a18a, #005a49); box-shadow: 3px 3px 0 #005344, 8px 10px 16px #123e3025; }
.head-accent b:nth-child(2) { background: linear-gradient(135deg, #28937c, #00624f); }
.head-accent b:nth-child(3) { background: linear-gradient(135deg, #61b19a, #14715b); }
.head-accent b:nth-child(4) { background: linear-gradient(135deg, #f9eac5, #b49861); box-shadow: 3px 3px 0 #a88c56, 8px 10px 16px #123e3025; }
@media (max-width: 767px) {
  .page-head.has-accent { padding-right: 0; }
  .head-accent { display: none; }
}

/* Раскладка */
.node-layout { display: block; }
.node-main { min-width: 0; }
.node-main > :first-child { margin-top: 0; }
.node-main > .content + :where(.year-group, .doc-filter, .cards, .empty) { margin-top: var(--space-3); }
@media (min-width: 1024px) {
  .node-layout.with-aside { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 56px; }
}

/* Меню раздела — переход между страницами (п. 5). Сбоку на широком экране; иначе компактная кнопка с текущим разделом. */
.section-menu ul { margin: 0; padding: 0; list-style: none; }
.section-menu a { color: var(--ink); text-decoration: none; }
.section-menu a:hover { color: var(--green); }
.section-menu a[aria-current] { color: var(--green); font-weight: 700; }
.section-menu-toggle { display: none; margin-bottom: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); }
.section-menu-toggle summary { display: flex; flex-direction: column; gap: 2px; min-height: var(--control-h); padding: 10px 48px 10px 16px; position: relative; cursor: pointer; list-style: none; }
.section-menu-toggle summary::-webkit-details-marker { display: none; }
.section-menu-toggle summary::after { content: ""; position: absolute; right: 20px; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: translateY(-70%) rotate(45deg); transition: transform .18s; }
.section-menu-toggle[open] summary::after { transform: translateY(-20%) rotate(225deg); }
.section-menu-label { color: var(--muted); font-size: var(--text-meta); }
.section-menu-current { font-weight: 700; }
.section-menu-toggle ul { padding: var(--space-1) 16px var(--space-2); border-top: 1px solid var(--line); }
.section-menu-toggle li a { display: block; padding: 10px 0; }
/* Над содержимым (документы, отчётность, офисы): всегда компактная кнопка, на широком экране список — в две-три колонки */
.page-head ~ .section-menu .section-menu-toggle { display: block; }
.page-head ~ .section-menu .section-menu-list { display: none; }
@media (min-width: 768px) {
  .page-head ~ .section-menu .section-menu-toggle { display: inline-block; min-width: 360px; max-width: 100%; }
  .page-head ~ .section-menu .section-menu-toggle[open] { display: block; }
  .page-head ~ .section-menu .section-menu-toggle ul { columns: 3 220px; column-gap: var(--space-4); }
  .page-head ~ .section-menu .section-menu-toggle li { break-inside: avoid; }
}
/* Сбоку (статья, услуга) */
.local-menu .section-menu-list { border-left: 2px solid var(--line); font-size: var(--text-ui); }
.local-menu .section-menu-list a { display: block; margin-left: -2px; padding: 8px 14px; border-left: 2px solid transparent; }
.local-menu .section-menu-list a[aria-current] { border-left-color: var(--green); }
@media (max-width: 1023px) {
  .local-menu .section-menu-toggle { display: block; }
  .local-menu .section-menu-list { display: none; }
}

/* Оглавление — переход внутри страницы. Короткий список и раскрытие полного; без двойной нумерации (п. 3, 5) */
.toc { max-width: var(--measure); padding: var(--space-2) var(--space-3); border-left: 3px solid var(--green); background: var(--paper); font-size: var(--text-ui); }
.toc-title { margin: 0 0 var(--space-1); font-weight: 700; }
.toc ul { margin: 0; padding: 0; list-style: none; }
.toc li { padding: 4px 0; }
.toc a { text-decoration: none; }
.toc a:hover { text-decoration: underline; }
.toc details { margin-top: var(--space-1); }
.toc summary { color: var(--green); cursor: pointer; }

/* Текст статьи: строка ~70 знаков, таблицы — на всю ширину колонки */
.content { overflow-wrap: break-word; }
.content > :where(p, ul, ol, h2, h3, h4, blockquote, details, hr) { max-width: var(--measure); }
.content p { margin: 0 0 var(--space-2); }
.content h2 { margin: var(--space-section) 0 var(--space-2); scroll-margin-top: var(--space-2); }
.content h3 { margin: var(--space-4) 0 var(--space-1); }
.content > :first-child { margin-top: 0; }
.content ul, .content ol { margin: 0 0 var(--space-2); padding-left: 1.3em; }
.content li { margin-bottom: .35em; }
.content a { text-decoration: underline; text-underline-offset: .15em; }
.content img { display: inline-block; max-width: 100%; height: auto; margin: var(--space-1); vertical-align: middle; }
.content video { display: block; width: 100%; max-width: 720px; margin: var(--space-3) 0; border-radius: var(--radius-sm); background: #000; }
.content details { margin: var(--space-2) 0; padding: var(--space-2) var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); }
.content summary { cursor: pointer; font-weight: 700; }
.content details[open] summary { margin-bottom: var(--space-1); }
.table-wrap { max-width: 100%; margin: var(--space-3) 0; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: linear-gradient(to right, var(--paper) 30%, #fff0), linear-gradient(to left, var(--paper) 30%, #fff0) 100% 0,
    radial-gradient(farthest-side at 0 50%, #0000002a, #0000), radial-gradient(farthest-side at 100% 50%, #0000002a, #0000) 100% 0;
  background-repeat: no-repeat; background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%; background-attachment: local, local, scroll, scroll; }
.table-wrap:focus-visible { outline: 3px solid var(--gold); }
.table-wrap table { min-width: 100%; border-collapse: collapse; font-size: var(--text-ui); font-variant-numeric: tabular-nums; }
.table-wrap th, .table-wrap td { padding: 10px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.table-wrap th { background: var(--soft); font-weight: 700; }
.table-wrap tr:last-child td { border-bottom: 0; }

/* Сообщение: мягкая подложка и короткий заголовок (п. 5) */
.internal-page :where(.callout, .notice) { padding: var(--space-2) var(--space-3); border-left: 3px solid var(--gold); border-radius: var(--radius-sm); background: #fbf6ea; color: var(--ink); }
.callout-title { margin: 0 0 4px; font-weight: 700; }

/* Карточки подразделов: название → назначение → ссылка (п. 5). Описание — из поля «Краткое описание». */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--card-gap); margin: 0; padding: 0; list-style: none; }
.card { position: relative; display: flex; flex-direction: column; padding: var(--card-pad); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 4px 13px #24483408; transition: transform .18s, box-shadow .18s; }
.card:hover { transform: translateY(-3px); box-shadow: 0 12px 22px var(--shadow); }
.card h3 { margin: 0; font-size: var(--text-h3); }
.card h3 a { color: var(--ink); text-decoration: none; }
.card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card:has(a:focus-visible) { outline: 3px solid var(--gold); outline-offset: 2px; }
.card h3 a:focus-visible { outline: none; }
.card p { margin: var(--space-1) 0 var(--space-2); color: var(--muted); font-size: var(--text-ui); }
.card-more { margin-top: auto; padding-top: var(--space-1); color: var(--green); font-size: var(--text-ui); }
.motion-off .card { transition: none; }
.motion-off .card:hover { transform: none; }

/* «Остались вопросы?» */
.help-box { padding: var(--card-pad); border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: var(--radius); background: var(--paper); }
.help-box h2 { font-size: var(--text-h3); }
.help-box p { margin: 0 0 var(--space-1); max-width: var(--measure); }
.help-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2) !important; }

/* Компактная строка документа (ТЗ 2.0, п. 5): метка формата + название-ссылка, 15 px, без кнопки и подписи */
.doc-list { margin: 0; padding: 0; list-style: none; }
.doc-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; min-height: 34px; padding: 5px 0; border-top: 1px solid var(--line); }
.doc-list li:first-child { border-top: 0; }
.doc-format { flex: 0 0 2.4em; color: var(--green); font-size: .6875rem; font-weight: 700; letter-spacing: .04em; }
.doc-title { flex: 1 1 0; min-width: 0; color: #143f34; font-size: .9375rem; font-weight: 550; line-height: 1.45; text-decoration: none; overflow-wrap: anywhere; }
.doc-title:hover { color: var(--green); text-decoration: underline; text-underline-offset: .15em; }
.doc-meta { flex: 0 0 auto; color: var(--muted); font-size: .8125rem; }
.doc-meta a { margin-left: 6px; color: var(--muted); }
@media (pointer: coarse) { .doc-list li { min-height: 44px; } .doc-title { padding: 4px 0; } }

/* Группы документов на общем фоне (ТЗ 3.0, п. 6): без рамки, подложки и скругления; тонкая линия между группами,
   заголовок 16 px, отступы ~14 px по вертикали и 0 по горизонтали, высота от 48 px; плюс/минус справа */
.doc-groups { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.doc-group-box { border-bottom: 1px solid var(--line); }
.doc-group-box > summary { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 12px; min-height: 48px; padding: 14px 32px 14px 0; position: relative; cursor: pointer; list-style: none; }
.doc-group-box > summary::-webkit-details-marker { display: none; }
.dg-name { font-size: 1rem; font-weight: 700; line-height: 1.35; }
.dg-count { color: var(--muted); font-size: .8125rem; }
.dg-toggle { position: absolute; right: 2px; top: 50%; width: 14px; height: 14px; transform: translateY(-50%); }
.dg-toggle::before, .dg-toggle::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 1.5px; background: var(--green); }
.dg-toggle::after { transform: rotate(90deg); transition: transform .18s; }
.doc-group-box[open] .dg-toggle::after { transform: rotate(0); }
.doc-group-box > summary:hover .dg-name { color: var(--green); }
.doc-group-box .doc-list { padding: 0 0 12px; }
.doc-group-box .doc-list li { border-top: 0; }
.doc-group-box .pager, .dg-more { margin: 0 0 14px; }
.dg-more a { font-size: .875rem; }
.region-note { margin: 0 0 12px; color: var(--muted); font-size: .875rem; }
.region-note a { margin-right: 8px; }

/* Каталог: категории ~220 px слева, разрыв ~48 px; сверху регион и маленький поиск справа */
.page-head-plain { border-bottom: 0; padding-bottom: 0; }
.catalog { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; align-items: start; }
.catalog-cats ul { margin: 0 0 8px; padding: 0; list-style: none; }
.catalog-cats a { display: flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 6px; color: var(--ink); font-size: .9375rem; font-weight: 550; text-decoration: none; }
.catalog-cats a:hover { color: var(--green); }
.catalog-cats a[aria-current] { background: var(--dark); color: #fff; font-weight: 650; }
.catalog-area { margin: 16px 0 4px; padding: 0 16px; color: var(--muted); font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; }
.catalog-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; }
.catalog-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: var(--muted); font-size: .875rem; }
.catalog-filters select { min-height: 36px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); font-size: .9375rem; }
.catalog-filters .btn-small { min-height: 36px; }
.catalog-search { position: relative; display: flex; align-items: center; width: 230px; max-width: 100%; margin-left: auto; }
.catalog-search .icon { position: absolute; left: 11px; color: var(--muted); fill: none; stroke: currentColor; stroke-width: 2; pointer-events: none; }
.catalog-search input { width: 100%; height: 36px; padding: 6px 10px 6px 32px; border: 1px solid #a9bbb0; border-radius: 6px; background: var(--paper); color: var(--ink); font-size: .875rem; }
.catalog-search input:focus-visible { border-color: var(--green); }
.catalog-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 12px; }
.internal-page .catalog-head h2 { margin: 0; font: 650 1.625rem/1.25 var(--sans); letter-spacing: -.02em; }
.catalog-count { margin: 0; color: var(--muted); font-size: .875rem; }
.catalog-reset { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: -4px 0 12px; color: var(--muted); font-size: .875rem; }
@media (max-width: 899px) {
  .catalog { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .catalog-cats { display: flex; gap: 4px; overflow-x: auto; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: thin; }
  .catalog-cats ul { display: flex; gap: 4px; margin: 0; flex-shrink: 0; }
  .catalog-cats a { white-space: nowrap; border: 1px solid var(--line); background: var(--paper); }
  .catalog-area { display: none; }
}
@media (max-width: 479px) {
  .catalog-search { width: 230px; max-width: 100%; }
}

/* Фильтры: одна панель, подписи, применение и сброс; число результатов под ней (п. 5) */
.doc-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-2); margin: 0 0 var(--space-2); padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.doc-filter .field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 180px; }
.doc-filter .field-wide { flex: 3 1 280px; }
.doc-filter label { color: var(--muted); font-size: var(--text-meta); }
.doc-filter input, .doc-filter select { min-height: var(--control-h); padding: 8px 12px; border: 1px solid #c9d3cb; border-radius: 6px; background: var(--paper); font-size: var(--text-ui); }
.doc-filter input:focus-visible, .doc-filter select:focus-visible { border-color: var(--green); }
.doc-filter .btn-small { min-height: var(--control-h); padding: 8px 22px; }
.field-actions { display: flex; align-items: center; gap: var(--space-2); min-height: var(--control-h); }
.doc-count { margin: 0 0 var(--space-1); color: var(--muted); font-size: var(--text-meta); }
.pager { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); margin-top: var(--space-3); }
.pager a, .pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 4px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); font-size: var(--text-ui); text-decoration: none; }
.pager span[aria-current] { border-color: var(--green); background: var(--green); color: #fff; }

/* Отчётность: год → период → файлы, в том же компактном виде, что и группы документов */
.year-group { margin: 0 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.year-group summary { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 48px 8px 16px; position: relative; cursor: pointer; list-style: none; }
.year-group summary::-webkit-details-marker { display: none; }
.year-group summary::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--green); border-bottom: 1.5px solid var(--green); transform: translateY(-70%) rotate(45deg); transition: transform .18s; }
.year-group[open] summary::after { transform: translateY(-20%) rotate(225deg); }
.year-title { font: 700 1rem/1.35 var(--sans); }
.year-count { color: var(--muted); font-size: .8125rem; white-space: nowrap; }
.period { padding: 0 16px 8px; }
.period h3 { margin: 10px 0 2px; color: var(--muted); font: 700 .75rem/1.4 var(--sans); letter-spacing: .06em; text-transform: uppercase; }

/* ---------- Страница услуги (ТЗ 2.0, п. 4) ---------- */
.svc-hero { padding-bottom: 56px; border-bottom: 1px solid var(--line); }
.svc-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: 32px; margin-top: 40px; }
.svc-kicker { margin: 0 0 18px; color: var(--green); font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.internal-page .svc-title { max-width: 14em; margin: 0; font: 400 3rem/1.12 var(--serif); letter-spacing: -.025em; }
.svc-intro { max-width: 34em; margin: 24px 0 0; color: var(--muted); font-size: 1.125rem; line-height: 1.6; }
.svc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.svc-actions .btn { min-height: 48px; padding: 12px 22px; }
.svc-emblem { justify-self: center; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 150px; height: 150px; margin: 40px; transform: rotate(45deg); filter: drop-shadow(0 26px 30px #12392e26); }
.svc-emblem b { border-radius: 8px; background: linear-gradient(135deg, #43a18a, #005a49); box-shadow: 5px 5px 0 #005344; }
.svc-emblem b:nth-child(2) { background: linear-gradient(135deg, #28937c, #00624f); }
.svc-emblem b:nth-child(3) { background: linear-gradient(135deg, #61b19a, #14715b); }
.svc-emblem b:nth-child(4) { background: linear-gradient(135deg, #f6e5bd, #b49861); box-shadow: 5px 5px 0 #a88c56; }

.svc-section { padding: 56px 0; border-bottom: 1px solid var(--line); }
.svc-section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 32px; }
.internal-page .svc-h2 { margin: 0 0 24px; font: 400 2.125rem/1.2 var(--serif); letter-spacing: -.015em; }
.svc-section-head .svc-h2 { margin: 0; }
.svc-note { margin: 0; color: var(--muted); font-size: .875rem; }
.svc-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px 40px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.svc-steps li { counter-increment: step; }
.svc-steps li::before { content: counter(step, decimal-leading-zero); display: block; margin-bottom: 14px; color: #a8884a; font: 400 1.375rem/1 var(--serif); }
.internal-page .svc-steps h3 { margin: 0 0 10px; font: 700 1.1875rem/1.35 var(--sans); }
.svc-steps p { margin: 0; max-width: 30em; color: var(--muted); font-size: .9375rem; line-height: 1.6; }

.svc-terms { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 32px 60px; }
.svc-terms-head .svc-h2 { max-width: 8em; }
.svc-terms-body { min-width: 0; }
.svc-official { margin: 0 0 20px; font-size: .9375rem; }
.svc-official span { display: block; color: var(--muted); font-size: .8125rem; }
.svc-accordion details { border-bottom: 1px solid var(--line); }
.svc-accordion details:first-child { border-top: 1px solid var(--line); }
.svc-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 14px 0; font-size: 1.125rem; cursor: pointer; list-style: none; }
.svc-accordion summary::-webkit-details-marker { display: none; }
.svc-accordion summary:hover { color: var(--green); }
.pm { position: relative; flex: 0 0 14px; width: 14px; height: 14px; }
.pm::before, .pm::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 1.5px; background: var(--green); }
.pm::after { transform: rotate(90deg); transition: transform .18s; }
details[open] > summary .pm::after { transform: rotate(0); }
.svc-accordion .content { padding: 0 0 20px; color: var(--muted); }
.svc-accordion .content > :where(p, ul, ol) { max-width: 62ch; }
.svc-docs { margin-top: 28px; }
.internal-page .svc-docs-title { margin: 0 0 8px; color: var(--muted); font: 700 .8125rem/1.4 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.svc-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-top: 56px; padding: 32px; border-radius: 14px; background: #e6ece3; }
.internal-page .svc-cta h2 { margin: 0 0 8px; font: 400 2rem/1.2 var(--serif); }
.svc-cta p { margin: 0; color: var(--muted); }
.svc-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 1023px) {
  .internal-page .svc-title { font-size: 2.5rem; }
  .svc-intro { font-size: 1.0625rem; }
  .svc-terms { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .svc-emblem { width: 120px; height: 120px; margin: 24px; }
}
@media (max-width: 767px) {
  .svc-hero-grid { grid-template-columns: minmax(0, 1fr); margin-top: 24px; }
  .svc-emblem { display: none; }
  .internal-page .svc-title { font-size: 2.25rem; }
  .svc-hero { padding-bottom: 40px; }
  .svc-section { padding: 40px 0; }
  .internal-page .svc-h2 { font-size: 1.75rem; }
  .svc-cta { padding: 24px 20px; margin-top: 40px; }
  .internal-page .svc-cta h2 { font-size: 1.625rem; }
}

/* ---------- Линейка вкладов (ТЗ 3.0, п. 4.2): предложения на общем фоне, разделены тонкой линией ---------- */
.deposit-intro { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 0 0 48px; }
.internal-page .deposit-intro h1 { margin: 0; font: 500 3.375rem/1.15 var(--serif); letter-spacing: -.03em; }
.deposit-intro .crumbs { margin-bottom: 28px; }
.deposit-intro .lead { margin-top: 20px; max-width: 34em; font-size: 17px; }
.deposit-side { min-width: 280px; padding: 25px 0 25px 38px; border-left: 1px solid #aebfb1; }
.deposit-side > span { color: #556f61; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.deposit-side p { margin: 18px 0; font: 400 24px/1.5 var(--serif); }
.deposit-side a { color: var(--green); font-size: 13px; }
.deposit-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px 20px; padding: 22px 0; border-top: 1px solid var(--line); }
.deposit-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.deposit-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 18px; border: 1px solid #bdcbc1; border-radius: 30px; color: var(--ink); font-size: 13px; font-weight: 550; text-decoration: none; }
.deposit-chips a:hover { border-color: var(--green); }
.deposit-chips a[aria-current] { border-color: var(--dark); background: var(--dark); color: #fff; }
.deposit-region { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; }
.deposit-region select { min-height: 40px; padding: 8px 0; border: 0; border-bottom: 1px solid #9caf9f; background: transparent; color: var(--ink); font-size: 14px; font-weight: 550; }
.deposit-product { padding: 32px 0 24px; border-top: 1px solid #aebfb1; scroll-margin-top: 16px; }
.deposit-product-head { display: flex; align-items: start; justify-content: space-between; gap: 25px; margin-bottom: 26px; }
.internal-page .deposit-product-head h2 { margin: 0; font: 500 2rem/1.2 var(--serif); }
.deposit-product-head p { margin: 10px 0 0; color: var(--muted); font-size: 14px; }
.deposit-tag { padding: 5px 10px; border: 1px solid #c3d0bf; border-radius: 4px; background: #e7ede1; font-size: 11px; white-space: nowrap; }
.deposit-metrics { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1.3fr; gap: 25px; margin: 0; padding: 0 0 26px; }
.deposit-metric dt { margin-bottom: 8px; color: #526658; font-size: 12px; }
.deposit-metric dd { margin: 0; }
.deposit-metric strong { display: block; font-size: 28px; font-weight: 650; line-height: 1.3; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.deposit-metric.is-rate strong { color: var(--green); font-size: 36px; }
.deposit-metric em { display: block; margin-top: 6px; color: #526658; font-size: 11px; font-style: normal; }
.deposit-metric .payout { font-size: 16px; letter-spacing: 0; line-height: 1.5; }
.term-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.term-form select { min-height: 44px; max-width: 100%; padding: 4px 0; border: 0; border-bottom: 1px solid #a2b7a7; background: transparent; color: var(--ink); font: 600 20px var(--sans); }
.deposit-product-foot { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.deposit-product-foot details { flex: 1; }
.deposit-product-foot summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--green); font-size: 13px; font-weight: 600; cursor: pointer; }
.deposit-details { display: grid; grid-template-columns: 12em minmax(0, 1fr); gap: 8px 20px; max-width: 760px; margin: 8px 0 12px; font-size: 13px; }
.deposit-details dt { color: var(--muted); }
.deposit-details dd { margin: 0; }
.deposit-doc { display: flex; align-items: baseline; gap: 12px; margin: 0 0 8px; }
.deposit-product-foot .btn { flex-shrink: 0; min-height: 42px; font-size: 13px; }
.deposit-empty { padding: 35px 0; border-top: 1px solid var(--line); }
.deposit-empty p { margin: 14px 0 20px; color: var(--muted); }
.deposit-guide { margin-top: 30px; border-top: 1px solid var(--line); border-bottom: 0; }
.deposit-bottom { display: grid; grid-template-columns: 1fr 1.2fr; gap: 65px; padding: 50px 0; border-top: 1px solid var(--line); }
.deposit-bottom > div > p { max-width: 360px; margin: 20px 0 24px; color: var(--muted); font-size: 14px; }
.deposit-bottom .svc-accordion summary { min-height: 56px; font-size: 16px; }
.deposit-contact { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 30px; border-radius: 8px; background: var(--dark); color: #fff; }
.internal-page .deposit-contact h2 { margin: 0; color: #fff; font: 650 1.125rem/1.4 var(--sans); }
@media (max-width: 900px) {
  .deposit-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .deposit-side { display: none; }
  .deposit-bottom { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}
@media (max-width: 620px) {
  .deposit-intro { padding-bottom: 30px; }
  .internal-page .deposit-intro h1 { font-size: 2.375rem; }
  .deposit-toolbar { flex-direction: column; align-items: flex-start; }
  .deposit-chips a { min-height: 44px; padding: 8px 13px; font-size: 12px; }
  .deposit-product { padding: 25px 0; }
  .deposit-product-head { flex-wrap: wrap; gap: 15px; margin-bottom: 24px; }
  .internal-page .deposit-product-head h2 { font-size: 1.75rem; }
  .deposit-metrics { gap: 20px 14px; }
  .deposit-metric strong { font-size: 24px; }
  .deposit-metric.is-rate strong { font-size: 30px; }
  .term-form select { font-size: 18px; }
  .deposit-metric .payout { font-size: 14px; }
  .deposit-product-foot { flex-direction: column; align-items: stretch; gap: 8px; }
  .deposit-product-foot .btn { align-self: flex-start; min-height: 44px; }
  .deposit-details { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .deposit-details dd { margin-bottom: 8px; }
  .deposit-bottom { padding: 35px 0; }
  .deposit-contact { flex-direction: column; align-items: flex-start; padding: 24px; }
}
@media (max-width: 380px) {
  .deposit-metrics { grid-template-columns: minmax(0, 1fr); }
}

/* Офисы: выбор города → карточки → общие и специализированные контакты (п. 5, 6) */
.city-filter { display: flex; flex-wrap: wrap; gap: var(--space-1); margin: 0 0 var(--space-3); }
.city-filter a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-size: var(--text-ui); text-decoration: none; }
.city-filter a:hover { border-color: var(--green); }
.city-filter a[aria-current] { border-color: var(--green); background: var(--green); color: #fff; }
.office-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--card-gap); margin: 0; padding: 0; list-style: none; }
.office-item { display: flex; flex-direction: column; padding: var(--card-pad); border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: var(--radius); background: var(--paper); }
.office-item h2 { margin: 0; font-size: var(--text-h3); }
.office-city { margin: 2px 0 var(--space-2); color: var(--muted); font-size: var(--text-meta); }
.office-item dl { margin: 0 0 var(--space-3); font-size: var(--text-ui); }
.office-item dt { color: var(--muted); font-size: var(--text-meta); }
.office-item dd { margin: 0 0 var(--space-2); }
.office-item dd .line { display: block; }
.office-item .notice { margin: 0 0 var(--space-2); font-size: var(--text-ui); }
.office-actions { display: flex; flex-wrap: wrap; gap: var(--space-1); margin: auto 0 0; }
/* Справочник подразделений: отдел — телефон, без крупных заголовков-адресов */
.contacts-dir { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--card-gap); }
.contacts-dir section { padding: var(--card-pad); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.contacts-dir h3 { font-size: var(--text-body); }
.contacts-dir dl { display: grid; grid-template-columns: 1fr auto; gap: var(--space-1) var(--space-2); margin: 0; font-size: var(--text-ui); }
.contacts-dir dt { color: var(--ink); }
.contacts-dir dd { margin: 0; text-align: right; white-space: nowrap; }

/* Карточка документа */
.doc-current { padding: var(--card-pad); border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: var(--radius-sm); background: var(--paper); }
.doc-archive { width: 100%; border-collapse: collapse; font-size: var(--text-ui); }
.doc-archive th, .doc-archive td { padding: 10px 8px; border-bottom: 1px solid var(--line); font-weight: 400; text-align: left; vertical-align: top; }
.doc-archive thead th { color: var(--muted); font-size: var(--text-meta); }
@media (max-width: 620px) {
  .doc-archive thead { display: none; }
  .doc-archive tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--line); }
  .doc-archive td { display: block; padding: 2px 0; border: 0; }
}
.tag { padding: 2px 6px; border-radius: 4px; background: #eef1ef; color: var(--muted); font-size: .75rem; }
code { font-size: .9em; overflow-wrap: anywhere; }

/* Страница образцов компонентов */
.samples-type > * { margin: 0 0 var(--space-2); }
.samples-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--card-gap); }
.swatch { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-meta); }
.swatch i { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 8px; }
.sw-bg { background: var(--bg); } .sw-paper { background: var(--paper); } .sw-ink { background: var(--ink); }
.sw-green { background: var(--green); } .sw-line { background: var(--line); } .sw-gold { background: var(--gold); }

/* Быстрые действия: единая тёмная полоса с четырьмя зонами перехода. */
.home-shortcuts {
  background: #123e32;
  border: 1px solid #123e32;
  border-radius: 10px;
  padding: 12px 0;
}
.home-shortcuts li { border-color: #416458; }
.home-shortcuts a,
.home-shortcuts li:first-child a { padding: 16px 24px; color: #fffef7; min-height: 64px; }
.home-shortcuts a::before,
.home-shortcuts a::after { color: #e5cb91; }
.home-shortcuts a:hover { color: #fffef7; background: #204e40; }
.home-shortcuts a:focus-visible { outline-offset: -4px; }
@media (max-width: 1099px) {
  .home-shortcuts a, .home-shortcuts li:first-child a { padding: 12px 14px; }
}
@media (max-width: 599px) {
  .home-shortcuts { gap: 0; padding: 8px 0; }
  .home-shortcuts a, .home-shortcuts li:first-child a { padding: 12px; }
  .home-shortcuts li:nth-child(-n+2) { border-bottom: 1px solid #416458; }
}

/* Единое спокойное оформление содержимого всех публичных страниц. */
.internal-page { --text-body: 1rem; --text-ui: .9375rem; --text-meta: .8125rem;
  --text-h1: clamp(2rem, 3.2vw, 2.75rem); --text-h2: clamp(1.5rem, 2vw, 1.875rem);
  --text-h3: 1.125rem; --text-lead: 1.0625rem; }
.content { font: 450 1rem/1.65 var(--sans); }
.internal-page .content h1, .internal-page .content h2 { font: 600 1.375rem/1.4 var(--sans); letter-spacing: 0; margin: 32px 0 16px; }
.internal-page .content h3 { font: 650 1.125rem/1.45 var(--sans); margin: 24px 0 12px; }
.internal-page .content h4, .internal-page .content h5, .internal-page .content h6 { font: 650 1rem/1.5 var(--sans); }
.content > :first-child { margin-top: 0 !important; }
.internal-page .content, .internal-page .content :where(div, section, article, blockquote, details),
.internal-page :where(.toc, .callout, .notice) { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.internal-page :where(.toc, .callout, .notice), .content blockquote, .content details { padding: 0; margin: 0 0 24px; }
.internal-page .table-wrap { border: 0; border-radius: 0; background: transparent; }
.internal-page .table-wrap th { background: transparent; }
.content table { width: 100%; }
.content td { overflow-wrap: anywhere; }
.content tr:has(> td:only-child) > td { padding: 0; border: 0; }
.content .table-wrap .table-wrap { margin: 0; }
.section-menu-toggle { background: transparent; border: 0; min-width: 0 !important; }
.section-menu-toggle summary { padding-left: 0; font-size: 14px; }
.page-head ~ .section-menu .section-menu-toggle[open] { display: inline-block; }
.page-head ~ .section-menu .section-menu-toggle ul { columns: auto; padding: 8px 0 16px; }
.section-menu-toggle li a { padding: 6px 0; font-size: 14px; }
.local-menu .section-menu-list, .local-menu .section-menu-list a { border: 0; }
.coin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; margin: 24px 0; }
.coin-item { min-width: 0; }
.coin-image { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; }
.content .coin-image img { display: block; width: 100%; height: 100%; max-height: 280px; object-fit: contain; margin: 0; }
.internal-page .coin-item h3 { font-size: 17px; margin: 18px 0 14px; }
.coin-item h3 a { text-decoration: none; }
.coin-item h3 a:hover { text-decoration: underline; }
.coin-item dl { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
.coin-item dt { font-size: 13px; color: var(--muted); }
.coin-item dd { margin: 3px 0 0; font-size: 15px; font-weight: 600; }
@media(max-width: 767px) { .coin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; } }
@media(max-width: 479px) { .coin-grid { grid-template-columns: 1fr; } .coin-image { max-width: 280px; margin: auto; } }

/* Ошибки */
.status-page { max-width: 640px; padding: var(--space-4, 2rem) 0; }
.status-page .status-code { margin: 0; color: var(--green); font: 400 64px/1 var(--serif); }

/* Уменьшение движения по настройке системы (DES-05) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; animation: none !important; }
  /* По согласованному дизайну знак собирается один раз и при reduced-motion. */
  .sculpture.is-assembling .gem { animation: gem-assemble 2s cubic-bezier(.2, .7, .2, 1) var(--assembly-delay, 0s) both !important; }
  .sculpture.is-paused .gem { animation-play-state: paused !important; }
  .btn:hover, .button:hover, .product:hover, .card:hover { transform: none; }
}

@media print {
  .site-header, .site-footer, .motion-toggle, .emblem, .shortcuts { display: none; }
  body { background: #fff; }
}



/* Утверждённый образец header-type-preview: плотная типографика и единые шевроны. */
.site-header .brand-name{font-weight:700;letter-spacing:.4px}
.site-header .brand-name small{font-weight:650;letter-spacing:6px}
.site-header .nav-link{font-size:15px;font-weight:650;gap:8px;line-height:1.4}
.site-header .audiences a{font-size:14px;font-weight:600}
.site-header .contact-link{font-size:13px;font-weight:550}
.home-shortcuts a{font-size:17px;font-weight:700;letter-spacing:-.25px}
svg.chevron{width:18px;height:18px;margin-left:0;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease;opacity:.85}
.nav-dd[open]>summary svg.chevron{transform:rotate(180deg)}
.nav-dd-list{border:1px solid #dbe2da;border-radius:14px;padding:8px;box-shadow:0 16px 38px #092c251a}
.nav-dd-list a{font:600 14px/1.5 var(--sans);padding:12px 14px;border-radius:8px}
.nav-dd-list a:hover{background:#eaf0e8}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 8 5 5 5-5' fill='none' stroke='%23123e32' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-size:18px 18px!important;background-position:right 10px center!important;padding-right:36px!important}
.site-header select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 8 5 5 5-5' fill='none' stroke='%23fffef7' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
.content .inline-document{font:550 14px/1.6 var(--sans);overflow-wrap:anywhere}
@media(min-width:900px) and (max-width:1140px){.site-header .nav-link{font-size:14px}.nav-list{gap:14px}.site-header .contact-link{display:none}.home-shortcuts a{font-size:15px}}
@media(max-width:899px){.home-shortcuts a{font-size:15px}}
@media(prefers-reduced-motion:reduce){svg.chevron{transition:none}}
@media(forced-colors:active){select{appearance:auto;background-image:none!important}}

/* Согласованный общий образец: плюс/минус, действия без номеров и отдельный подвал. */
.home-shortcuts a::before{content:none;display:none}
.header-nav .nav-dd-list{background:#123e32;border-color:#426456;color:#fffef7}
.header-nav .nav-dd-list a{color:#fffef7}
.header-nav .nav-dd-list a:hover,.header-nav .nav-dd-list a:focus-visible{background:#245344}
.site-footer{box-sizing:border-box;width:calc(100% - 48px);max-width:1240px;margin:36px auto 24px;border:1px solid #325548;border-radius:16px;background:#123e32;color:#fffef7;box-shadow:0 12px 35px #123e3210}
.site-footer .footer-inner{padding:32px 30px 24px;gap:26px 32px}
.site-footer .brand{color:#fffef7;gap:14px}
.site-footer .brand-mark{width:44px;height:auto;flex:none;overflow:visible}
.site-footer .brand-name{font:700 24px/1.05 Lora,Georgia,serif;letter-spacing:.4px;color:#fffef7}
.site-footer .brand-name small{display:block;color:#dbc28a;font:600 9px/1.4 Manrope,sans-serif;letter-spacing:5px;margin-top:8px;text-align:left}
.site-footer .footer-nav{gap:14px 24px;max-width:780px}
.site-footer .footer-nav a{color:#fffef7;font-size:14px;font-weight:550}
.footer-bottom{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;width:100%;border-top:1px solid #416254;padding-top:20px;color:#c8d8ce;font-size:12px;line-height:1.7}
.footer-copyright{margin:0}.site-footer .footer-contact a{color:#fffef7;font-size:14px;font-weight:600}
.site-footer a:hover{color:#fffef7;text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){.site-footer .footer-inner{padding:26px 22px;align-items:flex-start;gap:24px}.site-footer .footer-nav{display:grid;grid-template-columns:1fr;gap:12px}.footer-bottom{align-items:flex-start;flex-direction:column}}
@media(max-width:479px){.site-footer{width:calc(100% - 24px);margin:28px auto 12px;border-radius:12px}}

/* Согласованное меню: без значков, открытая группа отмечена золотой линией. */
.header-nav .nav-dd>summary{position:relative;border:0;border-radius:0;box-shadow:none;background:transparent}
.header-nav .nav-dd>summary::after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;height:2px;width:auto;border:0;border-radius:2px;background:#d8bd80;transform:scaleX(0);transition:transform .18s ease}
.header-nav .nav-dd[open]>summary::after{transform:scaleX(1)}
.header-nav .nav-dd[open]>summary{color:#e3ca92;background:transparent}
.header-nav .nav-link:focus-visible{outline:2px solid #d8bd80;outline-offset:5px}
/* Мостик через зазор между пунктом и панелью для наведения мышью. */
.header-nav .nav-dd-list::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.office-picker summary{display:block;padding:0;border:0;border-radius:0;background:none;line-height:1.55}
.office-picker summary::after{content:none}
.office-label{margin-bottom:2px}
.office-picker-name{display:block;font-size:16px;font-weight:650;overflow-wrap:anywhere}
.office-picker-city{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.office-picker-change{display:inline-block;color:var(--green);font-size:13px;font-weight:550;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;padding:9px 0}
.office-picker summary:hover .office-picker-change{color:#123e32}
.office-picker-options{width:320px;max-width:calc(100vw - 48px);padding:8px;border:0;border-radius:12px;background:#fffef7;box-shadow:0 12px 35px #123e3226}
.office-picker-options button{padding:12px;font-size:14px;border-radius:6px}
.office-picker-options .office-picker-city{font-size:12px}
@media(prefers-reduced-motion:reduce){.header-nav .nav-dd>summary::after{transition:none}}
.motion-off .header-nav .nav-dd>summary::after{transition:none}

/* Все офисы доступны непосредственно, без раскрывающегося списка. */
.rates-office-links{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.rates-office-links a{display:block;min-height:44px;padding:7px 0;color:var(--muted);font-size:14px;line-height:1.45;text-decoration:none;overflow-wrap:anywhere}
.rates-office-links a span{display:block;text-decoration:underline;text-decoration-color:#a9bbb0;text-underline-offset:4px}
.rates-office-links a small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:450}
.rates-office-links a:hover{color:var(--green)}
.rates-office-links a[aria-current="true"]{color:var(--green);font-weight:700}
.rates-office-links a[aria-current="true"] span{text-decoration-color:#b59a5d}
.rates-office-links a:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px}
@media(max-width:699px){.rates-office-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}}

/* Векторные стрелки: одинаковый вид в Safari iOS и настольных браузерах. */
.link-arrow{display:inline-block;width:16px;height:16px;flex:0 0 16px;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.home-shortcuts a::after,.business-list a::after{content:"";display:inline-block;width:11px;height:11px;flex:0 0 11px;margin-left:auto;font-size:0;background:linear-gradient(currentColor,currentColor) right top/9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) right top/1.5px 9px no-repeat,linear-gradient(135deg,transparent 44%,currentColor 45%,currentColor 55%,transparent 56%) center/100% 100% no-repeat}
