@font-face{font-family:"Onest";src:url(fonts/onest.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --milk:#F7F4F0; --stone:#EDE8E2; --ink:#141414; --muted:#5B5552; --bordo:#6B1B2C; --bordo-d:#521422; --line:#D9D1C8;
  --f:"Onest",system-ui,sans-serif;
  /* шкала кеглей 1.25 от 16 */
  --t-xs:12px; --t-s:14px; --t-m:16px; --t-l:20px; --t-xl:25px; --t-2xl:31px; --t-3xl:39px;
  --t-hero:clamp(30px,4.4vw,64px);
  /* ряд отступов */
  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:32px; --s6:48px; --s7:64px; --s8:96px; --s9:128px;
  --wrap:1280px; --pad:clamp(20px,4vw,48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--milk);color:var(--ink);font:400 var(--t-m)/1.55 var(--f);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--bordo);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.eyebrow{font-size:var(--t-xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bordo)}
h2{font-size:var(--t-2xl);font-weight:800;line-height:1.05;letter-spacing:-.01em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:48px;padding:0 var(--s4);border:0;background:var(--bordo);color:var(--milk);font:600 var(--t-s)/1 var(--f);text-decoration:none;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--bordo-d)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--milk)}
.more{font-weight:600;color:var(--bordo);text-decoration:none;font-size:var(--t-m)}
.more:hover{text-decoration:underline;text-underline-offset:4px}

/* шапка */
.top{position:sticky;top:0;z-index:20;background:var(--milk);border-top:3px solid var(--bordo)}
.top .wrap{display:flex;align-items:center;gap:var(--s5);height:68px}
.logo{font-weight:800;font-size:var(--t-l);letter-spacing:.01em;text-decoration:none;white-space:nowrap}
.logo b{color:var(--bordo);font-weight:800}
.logo sup{font-size:.55em;color:var(--bordo)}
.nav{display:flex;gap:var(--s5);margin:0 auto;font-size:var(--t-s)}
.nav a{text-decoration:none;color:var(--muted)}
.nav a:hover{color:var(--ink)}
.menu-btn{display:none;background:none;border:0;font:600 var(--t-s) var(--f);cursor:pointer}

/* первый экран */
.hero{padding:var(--s5) 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s6);align-items:stretch}
.hero h1{font-size:var(--t-hero);font-weight:800;line-height:.93;letter-spacing:-.025em;text-transform:uppercase}
.hero h1 em{font-style:normal;color:var(--bordo)}
.hero .lead{max-width:32em;margin-top:var(--s4);font-size:var(--t-m);line-height:1.4;color:var(--muted)}
.hero .acts{display:flex;align-items:center;gap:var(--s5);margin-top:var(--s5);flex-wrap:wrap}
.stack{display:grid;grid-template-rows:repeat(3,1fr);gap:var(--s2)}
.tile{position:relative;overflow:hidden;min-height:130px}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.tile:hover img{transform:scale(1.04)}
.tile span{position:absolute;left:var(--s3);bottom:var(--s3);background:var(--milk);color:var(--bordo);font-size:var(--t-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--s5);border-top:1.5px solid var(--bordo)}
.stats div{display:flex;align-items:baseline;justify-content:center;gap:var(--s2);padding:var(--s4) 0;border-left:1px solid var(--line)}
.stats div:first-child{border-left:0}
.stats b{font-size:var(--t-2xl);font-weight:800;color:var(--bordo);line-height:1}
.stats span{font-size:var(--t-s);color:var(--muted)}

/* секции */
.sec{padding:var(--s9) 0 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s5);margin-bottom:var(--s6)}
.sec-head p{max-width:30em;color:var(--muted)}
.sec-head .eyebrow{margin-bottom:var(--s3)}

/* направления */
.dirs{border-top:1px solid var(--ink)}
.dir{display:grid;grid-template-columns:64px minmax(0,5fr) minmax(0,5fr) 200px;gap:var(--s5);align-items:center;padding:var(--s4) 0;border-bottom:1px solid var(--line);text-decoration:none}
.dir .n{font-size:var(--t-s);font-weight:600;color:var(--bordo)}
.dir h3{font-size:var(--t-xl);font-weight:700;line-height:1.1}
.dir p{color:var(--muted);font-size:var(--t-s)}
.dir img{width:200px;height:120px;object-fit:cover;filter:saturate(.9)}
.dir:hover h3{color:var(--bordo)}

/* кейсы */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5) var(--s4)}
.case figure{margin:0}
.case .ph{aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.case img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.case:hover img{transform:scale(1.04)}
.case figcaption{margin-top:var(--s3)}
.case b{display:block;font-size:var(--t-l);font-weight:700;line-height:1.2}
.case span{display:block;margin-top:var(--s1);font-size:var(--t-s);color:var(--muted)}
.case i{font-style:normal;font-size:var(--t-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bordo)}

/* локации */
.locs{display:flex;flex-wrap:wrap;gap:var(--s2)}
.locs li{list-style:none;padding:10px var(--s3);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--t-m)}
.locs li:last-child{background:var(--bordo);color:var(--milk);box-shadow:none}

/* команда */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.person{padding:var(--s5) 0;border-top:1.5px solid var(--bordo)}
.person b{display:block;font-size:var(--t-xl);font-weight:700;line-height:1.1}
.person span{display:block;margin-top:var(--s2);color:var(--muted);font-size:var(--t-s)}
.person a{display:inline-block;margin-top:var(--s3);font-size:var(--t-s);color:var(--bordo)}

