/* ==========================================================================
   GS Performance — stylesheet
   Palette lives in :root. Site is dark-only by design (matches the logo).
   ========================================================================== */

:root{
  --bg:        #000000;
  --bg-alt:    #08080a;
  --surface:   #0e0f12;
  --surface-2: #14161a;
  --line:      rgba(255,255,255,.1);
  --line-str:  rgba(255,255,255,.18);

  --blue:      #1f5cf5;
  --blue-lit:  #3b82f6;
  --blue-pale: #8fc0ff;

  --text:      #f4f6fa;
  --muted:     #98a2b3;
  --muted-2:   #6b7482;

  --display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --r: 14px;
  --r-sm: 10px;
  --wrap: 1560px;
  --pad: 40px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box }

html{ overflow-x:clip; scroll-behavior:smooth; scroll-padding-top:88px; -webkit-text-size-adjust:100% }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}

img,svg{ max-width:100% }
a{ color:inherit; text-decoration:none }
h1,h2,h3,h4{ font-family:var(--display); font-weight:800; letter-spacing:-.02em; line-height:1.06; margin:0 }
h1,h2{
  font-weight:900; line-height:.94; letter-spacing:-.005em;
  text-transform:uppercase; font-style:italic;
  font-variation-settings:'wdth' 118;
}
p{ margin:0 }
ul,ol{ margin:0; padding:0; list-style:none }
button,input,select,textarea{ font:inherit; color:inherit }

.grid-3 > *,.flow > li,.why-grid > *,.quote-grid > *,.foot-grid > *{ min-width:0 }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad) }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--blue); color:#fff; padding:10px 16px; border-radius:0 0 8px 0;
}
.skip:focus{ left:0 }

:focus-visible{ outline:2px solid var(--blue-lit); outline-offset:3px; border-radius:4px }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn{
  --btn-bg:transparent; --btn-fg:var(--text); --btn-bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bd);
  padding:12px 20px; border-radius:var(--r-sm);
  font-family:var(--display); font-weight:700; font-size:14px;
  letter-spacing:.01em; white-space:nowrap; cursor:pointer;
  transition:transform .16s var(--ease), background .18s, border-color .18s, box-shadow .18s;
}
.btn:hover{ transform:translateY(-1px) }
.btn:active{ transform:translateY(0) }
.btn svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }

.btn-primary{
  --btn-bg:linear-gradient(180deg,var(--blue-lit),var(--blue));
  --btn-fg:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 8px 24px -10px rgba(31,92,245,.9);
}
.btn-primary:hover{ box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 12px 30px -10px rgba(31,92,245,1) }

.btn-outline{ --btn-bd:var(--line-str); --btn-bg:rgba(255,255,255,.02) }
.btn-outline:hover{ --btn-bd:rgba(255,255,255,.34); --btn-bg:rgba(255,255,255,.05) }

.btn-ghost{ --btn-fg:var(--muted) }
.btn-ghost:hover{ --btn-fg:var(--text) }

.btn-lg{ padding:15px 26px; font-size:15px }
.btn-block{ display:flex; width:100% }

/* ── Header ─────────────────────────────────────────────────────────────── */
.site-head{
  position:sticky; top:0; z-index:100;
  background:rgba(8,9,11,.72);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s, background .25s;
}
.site-head.stuck{ border-bottom-color:var(--line); background:rgba(8,9,11,.9) }
.head-inner{ display:flex; align-items:center; gap:28px; height:72px }

/* logo lockup — swap for <img class="logo-img"> when real artwork lands */
.logo{ display:flex; align-items:center; gap:11px; flex:0 0 auto }
.logo-img{ height:38px; width:auto; display:block }
.logo-mark{
  display:flex; align-items:baseline;
  font-family:var(--display); font-weight:900; font-size:30px; line-height:1;
  letter-spacing:-.06em; transform:skewX(-11deg);
}
.logo-mark b{ background:linear-gradient(160deg,#fff,#b9c2cf); -webkit-background-clip:text; background-clip:text; color:transparent }
.logo-mark i{ font-style:normal; margin-left:-.06em; background:linear-gradient(160deg,var(--blue-lit),var(--blue)); -webkit-background-clip:text; background-clip:text; color:transparent }
.logo-type{ display:flex; flex-direction:column; gap:3px }
.logo-word{
  font-family:var(--display); font-weight:800; font-size:13px;
  letter-spacing:.36em; text-transform:uppercase; line-height:1;
}
.logo-sub{
  font-size:7.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted-2); line-height:1; display:flex; gap:5px;
}
.logo-sub em{ font-style:normal; color:var(--blue) }

.nav{ display:flex; gap:26px; margin-left:auto }
.nav a{
  font-size:14px; font-weight:500; color:var(--muted); position:relative; padding:6px 0;
  transition:color .18s;
}
.nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:1.5px;
  background:var(--blue-lit); transition:right .25s var(--ease);
}
.nav a:hover{ color:var(--text) }
.nav a:hover::after{ right:0 }

