/* ==========================================================================
   Integral BCS — "Before It's Covered"
   --------------------------------------------------------------------------
   base.css owns the reset, wrap, sections, header/nav mechanics, buttons,
   forms, footer skeleton, reveals, preloader shell and the hero headline
   contract. This file supplies the tokens, the trench section, the stage bar
   and the five ruled sections.

   Palette: concrete / ink / blueprint / warn-red — the colour of a marked-up
   drawing, not a website.
   ========================================================================== */

:root{
  /* ---------- the drawing ---------- */
  --concrete:   #e9e6df;
  --concrete-2: #dfdbcf;
  --paper:      #f3f0e8;
  --ink:        #171a1d;
  --ink-2:      #1c2024;
  --ink-3:      #23282d;
  --blue:       #1d4f8c;
  --blue-lit:   #7aa8dd;
  --blue-soft:  #d3ddea;
  --warn:       #c8452f;
  --warn-lit:   #e06a52;
  --rule:       #cfc9bc;

  /* ---------- base.css contract ---------- */
  --ink-text:   #171a1d;
  --ink-mute:   #565b5f;
  --text:       #f3f0ea;
  --muted:      #9aa0a6;
  --surface:    var(--concrete);
  --surface-2:  var(--concrete-2);
  --accent:     var(--blue);
  --accent-lit: var(--blue-lit);
  --accent-2:   var(--warn);
  --line:       rgba(243,240,234,.14);
  --line-d:     rgba(23,26,29,.16);

  /* ---------- type ---------- */
  --font-display: "Domine", Georgia, "Times New Roman", serif;
  --font-body:    "Golos Text", system-ui, -apple-system, sans-serif;
  --font-mono:    "Overpass Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --wrap-max: 1280px;
  --pad: clamp(1.15rem, 4vw, 2.6rem);
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

html{ scroll-padding-top:96px; }
body{
  background:var(--concrete);
  color:var(--ink);
  font-size:17px;
  line-height:1.64;
}
::selection{ background:var(--blue); color:#fff; }
:focus-visible{ outline:2px solid var(--warn); outline-offset:3px; }

/* mono is a material here, not decoration: every label, code and note */
.sect__num{ color:var(--blue); letter-spacing:.2em; }
.sect__lead{ font-size:.97rem; line-height:1.72; }

/* skip link */
.skip{
  position:absolute; left:.5rem; top:.5rem; z-index:10000;
  width:1px; height:1px; overflow:hidden; clip-path:inset(50%);
  padding:.75rem 1.1rem; background:var(--blue); color:#fff;
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
}
.skip:focus{ width:auto; height:auto; clip-path:none; }

/* paper grain — the page is printed, not rendered */
body::after{
  content:""; position:fixed; inset:0; z-index:890; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.hdr{ background:var(--ink); color:var(--text); }
.hdr__in{ min-height:78px; gap:1rem; }
.brand img{ width:146px; height:auto; }
.nav__link{ font-size:.83rem; letter-spacing:-.005em; }
.nav__link:hover{ color:#fff; background:rgba(255,255,255,.06); }
.nav__item.is-open > .nav__link{ color:#fff; }
.hdr__cta{ display:none; padding:.62rem 1rem; font-size:.8rem; }
@media (min-width:1180px){ .hdr__cta{ display:inline-flex; } }
@media (min-width:1024px){ .nav__foot{ display:none; } }

/* ==========================================================================
   HERO — headline above, trench below
   ========================================================================== */
.hero{
  background:var(--concrete);
  color:var(--ink);
  padding-block:0;
  overflow:hidden;
}
.hero__top{
  display:grid;
  grid-template-columns:minmax(0,1.42fr) minmax(0,.58fr);
  gap:clamp(1.6rem,5vw,4.5rem);
  align-items:start;
  padding-block:clamp(2.4rem,5vw,4.4rem) clamp(1.8rem,3.4vw,3rem);
}
.hero__eyebrow{
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem;
  font-family:var(--font-mono); font-size:.64rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--blue);
  margin-bottom:1.2rem;
}
.hero__eyebrow .dot{
  width:7px; height:7px; background:var(--warn); border-radius:50%;
  box-shadow:0 0 0 4px rgba(200,69,47,.14);
}
.hero__sep{ opacity:.45; }

.hero__h1{ letter-spacing:-.024em; color:var(--ink); }
.hero__h1 em{ font-style:normal; color:var(--blue); }

.hero__lead{
  margin-top:1.5rem;
  max-width:54ch;
  font-size:1.03rem; line-height:1.68;
  color:var(--ink-mute);
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.9rem; }
.btn{ border-radius:var(--radius); }
.btn--solid{ background:var(--blue); color:#fff; }
.btn--solid:hover{ background:#17406f; transform:translateY(-2px); }
.btn--ghost{ border:1px solid var(--line-d); color:var(--ink); font-family:var(--font-mono); font-weight:500; }
.btn--ghost:hover{ border-color:var(--blue); color:var(--blue); }

/* the approval plate — a data block, set like a drawing title block */
.plate{
  border:1px solid var(--rule);
  background:var(--paper);
  padding:1.15rem 1.2rem 1rem;
  align-self:end;
}
.plate__h{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-mute);
  padding-bottom:.6rem; border-bottom:1px solid var(--rule);
}
.plate__list{ margin-top:.75rem; display:grid; gap:.55rem; }
.plate__list > div{
  display:grid; grid-template-columns:5.4rem minmax(0,1fr); gap:.6rem;
  align-items:baseline;
}
.plate__list dt{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--blue);
}
.plate__list dd{ font-size:.79rem; line-height:1.42; color:var(--ink); }
.plate__foot{
  margin-top:.9rem; padding-top:.7rem; border-top:1px solid var(--rule);
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute);
}
.plate__foot span{ color:var(--warn); }

/* ---------- the trench drawing ---------- */
.drw{ margin:0; border-top:1px solid var(--rule); background:var(--paper); }
.drw__frame{
  height:clamp(260px, 46vw, 470px);
  border-bottom:1px solid var(--rule);
  overflow:hidden;
}
.drw__svg{ display:block; width:100%; height:100%; }

.drw__head text{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.14em; opacity:.55;
}
.drw__dim{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.12em; fill:var(--blue); }
.drw__note text{ font-family:var(--font-mono); font-size:11px; letter-spacing:.09em; }
.drw__callout text{
  font-family:var(--font-mono); font-size:15px; font-weight:600; letter-spacing:.04em;
}
.drw__callout-sub{
  font-size:11.5px !important; font-weight:400 !important; letter-spacing:.02em !important;
  opacity:.85;
}
@media (max-width:700px){ .drw__callout-sub{ display:none; } }
@media (max-width:430px){ .drw__callout{ display:none; } }
.drw__soil{ opacity:.9; }

.drw__cap{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:1rem 2.4rem;
  align-items:start;
  padding:1.1rem var(--pad) 1.2rem;
  max-width:var(--wrap-max);
  margin-inline:auto;
}
.drw__cap ul{ display:grid; gap:.4rem; }
.drw__cap li{ font-size:.82rem; line-height:1.5; color:var(--ink-mute); }
.drw__cap b{ color:var(--ink); font-weight:600; }
.drw__cap .mk{ color:var(--warn); margin-right:.35rem; }
.drw__cap-r{
  font-family:var(--font-mono); font-size:.62rem; line-height:1.6;
  letter-spacing:.04em; color:var(--ink-mute); text-align:right;
}

/* ==========================================================================
   01 — THE STAGES
   ========================================================================== */
.stages{ background:var(--ink); color:var(--text); }
.stages .sect__num{ color:var(--blue-lit); }
.stages .sect__h2{ color:var(--text); }
.stages .sect__lead--on-dark{ color:rgba(243,240,234,.7); }

/* ---------- stage bar (the signature) ---------- */
.sb{
  margin:0 0 clamp(2rem,4vw,3.2rem);
  border:1px solid rgba(243,240,234,.16);
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.12));
  padding:1rem 1.1rem .9rem;
}
.sb__head{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem;
  font-family:var(--font-mono); font-size:.61rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(243,240,234,.52);
  padding-bottom:.8rem; margin-bottom:.4rem;
  border-bottom:1px solid rgba(243,240,234,.12);
}
.sb__legend{ display:inline-flex; align-items:center; gap:.45rem; }
.sb__legend i{
  width:14px; height:2px; background:var(--warn); display:inline-block;
  box-shadow:0 0 0 3px rgba(200,69,47,.16);
}
.sb__scroll{ overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; }
.sb__scroll:focus-visible{ outline:1px solid var(--blue-lit); outline-offset:4px; }

/* mobile: the same stage sequence as a vertical rail (no horizontal scroller) */
.rail{ display:none; position:relative; padding-left:1.9rem; margin:1.2rem 0 .4rem; }
.rail::before{
  content:""; position:absolute; left:4px; top:.7rem; bottom:.7rem; width:1px;
  background:rgba(243,240,234,.24);
}
.rail::after{
  content:""; position:absolute; left:3px; top:.7rem; bottom:.7rem; width:3px;
  background:var(--blue);
  transform:scaleY(0); transform-origin:top;
}
@media (prefers-reduced-motion: no-preference){
  .rail::after{ animation:railFill 7s var(--ease) .3s both; }
}
@media (prefers-reduced-motion: reduce){ .rail::after{ transform:scaleY(1); } }
@keyframes railFill{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }

.rail li{
  position:relative;
  padding:.85rem 0 .9rem;
  border-bottom:1px solid rgba(243,240,234,.1);
}
.rail li::before{
  content:""; position:absolute; left:-1.9rem; top:1.02rem;
  width:7px; height:7px; background:var(--warn);
  border:2px solid var(--ink); box-sizing:content-box;
  transform:rotate(45deg);
}
.rail__n{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.14em;
  color:var(--blue-lit); margin-right:.55rem;
}
.rail__t{
  font-family:var(--font-display); font-weight:600; font-size:1.02rem;
  letter-spacing:-.01em;
}
.rail__w{
  display:block; margin-top:.25rem;
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--warn-lit);
}
@media (max-width:860px){
  .sb__scroll{ display:none; }
  .rail{ display:block; }
}
.sb__svg{
  display:block; width:100%; min-width:720px;
  height:auto;
  font-family:var(--font-mono);
}
.sb__n{ font-size:12px; fill:var(--blue-lit); letter-spacing:.2em; }
.sb__t{ font-size:20px; fill:var(--text); letter-spacing:.01em; }
.sb__bl text{ font-size:11px; letter-spacing:.16em; }
.sb__cap{
  margin-top:.9rem; padding-top:.8rem;
  border-top:1px solid rgba(243,240,234,.12);
  font-size:.73rem; line-height:1.6; color:rgba(243,240,234,.5);
  max-width:80ch;
}

