/* ==========================================================================
   GeoCon Site Investigations — "The Borehole"
   A ground log read top to bottom: strata bands, depth markers, VT323 notes.
   base.css owns the shell; this file owns the paper, the bands and the log.
   ========================================================================== */

:root{
  /* strata palette — the colours ARE the page */
  --ink:        #151719;
  --ink-2:      #1c1f22;
  --ink-3:      #22262a;
  --paper:      #f3f0e7;
  --paper-2:    #e9e4d6;
  --sand:       #d8c9a8;
  --clay:       #a8763f;
  --clay-ink:   #8a5c2c;   /* clay, darkened for small text on paper */
  --chalk:      #e6e2d3;
  --water:      #2f6f8f;

  --surface:    var(--paper);
  --surface-2:  var(--paper-2);
  --text:       #f3f0e7;
  --muted:      #a8a396;
  --ink-text:   #151719;
  --ink-mute:   #5f5f57;
  --accent:     var(--clay-ink);
  --accent-lit: #c4905a;
  --accent-2:   var(--water);
  --line:       rgba(243,240,231,.14);
  --line-d:     rgba(21,23,25,.17);

  --font-display: "Crete Round", "Rockwell", Georgia, serif;
  --font-body:    "Rambla", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "VT323", ui-monospace, monospace;

  --wrap-max: 1200px;
  --radius:   2px;
}