.head-cta{ display:flex; align-items:center; gap:10px; margin-left:auto }
.head-cta .tel{ padding-inline:12px }

.burger{ display:none; background:none; border:0; padding:12px; margin-right:-6px; cursor:pointer }
.burger span{ display:block; width:22px; height:2px; background:var(--text); border-radius:2px; transition:.25s var(--ease) }
.burger span+span{ margin-top:5px }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0 }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }

/* ── Hero ─────────────────────────────────────────────────────────────────
   Mobile first. Base rules are the phone layout; the desktop two-column
   version is layered on at 900px via grid areas.                          */
.hero{ background:var(--bg) }

.hero-inner{
  display:flex; flex-direction:column; gap:20px;
  padding-block:26px 28px;
}
.hero-inner > *{ min-width:0 }

.hero-title{
  font-size:clamp(29px,8.2vw,40px);
  /* the widest word ("REMAPPING") sets the minimum the layout can shrink to,
     so the expanded width axis is dialled back on narrow screens */
  font-variation-settings:'wdth' 100;
  letter-spacing:-.02em;
  margin:0;
}
.hl{ color:var(--blue-lit) }

.lede{ font-size:16px; color:var(--muted); line-height:1.6; margin:0 }

/* reg lookup — the primary conversion action */
.lookup{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); padding:20px 16px 18px; text-align:center;
}
.lookup h2{ font-size:21px }
.lookup-sub{ color:var(--muted); font-size:14px; margin:10px auto 16px; max-width:32ch }

/* third-party lookup widget: the script injects a self-resizing iframe here */
.lookup-widget{ margin-top:16px }
.lookup-widget iframe{ width:100%; border:0; display:block; border-radius:10px }

.lookup-alt{
  display:inline-block; margin-top:10px; padding:8px 4px; font-size:13px; color:var(--muted);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line-str);
}
.lookup-alt:hover{ color:var(--text) }

/* ── USP strip ──────────────────────────────────────────────────────────
   Three per row, two rows. Icon over a single headline, no secondary text.
   The 1px gap over a tinted background draws the hairline grid.          */
.trust-strip{ border-top:1px solid var(--line); background:var(--line) }
.trust-inner{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px; padding:0;
}
.trust-item{
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  gap:9px; text-align:center;
  background:var(--bg-alt); padding:18px 8px;
}
.trust-item svg{
  width:22px; height:22px; flex:0 0 auto; fill:none; stroke:var(--blue-lit);
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.trust-item b{
  font-family:var(--display); font-weight:800; font-size:11.5px; color:var(--text);
  text-transform:uppercase; letter-spacing:.05em; line-height:1.3;
}

@media (min-width:560px){
  .hero-title{ font-size:clamp(40px,7vw,52px) }
}

@media (min-width:900px){
  .hero-inner{
    display:grid;
    grid-template-columns:1.08fr .92fr;
    grid-template-areas:
      "title  lookup"
      "lede   lookup";
    align-content:center;
    column-gap:clamp(32px,5vw,72px); row-gap:22px;
    padding-block:clamp(44px,5.5vw,76px);
  }
  .hero-title{
    grid-area:title;
    font-size:clamp(40px,4.6vw,62px);
    font-variation-settings:'wdth' 118;
    letter-spacing:-.005em;
  }
  .lookup{ grid-area:lookup; align-self:center; padding:clamp(24px,3vw,36px); text-align:center }
  .lookup h2{ font-size:clamp(24px,2.8vw,32px) }
  .lookup-sub{ font-size:15px; margin:14px auto 24px; max-width:34ch }
  .lede{ grid-area:lede; max-width:50ch; font-size:clamp(16px,1.8vw,18.5px); line-height:1.66 }

  .trust-inner{ grid-template-columns:repeat(6,minmax(0,1fr)) }
  .trust-item{ flex-direction:row; justify-content:center; gap:10px; padding:20px 10px; text-align:left }
  .trust-item svg{ width:22px; height:22px }
  .trust-item b{ font-size:12.5px; letter-spacing:.06em }
}

/* ── Section furniture ──────────────────────────────────────────────────── */
.section{ padding:clamp(72px,9vw,120px) 0; position:relative }
.section-alt{ background:var(--bg-alt); border-block:1px solid var(--line) }

.sec-head{ max-width:760px; margin-bottom:clamp(38px,5vw,56px) }
.kicker{
  font-family:var(--display); font-size:12px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--blue-lit); margin-bottom:14px;
}
.sec-head h2{ font-size:clamp(29px,4.4vw,46px); font-weight:800 }
.sec-sub{ margin-top:16px; color:var(--muted); font-size:clamp(15px,1.7vw,17px) }