/* the sweep: the bracket travels, the bar fills, each name prints as it stops */
.sb__prog{ transform-box:fill-box; transform-origin:left center; transform:scaleX(0); }
.sb__buried{ transform-box:fill-box; transform-origin:left center; transform:scaleX(0); }
.sb__brk{ transform:translateX(0); }
.sb__name{ opacity:.26; }

@media (prefers-reduced-motion: no-preference){
  .sb__prog{ animation:sbFill 14s var(--ease) .4s both; }
  .sb__buried{ animation:sbFill 14s var(--ease) .4s both; }
  .sb__brk{ animation:sbSweep 14s var(--ease) .4s both; }
  .sb__name{ animation:sbPrint .01s linear both; }
  .sb__name--1{ animation-delay:1.8s; }
  .sb__name--2{ animation-delay:3.76s; }
  .sb__name--3{ animation-delay:5.72s; }
  .sb__name--4{ animation-delay:7.68s; }
  .sb__name--5{ animation-delay:9.64s; }
}
@keyframes sbSweep{
  0%   { transform:translateX(0); }
  10%  { transform:translateX(104.8px); }
  17%  { transform:translateX(104.8px); }
  24%  { transform:translateX(322.4px); }
  31%  { transform:translateX(322.4px); }
  38%  { transform:translateX(540px); }
  45%  { transform:translateX(540px); }
  52%  { transform:translateX(757.6px); }
  59%  { transform:translateX(757.6px); }
  66%  { transform:translateX(975.2px); }
  100% { transform:translateX(975.2px); }
}
@keyframes sbFill{
  0%   { transform:scaleX(0); }
  10%  { transform:scaleX(.097); }
  17%  { transform:scaleX(.097); }
  24%  { transform:scaleX(.299); }
  31%  { transform:scaleX(.299); }
  38%  { transform:scaleX(.5); }
  45%  { transform:scaleX(.5); }
  52%  { transform:scaleX(.701); }
  59%  { transform:scaleX(.701); }
  66%  { transform:scaleX(.903); }
  82%  { transform:scaleX(1); }
  100% { transform:scaleX(1); }
}
@keyframes sbPrint{ from{ opacity:.26; } to{ opacity:1; } }