body{ background:var(--paper); color:var(--ink-text); }
.skip{
  position:absolute; left:-9999px; top:0; z-index:10000;
  padding:.75rem 1.1rem; background:var(--ink); color:var(--paper);
  font-family:var(--font-mono); font-size:.95rem;
}
.skip:focus{ left:1rem; top:1rem; }
.vh{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.hdr :focus-visible, .foot :focus-visible, .skip:focus-visible{ outline-color:var(--sand); }
::selection{ background:var(--sand); color:var(--ink); }
:focus-visible{ outline-color:var(--water); }

.sect__h2{ font-weight:400; letter-spacing:-.018em; line-height:1.08; }
.sect__num{
  font-family:var(--font-mono); font-size:1rem; font-weight:400;
  letter-spacing:.06em; color:var(--clay-ink);
}
.sect__lead{ color:var(--ink-mute); }
.note{
  font-family:var(--font-mono); font-size:.98rem; line-height:1.3;
  color:var(--ink-mute); margin-top:1.2rem; letter-spacing:.01em;
}
.note--dark{ color:rgba(243,240,231,.42); }

/* ---------- buttons: ink on paper, paper on ink ---------- */
.btn{ border-radius:var(--radius); font-weight:700; letter-spacing:.01em; }
.btn--solid{ background:var(--ink); color:var(--paper); }
.btn--solid:hover{ background:var(--water); color:#fff; filter:none; }
.btn--ghost{ border-color:rgba(21,23,25,.26); color:var(--ink); }
.btn--ghost:hover{ border-color:var(--clay-ink); color:var(--clay-ink); }
.sect--dark .btn--ghost{ border-color:rgba(243,240,231,.24); color:var(--paper); }
.sect--dark .btn--ghost:hover{ border-color:var(--sand); color:var(--sand); }

/* ---------- header: the dark cover strip ---------- */
.hdr{ background:var(--ink); border-bottom:1px solid rgba(243,240,231,.16); }
.brand img{ width:auto; height:54px; }
.nav__link{ color:rgba(243,240,231,.82); font-size:.855rem; border-radius:2px; }
.nav__link:hover{ color:var(--sand); background:rgba(243,240,231,.06); }
.nav__item.is-open > .nav__link{ color:var(--sand); }
.nav__chev{ width:10px; }
.hdr__cta{
  margin-left:.4rem; padding:.66rem 1.05rem; flex-shrink:0;
  background:var(--paper); color:var(--ink); font-size:.8rem;
}
.hdr__cta:hover{ background:var(--sand); color:var(--ink); filter:none; }

/* mega panel — the three groups of their real menu */
.mega{ background:var(--ink-3); border-color:rgba(243,240,231,.18); }
.mega--wide{ width:min(980px,calc(100vw - 2rem)); }
.mega--loc{ width:min(560px,calc(100vw - 2rem)); }
.mega__grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr) minmax(0,1.5fr); gap:1.7rem; }
.mega__grid--2{ grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.mega__h{ color:var(--sand); font-size:.8rem; letter-spacing:.12em; }
.mega a{ color:rgba(243,240,231,.86); font-size:.83rem; }
.mega a:hover{ color:var(--sand); }
.mega__list li > span{ display:block; padding:.34rem 0; font-size:.82rem; color:rgba(243,240,231,.58); }
.mega__list--2{ columns:2; column-gap:1.3rem; }
.mega__list--2 li{ break-inside:avoid; }
.mega__note{
  margin-top:1.3rem; padding-top:1rem; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
}
.mega__note p{ font-size:.8rem; line-height:1.5; color:rgba(243,240,231,.6); max-width:56ch; }
.mega__note--side{ display:block; border-top:0; padding-top:0; margin-top:0; }
.mega__all{
  font-family:var(--font-mono); font-size:.95rem; color:var(--sand);
  white-space:nowrap; flex-shrink:0;
}
.mega__all:hover{ color:var(--paper); }

/* ---------- preloader: a core run, drawn ---------- */
.pre{ background:var(--ink); }
.pre__mark svg{ width:74px; height:196px; display:block; }
.pl{ transform-box:fill-box; transform-origin:top; animation:plBand .55s var(--ease) both; }
.pl1{ fill:var(--sand); animation-delay:.05s; }
.pl2{ fill:#c1a274; animation-delay:.15s; }
.pl3{ fill:var(--clay); animation-delay:.25s; }
.pl4{ fill:#cfcaba; animation-delay:.35s; }
.pl__edge{ stroke:rgba(243,240,231,.26); stroke-width:1; }
.plw{ stroke:var(--water); stroke-width:2; stroke-dasharray:48; stroke-dashoffset:48; animation:plDraw .9s .45s var(--ease) forwards; }
.plw__m{ fill:none; stroke:var(--water); stroke-width:2; opacity:0; animation:plFade .4s 1.2s linear forwards; }
.pre__meta{ color:rgba(243,240,231,.55); font-size:.9rem; letter-spacing:.1em; }
.pre__pct{ color:var(--sand); }
.pre__bar i{ background:var(--sand); }
@keyframes plBand{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes plDraw{ to{ stroke-dashoffset:0; } }
@keyframes plFade{ to{ opacity:1; } }

/* ==========================================================================
   HERO — the log is the hero
   ========================================================================== */
.hero{
  background:var(--paper); color:var(--ink-text);
  padding-block:0; display:flex; align-items:stretch;
  min-height:calc(100vh - 76px);
  min-height:calc(100svh - 76px);
  background-image:
    radial-gradient(rgba(21,23,25,.055) .6px, transparent .6px);
  background-size:4px 4px;
}
.hero__in{
  flex:1; display:grid; grid-template-columns:300px minmax(0,1fr);
  gap:clamp(1.8rem,4.4vw,4.2rem); align-items:stretch;
}
.hero__copy{
  display:flex; flex-direction:column; justify-content:center; min-width:0;
  padding-block:clamp(2.6rem,7vh,5.2rem);
}
.hero__eyebrow{
  font-family:var(--font-mono); font-size:.95rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-mute); margin-bottom:1.1rem;
}
section[id]{ scroll-margin-top:86px; }
.hero__h1{ font-weight:400; letter-spacing:-.012em; line-height:.95; color:var(--ink); }
.hero__h1 .line{ padding-top:.02em; padding-bottom:.12em; }
.hero__lead{
  margin-top:1.4rem; max-width:53ch; font-size:1.06rem; line-height:1.64; color:#3f4240;
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.9rem; }
.hero__facts{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.1rem; margin-top:2.3rem; padding-top:1.3rem;
  border-top:1px solid var(--line-d);
}
.hero__facts li b{
  display:block; font-family:var(--font-mono); font-size:1.02rem; font-weight:400;
  letter-spacing:.04em; color:var(--ink);
}
.hero__facts li span{ display:block; font-size:.78rem; color:var(--ink-mute); margin-top:.1rem; }
.hero__cue{
  display:inline-flex; align-items:center; gap:.5rem; width:fit-content;
  margin-top:2rem; font-family:var(--font-mono); font-size:.95rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mute);
  transition:color .2s;
}
.hero__cue b{ color:var(--clay-ink); font-weight:400; }
.hero__cue i{ font-style:normal; }
.hero__cue:hover{ color:var(--ink); }

/* the borehole strip */
.bh{
  position:relative; align-self:stretch; display:flex; flex-direction:column;
  min-height:540px; padding:.85rem .8rem .7rem;
  background:var(--paper-2); border:1px solid var(--line-d);
  box-shadow:inset 0 0 0 4px var(--paper);
}
.bh__top{
  display:flex; justify-content:space-between; gap:.6rem;
  font-family:var(--font-mono); font-size:.92rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-mute);
  border-bottom:1px solid var(--line-d); padding-bottom:.4rem;
}
.bh__body{ flex:1; display:flex; gap:.35rem; margin-top:.7rem; min-height:0; }
.bh__scale{
  position:relative; flex:none; width:36px;
  border-right:1px solid var(--line-d);
  background-image:repeating-linear-gradient(to bottom, rgba(21,23,25,.3) 0 1px, transparent 1px 8.333%);
}
.bh__scale span{
  position:absolute; top:var(--p); right:5px; transform:translateY(-50%);
  font-family:var(--font-mono); font-size:.82rem; color:var(--ink-mute);
}
.bh__scale span:first-child{ transform:translateY(0); }
.bh__scale span:last-child{ transform:translateY(-100%); }
.bh__col{
  position:relative; flex:1; min-width:0;
  border:1px solid rgba(21,23,25,.32); overflow:hidden;
}
.bh__col::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:repeating-linear-gradient(to bottom, rgba(21,23,25,.17) 0 1px, transparent 1px 8.333%);
}
.bh__band{
  position:absolute; left:0; right:0; top:var(--t); height:var(--h);
  display:flex; flex-direction:column; justify-content:center;
  padding:.3rem .5rem; overflow:hidden;
  border-bottom:1px solid rgba(21,23,25,.22);
  font-family:var(--font-mono); color:var(--ink);
}
.bh__band span{ position:relative; z-index:2; font-size:.9rem; letter-spacing:.07em; text-transform:uppercase; line-height:1.05; }
.bh__band em{ position:relative; z-index:2; font-style:normal; font-size:.78rem; line-height:1.2; opacity:.72; margin-top:.15rem; }
.bh__band--made{
  background-color:#c9b58f;
  background-image:radial-gradient(rgba(21,23,25,.22) 1px, transparent 1.2px);
  background-size:7px 7px;
}
.bh__band--sand{ background-color:var(--sand); }
.bh__band--clay{ background-color:var(--clay); color:var(--ink); }
.bh__band--rock{
  background-color:var(--chalk);
  background-image:repeating-linear-gradient(115deg, rgba(21,23,25,.14) 0 1px, transparent 1px 9px);
}
.bh__water{ position:absolute; left:0; right:0; top:var(--w); z-index:3; }
.bh__water-line{
  display:block; height:2px; background:var(--water);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .7s var(--ease) .5s;
}
.bh__water-line b{
  position:absolute; left:0; top:0; width:0; height:0;
  border-left:5px solid transparent; border-right:5px solid transparent;
  border-top:8px solid var(--water);
}
body.loaded .bh__water-line{ transform:scaleX(1); }
.bh__water-lab{
  position:absolute; right:.35rem; top:-1.75rem;
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.03em;
  color:var(--water); background:var(--paper-2); padding:0 .3rem; white-space:nowrap;
}
.bh__cap{
  font-family:var(--font-mono); font-size:.86rem; line-height:1.28;
  color:var(--ink-mute); margin-top:.6rem;
}
.bh__foot{
  display:flex; justify-content:space-between; gap:1rem;
  margin-top:.5rem; padding-top:.35rem; border-top:1px solid var(--line-d);
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-mute);
}