.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:20px }
.field:last-of-type{ margin-bottom:0 }
.field>label{ font-size:13px; font-weight:600; color:var(--muted); letter-spacing:.02em }
.unit{ color:var(--muted-2); font-weight:400; text-transform:none }

input[type=text],input[type=tel],input[type=number],input[type=email],select,textarea{
  background:var(--bg); border:1px solid var(--line-str); border-radius:var(--r-sm);
  padding:13px 14px; width:100%; font-size:16px;
  transition:border-color .18s, box-shadow .18s;
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--blue-lit); box-shadow:0 0 0 3px rgba(59,130,246,.16);
}
textarea{ resize:vertical; font-family:var(--body) }
select{ appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px, calc(100% - 15px) 22px;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
}
.reg-input{
  text-transform:uppercase; letter-spacing:.09em; font-weight:700;
  font-family:var(--display);
}

/* ── Forms & cards ────────────────────────────────────────────────────── */

/* ── Cards ──────────────────────────────────────────────────────────────── */
.grid-3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px }

.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:28px 26px; display:flex; flex-direction:column; gap:12px;
  transition:border-color .22s, transform .22s var(--ease), background .22s;
}
.card:hover{ border-color:var(--line-str); transform:translateY(-3px); background:var(--surface-2) }
.card h3{ font-size:20px; font-weight:800 }
.card p{ color:var(--muted); font-size:15px }
.ico{
  width:42px; height:42px; border-radius:11px; display:grid; place-items:center;
  background:rgba(31,92,245,.13); border:1px solid rgba(59,130,246,.28); margin-bottom:4px;
}
.ico svg{ width:21px; height:21px; fill:none; stroke:var(--blue-pale); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }

.ticks{ display:flex; flex-direction:column; gap:7px; margin-top:6px }
.ticks li{ position:relative; padding-left:20px; font-size:13.5px; color:var(--muted-2) }
.ticks li::before{ content:''; position:absolute; left:2px; top:9px; width:7px; height:7px; border-radius:2px; background:var(--blue); opacity:.85 }

.services-foot{ margin-top:32px; color:var(--muted); font-size:15px }
.services-foot a{ color:var(--blue-lit); text-decoration:underline; text-underline-offset:3px }

/* ── Why ────────────────────────────────────────────────────────────────── */
.why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); align-items:start }
.why-copy h2{ font-size:clamp(28px,4vw,42px); margin:14px 0 20px }
.why-copy p{ color:var(--muted); margin-bottom:16px; font-size:16px }
.why-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px }

.why-list{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden }
.why-list li{ background:var(--surface); padding:20px 22px; display:flex; gap:14px; align-items:flex-start }
.why-list strong{ font-family:var(--display); font-size:15.5px; font-weight:700; display:block; margin-bottom:3px }
.why-list p{ color:var(--muted); font-size:14px }
.ico-sm{
  flex:0 0 auto; width:26px; height:26px; border-radius:7px; display:grid; place-items:center;
  background:rgba(31,92,245,.14); color:var(--blue-pale); font-size:13px; font-weight:700; margin-top:2px;
}
.ico-sm svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }

/* ── Process flow ───────────────────────────────────────────────────────── */
.flow{
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
  gap:0 clamp(8px,1.4vw,22px); margin-top:clamp(36px,5vw,56px);
}
.flow li{
  position:relative; display:flex; flex-direction:column; align-items:center;
  text-align:center; padding-bottom:26px;
}
/* the connector belongs to the sequence, so it only sits between steps */
.flow li:not(:last-child)::before{
  content:''; position:absolute; top:22px; right:calc(-1 * clamp(8px,1.4vw,22px) / 2 - 3px);
  width:7px; height:7px; border-top:1.5px solid var(--line-str); border-right:1.5px solid var(--line-str);
  transform:rotate(45deg);
}
.flow-n{
  display:grid; place-items:center; width:44px; height:44px; border-radius:50%;
  border:1.5px solid var(--blue); color:var(--blue-lit);
  font-family:var(--display); font-weight:800; font-size:14px; letter-spacing:.04em;
}
.flow-ico{ display:grid; place-items:center; height:44px; margin-top:20px }
.flow-ico svg{
  width:30px; height:30px; fill:none; stroke:var(--text);
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;
}
.flow h3{
  margin-top:14px; font-size:13.5px; text-transform:uppercase;
  letter-spacing:.07em; font-weight:800;
}
.flow p{ margin-top:10px; font-size:13.5px; color:var(--muted); max-width:22ch }
.flow li::after{
  content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:34px; height:2px; background:var(--blue);
}