/* reduced motion: the completed bar, instantly */
@media (prefers-reduced-motion: reduce){
  .sb__prog, .sb__buried{ transform:scaleX(1); }
  .sb__brk{ transform:translateX(975.2px); }
  .sb__name{ opacity:1; }
}

/* ---------- the five ruled stage blocks ---------- */
.stage{ border-top:1px solid rgba(243,240,234,.18); }
.stage__row{
  display:grid;
  grid-template-columns:minmax(120px,150px) minmax(0,1.18fr) minmax(0,.82fr);
  gap:clamp(1rem,3vw,2.6rem);
  padding-block:clamp(1.25rem,2.6vw,1.9rem);
  border-bottom:1px solid rgba(243,240,234,.13);
  transition:background .3s var(--ease);
}
.stage__row:hover{ background:rgba(255,255,255,.022); }
.stage__row--head{
  padding-block:.6rem;
  border-bottom:1px solid rgba(243,240,234,.18);
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(243,240,234,.42);
}
.stage__n{
  display:block; font-family:var(--font-mono); font-size:1.05rem; font-weight:500;
  color:var(--blue-lit); letter-spacing:.04em;
}
.stage__when{
  display:block; margin-top:.45rem;
  font-family:var(--font-mono); font-size:.6rem; line-height:1.7;
  letter-spacing:.1em; text-transform:uppercase; color:var(--warn-lit);
}
.stage__when .mk{ margin-right:.3rem; }
.stage__t{
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(1.25rem,2.4vw,1.6rem); line-height:1.12; letter-spacing:-.012em;
  margin-bottom:.55rem;
}
.stage__body p{ font-size:.9rem; line-height:1.66; color:rgba(243,240,234,.66); }
.stage__miss p{
  font-size:.83rem; line-height:1.62; color:rgba(243,240,234,.55);
  padding-left:.85rem; border-left:1px solid rgba(200,69,47,.55);
}
.stages__note{
  margin-top:1.5rem;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.04em;
  color:rgba(243,240,234,.55);
}
.stages__note span{ color:var(--warn-lit); margin-right:.4rem; }
.stages__note a{ color:var(--text); border-bottom:1px solid rgba(243,240,234,.4); }
.stages__note a:hover{ color:var(--blue-lit); border-color:var(--blue-lit); }