/* ==========================================================================
   SHARED LOG DEVICES
   ========================================================================== */
.rail{
  display:flex; align-items:center; gap:.75rem;
  margin-bottom:clamp(1.5rem,3vw,2.2rem);
  font-family:var(--font-mono); font-size:.95rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-mute);
}
.rail span{ color:var(--clay-ink); font-size:1.05rem; }
.rail i{ flex:1; height:1px; background:var(--line-d); }
.rail em{ font-style:normal; opacity:.7; }
.rail--dark{ color:rgba(243,240,231,.55); }
.rail--dark span{ color:var(--sand); }
.rail--dark i{ background:rgba(243,240,231,.2); }

.sect--dark{ background:var(--ink); color:var(--paper); }
.sect--dark .sect__lead{ color:rgba(243,240,231,.68); }
.sect--dark :focus-visible{ outline-color:var(--sand); }

/* ==========================================================================
   01 — WHY THE GROUND MATTERS
   ========================================================================== */
.why__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:clamp(1.6rem,4vw,3.4rem); align-items:center;
}
.why__body p{ font-size:1.02rem; line-height:1.66; color:#33362f; max-width:52ch; }
.why__body .note{ max-width:44ch; }
.why__fig img{
  width:100%; aspect-ratio:1549/572; object-fit:cover;
  border:1px solid var(--line-d); filter:saturate(.85) contrast(1.02);
}
.why__fig figcaption,
.acc__fig figcaption{
  font-family:var(--font-mono); font-size:.86rem; line-height:1.3;
  color:var(--ink-mute); margin-top:.5rem;
}
.why__fig figcaption span,
.acc__fig figcaption span{ display:block; opacity:.72; }

.why__three{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,3vw,2rem); margin-top:clamp(2rem,4vw,3rem);
  padding-top:1.4rem; border-top:1px solid var(--line-d);
}
.why__three li{ padding-left:1rem; border-left:2px solid var(--sand); }
.why__three li:nth-child(2){ border-left-color:#c1a274; }
.why__three li:nth-child(3){ border-left-color:var(--water); }
.why__three b{
  display:block; font-family:var(--font-mono); font-weight:400;
  font-size:1rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink);
  margin-bottom:.2rem;
}
.why__three span{ display:block; font-size:.86rem; line-height:1.5; color:var(--ink-mute); }

