/* ============================================================
   ГАНИН ГРУПП · Дизайн Главной · Вариант 1 «МОНОЛИТ»
   Тёмный, монументальный. Палитра айдентики:
   графит #111111 · бетон #55575A · светло-серый #BEBFC1 ·
   белый · акцент #FF6A00. Заголовки — конденсированный
   индустриальный гротеск (Oswald), текст — Inter.
   ============================================================ */
:root {
  --ink:      #111111;
  --ink-2:    #16171A;
  --ink-3:    #1D1F22;
  --line-d:   #2A2C2F;
  --line-d2:  #3A3D41;
  --concrete: #55575A;
  --silver:   #BEBFC1;
  --paper:    #F2F2F0;
  --paper-2:  #E8E8E5;
  --white:    #FFFFFF;
  --accent:   #FF6A00;
  --accent-2: #FF8A3D;
  --muted:    #8E9093;
  --font-h:   'Oswald', 'Arial Narrow', sans-serif;
  --font-t:   'Inter', system-ui, sans-serif;
  --font-m:   'JetBrains Mono', ui-monospace, monospace;
  --gut: clamp(20px, 4.5vw, 72px);
  --maxw: 1520px;
  --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-t);background:var(--ink);color:var(--paper);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}

/* line-height 1.2, а не плотнее: в Oswald точки «Ё» поднимаются на 1.042em
   над базовой линией (заглавные — 0.82em), хвосты «Ц/Д/Щ» уходят на 0.157em.
   При 1.02 вторая строка с «Ё» или «Й» налезала на предыдущую. */
h1,h2,h3{font-family:var(--font-h);font-weight:600;line-height:1.22;text-transform:uppercase;letter-spacing:.005em}
.eyebrow{font-family:var(--font-m);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--accent)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(32px,4vw,56px)}
.sec-head h2{font-size:clamp(30px,4.4vw,64px);color:var(--white)}
.sec-head .num{font-family:var(--font-m);font-size:12px;color:var(--concrete);letter-spacing:.15em;white-space:nowrap;padding-bottom:10px}
section{padding-block:clamp(64px,8vw,128px);position:relative}