/* ── Reviews ────────────────────────────────────────────────────────────── */
.rev-rail{
  margin-top:clamp(32px,4vw,48px);
  overflow:hidden; padding-block:4px 18px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.rev-track{
  display:flex; gap:18px; width:max-content;
  animation:revroll 62s linear infinite;
}
@keyframes revroll{ to{ transform:translateX(calc(-50% - 9px)) } }
.rev-rail:hover .rev-track,
.rev-rail:focus-within .rev-track{ animation-play-state:paused }

.rev{
  scroll-snap-align:start;
  flex:0 0 clamp(280px,26vw,340px);
  display:flex; flex-direction:column; gap:16px;
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); padding:22px 22px 0;
}
.rev-head{ display:flex; align-items:center; gap:9px }
.g-mark{ display:grid; place-items:center; width:22px; height:22px }
.g-mark svg{ width:18px; height:18px }
.rev-dash{ color:var(--muted-2); font-size:14px }
.rev-stars{ color:#f5b301; letter-spacing:.14em; font-size:14px }

.rev blockquote{
  margin:0; flex:1; font-size:15px; line-height:1.62; font-style:italic;
  color:var(--text);
}
.rev blockquote::before{ content:'\201C'; color:var(--blue-lit); font-size:24px; line-height:0; margin-right:2px; vertical-align:-.15em }
.rev blockquote::after{ content:'\201D'; color:var(--blue-lit); font-size:24px; line-height:0; margin-left:2px; vertical-align:-.35em }

.rev-by{ display:flex; align-items:center; gap:11px }
.rev-avatar{
  flex:0 0 auto; width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--av,var(--surface-2)); color:#fff;
  font-family:var(--display); font-weight:700; font-size:15px;
}
.rev-who strong{ display:block; font-family:var(--display); font-weight:700; font-size:14.5px }
.rev-meta{ font-size:12px; color:var(--muted-2) }

.rev-foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
  border-top:1px solid var(--line); margin-inline:-22px; padding:14px 22px 16px;
  min-height:58px;
}
.rev-when{ font-size:12px; color:var(--muted-2) }
/* optional car cut-out: set --car on this element */
.rev-car{
  font-family:var(--display); font-weight:800; font-size:12px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  background-image:var(--car,none); background-repeat:no-repeat;
  background-position:right bottom; background-size:contain;
  min-width:0; padding-left:90px; text-align:right;
}

/* ── Quote ──────────────────────────────────────────────────────────────── */
.quote-sec{ background:
  radial-gradient(900px 420px at 78% 8%, rgba(31,92,245,.16), transparent 70%), var(--bg-alt);
  border-top:1px solid var(--line);
}
.quote-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); align-items:start }
.quote-copy h2{ font-size:clamp(28px,4vw,42px); margin:14px 0 18px }
.quote-copy>p{ color:var(--muted); max-width:46ch }

.contact-list{ display:flex; flex-direction:column; gap:18px; margin-top:34px }
.contact-list li{ display:flex; gap:14px; align-items:flex-start }
.contact-list strong{ display:block; font-family:var(--display); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-2); margin-bottom:2px }
.contact-list a,.contact-list span{ font-size:16px; color:var(--text); word-break:break-word }
.contact-list a:hover{ color:var(--blue-lit) }