/* заявка */
.lead-sec{margin-top:var(--s9);background:var(--bordo);color:var(--milk);padding:var(--s8) 0}
.lead-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s7)}
.lead-sec h2{font-size:var(--t-3xl)}
.lead-sec .eyebrow{color:#E7C9CF;margin-bottom:var(--s3)}
.lead-sec p{margin-top:var(--s4);color:#EBD9DC;max-width:26em}
.lead-sec .contacts{margin-top:var(--s5);display:grid;gap:var(--s2);font-size:var(--t-l);font-weight:600}
.lead-sec .contacts a{text-decoration:none}
form{display:grid;gap:var(--s3)}
label{display:grid;gap:var(--s2);font-size:var(--t-s);font-weight:600}
input,textarea{font:400 var(--t-m) var(--f);color:var(--ink);background:var(--milk);border:0;padding:14px var(--s3);width:100%}
textarea{min-height:120px;resize:vertical}
.agree{display:flex;gap:var(--s3);align-items:flex-start;font-weight:400;font-size:var(--t-s);color:#EBD9DC;grid-template-columns:none}
.agree input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--ink)}
.agree a{color:var(--milk)}
form .btn{background:var(--milk);color:var(--bordo);justify-self:start}
form .btn:hover{background:#fff}
.form-note{font-size:var(--t-s);color:#fff;min-height:1.5em}

/* подвал */
.foot{padding:var(--s7) 0 var(--s6);font-size:var(--t-s);color:var(--muted)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s5)}
.foot b{color:var(--ink)}
.foot a{text-decoration:none}
.foot a:hover{color:var(--bordo)}
.foot .req{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}

/* cookie */
.cookie{position:fixed;left:auto;right:var(--s3);width:calc(100% - 32px);bottom:var(--s3);z-index:50;max-width:560px;background:var(--ink);color:var(--milk);padding:var(--s4);display:none}
.cookie.on{display:block}
.cookie p{font-size:var(--t-s);line-height:1.5}
.cookie a{color:var(--milk)}
.cookie .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin-top:var(--s3)}
.cookie .btn{height:44px;width:100%}
.cookie .btn.ghost{color:var(--milk);box-shadow:inset 0 0 0 1.5px var(--milk)}
.cookie .btn.ghost:hover{background:var(--milk);color:var(--ink)}

/* узкий экран */
@media (max-width:980px){
  .nav{display:none}.nav.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--milk);border-bottom:1px solid var(--line)}
  .nav.open a{padding:var(--s3) var(--pad);border-top:1px solid var(--line)}
  .menu-btn{display:block;margin-left:auto}
  .top .btn{display:none}
  .hero-grid{grid-template-columns:1fr}
  .stack{grid-template-rows:none;grid-template-columns:repeat(3,1fr)}
  .tile{min-height:0;aspect-ratio:3/4}
  .tile span{left:var(--s2);bottom:var(--s2);font-size:10px;padding:4px 6px}
  .dir{grid-template-columns:40px 1fr}.dir p{grid-column:2}.dir img{display:none}
  .cases{grid-template-columns:1fr 1fr}
  .team,.lead-grid,.foot-grid{grid-template-columns:1fr}
  .sec-head{flex-direction:column;align-items:start}
}
@media (max-width:560px){
  .cases{grid-template-columns:1fr}
  .stats b{font-size:var(--t-xl)}
  .stats div{flex-direction:column;align-items:center;gap:0}
  h2,.lead-sec h2{font-size:var(--t-xl)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* внутренние страницы */
.nav a[aria-current]{color:var(--bordo)}
.phead{padding:var(--s7) 0 0}
.phead h1{font-size:var(--t-3xl);font-weight:800;line-height:1;letter-spacing:-.015em;text-transform:uppercase;margin-top:var(--s3)}
.phead .lead{max-width:32em;margin-top:var(--s4);font-size:var(--t-m);color:var(--muted)}
.phead .eyebrow a{text-decoration:none}
.phead .acts{margin-top:var(--s5)}
.phead-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s6);align-items:end}
.phead-ph{aspect-ratio:4/3;overflow:hidden}
.phead-ph img{width:100%;height:100%;object-fit:cover}
.sec-tight{padding-top:var(--s6)}
.filter{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s5)}
.filter button{font:500 var(--t-s) var(--f);padding:10px var(--s3);border:0;background:transparent;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;color:var(--ink)}
.filter button.on{background:var(--bordo);color:var(--milk);box-shadow:none}
.case[hidden]{display:none}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);counter-reset:s}
.steps li{padding-top:var(--s4);border-top:1.5px solid var(--bordo);counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-size:var(--t-s);font-weight:600;color:var(--bordo);margin-bottom:var(--s2)}
.steps b{display:block;font-size:var(--t-xl);font-weight:700}
.steps span{display:block;margin-top:var(--s2);color:var(--muted);font-size:var(--t-s)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5)}
.contact-grid .eyebrow{margin-bottom:var(--s2)}
.big{display:block;font-size:var(--t-xl);font-weight:700;text-decoration:none;line-height:1.25;margin-bottom:var(--s3)}
.doc{max-width:760px;padding:var(--s7) 0 var(--s8)}
.doc h1{font-size:var(--t-2xl);font-weight:800;line-height:1.1;text-transform:uppercase}
.doc h2{font-size:var(--t-l);text-transform:none;margin:var(--s6) 0 var(--s3)}
.doc p,.doc li{margin-top:var(--s2)}
.doc ul{padding-left:var(--s4)}
.doc .date{margin-top:var(--s3);color:var(--muted)}
.gap{background:#F3E1E4;color:var(--bordo);padding:0 4px}
@media (max-width:980px){.phead-grid,.steps,.contact-grid{grid-template-columns:1fr}}