/* ==========================================================================
   02 — THE FOUR PHASES: a horizontal scale of the process
   ========================================================================== */
.ph__grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line-d);
}
.ph__i{
  --g:clamp(.8rem,1.4vw,1.3rem);
  padding:0 var(--g) 1.3rem;
  border-right:1px solid var(--line-d); min-width:0;
}
.ph__i:last-child{ border-right:0; }
.ph__bar{
  display:block; height:11px; margin:0 calc(var(--g) * -1) 1.15rem;
  border-bottom:1px solid rgba(21,23,25,.16);
}
.ph__bar--1{ background:var(--sand); }
.ph__bar--2{ background:#c1a274; }
.ph__bar--3{ background:var(--clay); }
.ph__bar--4{
  background:var(--chalk);
  background-image:repeating-linear-gradient(115deg, rgba(21,23,25,.16) 0 1px, transparent 1px 7px);
}
.ph__n{
  font-family:var(--font-mono); font-size:.95rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--clay-ink);
}
.ph__t{ font-family:var(--font-display); font-size:1.2rem; font-weight:400; line-height:1.18; margin-top:.2rem; }
.ph__sub{ font-family:var(--font-mono); font-size:.92rem; color:var(--ink-mute); line-height:1.2; }
.ph__p{ font-size:.9rem; line-height:1.55; color:#3c3f3e; margin-top:.7rem; }
.ph__d{
  margin-top:1rem; padding-top:.6rem; border-top:1px solid var(--line-d);
  font-size:.83rem; line-height:1.4;
}
.ph__d span{
  display:block; font-family:var(--font-mono); font-size:.8rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--clay-ink);
}
.ph__note{ margin-top:1.6rem; }

/* ==========================================================================
   03 — SERVICES, GROUPED AS THEIR MENU GROUPS THEM
   ========================================================================== */
