/* ==========================================================================
   Thermal Image UK — "The Gradient"
   --------------------------------------------------------------------------
   base.css owns reset, wrap, sections, header/nav/mega mechanics, buttons,
   forms, footer skeleton, reveals, preloader shell and the hero contract.
   This file supplies the palette, the elevation drawing and the seven sections.

   The page is a survey report: white cover, ink brief, white survey table,
   a cold band of images, white air test, ink report, white reviews, and a
   warm contact band. Cold to warm, once, top to bottom.
   ========================================================================== */

:root{
  /* ---------- the brief's palette ---------- */
  --ink:      #12161a;
  --white:    #ffffff;
  --steel:    #767f86;   /* the brief's token */
  --steel-d:  #646d74;   /* the same grey, dark enough for 10px text on white */
  --steel-l:  #8d979d;   /* and light enough for text on ink */
  --cold:     #1f4fa0;
  --warm:     #e0642a;

  /* ---------- surfaces ---------- */
  --ink-2:    #181d22;
  --ink-3:    #1e242a;
  --surface:  #ffffff;   /* no bone, no cream — solid white */
  --surface-2:#f5f6f7;   /* small functional blocks only */
  --text:     #f1f4f5;
  --muted:    #9aa3a9;
  --ink-text: #12161a;
  --ink-mute: #5f6a72;

  /* ---------- base.css contract ---------- */
  --accent:     var(--cold);
  --accent-lit: #7fa4e0;
  --accent-2:   var(--warm);
  --line:       rgba(255,255,255,.13);   /* hairline on ink  */
  --line-d:     rgba(18,22,26,.13);      /* hairline on white */

  /* ---------- type ---------- */
  --font-display: "Gilda Display", Georgia, "Times New Roman", serif;
  --font-body:    "Gantari", system-ui, -apple-system, sans-serif;
  --font-mono:    "VT323", ui-monospace, "SFMono-Regular", monospace;

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

html{ scroll-padding-top:88px; }
body{
  background:var(--white);
  color:var(--ink);
  font-size:17px;
  font-weight:400;
  line-height:1.64;
}
::selection{ background:var(--warm); color:#fff; }
:focus-visible{ outline:2px solid var(--warm); outline-offset:3px; }

.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(--ink); color:#fff;
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.08em;
}
.skip:focus{ width:auto; height:auto; clip-path:none; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* a very light survey-paper grain over everything */
body::after{
  content:""; position:fixed; inset:0; z-index:880; pointer-events:none; opacity:.022;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* ---------- type: a report, set in a high-contrast serif ---------- */
.sect__h2{ font-weight:400; letter-spacing:-.022em; line-height:1.04; max-width:19ch; }
.sect__num{ font-size:.66rem; letter-spacing:.22em; }
.sect__lead{ font-size:1rem; line-height:1.68; max-width:46ch; }
.sect__aside{ min-width:0; }
.sect--light .sect__lead{ color:var(--ink-mute); }

.note{
  display:flex; gap:.55rem; margin-top:1.05rem; padding-top:.7rem;
  border-top:1px solid var(--line-d);
  font-family:var(--font-mono); font-size:.72rem; line-height:1.5; letter-spacing:.02em;
  color:var(--steel-d);
}
.note span{ color:var(--cold); white-space:nowrap; }
.note--light{ border-top-color:var(--line); color:rgba(255,255,255,.62); }
.note--light span{ color:#fff; }

/* ==========================================================================
   PRELOADER — the scale filling a gable
   ========================================================================== */
.pre{ background:var(--ink); }
.pre__mark svg{ width:126px; height:auto; display:block; }
.pre__roof,.pre__wall{ stroke:rgba(241,244,245,.62); stroke-width:1.5; fill:none; }
.pre__iso{ stroke:rgba(241,244,245,.3); stroke-width:1; fill:none; }
.pre__fill{
  fill:url(#preGrad);
  transform:scaleY(0); transform-origin:bottom; transform-box:fill-box;
  animation:preFill 1.6s var(--ease) .1s forwards;
}
@keyframes preFill{ to{ transform:scaleY(1); } }
.pre__meta{ color:rgba(241,244,245,.5); font-size:.78rem; letter-spacing:.14em; }
.pre__pct{ color:var(--warm); }
.pre__bar{ background:rgba(255,255,255,.14); height:2px; }
.pre__bar i{ background:linear-gradient(90deg,var(--cold),var(--warm)); }

/* ==========================================================================
   HEADER + NAV
   ========================================================================== */
.hdr{ background:var(--ink); border-bottom:1px solid var(--line); }
.hdr__in{ min-height:74px; gap:1rem; }
.brand{ display:flex; align-items:center; gap:.55rem; }
.brand img{ width:32px; height:auto; }
.brand__wm{
  font-size:.95rem; font-weight:500; letter-spacing:-.008em; color:#fff; white-space:nowrap;
}
.brand__wm b{ color:var(--steel); font-weight:500; }

.nav__list{ gap:0; }
.nav__link{
  font-size:.755rem; font-weight:500; letter-spacing:.07em;
  padding:.55rem .66rem; color:rgba(241,244,245,.82);
}
.nav__link:hover{ color:#fff; background:rgba(255,255,255,.055); }
.nav__item.is-open > .nav__link{ color:var(--warm); }
.nav__util{ display:none; }
.nav__util .nav__link{ font-family:var(--font-mono); font-size:.9rem; letter-spacing:.04em; color:var(--steel); }
.nav__cta{ margin-left:.55rem; }
.nav__cta .nav__link{
  background:var(--warm); color:var(--ink); border-radius:2px;
  padding:.6rem 1rem; font-weight:600; letter-spacing:.02em;
}
.nav__cta .nav__link:hover{ background:#ea7038; color:var(--ink); }
.nav__foot{ display:none; }
@media (min-width:1180px){ .nav__util{ display:block; } }

/* mega panel: two link columns + a note */
.mega{ background:var(--ink-2); border:1px solid var(--line); border-radius:2px; }
.megap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem; }
.megap__col{ min-width:0; }
.megap__col--note{ border-left:1px solid var(--line); padding-left:1.4rem; }
.mega__h{ font-size:.58rem; letter-spacing:.2em; color:var(--warm); }
.mega__h--gap{ margin-top:1.2rem; }
.mega a{ display:flex; align-items:baseline; gap:.5rem; font-size:.79rem; letter-spacing:.03em; }
.mega__sub a{ font-size:.74rem; color:rgba(241,244,245,.62); }
.megap__n{ font-family:var(--font-mono); font-size:.72rem; color:var(--steel); }
.megap__note{ margin-top:.6rem; font-size:.8rem; line-height:1.55; color:rgba(241,244,245,.6); }
.mega .megap__all{
  display:inline-flex; margin-top:1rem; font-size:.78rem; color:var(--warm);
  border-bottom:1px solid var(--warm); padding-bottom:2px;
}

/* ==========================================================================
   HERO — the elevation read as a temperature scale
   ========================================================================== */
.hero{ padding-block:0; background:var(--white); }
.hero__in{
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(1.8rem,4vw,4rem); align-items:center;
  padding-block:clamp(2.2rem,4.4vw,3.6rem) clamp(2.6rem,5vw,4.2rem);
}
.hero__copy{ min-width:0; }
.hero__eyebrow{
  display:flex; flex-wrap:wrap; align-items:center; gap:.6rem;
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--steel-d); margin-bottom:1.1rem;
}
.hero__eyebrow span{
  background:var(--ink); color:#fff; padding:.28rem .5rem .2rem; letter-spacing:.14em;
}
.hero__h1{ font-weight:400; letter-spacing:-.03em; }
.hero__lead{
  margin-top:1.15rem; max-width:42ch;
  font-size:1.02rem; line-height:1.66; color:var(--ink-mute);
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.7rem; }
.hero .btn--solid{ background:var(--ink); color:#fff; }
.hero .btn--solid:hover{ background:var(--warm); color:var(--ink); }
.hero .btn--ghost{ border:1px solid var(--line-d); color:var(--ink); font-family:var(--font-mono); font-size:1.02rem; letter-spacing:.04em; }
.hero .btn--ghost:hover{ border-color:var(--ink); background:var(--ink); color:#fff; }

.hero__facts{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.6rem 1rem; margin-top:clamp(1.8rem,3.4vw,2.6rem); padding-top:1rem;
  border-top:1px solid var(--line-d);
}
.hero__facts b{ display:block; font-size:.8rem; font-weight:600; letter-spacing:-.005em; }
.hero__facts span{ display:block; font-family:var(--font-mono); font-size:.74rem; line-height:1.35; color:var(--steel-d); }

/* the figure */
.fig{
  position:relative; min-width:0; margin:0;
  border:1px solid var(--line-d); background:var(--white);
  padding:clamp(.75rem,1.6vw,1.05rem) clamp(.75rem,1.6vw,1.05rem) .9rem;
}
.fig__top{
  display:flex; justify-content:space-between; gap:1rem;
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.14em;
  color:var(--steel-d); padding-bottom:.5rem;
}
.fig__tag--r{ color:var(--ink); }
.fig__body{ display:flex; align-items:stretch; gap:.55rem; }
.fig__svg{ display:block; width:100%; height:auto; flex:1; min-width:0; align-self:flex-start; color:var(--ink); }
.fmark circle{ fill:#fff; stroke:var(--ink); stroke-opacity:.3; stroke-width:1; }
.fmark text{ font-family:var(--font-mono); font-size:11px; fill:var(--ink); text-anchor:middle; }

.fig__scale{
  width:clamp(36px,8%,48px); flex-shrink:0;
  display:flex; flex-direction:column; align-items:center; gap:.3rem;
  padding-block:.15rem .1rem;
}
.fig__scaleu{ font-family:var(--font-mono); font-size:.9rem; line-height:1; color:var(--ink); }
.fig__scalew,.fig__scalec{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.12em; line-height:1;
  color:var(--steel-d);
}
.fig__scaletrack{
  position:relative; flex:1; width:9px; min-height:90px;
  background:var(--surface-2); overflow:hidden;
}
.fig__scaletrack i{
  position:absolute; inset:0;
  background:linear-gradient(to top,var(--cold),#8a5a9e 52%,var(--warm));
  transform:scaleY(0); transform-origin:bottom;
  transition:transform 1.2s var(--ease);
}
body.loaded .fig__scaletrack i{ transform:scaleY(1); }
.fig__scaletrack::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to top,rgba(255,255,255,.7) 0 1px,transparent 1px 10%);
}

.fig__cap{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.2rem 1rem;
  margin-top:.7rem; padding-top:.6rem; border-top:1px solid var(--line-d);
  font-family:var(--font-mono); font-size:.68rem; line-height:1.4; color:var(--steel-d);
}
.fig__capfig{ color:var(--ink); }
.fig__reads{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; margin-top:.65rem; }
.fig__reads li{
  display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto;
  column-gap:.45rem; border-top:2px solid var(--ink); padding-top:.4rem;
}
.fig__n{ grid-row:1 / 3; font-family:var(--font-mono); font-size:.78rem; color:var(--cold); padding-top:.1rem; }
.fig__l{ font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; color:var(--steel-d); line-height:1.3; }
.fig__r{ font-family:var(--font-mono); font-size:1.15rem; line-height:1; color:var(--ink); }

/* ==========================================================================
   01 — BRIEF: two tests, one leak
   ========================================================================== */
.sect--dark{ background:var(--ink); color:var(--text); }
.sect--dark .sect__num{ color:var(--accent-lit); }
.sect--dark .sect__lead{ color:rgba(241,244,245,.68); }

.pair{ position:relative; overflow:hidden; }
.pair::before{
  content:""; position:absolute; inset:0 0 auto; height:3px;
  background:linear-gradient(90deg,var(--cold),#8a5a9e 52%,var(--warm));
}
.pair__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.14fr) minmax(0,1fr);
  gap:clamp(1.4rem,3vw,2.6rem); align-items:start;
}
.pair__col{ min-width:0; border-top:1px solid var(--line); padding-top:1rem; }
.pair__k{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-lit); }
.pair__t{ margin-top:.35rem; font-family:var(--font-display); font-size:1.32rem; font-weight:400; letter-spacing:-.01em; }
.pair__list{ margin-top:.85rem; display:grid; gap:.6rem; }
.pair__list li{ position:relative; padding-left:1rem; font-size:.86rem; line-height:1.55; color:rgba(241,244,245,.72); }
.pair__list li::before{ content:""; position:absolute; left:0; top:.62em; width:7px; height:1px; background:var(--steel); }
.pair__x{
  margin-top:.9rem; padding-left:.7rem; border-left:1px solid rgba(255,255,255,.22);
  font-family:var(--font-mono); font-size:.74rem; line-height:1.45; color:var(--steel-l);
}
.pair__fig{
  min-width:0; max-width:520px; margin-inline:auto; padding:1rem 1rem .8rem;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(224,100,42,.05),rgba(31,79,160,.07));
}
.pair__fig svg{ display:block; width:100%; height:auto; color:rgba(241,244,245,.9); }
.pair__lab{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; line-height:1.4;
  text-transform:uppercase; color:rgba(241,244,245,.6);
}
.pair__lab span{ display:block; font-size:.62rem; letter-spacing:.18em; }
.pair__lab--in span{ color:var(--warm); }
.pair__lab--out{ text-align:right; }
.pair__lab--out span{ color:#8fb0e6; }
.pair__foot{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1rem;
  margin-top:clamp(1.6rem,3vw,2.4rem); padding-top:1rem; border-top:1px solid var(--line);
  font-size:.92rem; color:rgba(241,244,245,.72);
}
.pair__foot > span{ font-family:var(--font-mono); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--warm); }
.pair__foot a{ color:#fff; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:1px; }

/* ==========================================================================
   02 — SURVEY: the services table
   ========================================================================== */
.svc__table{ width:100%; border-collapse:collapse; }
.svc__table thead th{
  padding:0 .9rem .6rem 0; text-align:left; vertical-align:bottom;
  border-bottom:1px solid var(--ink);
  font-family:var(--font-mono); font-size:.68rem; font-weight:400;
  letter-spacing:.16em; text-transform:uppercase; color:var(--steel-d);
}
.svc__table tbody th,.svc__table tbody td{
  padding:1.15rem .9rem 1.15rem 0; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--line-d);
}
.svc__table thead th:first-child,.svc__table tbody th{ width:25%; }
.svc__table tbody th{ font-weight:500; font-size:1rem; line-height:1.35; }
.svc__n{ display:block; font-family:var(--font-mono); font-size:.74rem; color:var(--cold); margin-bottom:.15rem; }
.svc__table tbody th a{ border-bottom:1px solid transparent; transition:border-color .2s, color .2s; }
.svc__table tbody tr:hover th a{ border-bottom-color:var(--cold); color:var(--cold); }
.svc__table tbody td{ width:31%; font-size:.86rem; line-height:1.6; color:var(--ink-mute); }
.svc__go{ width:44px; text-align:right !important; color:var(--cold); font-size:1.05rem; }
.svc__table tbody tr{ transition:background .2s; }
.svc__table tbody tr:hover{ background:var(--surface-2); }

/* ==========================================================================
   03 — IMAGES: the cold band
   ========================================================================== */
.sect--cold{ background:var(--cold); color:#fff; }
.sect--cold .sect__num{ color:rgba(255,255,255,.66); }
.sect--cold .sect__lead{ color:rgba(255,255,255,.82); }
.sect--cold .sect__h2{ color:#fff; }
.img__grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(1.6rem,4vw,3.2rem); }
.img__fig{ min-width:0; }
.img__frame{ position:relative; overflow:hidden; background:#14346a; }
.img__frame img{ width:100%; aspect-ratio:1000/650; object-fit:cover; }
.img__tag{
  position:absolute; top:0; left:0; padding:.35rem .55rem .28rem;
  background:#fff; color:var(--cold);
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.18em;
}
.img__fig figcaption{ margin-top:.9rem; max-width:58ch; font-size:.84rem; line-height:1.62; color:rgba(255,255,255,.76); }
.img__fig figcaption b{ display:block; margin-bottom:.2rem; color:#fff; font-weight:600; }
.img__h{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.img__list{ margin-top:.6rem; }
.img__list li{ border-top:1px solid rgba(255,255,255,.24); }
.img__list li:last-child{ border-bottom:1px solid rgba(255,255,255,.24); }
.img__list a{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.72rem 0; font-size:.9rem; line-height:1.35; min-width:0; overflow-wrap:anywhere; }
.img__list a span{ color:rgba(255,255,255,.6); transition:transform .2s var(--ease), color .2s; }
.img__list a:hover span{ transform:translateX(3px); color:#fff; }
.img__all{
  display:inline-block; margin-top:1.1rem; font-size:.84rem; color:#fff;
  border-bottom:1px solid rgba(255,255,255,.55); padding-bottom:1px;
}

/* ==========================================================================
   04 — AIR TEST
   ========================================================================== */
.air__grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(1.6rem,4vw,3.2rem); align-items:start; }
.air__fig{ min-width:0; }
.air__fig img{ width:100%; aspect-ratio:1000/650; object-fit:cover; }
.air__fig figcaption{ margin-top:.8rem; font-size:.78rem; line-height:1.55; color:var(--steel-d); }
.air__fig figcaption span{ display:block; font-family:var(--font-mono); font-size:.7rem; }
.air__copy{ min-width:0; }
.air__copy > p{ max-width:54ch; font-size:.98rem; line-height:1.68; color:var(--ink-mute); }
.air__spec{ margin-top:1.5rem; background:var(--surface-2); padding:.15rem 1rem; }
.air__spec > div{
  display:grid; grid-template-columns:minmax(88px,.3fr) minmax(0,1fr); gap:1rem;
  padding:.72rem 0; border-bottom:1px solid rgba(18,22,26,.09);
}
.air__spec > div:last-child{ border-bottom:0; }
.air__spec dt{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-d); padding-top:.15rem; }
.air__spec dd{ font-size:.86rem; line-height:1.5; color:var(--ink); }
.air__link a{ display:inline-block; margin-top:1.2rem; font-size:.86rem; border-bottom:1px solid var(--cold); padding-bottom:1px; color:var(--cold); }

.claim{ margin:1.5rem 0 0; padding:.15rem 0 .15rem 1.1rem; border-left:2px solid var(--warm); }
.claim p{ font-family:var(--font-display); font-size:1.14rem; line-height:1.34; letter-spacing:-.008em; color:var(--ink); }
.claim cite{
  display:block; margin-top:.5rem; font-style:normal;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--steel-d);
}
.claim--dark{ border-left-color:var(--accent-lit); }
.claim--dark p{ color:#fff; }
.claim--dark cite{ color:rgba(241,244,245,.55); }

/* ==========================================================================
   05 — REPORT
   ========================================================================== */
.rep__grid{ display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:clamp(1.6rem,4vw,3.2rem); align-items:start; }
.rep__fig{ min-width:0; }
.rep__fig img{ width:100%; aspect-ratio:5/6; object-fit:cover; object-position:center 22%; filter:saturate(.94); }
.rep__fig figcaption{ margin-top:.8rem; font-size:.78rem; color:var(--steel-l); }
.rep__fig figcaption span{ display:block; font-family:var(--font-mono); font-size:.7rem; }
.rep__copy{ min-width:0; }
.rep__lead{ max-width:56ch; font-size:1.02rem; line-height:1.68; color:rgba(241,244,245,.84); }
.rep__team{ margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid var(--line); }
.rep__k{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--warm); margin-bottom:.4rem; }
.rep__team p:last-child{ max-width:56ch; font-size:.9rem; line-height:1.6; color:rgba(241,244,245,.66); }
.rep__marks{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.4rem; }
.rep__marks li{
  border:1px solid var(--line); padding:.35rem .6rem .28rem;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(241,244,245,.62);
}

/* ==========================================================================
   06 — REVIEWS
   ========================================================================== */
.rev__grid{ display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:clamp(1.6rem,4vw,3.4rem); align-items:end; }
.rev__q{ min-width:0; }
.rev__q blockquote{ margin-top:.6rem; }
.rev__q blockquote p{
  font-family:var(--font-display); font-size:clamp(1.5rem,3.4vw,2.45rem);
  line-height:1.16; letter-spacing:-.02em; max-width:24ch;
}
.rev__q cite{
  display:block; margin-top:1.1rem; font-style:normal;
  font-family:var(--font-mono); font-size:.84rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink);
}
.rev__note{ margin-top:1.2rem; max-width:44ch; font-size:.8rem; line-height:1.55; color:var(--steel-d); }
.rev__a{
  display:inline-block; margin-top:1rem; font-size:.88rem; color:var(--cold);
  border-bottom:1px solid var(--cold); padding-bottom:1px;
}
.rev__fig{ min-width:0; }
.rev__fig img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.rev__fig figcaption{ margin-top:.8rem; font-size:.78rem; color:var(--steel-d); }
.rev__fig figcaption span{ display:block; font-family:var(--font-mono); font-size:.7rem; }

/* ==========================================================================
   07 — CONTACT: the warm end of the scale
   ========================================================================== */
.con{ position:relative; background:var(--warm); color:var(--ink); overflow:hidden; }
.con::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(80% 120% at 92% -10%, rgba(255,255,255,.24), transparent 62%);
}
.con .wrap{ position:relative; z-index:1; }
.con .sect__num{ color:var(--ink); }
.con__top{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.4rem 2rem; align-items:end; }
.con__h{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(2rem,4.8vw,3.5rem); line-height:1.02; letter-spacing:-.025em;
}
.con__acts{ display:flex; flex-wrap:wrap; gap:.6rem; }
.con .btn--solid{ background:var(--ink); color:#fff; }
.con .btn--solid:hover{ background:#000; }
.btn--line{ border:1px solid rgba(18,22,26,.4); color:var(--ink); }
.btn--line:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.con__tel{
  display:inline-block; margin:clamp(1.4rem,3vw,2.2rem) 0 clamp(1.6rem,3vw,2.2rem);
  font-family:var(--font-mono); font-size:clamp(2.3rem,7.6vw,5.4rem); line-height:.95;
  letter-spacing:.005em; color:var(--ink);
  border-bottom:2px solid rgba(18,22,26,.3); padding-bottom:.1em;
}
.con__tel:hover{ border-bottom-color:var(--ink); }
.con__grid{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(1.4rem,3vw,2.4rem);
  padding-top:1.3rem; border-top:1px solid rgba(18,22,26,.26);
}
.con__facts{ display:grid; gap:1.05rem; min-width:0; }
.con__facts dt{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink); margin-bottom:.15rem;
}
.con__facts dd{ font-size:.88rem; line-height:1.55; overflow-wrap:anywhere; }
.con__facts a{ border-bottom:1px solid rgba(18,22,26,.3); }
.con__facts a:hover{ border-bottom-color:var(--ink); }
.con__h2{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); margin-bottom:.6rem; }
.con__areas ul{ display:flex; flex-wrap:wrap; gap:.3rem .95rem; }
.con__areas a{ font-size:.86rem; border-bottom:1px solid rgba(18,22,26,.28); }
.con__areas a:hover{ border-bottom-color:var(--ink); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--ink); border-top:1px solid var(--line); }
.brand--foot{ margin-bottom:1.1rem; }
.brand--foot img{ width:40px; }
.foot__blurb{ max-width:36ch; font-size:.85rem; line-height:1.62; color:rgba(241,244,245,.6); }
.foot__nav{ grid-template-columns:1fr 1fr .85fr 1.25fr; }
.foot__nav a{ overflow-wrap:anywhere; }
.foot__tel{ margin-top:.8rem; font-family:var(--font-mono); font-size:1.05rem; letter-spacing:.04em; }
.foot__tel a{ color:#fff; }
.foot__fine{
  display:flex; flex-wrap:wrap; gap:.4rem 1.2rem;
  margin-top:1.1rem; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em;
  color:rgba(241,244,245,.55);
}
.foot__fine a:hover{ color:#fff; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (min-width:961px){
  .hero__in{ min-height:min(760px, calc(100svh - 74px)); }
}

@media (max-width:1180px){
  .foot__top{ grid-template-columns:minmax(0,1fr); }
}

@media (max-width:1023px){
  .foot__nav{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}

@media (max-width:1100px){
  .pair__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .pair__fig{ grid-column:1 / -1; grid-row:2; }
  .pair__col:last-child{ grid-column:2; grid-row:1; }
  .pair__col:first-child{ grid-column:1; grid-row:1; }
  .nav__link{ font-size:.72rem; padding:.5rem .5rem; }
}

@media (max-width:960px){
  .hero__in{ grid-template-columns:minmax(0,1fr); gap:2rem; }
  .fig{ max-width:620px; }
  .img__grid,.air__grid,.rep__grid,.rev__grid{ grid-template-columns:minmax(0,1fr); }
  .rev__fig{ max-width:520px; }
  .rep__fig{ max-width:420px; }
  .con__top{ grid-template-columns:minmax(0,1fr); align-items:start; }
}

@media (max-width:1023px){
  .megap{ grid-template-columns:minmax(0,1fr); gap:1rem; }
  .megap__col--note{ border-left:0; padding-left:0; border-top:1px solid var(--line); padding-top:1rem; }
  .nav__cta{ margin:0; }
  .nav__cta .nav__link{ background:none; color:var(--warm); padding:1rem .1rem; font-weight:600; }
  .nav__foot{ display:grid; gap:.5rem; margin-top:auto; padding-top:1.4rem;
    font-family:var(--font-mono); font-size:.86rem; color:var(--muted); }
  .brand img{ width:30px; }
  .brand__wm{ font-size:.9rem; }
}

@media (max-width:760px){
  .hero__facts{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem 1rem; }
  .fig__reads{ gap:.4rem; }
  .fig__l{ font-size:.55rem; }
  .fig__r{ font-size:1rem; }

  .svc__table thead{ display:none; }
  .svc__table,.svc__table tbody,.svc__table tr,.svc__table th,.svc__table td{ display:block; width:auto; }
  .svc__table tbody tr{ padding:1.05rem 0; border-bottom:1px solid var(--line-d); }
  .svc__table tbody th,.svc__table tbody td{ padding:0; border:0; }
  .svc__table tbody td{ margin-top:.55rem; }
  .svc__table td::before{
    content:attr(data-label); display:block; margin-bottom:.1rem;
    font-family:var(--font-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-d);
  }
  .svc__go{ display:none; }

  .air__spec > div{ grid-template-columns:minmax(0,1fr); gap:.15rem; }
  .con__grid{ grid-template-columns:minmax(0,1fr); }
  .pair__grid{ grid-template-columns:minmax(0,1fr); }
  .pair__col:last-child,.pair__col:first-child{ grid-column:1; grid-row:auto; }
  .pair__fig{ grid-row:auto; }
}

@media (max-width:640px){
  .foot__nav > div:last-child{ grid-column:1 / -1; }
}

@media (max-width:420px){
  .fig__cap{ font-size:.62rem; }
  .fig__top{ font-size:.68rem; }
  .hero__eyebrow{ font-size:.72rem; }
}

@media (prefers-reduced-motion: reduce){
  .fig__scaletrack i{ transform:scaleY(1); }
  .pre__fill{ animation:none; transform:scaleY(1); }
}
