/* ============================================================
   ACTA. Адвокатське бюро — Bugatti-derived monochrome cinema
   ============================================================ */

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:#000;
  color:#fff;
  font-family:"Sora","Helvetica Neue",sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg,video,iframe{display:block;max-width:100%}
a{color:#fff;text-decoration:none}
a:visited{color:#fff}
button{font:inherit;background:none;border:0;padding:0;color:inherit;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}

:root{
  --ink:#000;
  --paper:#fff;
  --mist:#999;
  --mist-soft:rgba(255,255,255,.16);
  --hair:rgba(255,255,255,.24);
  --hair-soft:rgba(255,255,255,.08);

  --f-display:"Archivo Black","Helvetica Neue",Impact,sans-serif;
  --f-mono:"Space Mono","JetBrains Mono",ui-monospace,monospace;
  --f-body:"Sora","Helvetica Neue",sans-serif;

  --pad-x:clamp(20px,4vw,64px);
  --sec-y:clamp(72px,10vw,140px);

  --ease:cubic-bezier(.22,.9,.25,1);
}

::selection{background:#fff;color:#000}
:focus-visible{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px #000}

/* ============ MONO UPPER LABELS ============ */
.eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--paper);
  display:inline-block;
}

/* ============ NAV ============ */
.nav{
  position:fixed;
  inset:0 0 auto 0;
  z-index:60;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:18px var(--pad-x);
  background:linear-gradient(to bottom,rgba(0,0,0,.88),rgba(0,0,0,.3) 70%,rgba(0,0,0,0));
  transition:background .4s var(--ease);
}
.nav.is-solid{
  background:#000;
  border-bottom:1px solid var(--hair-soft);
}

.nav-menu{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#fff;
  padding:10px 16px 10px 14px;
  border:1px solid var(--hair);
  border-radius:9999px;
  transition:border-color .25s var(--ease),background .25s var(--ease);
  justify-self:start;
}
.nav-menu:hover{border-color:#fff;background:rgba(255,255,255,.04)}
.nav-menu-lines{display:inline-flex;flex-direction:column;gap:4px;width:16px}
.nav-menu-lines i{display:block;height:1.2px;width:100%;background:#fff;transition:transform .3s var(--ease),opacity .2s}
.nav-menu-lines i:nth-child(2){width:11px}
body.ov-open .nav-menu-lines i:first-child{transform:translateY(2.6px) rotate(45deg)}
body.ov-open .nav-menu-lines i:last-child{transform:translateY(-2.6px) rotate(-45deg);width:16px}

.nav-mark{
  justify-self:center;
  font-family:var(--f-display);
  font-size:22px;
  letter-spacing:.04em;
  line-height:1;
  text-transform:uppercase;
}
.nav-mark .mark i{font-style:normal;display:inline-block;transform:translateY(-.02em)}

.nav-cta{
  justify-self:end;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#fff;
  padding:10px 18px;
  border:1px solid #fff;
  border-radius:9999px;
  background:transparent;
  transition:background .25s var(--ease),color .25s var(--ease);
}
.nav-cta:hover{background:#fff;color:#000}
.nav-cta .ico{stroke-width:1.5}

@media (max-width:720px){
  .nav-cta span{display:none}
  .nav-cta{padding:10px 12px}
  .nav-menu-lbl{display:none}
  .nav-menu{padding:10px 14px}
}

/* ============ OVERLAY MENU ============ */
.overlay{
  position:fixed;inset:0;z-index:80;
  background:#000;
  opacity:0;pointer-events:none;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .6s var(--ease),opacity .4s var(--ease);
  padding:24px var(--pad-x) 32px;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:32px;
  overflow-y:auto;
}
body.ov-open .overlay{opacity:1;pointer-events:auto;clip-path:inset(0 0 0 0)}
.overlay-head{display:flex;justify-content:space-between;align-items:center}
.ov-eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--mist);
}
.overlay-close{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:#fff;
  padding:10px 16px;border:1px solid var(--hair);border-radius:9999px;
  transition:border-color .25s var(--ease);
}
.overlay-close:hover{border-color:#fff}

.overlay-nav{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:0;
}
.overlay-nav a{
  display:grid;
  grid-template-columns:64px 1fr;
  align-items:baseline;
  padding:clamp(14px,3vw,28px) 0;
  border-bottom:1px solid var(--hair-soft);
  transition:opacity .4s var(--ease),transform .5s var(--ease);
  opacity:0;transform:translateY(24px);
}
body.ov-open .overlay-nav a{
  opacity:1;transform:translateY(0);
  transition-delay:calc(.18s + var(--i, 0) * .05s);
}
.overlay-nav a:first-child{border-top:1px solid var(--hair-soft)}
.overlay-nav a:hover{transform:translateX(16px)}
.ov-n{font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;color:var(--mist)}
.ov-t{
  font-family:var(--f-display);
  font-size:clamp(40px,9vw,96px);
  line-height:1.05;
  letter-spacing:.01em;
  text-transform:uppercase;
}

.overlay-foot{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  padding-top:24px;
  border-top:1px solid var(--hair-soft);
}
@media (max-width:720px){
  .overlay-foot{grid-template-columns:1fr;gap:20px}
}
.ov-col{display:flex;flex-direction:column;gap:6px}
.ov-lbl{font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist)}
.ov-val{font-family:var(--f-body);font-size:14px;line-height:1.4;color:#fff}

/* ============ HERO ============ */
.hero{
  position:relative;
  min-height:100svh;
  padding:clamp(100px,14vh,180px) var(--pad-x) clamp(60px,8vh,100px);
  display:grid;
  grid-template-rows:auto 1fr auto auto auto;
  align-content:center;
  gap:clamp(20px,3vh,40px);
  overflow:hidden;
}
.hero-video{position:absolute;inset:0;z-index:0}
.hero-video video,.hero-video img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.65)}
.hero-vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.3) 50%,rgba(0,0,0,.6) 100%),
    radial-gradient(70% 60% at 50% 45%,rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 100%);
}
.hero>*:not(.hero-video){position:relative;z-index:1}