.svc__grid{
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(1.6rem,4vw,3.2rem);
}
.grp__h{
  font-family:var(--font-mono); font-weight:400; font-size:1rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink);
  padding-bottom:.4rem; margin-bottom:.9rem; border-bottom:1px solid var(--ink);
}
.core a{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  padding:.95rem 0; border-bottom:1px solid var(--line-d);
}
.core__t{ grid-column:1; grid-row:1; font-family:var(--font-display); font-size:1.04rem; line-height:1.2; transition:color .18s; }
.core__p{ grid-column:1; grid-row:2; font-size:.87rem; line-height:1.5; color:var(--ink-mute); margin-top:.2rem; max-width:46ch; }
.core__go{
  grid-column:2; grid-row:1/3; align-self:center; padding-left:1rem;
  font-family:var(--font-mono); font-size:1rem; color:var(--clay-ink);
  transition:transform .18s var(--ease);
}
.core a:hover .core__t{ color:var(--clay-ink); }
.core a:hover .core__go{ transform:translateX(4px); }

.grp__phases{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .55rem;
  margin-top:1rem; font-family:var(--font-mono); font-size:.9rem; color:var(--ink-mute);
}
.grp__phases span{ margin-right:.2rem; }
.grp__phases a{
  color:var(--ink); border-bottom:1px solid var(--line-d); transition:color .18s, border-color .18s;
}
.grp__phases a:hover{ color:var(--clay-ink); border-color:var(--clay-ink); }

.exp li{ padding:.85rem 0; border-bottom:1px solid var(--line-d); }
.exp a{ font-family:var(--font-display); font-size:1.02rem; line-height:1.25; transition:color .18s; }
.exp a:hover{ color:var(--clay-ink); }
.exp span{ display:block; font-size:.85rem; line-height:1.5; color:var(--ink-mute); margin-top:.15rem; }

.grp--other{
  grid-column:1/-1; margin-top:.4rem; padding-top:1.5rem;
  border-top:1px solid var(--line-d);
}
.other{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 1.4rem; }
.other li{
  font-size:.88rem; line-height:1.35; padding:.4rem 0;
  border-bottom:1px solid var(--line-d); overflow-wrap:anywhere;
}
.other a{ border-bottom:1px solid rgba(21,23,25,.32); transition:color .18s, border-color .18s; }
.other a:hover{ color:var(--clay-ink); border-color:var(--clay-ink); }
.other span{ color:var(--ink-mute); }
.grp__fine{
  margin-top:.9rem; font-family:var(--font-mono); font-size:.85rem;
  line-height:1.3; color:var(--ink-mute);
}

/* ==========================================================================
   04 — SECTORS
   ========================================================================== */
.sec__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line-d); }
.sec__grid li{
  display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:1rem;
  padding:1.35rem 0; border-bottom:1px solid var(--line-d); min-width:0;
}
.sec__grid li:nth-child(even){
  padding-left:clamp(1rem,3vw,2.2rem); border-left:1px solid var(--line-d);
}
.sec__grid li:nth-child(odd){ padding-right:clamp(1rem,3vw,2.2rem); }
.sec__n{
  grid-row:1/3; font-family:var(--font-mono); font-size:1.02rem;
  color:var(--clay-ink); padding-top:.15rem;
}
.sec__grid h3{ grid-column:2; font-family:var(--font-display); font-size:1.03rem; font-weight:400; line-height:1.25; }
.sec__grid p{ grid-column:2; font-size:.87rem; line-height:1.52; color:var(--ink-mute); margin-top:.25rem; }

/* ==========================================================================
   05 — AS PUBLISHED
   ========================================================================== */