/* ==========================================================================
   02 — WHAT WE CHECK
   ========================================================================== */
.services{ background:var(--concrete); }
.svc{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(1.6rem,4vw,3.6rem);
  align-items:start;
}
.svc__fig{ border:1px solid var(--rule); background:var(--paper); padding:.55rem; }
.svc__fig img{
  width:100%; aspect-ratio:970/428; object-fit:cover;
  filter:saturate(.72) contrast(1.02);
}
.svc__fig figcaption{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute);
  padding:.6rem .2rem .15rem;
}
.svc__extra{
  margin-top:1.4rem; padding-top:.9rem; border-top:1px solid var(--rule);
  font-size:.82rem; line-height:1.58; color:var(--ink-mute);
}
.svc__extra-h{
  display:block; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue); margin-bottom:.35rem;
}

.svc__list{ border-top:1px solid var(--line-d); }
.svc__list li{
  display:grid;
  grid-template-columns:2.4rem minmax(0,1fr) auto;
  gap:1rem; align-items:baseline;
  padding-block:.92rem;
  border-bottom:1px solid var(--line-d);
}
.svc__n{
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em;
  color:var(--blue); padding-top:.15rem;
}
.svc__t{ font-size:.98rem; line-height:1.45; }
.svc__tag{
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-mute);
  border:1px solid var(--rule); padding:.18rem .42rem; white-space:nowrap;
}
.services__note{
  margin-top:1.8rem; padding-top:1rem; border-top:1px solid var(--rule);
  font-size:.86rem; line-height:1.6; color:var(--ink-mute);
}
.services__note a{
  color:var(--blue); font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.04em; white-space:nowrap; border-bottom:1px solid rgba(29,79,140,.4);
}
.services__note a:hover{ border-color:var(--blue); }