/* ---------- КНОПКИ ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:0 30px;font-family:var(--font-h);font-weight:500;font-size:15px;letter-spacing:.14em;text-transform:uppercase;transition:.22s ease;position:relative}
.btn--solid{background:var(--accent);color:#140800}
.btn--solid:hover{background:var(--accent-2)}
.btn--line{border:1px solid var(--line-d2);color:var(--paper)}
.btn--line:hover{border-color:var(--paper)}
.btn--line.on-light{border-color:#C9C9C4;color:var(--ink)}
.btn--line.on-light:hover{border-color:var(--ink)}
.btn--sm{min-height:44px;padding:0 20px;font-size:13px}
.link-more{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-m);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);transition:gap .2s ease}
.link-more:hover{gap:16px}

/* ---------- ШАПКА ---------- */
header.site{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(17,17,17,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.site-row{display:flex;align-items:center;gap:28px;min-height:76px}
.brand{display:flex;align-items:center;gap:14px;flex:none}
/* Плейсхолдер лого — знак ещё не утверждён */
.logo-ph{display:inline-flex;align-items:center;justify-content:center;min-width:104px;height:42px;padding:0 16px;border:1.5px dashed #4A4D51;color:var(--muted);font-family:var(--font-m);font-size:11px;letter-spacing:.34em;text-transform:uppercase}
nav.main{display:flex;gap:2px;margin-inline:auto}
nav.main>div{position:relative}
nav.main a.top{display:block;padding:10px 13px;font-size:13.5px;font-weight:500;letter-spacing:.04em;color:var(--silver);transition:color .2s}
nav.main a.top:hover{color:var(--white)}
nav.main .dd{position:absolute;top:100%;left:0;min-width:236px;background:var(--ink-2);border:1px solid var(--line-d);padding:8px;display:none;z-index:110}
nav.main>div:hover .dd,nav.main>div:focus-within .dd{display:block}
nav.main .dd a{display:block;padding:10px 12px;font-size:13.5px;color:var(--silver)}
nav.main .dd a:hover{background:var(--ink-3);color:var(--white)}
.site-cta{display:flex;align-items:center;gap:14px;flex:none}
.tel{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line-d2);color:var(--paper);transition:.2s}
.tel:hover{border-color:var(--paper)}
.burger{display:none;width:44px;height:44px;place-items:center;border:1px solid var(--line-d2);font-size:20px}

/* ---------- HERO ---------- */
.hero{height:100svh;min-height:600px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(92px,11svh,140px) 0 0;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(120% 90% at 78% 12%, #232529 0%, transparent 55%),
  linear-gradient(180deg,#141517 0%, #101112 60%, #0C0D0E 100%)}
.hero-bg::after{content:"";position:absolute;inset:0;background-image:var(--noise)}
.hero-draft{position:absolute;inset:0;pointer-events:none;opacity:.5}
/* видео/фото заполняют экран без полос (cover); широкий кадр по краям
   слегка подрезается — иначе не заполнить экран другой пропорции */
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,13,14,.35),rgba(12,13,14,.78))}
/* на мобильном показываем фото-постер вместо видео (широкое видео сильно режется) */
@media (max-width:768px){.hero-media-video{display:none}}
.hero-media-tag{position:absolute;top:104px;right:var(--gut);font-family:var(--font-m);font-size:11px;letter-spacing:.14em;color:#5E6164;border:1px dashed #33363A;padding:8px 12px}
/* width:100% обязателен: .hero-inner — flex-элемент колоночного .hero,
   без явной ширины он сжимается по содержимому и центрируется своими
   auto-отступами, уезжая правее шапки и секций ниже (1239px вместо 1520px). */
.hero-inner{position:relative;width:100%;padding-bottom:clamp(28px,4svh,88px)}
.hero h1{font-size:clamp(52px,9.6vw,168px);font-weight:600;color:var(--white);max-width:12ch}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .sub{margin-top:clamp(16px,2.4svh,26px);max-width:56ch;font-size:clamp(15px,1.25vw,19px);color:var(--silver);line-height:1.7}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(22px,3svh,38px)}
.hero-geo{margin-top:clamp(22px,3.4svh,72px);border-top:1px solid var(--line-d);display:grid;grid-template-columns:repeat(3,1fr);}
.hero-geo div{padding:20px 18px 24px;border-right:1px solid var(--line-d)}
.hero-geo div:first-child{padding-left:0}
.hero-geo div:last-child{border-right:0}
.hero-geo b{display:block;font-family:var(--font-h);font-weight:600;font-size:clamp(17px,1.7vw,24px);letter-spacing:.06em;text-transform:uppercase;color:var(--white)}
.hero-geo span{font-family:var(--font-m);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* низкие окна (ноутбуки): первый экран = один экран без подрезки. Ничего не
   убираем — подгоняем отступами и умеренным размером заголовка */
@media (max-height:860px){
  .hero{padding-top:clamp(84px,10svh,120px)}
  /* min() с vw — чтобы на узких экранах заголовок не вылезал за край по ширине */
  .hero h1{font-size:min(clamp(44px,9.5svh,132px),13.5vw)}
  .hero .sub{margin-top:clamp(10px,1.8svh,20px)}
  .hero-geo{margin-top:clamp(16px,2.4svh,40px)}
  .hero-geo div{padding:clamp(12px,2svh,20px) 18px}
  .scroll-hint{display:none}
}
.scroll-hint{position:absolute;right:var(--gut);bottom:26px;font-family:var(--font-m);font-size:11px;letter-spacing:.2em;color:var(--concrete);writing-mode:vertical-rl;display:flex;align-items:center;gap:10px}
.scroll-hint::after{content:"";width:1px;height:44px;background:linear-gradient(var(--accent),transparent)}

/* ---------- О ГРУППЕ ---------- */
.about{border-top:1px solid var(--line-d)}
.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,96px);align-items:start}
.about p.big{font-size:clamp(21px,2.4vw,34px);line-height:1.42;font-weight:500;color:var(--paper);letter-spacing:-.01em}
.about p.big b{color:var(--accent);font-weight:600}
.about-side{display:grid;gap:14px}
.about-side .row{display:flex;gap:14px;align-items:baseline;border-bottom:1px solid var(--line-d);padding-bottom:14px}
.about-side .row i{font-family:var(--font-m);font-style:normal;font-size:11px;color:var(--accent);letter-spacing:.1em}
.about-side .row span{font-size:14.5px;color:var(--silver)}

/* ---------- СЦЕНАРИИ ---------- */
.scen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.scen{background:var(--ink);padding:26px 24px 30px;display:flex;flex-direction:column;gap:12px;min-height:170px;transition:background .25s}
.scen:hover{background:var(--ink-3)}
.scen i{font-family:var(--font-m);font-style:normal;font-size:11px;color:var(--concrete);letter-spacing:.12em}
.scen b{font-family:var(--font-h);font-weight:500;font-size:19px;letter-spacing:.05em;text-transform:uppercase;color:var(--white)}
.scen span{font-size:13.5px;color:var(--muted);line-height:1.55}
.scen .go{margin-top:auto;color:var(--accent);font-family:var(--font-m);font-size:12px;letter-spacing:.1em}

/* ---------- ТРИАДА ---------- */
.triad{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.tri{border:1px solid var(--line-d);padding:clamp(24px,2.6vw,40px);position:relative;transition:border-color .25s;background:linear-gradient(180deg,var(--ink-2),transparent 55%)}
.tri:hover{border-color:var(--line-d2)}
.tri .n{font-family:var(--font-m);font-size:12px;color:var(--accent);letter-spacing:.14em}
.tri h3{font-size:clamp(24px,2.6vw,38px);color:var(--white);margin:14px 0 8px}
.tri p{font-size:14px;color:var(--muted);max-width:30ch}
.tri ul{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.tri ul a{font-family:var(--font-m);font-size:11.5px;letter-spacing:.06em;color:var(--silver);border:1px solid var(--line-d2);padding:7px 10px;display:inline-block;transition:.2s}
.tri ul a:hover{color:var(--white);border-color:var(--accent)}

/* ---------- НАПРАВЛЕНИЯ (фото-мозаика) ---------- */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.mz{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;border:1px solid var(--line-d);background:linear-gradient(160deg,#43464A,#2B2D30);transition:.24s}
.mz::before{content:"";position:absolute;inset:0;background-image:var(--noise)}
.mz::after{content:"";position:absolute;inset:0;background:linear-gradient(185deg,rgba(12,13,14,0) 40%,rgba(12,13,14,.72));transition:.24s}
.mz:hover{transform:translateY(-4px);border-color:var(--line-d2)}
.mz:hover::after{background:linear-gradient(185deg,rgba(12,13,14,.1) 30%,rgba(12,13,14,.82))}
.mz .ph-tag{position:absolute;left:18px;top:16px;font-family:var(--font-m);font-size:9.5px;letter-spacing:.12em;color:rgba(255,255,255,.6);text-transform:uppercase;z-index:2;background:rgba(12,13,14,.45);padding:5px 10px}
.mz .cap{position:relative;z-index:2;color:var(--white);width:100%}
.mz .cap h3{font-size:clamp(19px,1.9vw,26px);color:var(--white);display:flex;align-items:center;justify-content:space-between;gap:10px}
.mz .cap h3 em{font-style:normal;font-size:18px;color:var(--accent);opacity:0;transform:translateX(-6px);transition:.22s}
.mz:hover .cap h3 em{opacity:1;transform:none}
.mz .cap p{font-size:12.5px;color:var(--silver);margin-top:4px;line-height:1.5}
.mz.big{grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg,#4A4D51,#232529)}
.mz.tall{grid-row:span 2;background:linear-gradient(200deg,#3E4145,#212326)}
.mz.upex{background:var(--ink-2);border-color:var(--line-d2)}
.mz.upex::after{background:none}
.mz.upex .glow{position:absolute;right:-70px;bottom:-90px;width:280px;height:280px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,106,0,.38),transparent 70%)}
.mz.upex .cap p{color:var(--muted)}
.mz.upex .ext{display:inline-flex;margin-top:10px;font-family:var(--font-m);font-size:12px;letter-spacing:.08em;color:var(--accent)}

/* ---------- ЦИФРЫ ---------- */
.stats{border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-d)}
.stat{background:var(--ink);padding:clamp(24px,3vw,44px) clamp(18px,2vw,32px)}
.stat .v{font-family:var(--font-h);font-weight:600;font-size:clamp(44px,5.6vw,92px);line-height:1;color:var(--white);letter-spacing:.01em}
.stat .v sup{font-size:.45em;color:var(--accent);top:-.7em}
.stat .l{margin-top:10px;font-size:13.5px;color:var(--silver)}
.stat .b{margin-top:4px;font-family:var(--font-m);font-size:11px;letter-spacing:.08em;color:var(--concrete);text-transform:uppercase}

/* ---------- СВЕТЛАЯ ЗОНА (бетон) ---------- */
.light{background:var(--paper);color:var(--ink)}
.light::after{content:"";position:absolute;inset:0;background-image:var(--noise);pointer-events:none;opacity:.5}
.light .sec-head h2{color:var(--ink)}
.light .eyebrow{color:#7C7E80}
.light .sec-head .num{color:#A9AAA7}

/* отзыв */
.quote-big{max-width:1040px;position:relative;z-index:1}
.quote-big .q{font-family:var(--font-h);font-weight:500;font-size:clamp(24px,3.4vw,52px);line-height:1.18;text-transform:none;letter-spacing:0;color:var(--ink)}
.quote-big .q em{font-style:normal;background:linear-gradient(transparent 68%, rgba(255,106,0,.28) 68%)}
.quote-who{display:flex;align-items:center;gap:16px;margin-top:34px}
.quote-who .ava{width:56px;height:56px;border-radius:0;background:#D8D8D4;border:1px solid #C4C4BF;display:grid;place-items:center;font-family:var(--font-m);font-size:9px;color:#8A8A86;text-align:center}
.quote-who b{display:block;font-size:15px}
.quote-who span{font-size:13px;color:#6E706F}

/* карта */
.map-shell{position:relative;z-index:1;border:1px solid #D2D2CC;background:linear-gradient(180deg,#EDEDEA,#E4E4E0)}
.map-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid #D2D2CC}
.map-tabs button{flex:1 1 auto;min-width:0;padding:16px 26px;font-family:var(--font-h);font-size:14px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#7A7C7E;border-right:1px solid #D2D2CC;white-space:nowrap}
.map-tabs button:last-child{border-right:0}
.map-tabs button.act{background:var(--ink);color:var(--white)}
.map-canvas{position:relative;overflow:hidden;min-height:440px;background-image:
  linear-gradient(#DBDBD6 1px, transparent 1px),
  linear-gradient(90deg,#DBDBD6 1px, transparent 1px);
  background-size:56px 56px}
.map-pt{position:absolute;display:flex;align-items:center;gap:8px;font-family:var(--font-m);font-size:11px;color:#3F4143;letter-spacing:.06em}
.map-pt::before{content:"";width:10px;height:10px;background:var(--accent);outline:4px solid rgba(255,106,0,.2)}
.map-pt.f::before{background:var(--ink)}
.map-note{position:absolute;left:24px;bottom:20px;font-family:var(--font-m);font-size:11px;color:#94958F;letter-spacing:.08em;max-width:46ch}
.map-zone{position:absolute;width:340px;height:340px;border:1.5px dashed rgba(255,106,0,.5);border-radius:50%;left:8%;top:50%;transform:translateY(-50%)}

/* объекты */
.obj-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(16px,2vw,28px);position:relative;z-index:1}
.obj{border:1px solid #D2D2CC;background:var(--white);transition:.25s}
.obj:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(17,17,17,.10)}
.obj .ph{aspect-ratio:4/3;background:linear-gradient(135deg,#C9CACB,#9FA1A3 60%,#77797C);position:relative;display:grid;place-items:center;overflow:hidden}
.obj .ph::after{content:"";position:absolute;inset:0;background-image:var(--noise)}
.obj .ph i{font-family:var(--font-m);font-style:normal;font-size:10.5px;letter-spacing:.12em;color:rgba(255,255,255,.75);text-transform:uppercase}
.obj .body{display:block;padding:20px 20px 24px}
.obj .meta{font-family:var(--font-m);font-size:11px;color:#8B8D8A;letter-spacing:.1em;text-transform:uppercase}
.obj h3{font-size:21px;letter-spacing:.04em;color:var(--ink);margin-top:8px}
.obj p{font-size:13.5px;color:#5B5D5C;margin-top:6px}

/* команда */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px);position:relative;z-index:1}
.team-carousel{--tg:clamp(14px,1.8vw,24px);position:relative;z-index:1}
.team-track{display:flex;gap:var(--tg);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px}
.team-track::-webkit-scrollbar{display:none}
/* карточка — ровно 1/4 ширины, как в исходной сетке; при 5+ появляется прокрутка */
.team-track .tm{flex:0 0 auto;width:calc((100% - 3*var(--tg))/4);scroll-snap-align:start}
.tc-nav{position:absolute;top:38%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,0,0,.16);background:rgba(255,255,255,.94);color:#1b1c1e;font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:opacity .2s,background .2s}
.tc-nav:hover{background:#fff}
.tc-nav:disabled{opacity:.28;cursor:default;box-shadow:none}
.tc-prev{left:-10px}
.tc-next{right:-10px}
.team-carousel.is-static .tc-nav{display:none}
.team-carousel.is-static .team-track{overflow:visible}
@media(max-width:900px){.team-track .tm{width:calc((100% - var(--tg))/2)}}
@media(max-width:560px){.team-track .tm{width:100%}.tc-nav{display:none}.team-track{scroll-snap-type:none}}
.tm{border:1px solid #D2D2CC;background:var(--white)}
.tm .ph{aspect-ratio:3/3.4;background:linear-gradient(160deg,#D6D6D2,#B9BAB6);display:grid;place-items:center;position:relative}
.tm .ph i{font-family:var(--font-m);font-style:normal;font-size:10px;color:#90918D;letter-spacing:.1em}
.tm .body{padding:14px 16px 18px}
.tm b{font-size:15px;color:var(--ink)}
.tm span{display:block;font-size:12.5px;color:#77797B;margin-top:2px}

/* ---------- ФИНАЛЬНЫЙ CTA ---------- */
.final{background:var(--ink);text-align:center;overflow:hidden}
.final h2{font-size:clamp(38px,6.4vw,96px);color:var(--white);max-width:18ch;margin-inline:auto}
.final h2 em{font-style:normal;color:var(--accent)}
.final p{margin:22px auto 0;max-width:58ch;color:var(--muted);font-size:15px}
.final .cta-row{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:40px}
.final .bgmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,90vw);opacity:.045;pointer-events:none}

/* ---------- ФУТЕР ---------- */
footer.site{background:#0C0D0E;border-top:1px solid var(--line-d);padding:clamp(48px,6vw,80px) 0 32px}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:clamp(24px,3vw,48px)}
.foot-grid h4{font-family:var(--font-m);font-weight:500;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--concrete);margin-bottom:16px}
.foot-grid a{display:block;padding:5px 0;font-size:14px;color:var(--silver);transition:color .2s}
.foot-grid a:hover{color:var(--accent)}
.foot-brand p{margin-top:18px;font-size:13px;color:var(--muted);max-width:34ch;line-height:1.7}
.legal{margin-top:clamp(36px,4vw,56px);padding-top:22px;border-top:1px solid var(--line-d);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:12.5px;color:var(--concrete)}
.legal a{color:var(--muted)}
.legal a:hover{color:var(--paper)}

/* ---------- ПЛАВАЮЩИЕ ---------- */
.floats{position:fixed;right:18px;bottom:18px;display:grid;gap:10px;z-index:90}
.floats a{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line-d2);background:rgba(17,17,17,.9);backdrop-filter:blur(8px);color:var(--paper);font-family:var(--font-m);font-size:10px;letter-spacing:.06em;transition:.2s}
.floats a:hover{border-color:var(--accent);color:var(--accent)}
.floats a.hot{background:var(--accent);border-color:var(--accent);color:#140800;font-weight:600}
.floats a.hot:hover{background:var(--accent-2);color:#140800}

/* ---------- МОДАЛКА ---------- */
.modal{position:fixed;inset:0;display:none;place-items:center;background:rgba(10,10,11,.72);backdrop-filter:blur(6px);z-index:200;padding:20px}
.modal:target{display:grid}
.modal-card{width:100%;max-width:480px;background:var(--ink-2);border:1px solid var(--line-d2);padding:34px;position:relative;max-height:92vh;overflow:auto}
.modal-card h3{font-size:28px;color:var(--white)}
.modal-card .x{position:absolute;top:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-d2);color:var(--silver)}
.modal-card .x:hover{border-color:var(--paper);color:var(--white)}
.f-label{display:block;font-family:var(--font-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.f-input{width:100%;min-height:50px;background:var(--ink);border:1px solid var(--line-d2);color:var(--paper);padding:12px 14px;font-size:15px;font-family:var(--font-t)}
.f-input:focus{outline:none;border-color:var(--accent)}
textarea.f-input{min-height:92px;resize:vertical}
.f-agree{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin-top:18px}
.f-agree a{color:var(--silver);text-decoration:underline;text-underline-offset:3px}
.f-agree input{width:18px;height:18px;accent-color:var(--accent);margin-top:1px}

/* ---------- МОБИЛЬНОЕ МЕНЮ ---------- */
.mmenu{position:fixed;inset:0;background:var(--ink);z-index:150;display:none;overflow:auto}
.mmenu:target{display:block}
.mmenu .head{display:flex;justify-content:space-between;align-items:center;padding:16px var(--gut);border-bottom:1px solid var(--line-d)}
.mmenu nav{padding:10px var(--gut) 60px}
.mmenu .top{display:block;padding:16px 0;font-family:var(--font-h);font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:var(--white);border-bottom:1px solid var(--line-d)}
.mmenu .grp{padding:14px 0;border-bottom:1px solid var(--line-d)}
.mmenu .grp b{display:block;font-family:var(--font-h);font-weight:500;font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:var(--white)}
.mmenu .grp a{display:block;padding:9px 0 9px 18px;font-size:15px;color:var(--silver)}
.mmenu .grp a:hover{color:var(--accent)}

/* ---------- АДАПТИВ ---------- */
@media (max-width:1180px){
  nav.main{display:none}
  .burger{display:grid}
  .mosaic{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr}
  .scen-grid{grid-template-columns:1fr 1fr}
  .triad{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .obj-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .hero-geo{grid-template-columns:1fr}
  .hero-geo div{border-right:0;border-bottom:1px solid var(--line-d);padding-left:0}
  .hero-geo div:last-child{border-bottom:0}
  .scroll-hint{display:none}
  .hero-media-tag{display:none}
}
@media (max-width:560px){
  .scen-grid{grid-template-columns:1fr}
  .mosaic{grid-template-columns:1fr}
  .mz.big{grid-column:span 1}
  .stats-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .site-cta .btn{display:none}
  header.site .tel{display:none}
  header.site .brand .word small{display:none}
  /* контент прижимаем к верху (под шапку), чтобы верх заголовка не срезался;
     высота растёт под контент, если он выше экрана */
  .hero{justify-content:flex-start;height:auto;min-height:100svh}
  .hero-geo{margin-top:clamp(14px,2svh,26px)}
  /* левый отступ строго 0: иначе первый пункт (у него :first-child
     с более высокой специфичностью) стоит по краю, а остальные — на 14px правее */
  .hero-geo div{padding:10px 14px 10px 0}
}
/* режим экспорта в PDF: убираем привязку к высоте экрана */
html.flat .hero{min-height:760px}

/* ============================================================
   ПЕРЕКЛЮЧАТЕЛЬ ТЕМЫ + СВЕТЛАЯ ТЕМА
   Тёмная — по умолчанию. Светлая включается data-theme="light"
   на <html>. Переменные названы по цвету, поэтому светлый слой
   переопределяет их семантически (фоны→светлые, тексты→тёмные)
   и точечно чинит захардкоженные тёмные места.
   ============================================================ */

/* --- кнопка-переключатель --- */
.theme-tgl{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line-d2);background:none;color:var(--paper);transition:.2s;flex:none}
.theme-tgl:hover{border-color:var(--paper);color:var(--accent)}
.theme-tgl svg{width:18px;height:18px}
.theme-tgl .i-moon{display:none}
:root[data-theme="light"] .theme-tgl .i-sun{display:none}
:root[data-theme="light"] .theme-tgl .i-moon{display:block}

/* --- переключение логотипов --- */
.brand .lg-light{display:none}
:root[data-theme="light"] .brand .lg-dark{display:none}
:root[data-theme="light"] .brand .lg-light{display:block}

/* --- переопределение токенов --- */
:root[data-theme="light"]{
  --ink:      #FFFFFF;   /* базовый фон/поверхность → белый */
  --ink-2:    #F3F3F0;   /* приподнятая поверхность */
  --ink-3:    #EAEAE6;   /* фон при наведении */
  --line-d:   #E4E4DF;   /* тонкая линия */
  --line-d2:  #D2D2CB;   /* линия поярче */
  --concrete: #70726F;   /* mono-подписи на светлом */
  --silver:   #3C3E40;   /* вторичный текст → тёмный */
  --paper:    #17181A;   /* текст (и фон .light-полосы → тёмный, красивая инверсия) */
  --paper-2:  #24262A;
  --white:    #121316;   /* заголовки → почти чёрный */
  --muted:    #63656A;   /* приглушённый текст на светлом */
}

/* --- шапка / навигация --- */
:root[data-theme="light"] header.site{background:rgba(255,255,255,.86);border-bottom-color:var(--line-d)}

/* --- hero --- */
:root[data-theme="light"] .hero-bg{background:
  radial-gradient(120% 90% at 78% 12%, #EEEFEC 0%, transparent 55%),
  linear-gradient(180deg,#F7F7F5 0%, #F0F0ED 60%, #E9E9E5 100%)}
:root[data-theme="light"] .hero-media-tag{color:#8A8C8E;border-color:#CFCFC9}
:root[data-theme="light"] .hero-draft{opacity:.32}

/* --- мозаика направлений: плитки-«фото» остаются тёмными --- */
:root[data-theme="light"] .mz{border-color:#33363A}
:root[data-theme="light"] .mz .cap h3{color:#fff}
:root[data-theme="light"] .mz .cap p{color:#C7C8C4}
:root[data-theme="light"] .mz.upex{background:#1C1E21;border-color:#3A3D41}
:root[data-theme="light"] .mz.upex .cap p{color:#9A9C9E}

/* --- «светлая полоса» инвертируется в тёмный акцент-блок --- */
:root[data-theme="light"] .obj,
:root[data-theme="light"] .tm{background:#1F2124;border-color:#34363A}
:root[data-theme="light"] .obj:hover{box-shadow:0 24px 48px rgba(0,0,0,.35)}
:root[data-theme="light"] .obj p{color:#B9BBB8}
:root[data-theme="light"] .tm span{color:#A6A8A5}
:root[data-theme="light"] .quote-who span{color:#9A9C9E}
:root[data-theme="light"] .map-tabs button.act{background:#17181A;color:#fff}
:root[data-theme="light"] .map-pt.f::before{background:#17181A}

/* кнопка .on-light живёт на светлых блоках, которые инвертировались в тёмные */
:root[data-theme="light"] .btn--line.on-light{color:#fff;border-color:#3A3D41}
:root[data-theme="light"] .btn--line.on-light:hover{border-color:#fff}

/* --- футер --- */
:root[data-theme="light"] footer.site{background:#F3F3F0;border-top-color:var(--line-d)}

/* --- плавающие кнопки --- */
:root[data-theme="light"] .floats a{background:rgba(255,255,255,.92);border-color:var(--line-d2);color:var(--paper)}
:root[data-theme="light"] .floats a:hover{border-color:var(--accent);color:var(--accent)}

/* ============================================================
   ВНУТРЕННИЕ СТРАНИЦЫ — компоненты поверх системы «Монолит»
   ============================================================ */

/* ---------- ХЛЕБНЫЕ КРОШКИ ---------- */
.bc{padding-top:104px;font-family:var(--font-m);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--concrete)}
.bc .wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.bc a{color:var(--muted);transition:color .2s}
.bc a:hover{color:var(--paper)}
.bc i{font-style:normal;color:var(--line-d2)}

/* ---------- HERO СТРАНИЦЫ ---------- */
.phero{padding:clamp(28px,3vw,44px) 0 clamp(44px,5vw,72px);border-bottom:1px solid var(--line-d)}
.phero h1{font-size:clamp(40px,6.4vw,104px);color:var(--white);max-width:18ch}
.phero .sub{margin-top:20px;max-width:62ch;color:var(--silver);font-size:clamp(15px,1.2vw,18px);line-height:1.7}
.phero .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.chip{display:inline-block;font-family:var(--font-m);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line-d2);padding:8px 12px;transition:.2s}
a.chip:hover{color:var(--white);border-color:var(--accent)}
.chip.hot{border-color:var(--accent);color:var(--accent)}
.chip.act{background:var(--accent);border-color:var(--accent);color:#140800}

/* фото-hero (решения, кейсы) */
.phero-photo{margin-top:96px;position:relative;min-height:clamp(360px,48vw,520px);display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(160deg,#43464A,#26282B)}
.phero-photo::before{content:"";position:absolute;inset:0;background-image:var(--noise)}
.phero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(185deg,rgba(12,13,14,.15) 30%,rgba(12,13,14,.82))}
.phero-photo .ph-note{position:absolute;top:20px;right:var(--gut);z-index:2;font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);border:1px dashed rgba(255,255,255,.25);padding:7px 11px}
.phero-photo .inner{position:relative;z-index:2;width:100%;padding-block:clamp(32px,4vw,56px)}
.phero-photo h1{font-size:clamp(36px,5.4vw,88px);color:var(--white);max-width:20ch}
.phero-photo .sub{margin-top:16px;max-width:58ch;color:var(--silver);font-size:clamp(14.5px,1.15vw,17.5px);line-height:1.65}
.phero-photo .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.phero-photo .meta{font-family:var(--font-m);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--silver)}

/* ---------- СЕТКИ И КАРТОЧКИ ---------- */
.grid{display:grid;gap:clamp(14px,1.8vw,24px)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.rows-eq{grid-auto-rows:1fr}
.grid.c4{grid-template-columns:repeat(4,1fr)}

.icard{border:1px solid var(--line-d);background:linear-gradient(180deg,var(--ink-2),transparent 60%);padding:clamp(20px,2vw,28px);display:flex;flex-direction:column;gap:10px;transition:border-color .25s;position:relative}
.icard:hover{border-color:var(--line-d2)}
.icard .ic{width:44px;height:44px;border:1px solid var(--line-d2);display:grid;place-items:center;color:var(--accent);font-family:var(--font-m);font-size:12px}
.icard h3,.icard b{font-family:var(--font-h);font-weight:500;font-size:18px;letter-spacing:.05em;text-transform:uppercase;color:var(--white);line-height:1.25}
.icard p{font-size:13.5px;color:var(--muted);line-height:1.55}
.icard .go{margin-top:auto;padding-top:10px;color:var(--accent);font-family:var(--font-m);font-size:12px;letter-spacing:.1em}

.pcard{display:block;border:1px solid var(--line-d);background:var(--ink-2);transition:.25s}
.pcard:hover{transform:translateY(-4px);border-color:var(--line-d2)}
.pcard .ph{aspect-ratio:4/3;background:linear-gradient(135deg,#4A4D51,#2B2D30);display:grid;place-items:center;position:relative;overflow:hidden}
.pcard .ph::after{content:"";position:absolute;inset:0;background-image:var(--noise)}
.pcard .ph i{font-family:var(--font-m);font-style:normal;font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.5);text-transform:uppercase}
.pcard .body{display:block;padding:18px 20px 22px}
.pcard .meta{display:block;font-family:var(--font-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pcard h3{font-size:19px;letter-spacing:.04em;color:var(--white);margin-top:8px}
.pcard p{font-size:13.5px;color:var(--muted);margin-top:6px;line-height:1.55}
.pcard .row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}

/* ---------- СПИСКИ-РЕЕСТРЫ (документы, вакансии) ---------- */
.rows{border-top:1px solid var(--line-d)}
.rowi{display:flex;align-items:center;gap:18px;padding:clamp(16px,1.8vw,24px) 0;border-bottom:1px solid var(--line-d);transition:.2s}
.rowi:hover{padding-left:12px}
.rowi .kind{font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;color:var(--accent);border:1px solid var(--line-d2);padding:6px 9px;white-space:nowrap}
.rowi .tit{font-family:var(--font-h);font-weight:500;font-size:clamp(17px,1.6vw,22px);letter-spacing:.04em;text-transform:uppercase;color:var(--white)}
.rowi .sub{font-size:13px;color:var(--muted)}
.rowi .act{margin-left:auto}

/* ---------- ШАГИ ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.step{background:var(--ink);padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column;gap:10px}
.step i{font-family:var(--font-m);font-style:normal;font-size:11px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase}
.step b{font-family:var(--font-h);font-weight:500;font-size:18px;letter-spacing:.05em;text-transform:uppercase;color:var(--white)}
.step span{font-size:13.5px;color:var(--muted);line-height:1.55}

/* ---------- ТАЙМЛАЙН ---------- */
.tl{position:relative;border-left:1px solid var(--line-d2);display:grid;gap:clamp(26px,3vw,40px);padding-left:clamp(24px,3vw,40px);margin-left:5px}
.tl .ev{position:relative}
.tl .ev::before{content:"";position:absolute;left:calc(-1 * clamp(24px,3vw,40px) - 5px);top:7px;width:9px;height:9px;background:var(--accent)}
.tl .y{font-family:var(--font-m);font-size:12px;letter-spacing:.16em;color:var(--accent)}
.tl b{display:block;font-family:var(--font-h);font-weight:500;font-size:clamp(19px,2vw,26px);letter-spacing:.04em;text-transform:uppercase;color:var(--white);margin-top:6px}
.tl p{font-size:14px;color:var(--muted);margin-top:6px;max-width:60ch}

/* ---------- ТАБЛИЦА ХАРАКТЕРИСТИК ---------- */
.spec{width:100%;border-collapse:collapse;font-size:14px}
.spec th,.spec td{border:1px solid var(--line-d);padding:12px 16px;text-align:left}
.spec th{font-family:var(--font-m);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--ink-2)}
.spec td{color:var(--silver)}
.spec td:first-child{color:var(--paper)}

/* ---------- КАТАЛОГ: ФИЛЬТР + СПИСОК ---------- */
.cat-grid{display:grid;grid-template-columns:264px 1fr;gap:clamp(20px,2.5vw,36px);align-items:start}
.filter{border:1px solid var(--line-d);background:var(--ink-2);padding:22px;position:sticky;top:100px}
.filter h3{font-size:16px;letter-spacing:.08em;color:var(--white)}
.filter .opts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.filter .f-label{margin-top:20px}

/* ---------- ФОРМА НА СТРАНИЦЕ ---------- */
.form-card{border:1px solid var(--line-d2);background:var(--ink-2);padding:clamp(24px,2.6vw,34px)}
.form-card h3{font-size:24px;color:var(--white)}

/* ---------- КЕЙС: КОНТЕКСТ → РЕЗУЛЬТАТ ---------- */
.case-rows{border-top:1px solid var(--line-d)}
.case-row{display:grid;grid-template-columns:180px 1fr;gap:clamp(16px,3vw,48px);padding:clamp(20px,2.4vw,32px) 0;border-bottom:1px solid var(--line-d)}
.case-row b{font-family:var(--font-m);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.case-row p{font-size:15px;color:var(--silver);line-height:1.7;max-width:76ch}

/* ---------- ГАЛЕРЕЯ ---------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gal .ph{aspect-ratio:1;background:linear-gradient(135deg,#4A4D51,#2B2D30);display:grid;place-items:center;position:relative;border:1px solid var(--line-d);overflow:hidden}
.gal .ph.zoomable{cursor:zoom-in}
.gal .ph.zoomable img{transition:transform .4s ease,opacity .2s}
.gal .ph.zoomable:hover img{transform:scale(1.05)}
.gal .ph.zoomable::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(12,13,14,0);transition:background .2s}
.gal .ph.zoomable:hover::before{background:rgba(12,13,14,.12)}
/* лайтбокс галереи объекта */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(8,9,10,.95);display:none;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px)}
.lightbox.open{display:flex;animation:lbfade .2s ease}
@keyframes lbfade{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:92vw;max-height:84vh;object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.6)}
.lb-cap{position:absolute;bottom:clamp(16px,3vw,32px);left:0;right:0;text-align:center;color:#E4E5E1;font-family:var(--font-m);font-size:13px;letter-spacing:.04em;padding:0 24px}
.lb-count{position:absolute;top:clamp(18px,3vw,28px);left:clamp(18px,3vw,28px);color:#B9BBB8;font-family:var(--font-m);font-size:12px;letter-spacing:.12em}
.lb-x,.lb-nav{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s}
.lb-x:hover,.lb-nav:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5)}
.lb-x{position:absolute;top:clamp(14px,3vw,24px);right:clamp(14px,3vw,24px);width:46px;height:46px;border-radius:50%;font-size:20px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;font-size:26px;line-height:1}
.lb-prev{left:clamp(10px,2vw,28px)}
.lb-next{right:clamp(10px,2vw,28px)}
.lightbox.single .lb-nav{display:none}
@media(max-width:560px){.lb-nav{width:44px;height:44px}}
.gal .ph::after{content:"";position:absolute;inset:0;background-image:var(--noise)}
.gal .ph i{font-family:var(--font-m);font-style:normal;font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.45);text-transform:uppercase}

/* ---------- КОНТАКТЫ ---------- */
.dept{display:flex;gap:16px;align-items:center;border:1px solid var(--line-d);background:linear-gradient(180deg,var(--ink-2),transparent 70%);padding:20px;transition:border-color .25s}
.dept:hover{border-color:var(--line-d2)}
.dept .ava{width:56px;height:56px;flex:none;background:linear-gradient(160deg,#4A4D51,#2B2D30);border:1px solid var(--line-d2);display:grid;place-items:center;font-family:var(--font-m);font-size:9px;color:var(--muted)}
.dept b{display:block;font-family:var(--font-h);font-weight:500;font-size:17px;letter-spacing:.05em;text-transform:uppercase;color:var(--white)}
.dept span{font-size:13px;color:var(--muted)}
.dept a{color:var(--silver)}
.dept a:hover{color:var(--accent)}

/* тёмная карта */
.dmap{position:relative;overflow:hidden;min-height:420px;border:1px solid var(--line-d);background-image:linear-gradient(var(--line-d) 1px,transparent 1px),linear-gradient(90deg,var(--line-d) 1px,transparent 1px);background-size:56px 56px;background-color:var(--ink-2)}
.dmap .map-pt{color:var(--silver)}
.dmap .map-note{color:var(--concrete)}

/* ---------- КАЛЬКУЛЯТОР ---------- */
.calc-type{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.calc-type button{background:var(--ink);padding:20px 12px;display:grid;gap:10px;justify-items:center;font-family:var(--font-h);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--silver);transition:.2s}
.calc-type button .pic{width:44px;height:44px;border:1px solid var(--line-d2);display:grid;place-items:center;color:var(--concrete);font-family:var(--font-m);font-size:10px}
.calc-type button:hover{background:var(--ink-3)}
.calc-type button.act{background:var(--ink-3);color:var(--white);box-shadow:inset 0 -2px 0 var(--accent)}
.calc-type button.act .pic{border-color:var(--accent);color:var(--accent)}
.calc-res{border:1px solid var(--accent);padding:clamp(24px,2.6vw,34px);position:relative}
.calc-res .v{font-family:var(--font-h);font-weight:600;font-size:clamp(44px,5vw,76px);line-height:1;color:var(--white)}
.calc-res .v small{font-size:.4em;color:var(--accent)}
.calc-res .note{font-family:var(--font-m);font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:10px;text-transform:uppercase}

/* ---------- ТЕКСТОВЫЕ СТРАНИЦЫ ---------- */
.prose{max-width:840px;color:var(--silver);font-size:15px;line-height:1.75}
.prose h2{font-size:clamp(20px,2vw,28px);color:var(--white);margin:36px 0 12px}
.prose p{margin-top:12px}
.prose ul{margin:12px 0 0 18px;display:grid;gap:6px}

/* ---------- 404 ---------- */
.nf{min-height:70svh;display:grid;place-items:center;text-align:center;padding-top:96px}
.nf .code{font-family:var(--font-h);font-weight:600;font-size:clamp(120px,22vw,280px);line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--line-d2)}
.nf .code em{font-style:normal;color:var(--accent);-webkit-text-stroke:0}

/* ---------- АКТИВНЫЙ ПУНКТ МЕНЮ ---------- */
nav.main a.top.act{color:var(--white);position:relative}
nav.main a.top.act::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:var(--accent)}

/* ---------- СЕКЦИЯ-РАЗДЕЛИТЕЛЬ ---------- */
section.bt{border-top:1px solid var(--line-d)}

/* ---------- АДАПТИВ ВНУТРЕННИХ ---------- */
@media (max-width:1180px){
  .cat-grid{grid-template-columns:1fr}
  .filter{position:static}
  .calc-type{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .grid.c3,.grid.c4{grid-template-columns:1fr 1fr}
  .grid.c2{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .case-row{grid-template-columns:1fr;gap:8px}
  .gal{grid-template-columns:1fr 1fr}
  .phero-photo{margin-top:76px}
  .bc{padding-top:96px}
}
@media (max-width:560px){
  .grid.c3,.grid.c4{grid-template-columns:1fr}
  .calc-type{grid-template-columns:repeat(2,1fr)}
}

/* select в формах */
select.f-input{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;cursor:pointer}

/* ---------- ЛОГОТИП ---------- */
.brand img{display:block;width:auto}
header.site .brand img{height:56px}
footer.site .brand img{height:62px}
.mmenu .brand img{height:46px}

/* режим экспорта в PDF (html.flat) — дополнения для внутренних страниц */
html.flat .nf{min-height:620px}
html.flat .floats{display:none}

/* ============================================================
   СВЕТЛАЯ ТЕМА — доводка внутренних страниц
   ============================================================ */

/* фото-hero (Решения, Объект): фон-плейсхолдер остаётся тёмным,
   поэтому текст держим светлым, а не инвертируем */
:root[data-theme="light"] .phero-photo h1{color:#fff}
:root[data-theme="light"] .phero-photo .sub,
:root[data-theme="light"] .phero-photo .meta{color:#C7C8C4}

/* Первый экран лежит на тёмном видео/фото — текст остаётся светлым и в светлой
   теме (иначе тёмные токены делают заголовок нечитаемым на светлом кадре) */
:root[data-theme="light"] .hero h1,
:root[data-theme="light"] .hero-geo b{color:#fff}
:root[data-theme="light"] .hero .sub{color:#E4E5E1}
:root[data-theme="light"] .hero .eyebrow,
:root[data-theme="light"] .hero-geo span{color:#C7C8C4}

/* блок «Перевозчикам» (#haulers) — светлая карточка с инлайн-стилями,
   рассчитанными на светлую полосу; в светлой теме полоса инвертируется
   в тёмную, поэтому перекрываем инлайн через !important */
:root[data-theme="light"] #haulers p{color:#B7B9B6 !important}
:root[data-theme="light"] #haulers .chip{color:#B7B9B6 !important;border-color:#3A3D41 !important}
:root[data-theme="light"] #haulers .form-card{background:#1F2124 !important;border-color:#34363A !important}
:root[data-theme="light"] #haulers .form-card .f-label{color:#9A9C9E !important}
:root[data-theme="light"] #haulers .form-card .f-input{background:#26282B !important;border-color:#3A3D41 !important;color:#fff !important}
:root[data-theme="light"] #haulers .f-agree{color:#9A9C9E !important}
:root[data-theme="light"] #haulers .f-agree a{color:#C7C8C4 !important}