.proof{ position:relative; overflow:hidden; }
.proof__bands{
  position:absolute; top:0; left:0; right:0; height:9px;
  display:grid; grid-template-columns:repeat(4,1fr); opacity:.9;
}
.proof__bands i:nth-child(1){ background:var(--sand); }
.proof__bands i:nth-child(2){ background:#c1a274; }
.proof__bands i:nth-child(3){ background:var(--clay); }
.proof__bands i:nth-child(4){ background:var(--chalk); }
.proof .sect__num{ color:var(--sand); }
.proof__grid{
  display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr);
  gap:clamp(2rem,5vw,4rem); align-items:start;
}
.proof__q{
  font-family:var(--font-display); font-size:clamp(1.3rem,2.6vw,1.9rem);
  line-height:1.38; letter-spacing:-.01em; margin-top:1.3rem; max-width:38ch;
}
.proof__who{ font-family:var(--font-mono); font-size:.98rem; color:var(--sand); margin-top:1.2rem; }
.proof__who span{ display:block; font-size:.86rem; color:rgba(243,240,231,.5); margin-top:.1rem; }
.proof__facts{
  display:grid; gap:1.1rem; padding-left:1.6rem;
  border-left:1px solid rgba(243,240,231,.18);
}
.proof__facts li b{
  display:block; font-family:var(--font-display); font-weight:400;
  font-size:1.5rem; line-height:1.1; color:var(--paper);
}
.proof__facts li span{ display:block; font-size:.82rem; line-height:1.45; color:rgba(243,240,231,.55); margin-top:.15rem; }

/* ==========================================================================
   06 — ACCREDITATIONS & COVERAGE
   ========================================================================== */
.marks{ display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:clamp(2rem,4vw,2.8rem); }
.marks li{
  font-family:var(--font-mono); font-size:.94rem; letter-spacing:.05em;
  padding:.42rem .78rem; border:1px solid rgba(21,23,25,.25);
  background:rgba(255,255,255,.34);
}
.acc__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(1.6rem,4vw,3.4rem); align-items:center; }
.acc__h{
  font-family:var(--font-mono); font-size:.92rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--clay-ink); margin-bottom:.35rem;
}
.acc__h--gap{ margin-top:1.2rem; }
.acc__cov address{ font-size:.95rem; line-height:1.55; }
.acc__list{ font-size:.9rem; line-height:1.5; color:var(--ink-mute); }
.acc__fig img{
  width:100%; aspect-ratio:1549/572; object-fit:cover;
  border:1px solid var(--line-d); filter:saturate(.85);
}

/* ==========================================================================
   07 — CONTACT
   ========================================================================== */