/* ==========================================================================
   03 — WHO WE WORK WITH
   ========================================================================== */
.who{ background:var(--concrete-2); }
.who__grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--line-d);
}
.who__c{
  padding:1.6rem clamp(1rem,2.2vw,1.8rem) 1.8rem;
  border-bottom:1px solid var(--line-d);
  border-left:1px solid var(--line-d);
}
.who__c:first-child{ border-left:0; padding-left:0; }
.who__k{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--blue); margin-bottom:.8rem;
}
.who__t{
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(1.15rem,2vw,1.38rem); line-height:1.14;
  letter-spacing:-.012em; margin-bottom:.6rem;
}
.who__c p:last-child{ font-size:.9rem; line-height:1.66; color:var(--ink-mute); }

.who__places{
  display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,1fr);
  gap:1.4rem 2rem; align-items:baseline;
  padding-top:1.5rem;
}
.who__places-h{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-mute);
}
.who__places-l{
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.8rem;
}
.who__places-l li{ border-left:1px solid var(--line-d); padding-left:.8rem; }
.who__places-l b{
  display:block; font-family:var(--font-display); font-weight:600;
  font-size:.98rem; letter-spacing:-.01em; line-height:1.2;
}
.who__places-l span{
  display:block; margin-top:.2rem;
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-mute);
}

/* ==========================================================================
   04 — WHY AN APPROVED INSPECTOR
   ========================================================================== */
.why{ background:var(--ink); color:var(--text); }
.why .sect__num{ color:var(--blue-lit); }
.why .sect__h2{ color:var(--text); }
.why__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem); align-items:start;
}
.why__lead{
  margin-top:1.35rem; max-width:44ch;
  font-size:.98rem; line-height:1.72; color:rgba(243,240,234,.7);
}
.cred{
  margin-top:2rem; padding-top:1.3rem;
  border-top:1px solid rgba(243,240,234,.16);
  display:grid; gap:1.2rem;
}
.cred__item{ display:flex; align-items:center; gap:1.15rem; flex-wrap:wrap; }
.cred__item img{ flex-shrink:0; }
.cred__item:not(.cred__item--strip) img{ width:104px; height:auto; opacity:.92; }
.cred__item--strip img{
  width:min(220px,52vw); height:auto;
  border:1px solid rgba(243,240,234,.14);
}
.cred__item p{ display:grid; gap:.15rem; }
.cred__item b{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text); font-weight:500;
}
.cred__item span{ font-size:.76rem; line-height:1.5; color:rgba(243,240,234,.5); max-width:30ch; }

.why__list li{
  display:grid; grid-template-columns:3rem minmax(0,1fr);
  gap:.7rem;
  padding-block:1.15rem;
  border-top:1px solid rgba(243,240,234,.14);
}
.why__list li:last-child{ border-bottom:1px solid rgba(243,240,234,.14); }
.why__n{
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.12em;
  color:var(--blue-lit); padding-top:.3rem;
}
.why__t{
  font-family:var(--font-display); font-weight:600;
  font-size:1.06rem; line-height:1.28; letter-spacing:-.008em;
  margin-bottom:.35rem;
}
.why__list p{ font-size:.86rem; line-height:1.62; color:rgba(243,240,234,.6); }

/* ==========================================================================
   05 — TESTIMONIALS
   ========================================================================== */