.quote-form{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:clamp(24px,3.2vw,34px);
}
.quote-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px }
.quote-form .btn{ margin-top:8px }
.hp{ position:absolute!important; left:-9999px; width:1px; height:1px; opacity:0 }
.form-alt{ margin-top:14px; font-size:13.5px; color:var(--muted-2); text-align:center }
.form-alt a{ color:var(--blue-lit); text-decoration:underline; text-underline-offset:3px }
.form-status{ margin-top:12px; font-size:14px; text-align:center; min-height:1.2em }
.form-status.ok{ color:#22c55e } .form-status.err{ color:#f87171 }
input.invalid,select.invalid,textarea.invalid{ border-color:#f87171 }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-foot{ background:var(--bg); border-top:1px solid var(--line); padding-top:clamp(52px,6vw,72px) }
.foot-grid{ display:grid; grid-template-columns:1.7fr 1fr 1.3fr; gap:clamp(32px,4vw,64px) }
.foot-grid h4{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); margin-bottom:16px; font-weight:700 }
.foot-grid > nav,.foot-grid > div{ display:flex; flex-direction:column }
.foot-grid nav a,.foot-grid > div > a:not(.logo){ font-size:14.5px; color:var(--muted); padding:5px 0; transition:color .18s }
.foot-grid nav a:hover,.foot-grid > div > a:not(.logo):hover{ color:var(--text) }
.logo-foot{ margin-bottom:18px }
.foot-blurb{ color:var(--muted); font-size:14.5px; max-width:38ch }
.foot-addr{ color:var(--muted); font-size:14.5px; margin-top:12px }

.socials{ display:flex; gap:10px; margin-top:20px }
.socials a{
  width:38px; height:38px; border-radius:10px; display:grid; place-items:center;
  border:1px solid var(--line); background:var(--surface); transition:.2s;
}
.socials a:hover{ border-color:var(--blue); background:rgba(31,92,245,.12) }
.socials svg{ width:18px; height:18px; fill:none; stroke:var(--muted); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round }
.socials a:hover svg{ stroke:var(--blue-pale) }

.foot-bar{
  margin-top:clamp(40px,5vw,60px); border-top:1px solid var(--line);
  padding-block:22px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.foot-bar p{ font-size:12.5px; color:var(--muted-2) }

/* ── Mobile call bar ────────────────────────────────────────────────────── */
.mobile-bar{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:95;
  gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(8,9,11,.92); backdrop-filter:blur(12px); border-top:1px solid var(--line);
}
.mobile-bar .btn{ flex:1 }

/* ── Reveal on scroll ───────────────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease) }
.reveal.in{ opacity:1; transform:none }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width:1000px){
  .grid-3{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .flow{ grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:34px }
  .flow li:nth-child(4n)::before{ display:none }
  .why-grid,.quote-grid{ grid-template-columns:1fr }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:32px }
}

@media (max-width:820px){
  .head-cta .tel{ display:none }
  .burger{ display:block }
  .nav{
    position:fixed; inset:72px 0 auto; flex-direction:column; gap:0; margin:0;
    background:rgba(8,9,11,.98); backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line); padding:8px 24px 24px;
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:.24s var(--ease);
  }
  .nav.open{ transform:none; opacity:1; pointer-events:auto }
  .nav a{ padding:15px 0; border-bottom:1px solid var(--line); font-size:17px; color:var(--text) }
  .nav a::after{ display:none }
  .mobile-bar{ display:flex }
  body{ padding-bottom:74px }
  .foot-bar{ padding-bottom:32px }
}

@media (max-width:680px){
  :root{ --pad:18px }
  .head-inner{ height:66px; gap:10px }
  html{ scroll-padding-top:70px }
  .nav{ inset:60px 0 auto }
  /* the sticky bottom bar already carries Call + Get a quote, so the header
     keeps only the logo and the menu — no duplicate CTA competing for space */
  .head-cta .btn-primary{ display:none }
  .logo-mark{ font-size:34px }
  .logo-word{ font-size:14px; letter-spacing:.3em }
  .logo-sub{ font-size:8px; letter-spacing:.18em }

  .section{ padding:52px 0 }
  .sec-head{ margin-bottom:28px }
  .grid-3,.quote-form .row{ grid-template-columns:1fr }
  .card{ padding:22px 20px }
  .flow{ grid-template-columns:1fr 1fr; row-gap:30px }
  .flow li:not(:last-child)::before{ display:none }
  .flow li:last-child{ grid-column:1 / -1 }
  .foot-grid{ grid-template-columns:1fr }
  .rev{ flex-basis:min(78vw,300px) }
  .foot-grid nav a,.foot-grid > div > a:not(.logo){ padding:10px 0 }
  .contact-list a{ display:inline-block; padding:4px 0 }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important }
  html{ scroll-behavior:auto }
  .reveal{ opacity:1; transform:none }
  .rev-rail{ overflow-x:auto; scrollbar-width:thin }
  .rev-track{ animation:none; padding-inline:var(--pad) }
}

/* centred section head (process + reviews) */
.sec-head-c{ max-width:760px; margin-inline:auto; text-align:center }
.sec-head-c .kicker{ display:flex; align-items:center; justify-content:center; gap:14px }
.kick-rule{ width:34px; height:1px; background:var(--line-str) }