.con__grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(2rem,5vw,4rem); }
.con__h{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.7rem,4.2vw,2.9rem); line-height:1.05;
  letter-spacing:-.02em; margin-top:.55rem;
}
.con__p{ max-width:44ch; margin-top:1.1rem; font-size:.98rem; color:#3f4240; }
.con__acts{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.7rem; }
.con__facts{
  display:grid; gap:1.05rem; align-content:start;
  padding-top:1.1rem; border-top:1px solid var(--ink);
}
.con__facts dt{
  font-family:var(--font-mono); font-size:.86rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--clay-ink); margin-bottom:.1rem;
}
.con__facts dd{ font-size:.95rem; line-height:1.5; overflow-wrap:anywhere; }
.con__facts div:first-child dd{ font-family:var(--font-display); font-size:1.45rem; line-height:1.1; }
.con__facts a{ border-bottom:1px solid rgba(21,23,25,.25); }
.con__facts a:hover{ color:var(--clay-ink); border-color:var(--clay-ink); }
.con__note{ margin-top:2rem; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--ink); }
.foot__logo{ width:auto; height:42px; margin-bottom:1rem; }
.foot__blurb{ font-size:.85rem; line-height:1.6; color:rgba(243,240,231,.58); max-width:36ch; }
.foot__tel{ margin-top:1rem; font-family:var(--font-mono); font-size:1.05rem; }
.foot__tel a{ color:var(--sand); }
.foot__mail{ margin-top:.15rem; font-family:var(--font-mono); font-size:.9rem; overflow-wrap:anywhere; }
.foot__mail a{ color:rgba(243,240,231,.72); }
.foot__mail a:hover{ color:var(--sand); }
.foot__nav a{ font-size:.82rem; }
.foot__nav a:hover{ color:var(--sand); }
.foot__nav li span{ display:block; font-size:.8rem; line-height:1.45; color:rgba(243,240,231,.5); }
.foot__nav a, .foot__nav li span, .nav__foot a{ overflow-wrap:anywhere; }
.foot__bottom{ color:rgba(243,240,231,.52); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (min-width:1024px){
  .nav__foot{ display:none; }
  .hero__h1{ font-size:var(--h1-size, clamp(2.6rem,5.6vw,5rem)); }
}

@media (max-width:1023px){
  .brand img{ width:auto; height:44px; }
  .hdr__cta{ padding:.55rem .7rem; font-size:.7rem; margin-left:0; }
  .hdr__in{ gap:.7rem; }

  .nav__link{ color:rgba(243,240,231,.9); }
  .mega__grid, .mega__grid--2{ grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .mega__list--2{ columns:1; }
  .mega__note{ display:block; }
  .mega__note .mega__all{ display:inline-block; margin-top:.5rem; }
  .mega__list li > span{ padding:.5rem 0; font-size:.9rem; }
  .mega a{ font-size:.92rem; }

  .hero__in{ grid-template-columns:minmax(0,1fr); gap:1.6rem; padding-bottom:2.2rem; }
  .hero__copy{ padding-block:2.2rem 0; }
  .bh{ order:2; min-height:0; height:360px; width:100%; max-width:460px; margin-inline:auto; }
  .bh__cap{ font-size:.8rem; }
  .bh__foot{ display:none; }

  .why__grid, .svc__grid, .acc__grid, .con__grid{ grid-template-columns:minmax(0,1fr); }
  .why__three{ grid-template-columns:minmax(0,1fr); gap:.9rem; }
  .why__body p{ max-width:60ch; }

  .ph__grid{ grid-template-columns:minmax(0,1fr); border-top:0; }
  .ph__i{
    padding:1.1rem 0; border-right:0; border-bottom:1px solid var(--line-d);
  }
  .ph__bar{ margin:0 0 .9rem; height:8px; }
  .ph__p{ max-width:60ch; }

  .sec__grid{ grid-template-columns:minmax(0,1fr); }
  .sec__grid li:nth-child(even){ padding-left:0; border-left:0; }
  .sec__grid li:nth-child(odd){ padding-right:0; }

  .proof__grid{ grid-template-columns:minmax(0,1fr); }
  .proof__facts{
    padding-left:0; border-left:0; padding-top:1.2rem;
    border-top:1px solid rgba(243,240,231,.18);
    grid-template-columns:minmax(0,1fr);
  }
  .proof__q{ max-width:44ch; }
}

@media (max-width:360px){
  .hdr__cta{ display:none; }
}

@media (max-width:640px){
  .hero__facts{ grid-template-columns:minmax(0,1fr); gap:.75rem; }
  .hero__facts li{ display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; }
  .hero__facts li span{ margin-top:0; }
  .other{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 .9rem; }
  .rail em{ display:none; }
  .bh{ height:340px; }
  .marks li{ font-size:.88rem; padding:.38rem .6rem; }
  .con__facts div:first-child dd{ font-size:1.3rem; }
}

@media (prefers-reduced-motion: reduce){
  .bh__water-line{ transform:scaleX(1); }
  .pl, .plw, .plw__m{ animation:none; opacity:1; }
  .plw{ stroke-dashoffset:0; }
}

/* ---------- narrow desktop: keep the header on one line ---------- */
@media (min-width:1024px) and (max-width:1180px){
  .brand img{ height:46px; }
  .nav__link{ padding:.55rem .5rem; font-size:.78rem; }
  .hdr__cta{ padding:.6rem .8rem; font-size:.74rem; }
  .hdr__in{ gap:.9rem; }
}

/* the seventh sector closes the ledger */
.sec__grid li:last-child{ grid-column:1/-1; padding-right:0; }

/* tablet-landscape: the split head keeps its two written lines on one line each */
@media (min-width:1024px) and (max-width:1280px){
  .sect__h2{ font-size:clamp(1.7rem,3.7vw,2.9rem); }
}

/* section annotations sit clear of the content above them */
.svc__note{ margin-top:1.8rem; }
.acc__note{ margin-top:-1.2rem; margin-bottom:clamp(1.6rem,3vw,2.2rem); }