.tst{ background:var(--concrete); }
.tst__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--line-d);
}
.tst__q{
  padding:1.7rem 0 1.9rem;
  border-bottom:1px solid var(--line-d);
  display:flex; flex-direction:column; gap:1.1rem;
}
.tst__q:nth-child(2){ padding-right:clamp(1rem,2.4vw,2rem); border-right:1px solid var(--line-d); }
.tst__q:nth-child(3){ padding-left:clamp(1rem,2.4vw,2rem); }
.tst__q--lead{
  grid-column:1 / -1;
  padding-right:0;
  border-right:0;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,.5fr);
  gap:clamp(1.4rem,4vw,3rem);
  align-items:end;
}
.tst__q blockquote{
  font-family:var(--font-display); font-weight:400;
  font-size:1.18rem; line-height:1.42; letter-spacing:-.008em;
  color:var(--ink);
  text-wrap:pretty;
}
.tst__q--lead blockquote{ font-size:clamp(1.4rem,2.5vw,1.95rem); line-height:1.32; }
.tst__q figcaption{
  display:flex; align-items:center; gap:.55rem;
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-mute);
}
.tst__q figcaption b{ color:var(--ink); font-weight:600; }
.tst__mark{ color:var(--warn); font-size:.7rem; }

.blogteaser{
  display:grid;
  grid-template-columns:auto minmax(0,.6fr) minmax(0,1.1fr) auto;
  gap:1rem 1.6rem; align-items:baseline;
  margin-top:clamp(1.8rem,3.4vw,2.6rem);
  padding:1.15rem 1.25rem;
  border:1px solid var(--rule);
  background:var(--paper);
  transition:border-color .25s, transform .25s var(--ease);
}
.blogteaser:hover{ border-color:var(--blue); transform:translateY(-2px); }
.blogteaser__k{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--warn);
}
.blogteaser__t{
  font-family:var(--font-display); font-weight:600; font-size:1.02rem;
  letter-spacing:-.01em;
}
.blogteaser__d{ font-size:.83rem; line-height:1.55; color:var(--ink-mute); }
.blogteaser__a{
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em;
  color:var(--blue); white-space:nowrap;
}

/* ==========================================================================
   06 — CONTACT
   ========================================================================== */