.hero-meta{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--mist);
  justify-self:center;
}
.hero-meta .tick{width:18px;height:1px;background:var(--mist)}

.hero-mark{
  margin:0;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  font-family:var(--f-display);
  font-size:clamp(72px,18vw,220px);
  line-height:.95;
  letter-spacing:.005em;
  text-transform:uppercase;
  color:#fff;
  text-align:center;
}
.hm-letter{
  display:inline-block;
  transform:translateY(60px);
  opacity:0;
  animation:hmUp .9s var(--ease) forwards;
}
.hm-letter:nth-child(1){animation-delay:.2s}
.hm-letter:nth-child(2){animation-delay:.32s}
.hm-letter:nth-child(3){animation-delay:.44s}
.hm-letter:nth-child(4){animation-delay:.56s}
.hm-dot{display:inline-block;transform:translateY(60px);opacity:0;animation:hmUp .9s var(--ease) .68s forwards;color:#fff}
@keyframes hmUp{to{opacity:1;transform:translateY(0)}}

.hero-sub{
  display:flex;flex-direction:column;gap:4px;
  justify-self:center;
  text-align:center;
  font-family:var(--f-body);
  font-size:clamp(15px,1.4vw,19px);
  line-height:1.5;
  color:#fff;
  max-width:680px;
  letter-spacing:.005em;
}
.hero-sub span:last-child{color:var(--mist);font-size:14px;letter-spacing:.02em}

.hero-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

.hero-scroll{
  display:inline-flex;align-items:center;gap:12px;
  justify-self:center;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--mist);
  margin-top:clamp(16px,3vh,32px);
}
.hs-line{width:28px;height:1px;background:var(--mist);position:relative;overflow:hidden}
.hs-line::after{content:"";position:absolute;inset:0;background:#fff;transform:translateX(-100%);animation:hsRun 2.2s var(--ease) infinite}
@keyframes hsRun{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--f-mono);
  font-size:14px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  padding:14px 22px;
  border-radius:9999px;
  border:1px solid #fff;
  background:transparent;
  color:#fff;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
}
.btn:hover{background:#fff;color:#000}
.btn:active{transform:scale(.98)}
.btn-ghost{border-color:var(--hair);color:#fff}
.btn-ghost:hover{border-color:#fff;background:transparent;color:#fff}
.btn .ico{stroke-width:1.5}

/* ============ TELEMETRY ============ */
.telemetry{
  border-top:1px solid var(--hair-soft);
  border-bottom:1px solid var(--hair-soft);
  padding:clamp(28px,4vw,44px) 0;
  overflow:hidden;
}
.telemetry-track{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:clamp(20px,3vw,48px);
  padding:0 var(--pad-x);
}
@media (max-width:960px){.telemetry-track{grid-template-columns:repeat(2,1fr);row-gap:32px}}
@media (max-width:520px){.telemetry-track{grid-template-columns:1fr;text-align:center}}

.tcell{
  display:flex;flex-direction:column;gap:6px;
  border-left:1px solid var(--hair-soft);
  padding-left:clamp(14px,1.6vw,20px);
}
@media (max-width:520px){.tcell{border-left:0;padding-left:0;border-top:1px solid var(--hair-soft);padding-top:20px}.tcell:first-child{border-top:0;padding-top:0}}

.tn{
  font-family:var(--f-display);
  font-size:clamp(40px,5vw,64px);
  line-height:.95;
  letter-spacing:.005em;
  color:#fff;
}
.tl{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--mist);
}

/* ============ MANIFEST ============ */
.manifest{
  padding:var(--sec-y) var(--pad-x);
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  max-width:1720px;
  margin:0 auto;
}
.manifest-title{
  font-family:var(--f-display);
  font-size:clamp(36px,6.5vw,88px);
  line-height:1.05;
  letter-spacing:.005em;
  text-transform:none;
  color:#fff;
  max-width:18ch;
}
.manifest-title em{
  font-style:italic;
  font-family:"Sora",sans-serif;
  font-weight:300;
  color:var(--mist);
}
.manifest-body{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(24px,3vw,56px);
  max-width:960px;
  margin-left:auto;
}
@media (max-width:720px){.manifest-body{grid-template-columns:1fr}}
.manifest-body p{
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.65;
  color:#fff;
}
.manifest-body p:first-child{color:var(--mist)}

/* ============ PRACTICE — CHAPTERS ============ */
.practice{
  padding:var(--sec-y) 0 0;
}
.practice-head{
  padding:0 var(--pad-x) clamp(40px,6vw,80px);
  max-width:1720px;
  margin:0 auto;
  display:flex;flex-direction:column;gap:20px;
}
.ph-t{
  font-family:var(--f-display);
  font-size:clamp(32px,5vw,72px);
  line-height:1.05;
  max-width:20ch;
  color:#fff;
}

.chapter{
  position:relative;
  min-height:clamp(540px,85vh,820px);
  display:grid;
  align-items:end;
  overflow:hidden;
  border-top:1px solid var(--hair-soft);
}
.chapter-media{position:absolute;inset:0;z-index:0}
.chapter-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.55);transform:scale(1.04);transition:transform 1.2s var(--ease)}
.chapter.is-in .chapter-media img{transform:scale(1)}
.chapter-vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.3) 100%),
    linear-gradient(to right,rgba(0,0,0,.7) 0%,rgba(0,0,0,0) 55%);
}
.chapter-face{
  position:relative;z-index:1;
  padding:clamp(32px,5vw,80px) var(--pad-x);
  max-width:760px;
  display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px);
}
.chap-n{
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--mist);
}
.chap-t{
  font-family:var(--f-display);
  font-size:clamp(44px,8vw,120px);
  line-height:1.0;
  letter-spacing:.005em;
  text-transform:uppercase;
  color:#fff;
  margin:0;
}
.chap-p{
  font-family:var(--f-body);
  font-size:clamp(15px,1.2vw,18px);
  line-height:1.55;
  color:#fff;
  max-width:60ch;
}
.chap-tags{
  display:flex;flex-wrap:wrap;gap:8px;
  margin-top:6px;
}
.chap-tags li{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:6px 12px;
  border:1px solid var(--hair);
  border-radius:9999px;
  color:#fff;
}
.chap-link{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:12px;
  padding-bottom:4px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;
  color:#fff;
  border-bottom:1px solid var(--hair);
  align-self:flex-start;
  transition:border-color .25s var(--ease),gap .25s var(--ease);
}
.chap-link:hover{border-color:#fff;gap:14px}

/* ============ METHOD — FILM STRIP ============ */
.method{
  padding:var(--sec-y) var(--pad-x);
  max-width:1720px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(40px,5vw,72px);
  border-top:1px solid var(--hair-soft);
}
.method-head{display:flex;flex-direction:column;gap:20px}
.method-t{
  font-family:var(--f-display);
  font-size:clamp(32px,5vw,72px);
  line-height:1.05;
  color:#fff;
  max-width:22ch;
}

.stages{display:flex;flex-direction:column}
.stage{
  display:grid;
  grid-template-columns:clamp(60px,8vw,120px) 1fr auto;
  gap:clamp(16px,3vw,48px);
  align-items:baseline;
  padding:clamp(28px,4vw,48px) 0;
  border-top:1px solid var(--hair-soft);
  position:relative;
  transition:transform .35s var(--ease);
}
.stage:last-child{border-bottom:1px solid var(--hair-soft)}
.stage::before{
  content:"";
  position:absolute;
  left:0;top:-1px;height:1px;width:100%;
  background:#fff;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .7s var(--ease);
}
.stage.is-in::before{transform:scaleX(1)}
.stage:hover{transform:translateX(16px)}
.stage-n{
  font-family:var(--f-display);
  font-size:clamp(28px,3.5vw,56px);
  line-height:1;
  color:#fff;
}
.stage-body h3{
  font-family:var(--f-display);
  font-size:clamp(22px,2.4vw,36px);
  line-height:1.1;
  letter-spacing:.005em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:10px;
}
.stage-body p{
  font-family:var(--f-body);
  font-size:14px;
  line-height:1.6;
  color:var(--mist);
  max-width:60ch;
}
.stage-duration{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#fff;
  padding:6px 14px;
  border:1px solid var(--hair);
  border-radius:9999px;
  white-space:nowrap;
  align-self:start;
  margin-top:4px;
}
@media (max-width:720px){
  .stage{grid-template-columns:48px 1fr;grid-template-rows:auto auto}
  .stage-duration{grid-column:1 / -1;justify-self:start;margin-top:8px}
}

/* ============ RECORD — LEDGER ============ */
.record{
  padding:var(--sec-y) var(--pad-x);
  max-width:1720px;margin:0 auto;
  display:grid;
  gap:clamp(32px,4vw,56px);
  border-top:1px solid var(--hair-soft);
}
.record-head{display:flex;flex-direction:column;gap:16px;max-width:720px}
.record-t{
  font-family:var(--f-display);
  font-size:clamp(32px,5vw,72px);
  line-height:1.05;
  color:#fff;
}
.record-p{
  font-family:var(--f-body);font-size:14px;line-height:1.6;color:var(--mist);
}

.ledger{
  display:flex;flex-direction:column;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.ledger-row{
  display:grid;
  grid-template-columns:90px 1fr 180px 200px;
  gap:clamp(12px,2vw,32px);
  padding:clamp(16px,2.4vw,24px) 0;
  border-top:1px solid var(--hair-soft);
  align-items:baseline;
  font-family:var(--f-body);
  font-size:14px;
  line-height:1.45;
}
.ledger-row:first-child{border-top:0}
.ledger-head{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--mist);
}
.ld-y{font-family:var(--f-mono);color:var(--mist)}
.ld-c{color:#fff}
.ld-i{font-family:var(--f-mono);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#fff}
.r-chip{
  display:inline-block;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:6px 12px;
  border:1px solid #fff;
  border-radius:9999px;
  color:#fff;
}
@media (max-width:840px){
  .ledger-row{grid-template-columns:60px 1fr;grid-template-rows:auto auto auto}
  .ledger-head{display:none}
  .ld-i{grid-column:2;color:var(--mist)}
  .ld-r{grid-column:1 / -1;margin-top:8px}
}

/* ============ PRINCIPALS ============ */
.principals{
  padding:var(--sec-y) var(--pad-x);
  max-width:1720px;margin:0 auto;
  display:grid;gap:clamp(32px,4vw,64px);
  border-top:1px solid var(--hair-soft);
}
.principals-head{display:flex;flex-direction:column;gap:16px;max-width:720px}
.principals-t{
  font-family:var(--f-display);
  font-size:clamp(32px,5vw,72px);
  line-height:1.05;
  color:#fff;
}
.principals-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,3vw,56px);
}
@media (max-width:960px){.principals-grid{grid-template-columns:1fr;gap:60px}}
.principal{display:flex;flex-direction:column;gap:24px}
.principal-frame{
  position:relative;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:#000;
}
.principal-frame img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.05) brightness(.9);
  transform:scale(1.03);
  transition:transform 1.2s var(--ease),filter .6s var(--ease);
}
.principal:hover .principal-frame img{transform:scale(1.08);filter:grayscale(1) contrast(1.12) brightness(1)}
.principal-body{display:flex;flex-direction:column;gap:10px}
.pr-role{
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--mist);
}
.pr-name{
  font-family:var(--f-display);
  font-size:clamp(26px,2.4vw,36px);
  line-height:1.1;
  letter-spacing:.005em;
  text-transform:uppercase;
  color:#fff;
}
.pr-bio{
  font-family:var(--f-body);font-size:14px;line-height:1.6;color:#fff;
}
.pr-creds{
  display:flex;flex-direction:column;gap:6px;margin-top:6px;
  font-family:var(--f-mono);font-size:12px;color:var(--mist);
}
.pr-creds li{padding-left:14px;position:relative}
.pr-creds li::before{content:"§";position:absolute;left:0;top:0;color:#fff}

/* ============ PRESS — WITNESSES ============ */
.press{
  padding:var(--sec-y) var(--pad-x);
  max-width:1720px;margin:0 auto;
  display:grid;gap:clamp(32px,4vw,56px);
  border-top:1px solid var(--hair-soft);
}
.press-head{display:flex;flex-direction:column;gap:16px}
.press-t{
  font-family:var(--f-display);
  font-size:clamp(32px,5vw,72px);
  line-height:1.05;
  color:#fff;
  max-width:18ch;
}
.witness{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,36px);
}
@media (max-width:960px){.witness{grid-template-columns:1fr;gap:0}}
.wit-card{
  display:flex;flex-direction:column;gap:20px;
  padding:clamp(24px,3vw,36px) 0;
  border-top:1px solid var(--hair);
}
.wit-card:last-child{border-bottom:1px solid var(--hair)}
@media (min-width:961px){
  .wit-card{border-top:0;border-left:1px solid var(--hair-soft);padding:0 clamp(20px,2.4vw,32px)}
  .wit-card:first-child{border-left:0;padding-left:0}
}
.wit-card blockquote{
  margin:0;
  font-family:var(--f-body);
  font-size:clamp(16px,1.3vw,19px);
  line-height:1.55;
  color:#fff;
  font-style:italic;
  font-weight:300;
}
.wit-card figcaption{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:16px;border-top:1px solid var(--hair-soft)}
.wt-name{font-family:var(--f-mono);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#fff}
.wt-sub{font-family:var(--f-mono);font-size:12px;color:var(--mist)}

/* ============ REQUEST — DOSSIER ============ */
.request{
  padding:var(--sec-y) var(--pad-x);
  max-width:1720px;margin:0 auto;
  display:grid;gap:clamp(32px,4vw,56px);
  border-top:1px solid var(--hair-soft);
}
.req-head{display:flex;flex-direction:column;gap:16px;max-width:720px}
.req-t{
  font-family:var(--f-display);
  font-size:clamp(30px,4.4vw,64px);
  line-height:1.05;
  color:#fff;
}
.req-p{
  font-family:var(--f-body);font-size:14px;line-height:1.5;color:var(--mist);
}

.dossier{
  display:flex;flex-direction:column;gap:clamp(22px,3vw,36px);
  max-width:1100px;
}
.dos-row{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,40px);
}
@media (max-width:720px){.dos-row{grid-template-columns:1fr;gap:22px}}
.dos-field{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:14px;
  row-gap:4px;
  position:relative;
  padding-bottom:10px;
}
.dos-field.dos-brief{grid-template-columns:auto 1fr}
.dos-n{
  grid-column:1;grid-row:1 / span 2;
  align-self:end;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist);
  padding-top:20px;min-width:22px;
}
.dos-l{
  grid-column:2;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist);
}
.dos-field input,
.dos-field textarea{
  grid-column:2;
  width:100%;
  font-family:var(--f-body);font-size:16px;line-height:1.4;color:#fff;
  background:transparent;border:0;outline:0;
  padding:8px 0 10px;
}
.dos-field textarea{resize:vertical;min-height:120px}
.dos-line{
  grid-column:2;
  height:1px;
  background:var(--hair);
  position:relative;
  overflow:hidden;
  transition:background .25s var(--ease);
}
.dos-line::after{
  content:"";position:absolute;inset:0;background:#fff;
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.dos-field:focus-within .dos-line::after{transform:scaleX(1)}
.dos-field.is-invalid .dos-line{background:#fff}
.dos-field.is-invalid .dos-l{color:#fff}

.dos-matter,.dos-urgency{
  border:0;margin:0;padding:0;
  display:flex;flex-direction:column;gap:14px;
}
.dos-matter legend,.dos-urgency legend{
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist);
  padding:0;
}
.matter-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
}
@media (max-width:720px){.matter-grid{grid-template-columns:1fr 1fr}}
.urg-grid{display:flex;flex-wrap:wrap;gap:10px}

.matter-grid label,.urg-grid label{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;
  border:1px solid var(--hair);
  border-radius:9999px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;
  cursor:pointer;
  transition:border-color .25s var(--ease),background .25s var(--ease),color .25s var(--ease);
}
.matter-grid input,.urg-grid input{appearance:none;width:10px;height:10px;border:1px solid var(--mist);border-radius:50%;margin:0;transition:background .2s,border-color .2s}
.matter-grid input:checked,.urg-grid input:checked{background:#fff;border-color:#fff}
.matter-grid label:has(input:checked),.urg-grid label:has(input:checked){border-color:#fff;background:#fff;color:#000}
.matter-grid label:has(input:checked) input,.urg-grid label:has(input:checked) input{background:#000;border-color:#000}
.matter-grid label:hover,.urg-grid label:hover{border-color:#fff}

.dos-consent{
  display:flex;align-items:flex-start;gap:12px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.8px;text-transform:uppercase;color:var(--mist);
  cursor:pointer;
  line-height:1.5;
}
.dos-consent input{appearance:none;width:14px;height:14px;border:1px solid var(--hair);background:transparent;margin-top:2px;flex:none;transition:background .2s,border-color .2s;position:relative}
.dos-consent input:checked{background:#fff;border-color:#fff}
.dos-consent input:checked::after{content:"";position:absolute;inset:3px;background:#000}

.dos-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.dos-err{
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#fff;
  flex:1;min-width:200px;
}
.dos-submit{padding:16px 28px;font-size:14px}
.dos-submit[disabled]{opacity:.5;pointer-events:none}

.dossier-ok{
  display:flex;flex-direction:column;gap:14px;
  padding:clamp(28px,4vw,48px);
  border:1px solid #fff;
  border-radius:6px;
  max-width:720px;
}
.dossier-ok h3{
  font-family:var(--f-display);font-size:clamp(22px,2.4vw,32px);
  line-height:1.1;text-transform:uppercase;color:#fff;
}
.dossier-ok p{font-family:var(--f-body);font-size:14px;line-height:1.6;color:var(--mist)}
.dossier-ok p span{color:#fff}

/* ============ CONTACT ============ */
.contact{
  padding:var(--sec-y) 0 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--hair-soft);
  align-items:stretch;
}
@media (max-width:960px){.contact{grid-template-columns:1fr}}

.contact-body{
  padding:clamp(40px,6vw,80px) var(--pad-x);
  display:flex;flex-direction:column;gap:clamp(24px,3vw,40px);
  border-right:1px solid var(--hair-soft);
}
@media (max-width:960px){.contact-body{border-right:0;border-bottom:1px solid var(--hair-soft)}}

.contact-t{
  font-family:var(--f-display);
  font-size:clamp(36px,5vw,72px);
  line-height:1.05;
  color:#fff;
}
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,36px);
}
@media (max-width:520px){.contact-grid{grid-template-columns:1fr}}
.cc{display:flex;flex-direction:column;gap:6px}
.cc-l{font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist)}
.cc-v{font-family:var(--f-body);font-size:16px;line-height:1.4;color:#fff;word-break:break-word}

.contact-map{
  position:relative;
  min-height:clamp(380px,60vh,600px);
  background:#000;
}
.contact-map iframe{width:100%;height:100%;border:0;position:absolute;inset:0;filter:grayscale(1) invert(.95) contrast(.9) brightness(1.05)}
.map-card{
  position:absolute;left:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);
  background:#000;border:1px solid #fff;
  padding:18px 22px;
  display:flex;flex-direction:column;gap:6px;
  max-width:280px;
  z-index:2;
}
.mc-l{font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist)}
.mc-v{font-family:var(--f-body);font-size:14px;line-height:1.4;color:#fff}

/* ============ FOOTER ============ */
.foot{
  padding:clamp(48px,6vw,80px) var(--pad-x) clamp(24px,3vw,40px);
  display:grid;gap:clamp(40px,5vw,80px);
  border-top:1px solid var(--hair-soft);
}
.foot-meta{
  display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:clamp(16px,2vw,32px);
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--mist);
  line-height:1.5;
}
@media (max-width:720px){.foot-meta{grid-template-columns:1fr;gap:14px}}

.foot-mark{
  font-family:var(--f-display);
  font-size:clamp(80px,22vw,360px);
  line-height:.9;
  letter-spacing:.005em;
  text-transform:uppercase;
  text-align:center;
  color:#fff;
  margin:0;
}
.foot-mark i{font-style:normal}

.foot-tail{
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-top:20px;
  border-top:1px solid var(--hair-soft);
  font-family:var(--f-mono);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mist);
}
.foot-tail a{color:#fff;transition:opacity .25s var(--ease)}
.foot-tail a:hover{opacity:.7}

/* ============ REVEAL ============ */
[data-reveal]{
  opacity:0;transform:translateY(24px);
  transition:opacity .8s var(--ease),transform .9s var(--ease);
}
[data-reveal].is-in{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
