/* Публичный сайт: шапка с меню и блоки страниц. Токены — в site.css. */
.site-head{position:sticky;top:0;background:#fff;z-index:20}
.site-head .wrap{gap:28px}
.main-nav{display:flex;gap:2px;flex:1}
.nav-item{position:relative;display:flex}
.nav-item>a,.lang a{display:flex;align-items:center;gap:6px;padding:0 12px;height:64px;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;transition:color .2s,background-color .2s}
.nav-item>a::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;background:var(--brand);border-radius:3px 3px 0 0;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-item:hover>a,.nav-item:focus-within>a{color:var(--brand);background:var(--bg-soft)}
.nav-item:hover>a::after,.nav-item:focus-within>a::after{transform:scaleX(1)}
.chev{width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
.nav-item:hover .chev,.nav-item:focus-within .chev{transform:rotate(225deg) translate(-2px,-2px)}
.drop{position:absolute;top:100%;left:0;min-width:280px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s}
.nav-item:hover>.drop,.nav-item:focus-within>.drop{opacity:1;visibility:visible;transform:none}
.drop a{display:block;padding:11px 20px;color:var(--ink);text-decoration:none;font-size:14px;transition:padding .15s,background-color .15s,color .15s}
.drop a:hover,.drop a:focus-visible{background:#eef1fa;color:var(--brand);padding-left:26px}
.lang{display:flex}

.page-title{padding:40px 0 8px}
.page-title h1{font-size:34px;line-height:1.1;margin:0}
.blk{padding:36px 0}
.blk h2{font-size:26px;margin:0 0 24px}
.prose{font-size:17px;line-height:1.65}
.prose img{max-width:100%;height:auto}
.prose table{border-collapse:collapse;max-width:100%;font-size:15px}
.prose td,.prose th{border:1px solid var(--line);padding:8px 12px;vertical-align:top}
.prose tr:nth-child(even) td{background:#fafbfd}
.prose h2,.prose h3{margin:1.4em 0 .5em;text-transform:none}
.prose h2{font-size:24px}
.prose h3{font-size:19px}
.prose a{color:var(--brand)}
.prose blockquote{margin:1em 0;padding:.2em 1.2em;border-left:3px solid var(--brand);color:#3a4459;background:var(--bg-soft)}
.cols{display:grid;gap:32px}
.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:center}
.hero-img img{max-width:100%;height:auto;display:block}

/* карточки: серые плитки, при наведении поднимаются */
.cards{display:grid;gap:20px}
.cards.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card-item{display:block;background:var(--card);border-radius:var(--radius);padding:22px;color:var(--ink);text-decoration:none;transition:background-color .2s,box-shadow .2s,transform .2s}
a.card-item:hover,a.card-item:focus-visible{background:#e8ebf5;box-shadow:0 10px 24px rgba(26,34,51,.12);transform:translateY(-2px)}
.card-item img{width:100%;height:170px;object-fit:cover;display:block;margin:-22px -22px 16px;width:calc(100% + 44px);max-width:none;border-radius:var(--radius) var(--radius) 0 0}
.card-item h3{margin:0 0 6px;font-size:17px;text-transform:uppercase;letter-spacing:.02em}
.card-item p{margin:0;color:var(--muted);font-size:15px}
.figure{margin:0}
.figure img{max-width:100%;height:auto;border-radius:var(--radius)}
.figure.align-center{text-align:center}
.figure figcaption{color:var(--muted);font-size:14px;margin-top:6px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.gallery img{width:100%;height:160px;object-fit:cover;border-radius:6px}
.files{list-style:none;padding:0;margin:0}
.files li{border-bottom:1px solid var(--line)}
.files a{display:flex;gap:12px;align-items:center;padding:12px 4px;color:var(--ink);text-decoration:none;transition:color .15s,padding .15s}
.files a:hover,.files a:focus-visible{color:var(--brand);padding-left:10px}
.files .ext{background:var(--brand);color:#fff;border-radius:4px;padding:2px 8px;font:500 12px var(--mono)}
.clients{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.clients>*{flex:0 0 190px;height:80px;display:flex;align-items:center;justify-content:center}   /* 5 в ряд: десять логотипов — 5 + 5; неполный ряд — по центру */
@media(max-width:700px){.clients{gap:16px}.clients>*{flex-basis:140px}}
.clients img{max-width:100%;max-height:70px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}
.clients a:hover img,.clients a:focus-visible img,.clients div:hover img{filter:none;opacity:1}
.cta{background:#e7eef9;text-align:center;padding:52px 0}
.cta h2{margin-bottom:12px}
.video{position:relative;padding-top:56.25%}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.spacer-s{height:16px}
.spacer-m{height:40px}
.spacer-l{height:80px}
.muted{color:var(--muted)}
.plain{list-style:none;padding:0;margin:0}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px;padding-bottom:16px}
.foot-menu{display:flex;flex-direction:column;gap:6px}
.foot-logo{display:block;height:24px;width:auto;margin-bottom:12px}
.foot-since{margin:0 0 8px;font-weight:500;color:#fff;letter-spacing:.02em}
@media(max-width:900px){.cols-2,.cols-3,.hero-grid,.cards.cols-2,.cards.cols-3,.cards.cols-4,.foot-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}a.card-item:hover{transform:none}}

/* ---------- блок «Карта» (Яндекс.Карты): виджет подгружается по нажатию ---------- */
.map-addr{margin:0 0 14px;font-size:17px}
.map-modes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.map-modes a{padding:9px 16px;border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none;font-weight:500;font-size:14px;box-shadow:inset 0 0 0 1px var(--line);transition:background-color .2s,color .2s}
.map-modes a:hover,.map-modes a:focus-visible{background:#e3e8f6}
.map-modes a.active{background:var(--brand);color:#fff;box-shadow:none}
.map-box{position:relative;min-height:420px;border-radius:var(--radius);background:linear-gradient(120deg,#e4ecf8,#ebe6f6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;overflow:hidden}
.map-box .btn{border:0;cursor:pointer}
.map-note{margin:0;max-width:520px;font-size:13px;color:var(--muted)}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.map-box.loaded .btn,.map-box.loaded .map-note{display:none}
html:not(.js) .map-box{display:none}
.map-texts{margin-top:18px}
.map-texts [data-map-text]{display:none}
.map-texts [data-map-text].on,html:not(.js) .map-texts [data-map-text]{display:block}
@media(max-width:700px){.map-box{min-height:340px}}
@media print{.map-box{display:none}}