.contact{ background:var(--blue); color:#fff; }
.contact .sect__h2{ color:#fff; }
.sect__num--on-blue{ color:rgba(255,255,255,.66) !important; }
.contact__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem); align-items:start;
}
.contact__lead{
  margin-top:1.25rem; max-width:40ch;
  font-size:.98rem; line-height:1.7; color:rgba(255,255,255,.78);
}
.contact__acts{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.8rem; }
.btn--white{ background:#fff; color:var(--blue); font-family:var(--font-mono); font-weight:500; }
.btn--white:hover{ background:var(--concrete); transform:translateY(-2px); }
.btn--onblue{
  border:1px solid rgba(255,255,255,.42); color:#fff;
  font-family:var(--font-mono); font-size:.8rem; font-weight:400;
  overflow-wrap:anywhere;
}
.btn--onblue:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

.contact__addr{
  margin-top:2rem; padding-top:1.1rem;
  border-top:1px solid rgba(255,255,255,.28);
  font-size:.88rem; line-height:1.65; color:rgba(255,255,255,.82);
}
.contact__addr b{
  display:block; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:.4rem;
}

.contact__h{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(255,255,255,.6);
  padding-bottom:.7rem; border-bottom:1px solid rgba(255,255,255,.3);
}
.contact__offices ul{ margin-top:.2rem; }
.contact__offices li{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:.2rem 1.2rem; align-items:baseline;
  padding-block:.85rem;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.contact__offices b{
  font-family:var(--font-display); font-weight:600; font-size:.96rem;
  letter-spacing:-.008em;
}
.contact__offices li > span{
  grid-column:1; font-size:.79rem; line-height:1.5; color:rgba(255,255,255,.66);
}
.contact__offices li > a{
  grid-column:2; grid-row:1 / span 2; align-self:center;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.03em;
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
}
.contact__offices li > a:hover{ border-color:#fff; }
.contact__small{
  margin-top:1.1rem; font-size:.72rem; line-height:1.6; color:rgba(255,255,255,.55);
  max-width:46ch;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--ink); color:var(--text); }
.foot__logo{ width:150px; height:auto; margin-bottom:1.15rem; }
.foot__blurb{ font-size:.82rem; line-height:1.62; color:rgba(243,240,234,.58); max-width:36ch; }
.foot__reg{
  margin-top:.8rem; font-family:var(--font-mono); font-size:.58rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--blue-lit);
}
.foot__h{ color:rgba(243,240,234,.45); }
.foot__nav > div{ min-width:0; }
.foot__nav a{
  color:rgba(243,240,234,.76);
  overflow-wrap:anywhere;
}
.foot__nav a:hover{ color:#fff; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1100px){
  .hero__top{ grid-template-columns:minmax(0,1fr); }
  .plate{ max-width:520px; }
  .who__grid{ grid-template-columns:minmax(0,1fr); }
  .who__c{ border-left:0; padding-left:0; padding-right:0; }
  .who__c + .who__c{ border-top:0; }
  .who__places{ grid-template-columns:minmax(0,1fr); }
  .who__places-l{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem .8rem; }
  .blogteaser{ grid-template-columns:1fr auto; }
  .blogteaser__k{ grid-column:1 / -1; }
  .blogteaser__d{ grid-column:1 / -1; }
}

@media (max-width:900px){
  .svc{ grid-template-columns:minmax(0,1fr); }
  .svc__aside{ display:grid; grid-template-columns:minmax(0,1fr); }
  .why__grid{ grid-template-columns:minmax(0,1fr); }
  .contact__grid{ grid-template-columns:minmax(0,1fr); }
  .tst__q--lead{ grid-template-columns:minmax(0,1fr); }
  .tst__q--lead blockquote{ font-size:1.3rem; }
  .stage__row{ grid-template-columns:minmax(92px,116px) minmax(0,1fr); }
  .stage__row--head{ display:none; }
  .stage__miss{ grid-column:2; padding-top:.2rem; }
  .stage__miss p{ padding-left:0; border-left:0; padding-top:.65rem; border-top:1px solid rgba(243,240,234,.1); }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .hero__top{ padding-top:2rem; }
  .hero__lead{ font-size:.98rem; }
  .hero__acts .btn{ flex:1 1 auto; justify-content:center; }
  .plate{ padding:1rem; }
  .plate__list > div{ grid-template-columns:4.8rem minmax(0,1fr); }
  .drw__cap{ grid-template-columns:minmax(0,1fr); padding-inline:var(--pad); }
  .drw__cap-r{ text-align:left; }
  .stage__row{ grid-template-columns:minmax(0,1fr); gap:.55rem; }
  .stage__miss{ grid-column:1; }
  .stage__id{ display:flex; align-items:baseline; gap:.7rem; flex-wrap:wrap; }
  .stage__when{ margin-top:0; }
  .stage__t{ font-size:1.22rem; }
  .tst__grid{ grid-template-columns:minmax(0,1fr); }
  .tst__q:nth-child(2){ padding-right:0; border-right:0; }
  .tst__q:nth-child(3){ padding-left:0; }
  .tst__q blockquote{ font-size:1.08rem; }
  .tst__q--lead blockquote{ font-size:1.16rem; }
  .blogteaser{ grid-template-columns:minmax(0,1fr); }
  .blogteaser__a{ white-space:normal; }
  .who__places-l{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact__offices li{ grid-template-columns:minmax(0,1fr); }
  .contact__offices li > a{ grid-column:1; grid-row:auto; justify-self:start; margin-top:.35rem; }
  .svc__list li{ grid-template-columns:2rem minmax(0,1fr); gap:.2rem .7rem; }
  .svc__tag{ grid-column:2; justify-self:start; }
  .foot__bottom{ font-family:var(--font-body); font-size:.74rem; }
  .foot__nav > div:nth-child(3){ grid-column:1 / -1; }
}

@media (max-width:380px){
  .hero__eyebrow{ font-size:.57rem; }
  .sb{ padding:.8rem .7rem; }
  .who__places-l{ grid-template-columns:minmax(0,1fr); }
}
