/* =========================================================
   True North Roofing — Attica, NY
   "Precision Built. Weather Proven."
   Component architecture ported from the in-house reference
   build; re-themed Boreal Navy / Gunmetal / Copper, fonts
   self-hosted (no @import, no third-party font CSS).
   ========================================================= */

/* ---- self-hosted fonts (latin subsets, variable weight) ---- */
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:700 900;
  font-display:swap;
  src:url('/fonts/montserrat-latin-var.woff2') format('woff2');
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('/fonts/inter-latin-var.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/fonts/plexmono-500-latin.woff2') format('woff2');
}

:root{
  /* True North palette: Boreal Navy #1A2A3A, Gunmetal #4A5568, Copper #C76D2B */
  --bg:#ffffff; --bg2:#f4f6f9; --panel:#ffffff; --panel2:#edf1f6;
  --ink:#1a222c; --muted:#4a5568; --soft:#75808e;
  --line:#e3e8ee; --line2:#c9d2dd;
  --navy:#1a2a3a; --navy2:#24384c; --navy3:#141d26;
  --accent:#c76d2b; --accent-d:#a5551c;
  --ok:#1f7a4d;
  --ease:cubic-bezier(.23,1,.32,1);
  --heroov:linear-gradient(90deg,rgba(20,29,38,.88) 0%,rgba(20,29,38,.68) 46%,rgba(20,29,38,.42) 100%);
  --heroov2:linear-gradient(180deg,rgba(26,42,58,.34),rgba(26,42,58,.62) 60%,rgba(26,42,58,.86));
  --wrap:1200px;
  --font-head:'Montserrat',-apple-system,'Segoe UI',Arial,sans-serif;
  --font-body:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;height:auto;}
.wrap{width:min(100% - 48px,var(--wrap));margin:0 auto;}
.mono{font-family:var(--font-mono);}
.arch{font-family:var(--font-head);font-weight:900;text-transform:uppercase;line-height:.96;letter-spacing:-.01em;}
.accent{color:var(--accent);}
.lab{font-family:var(--font-mono);font-size:12px;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-weight:500;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-head);font-weight:800;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:14px 24px;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);}
.btn-accent,.btn-amber{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-accent:hover,.btn-amber:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(199,109,43,.34);background:var(--accent-d);border-color:var(--accent-d);}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-navy:hover{transform:translateY(-2px);background:var(--navy3);}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.btn-ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn-ghost-d{background:transparent;color:var(--navy);border-color:var(--line2);}
.btn-ghost-d:hover{background:var(--panel2);transform:translateY(-2px);}
.btn-lg{padding:16px 30px;font-size:14px;}

/* topbar (thin locality strip above header — NO review claims) */
.topbar{background:var(--navy3);color:#d7dfe8;font-size:12.5px;}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:14px;}
.topbar a{color:#fff;font-weight:600;}
.topbar a:hover{color:var(--accent);}
.topbar .tb-r{display:flex;gap:20px;align-items:center;}
.topbar .tb-r span{color:#a7b4c2;}

/* header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:46px;height:46px;flex:none;}
.brand .mark img{width:100%;height:100%;}
.brand b{font-family:var(--font-head);font-weight:900;text-transform:uppercase;font-size:17px;letter-spacing:.01em;color:var(--navy);line-height:1;}
.brand small{display:block;font-family:var(--font-mono);font-weight:500;font-size:9.5px;letter-spacing:.1em;color:var(--soft);text-transform:uppercase;margin-top:3px;}
.nav-links{display:flex;align-items:center;gap:22px;}
.nav-links a{font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--ink);transition:color .16s var(--ease);}
.nav-links a:hover,.nav-links a.active{color:var(--accent);}
.nav-links .btn{color:#fff;}
.nav-links .btn.btn-ghost-d{color:var(--navy);}
.nav-phone{font-family:var(--font-head);font-weight:800;font-size:15px;color:var(--navy);letter-spacing:.01em;}
.nav-phone:hover{color:var(--accent);}
.nav-toggle{display:none;background:none;border:1px solid var(--line2);border-radius:6px;color:var(--navy);padding:8px 11px;font-size:18px;cursor:pointer;min-width:48px;min-height:44px;}

/* =========================================================
   HERO — real <img> LCP pattern (.hero-media), NOT a CSS
   background. Put the <picture> first inside the section.
   ========================================================= */
.hero{position:relative;min-height:640px;display:flex;align-items:center;padding:64px 0;color:#fff;background:var(--navy);overflow:hidden;}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media::after{content:"";position:absolute;inset:0;background:var(--heroov);}
.hero>.wrap{position:relative;z-index:1;}
.hero .eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:12.5px;color:#f0c9a4;letter-spacing:.12em;text-transform:uppercase;background:rgba(199,109,43,.18);border:1px solid rgba(199,109,43,.5);padding:7px 13px;border-radius:100px;}
.hero h1{font-family:var(--font-head);font-weight:900;text-transform:uppercase;font-size:clamp(38px,6vw,76px);line-height:.98;letter-spacing:-.01em;margin:20px 0 0;max-width:17ch;}
.hero h1 span{color:var(--accent);}
.hero .lead{color:#d7dfe8;font-size:19px;max-width:52ch;margin:22px 0 0;line-height:1.55;}
.hero .cta{display:flex;gap:13px;margin-top:30px;flex-wrap:wrap;}
.hero .hero-trust{display:flex;gap:26px;margin-top:32px;flex-wrap:wrap;align-items:center;color:#c8d2dc;font-size:13.5px;}
.hero .hero-trust b{color:#fff;}

/* page hero + breadcrumb (deep pages) — same .hero-media img pattern */
.page-hero{position:relative;color:#fff;padding:70px 0 58px;border-bottom:1px solid var(--navy2);background:var(--navy);overflow:hidden;}
.page-hero .hero-media::after{background:var(--heroov);}
.page-hero>.wrap{position:relative;z-index:1;}
.crumb{font-family:var(--font-mono);font-size:11.5px;color:#9aa9b9;letter-spacing:.05em;}
.crumb a:hover{color:var(--accent);}
.page-hero h1{font-family:var(--font-head);font-weight:900;text-transform:uppercase;font-size:clamp(32px,4.8vw,58px);line-height:.98;letter-spacing:-.01em;margin:14px 0 0;max-width:20ch;}
.page-hero h1 span{color:var(--accent);}
.page-hero .sub{color:#c8d2dc;font-size:18px;max-width:62ch;margin:18px 0 0;line-height:1.6;}
.page-hero .cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}

/* sections */
section{padding:82px 0;}
section.tight{padding:56px 0;}
section.soft{background:var(--bg2);border-block:1px solid var(--line);}
section.navy{background:var(--navy);color:#fff;border-block:1px solid var(--navy2);}
section.navy h2,section.navy h3{color:#fff;}
section.navy .lead-p{color:#bfccd8;}
h2{font-family:var(--font-head);font-weight:800;text-transform:uppercase;font-size:clamp(27px,4vw,44px);line-height:1.04;letter-spacing:-.01em;color:var(--navy);}
h3{font-family:var(--font-head);font-weight:700;text-transform:uppercase;font-size:19px;letter-spacing:.005em;color:var(--navy);}
.lead-p{color:var(--muted);font-size:17px;max-width:64ch;margin:16px 0 0;line-height:1.65;}
.center{text-align:center;} .center .lead-p{margin-left:auto;margin-right:auto;}

/* prose (learn/educational pages) */
.prose{max-width:760px;}
.prose p{color:#3d4a58;font-size:16.5px;line-height:1.78;margin:0 0 18px;}
.prose h2{font-size:clamp(24px,3.2vw,34px);margin:40px 0 14px;}
.prose h3{font-size:19px;margin:30px 0 10px;}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:#3d4a58;}
.prose li{margin-bottom:9px;line-height:1.65;}
.prose strong{color:var(--navy);}
.prose a{color:var(--accent-d);text-decoration:underline;text-underline-offset:3px;}
.prose blockquote{border-left:3px solid var(--accent);background:var(--panel2);padding:16px 20px;margin:22px 0;border-radius:0 8px 8px 0;color:var(--navy);font-size:16.5px;}
.prose table{border-collapse:collapse;width:100%;margin:20px 0;font-size:14.5px;}
.prose th{background:var(--navy);color:#fff;text-align:left;padding:11px 13px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--navy2);}
.prose td{border:1px solid var(--line);padding:11px 13px;color:#3d4a58;}
.table-scroll{overflow-x:auto;}

/* stat strip (verifiable facts only — never review counts) */
.strip{background:var(--navy);}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.strip .s{padding:26px 6px;border-right:1px solid var(--navy2);text-align:center;}
.strip .s:last-child{border-right:0;}
.strip .n{font-family:var(--font-head);font-weight:900;font-size:36px;line-height:1;color:#fff;text-transform:uppercase;}
.strip .n em{color:var(--accent);font-style:normal;}
.strip .l{font-family:var(--font-mono);font-size:11px;color:#9aa9b9;letter-spacing:.08em;text-transform:uppercase;margin-top:9px;}

/* trust badge row */
.badges{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center;}
.badge{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);border-radius:100px;padding:10px 18px;font-size:13px;font-weight:600;color:var(--navy);}
.badge svg{width:18px;height:18px;flex:none;}
.badge .dot{color:var(--accent);}

/* offer stack card */
.offer{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:0;overflow:hidden;box-shadow:0 24px 60px -30px rgba(20,29,38,.4);}
.offer .top{background:var(--navy);color:#fff;padding:24px 28px;}
.offer .top .lab{color:#f0c9a4;}
.offer .top h3{color:#fff;font-size:22px;margin-top:8px;}
.offer .top p{color:#bfccd8;font-size:14px;margin-top:6px;}
.offer ul{list-style:none;padding:22px 28px;}
.offer li{display:flex;gap:13px;padding:11px 0;border-bottom:1px dashed var(--line);align-items:flex-start;}
.offer li:last-child{border-bottom:0;}
.offer li .ic{color:var(--ok);flex:none;margin-top:2px;}
.offer li .txt{flex:1;}
.offer li .txt b{color:var(--navy);font-size:15px;font-weight:700;display:block;}
.offer li .txt span{color:var(--muted);font-size:13.5px;}
.offer li .val{font-family:var(--font-mono);font-size:12.5px;color:var(--soft);white-space:nowrap;}
.offer .foot{background:var(--panel2);padding:20px 28px;text-align:center;}
.offer .foot .big{font-family:var(--font-head);font-weight:900;font-size:24px;color:var(--navy);text-transform:uppercase;}
.offer .foot .big em{color:var(--accent);font-style:normal;}
.offer .foot .btn{margin-top:14px;width:100%;}

/* cards (icon cards for nav-level grids) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cards.c2{grid-template-columns:repeat(2,1fr);} .cards.c3{grid-template-columns:repeat(3,1fr);} .cards.c4{grid-template-columns:repeat(4,1fr);}
.card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:26px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -24px rgba(20,29,38,.35);border-color:var(--line2);}
.card .ci{width:52px;height:52px;border-radius:11px;background:var(--panel2);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:16px;}
.card .ci svg{width:27px;height:27px;}
.card h3{margin-top:2px;}
.card p{color:var(--muted);font-size:14px;margin-top:9px;line-height:1.6;}
.card.link{cursor:pointer;}
.card.link .more{font-family:var(--font-head);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-top:16px;display:inline-block;}

/* photo cards (image IS the card; text over bottom scrim) */
.card.photo{padding:0;overflow:hidden;position:relative;display:block;border:0;}
.card.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s var(--ease);}
.card.photo:hover img{transform:scale(1.05);}
.card.photo .cb{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;background:var(--heroov2);color:#fff;}
.card.photo .cb h3{color:#fff;font-size:17px;}
.card.photo .cb p{color:#d7dfe8;font-size:13px;margin-top:4px;}
.card.photo .cb .more{font-family:var(--font-head);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#f0c9a4;margin-top:8px;display:inline-block;}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:st;}
.step{position:relative;padding-top:16px;border-top:3px solid var(--line2);}
.step .n{font-family:var(--font-head);font-weight:900;font-size:15px;color:#fff;background:var(--accent);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.step h4{font-family:var(--font-head);font-weight:700;text-transform:uppercase;font-size:15.5px;color:var(--navy);}
.step p{color:var(--muted);font-size:13.5px;margin-top:7px;line-height:1.55;}

/* why rows */
.wrows{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 36px;}
.wrow{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:20px;}
.wrow .ck{color:var(--accent);flex:none;margin-top:2px;}
.wrow .ck svg{width:24px;height:24px;}
.wrow h4{font-family:var(--font-head);font-weight:700;text-transform:uppercase;font-size:15.5px;color:var(--navy);}
.wrow p{color:var(--muted);font-size:13.5px;margin-top:6px;line-height:1.55;}
section.navy .wrow{border-top-color:var(--navy2);}
section.navy .wrow h4{color:#fff;}
section.navy .wrow p{color:#bfccd8;}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
.split-media{position:relative;}
.split-media img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;border:1px solid var(--line);}
.split-media .tag{position:absolute;left:16px;bottom:16px;background:var(--navy);color:#fff;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;padding:8px 13px;border-radius:7px;}

/* representative-photo disclosure chip (REQUIRED on stock imagery) */
.rep{display:inline-block;background:rgba(74,85,104,.92);color:#fff;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:5px;}
.split-media .rep{position:absolute;right:12px;top:12px;}
.fine{font-size:11.5px;color:var(--soft);line-height:1.5;}

/* work band (representative imagery band, 6 figures) */
.work-band{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.work-band figure{position:relative;overflow:hidden;border-radius:10px;cursor:zoom-in;margin:0;aspect-ratio:3/2;}
.work-band img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.work-band figure:hover img{transform:scale(1.06);}
.work-band figcaption{position:absolute;left:12px;bottom:12px;background:rgba(20,29,38,.85);color:#fff;font-family:var(--font-mono);font-size:11px;padding:6px 10px;border-radius:6px;}

/* gallery (masonry) */
.gallery{columns:3;column-gap:14px;}
.gallery figure{margin:0 0 14px;border-radius:10px;overflow:hidden;break-inside:avoid;border:1px solid var(--line);cursor:zoom-in;position:relative;}
.gallery img{width:100%;transition:transform .5s var(--ease);}
.gallery figure:hover img{transform:scale(1.05);}
.gallery figcaption{padding:9px 12px;font-family:var(--font-mono);font-size:11px;color:var(--muted);background:var(--panel);}

/* full-bleed photo interlude band */
.photo-band{position:relative;min-height:44vh;display:flex;align-items:center;padding:64px 0;color:#fff;background:var(--navy);overflow:hidden;}
.photo-band .hero-media::after{background:var(--heroov2);}
.photo-band>.wrap{position:relative;z-index:1;text-align:center;}
.photo-band h2{color:#fff;}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(10,16,23,.94);display:none;align-items:center;justify-content:center;z-index:90;padding:30px;}
.lb.open{display:flex;}
.lb img{max-width:92vw;max-height:90vh;border-radius:8px;}
.lb .x{position:absolute;top:22px;right:26px;color:#fff;font-size:34px;cursor:pointer;line-height:1;}

/* forms */
.lead-form{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:30px;box-shadow:0 24px 60px -30px rgba(20,29,38,.4);}
.lead-form h3{font-size:21px;}
.lead-form .fsub{color:var(--muted);font-size:14px;margin:8px 0 4px;}
.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.lead-form label{display:block;font-size:12px;font-weight:600;color:var(--navy);margin-top:14px;margin-bottom:5px;letter-spacing:.02em;}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;background:#fff;border:1.5px solid var(--line2);border-radius:8px;padding:13px 14px;color:var(--ink);font:inherit;transition:border-color .16s var(--ease),box-shadow .16s var(--ease);}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(199,109,43,.18);}
.lead-form .btn{width:100%;margin-top:18px;border:0;}
.lead-form .msg{font-size:13.5px;font-weight:600;margin-top:12px;display:none;}
.lead-form .msg.ok{display:block;color:var(--ok);} .lead-form .msg.err{display:block;color:var(--accent-d);}
.lead-form .fine{margin-top:11px;display:flex;gap:7px;align-items:flex-start;}
.lead-form .fine svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--ok);}
.lead-form .consent{display:flex;gap:9px;align-items:flex-start;font-size:12px;font-weight:400;color:var(--soft);margin-top:12px;line-height:1.5;text-transform:none;letter-spacing:0;}
.lead-form .consent input{width:auto;margin-top:2px;}
.lead-form .consent a{color:var(--accent-d);text-decoration:underline;}
.hp-field{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;}

/* multi-step form engine */
.picks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
.picks .btn{padding:13px 10px;font-size:12px;}
[data-pick].sel{background:var(--navy);color:#fff;border-color:var(--navy);}
.fprogress{height:5px;background:var(--line);border-radius:4px;margin:16px 0 6px;overflow:hidden;}
.fprogress i{display:block;height:100%;width:33%;background:var(--accent);transition:width .3s ease;}
.fnav{display:flex;gap:10px;margin-top:16px;}
.fnav [data-back]{flex:0 0 auto;}
.fnav [data-next],.fnav [type=submit]{flex:1;}

/* faq (native details — zero JS) */
.faq{max-width:820px;margin:0 auto;}
.faq details{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:18px 22px;margin-bottom:12px;}
.faq summary{cursor:pointer;font-family:var(--font-head);font-weight:700;text-transform:uppercase;font-size:14.5px;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--accent);font-size:22px;line-height:1;font-weight:400;flex:none;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{color:var(--muted);font-size:14.5px;margin-top:12px;line-height:1.65;}

/* cta band */
.cta-band{background:linear-gradient(115deg,var(--navy2),var(--navy3));border-top:1px solid var(--navy2);text-align:center;color:#fff;}
.cta-band h2{color:#fff;}
.cta-band p{color:#bfccd8;max-width:52ch;margin:14px auto 26px;font-size:17px;}
.cta-band .cta{display:flex;gap:13px;justify-content:center;flex-wrap:wrap;}
.cta-band .lab{color:#f0c9a4;}

/* alert / compliance callout */
.alert{display:flex;gap:16px;align-items:flex-start;background:#faf3ec;border:1px solid #ecd9c4;border-left:4px solid var(--accent);border-radius:10px;padding:20px 22px;}
.alert svg{width:26px;height:26px;color:var(--accent);flex:none;}
.alert h4{font-family:var(--font-head);font-weight:800;text-transform:uppercase;font-size:15.5px;color:var(--navy);}
.alert p{color:#4a4436;font-size:14px;margin-top:5px;line-height:1.6;}

/* footer */
.site-footer{background:var(--navy3);border-top:3px solid var(--accent);padding:52px 0 28px;color:#a3b1c0;font-size:13.5px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:32px;}
.footer-grid h5{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:14px;font-weight:500;}
.footer-grid a{display:block;color:#a3b1c0;padding:5px 0;}
.footer-grid a:hover{color:var(--accent);}
.footer-grid .brand b{color:#fff;}
.footer-grid .brand small{color:#7b8b9c;}
.footer-nap{color:#bfccd8;line-height:1.9;margin-top:12px;}
.footer-nap b{color:#fff;}
.footer-bottom{border-top:1px solid var(--navy2);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#7b8b9c;}

/* sticky mobile call bar — static HTML, never JS-injected */
.callbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--navy);border-top:1px solid var(--navy2);padding:9px 12px;gap:9px;box-shadow:0 -6px 20px rgba(0,0,0,.24);transition:transform .25s var(--ease);}
.callbar.away{transform:translateY(110%);}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-head);font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.03em;padding:14px 8px;min-height:48px;border-radius:8px;}
.callbar .call{background:#fff;color:var(--navy);}
.callbar .quote{background:var(--accent);color:#fff;}
.callbar svg{width:18px;height:18px;}

/* animations — hidden state gated on .js-reveal so no-JS users see everything */
@keyframes fadeUp{from{opacity:0;transform:translate3d(0,22px,0);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:no-preference){
  .js-reveal .reveal{opacity:0;transform:translate3d(0,26px,0);transition:opacity .75s var(--ease),transform .75s var(--ease);transition-delay:var(--d,0ms);}
  .js-reveal .reveal.in{opacity:1;transform:none;}
  .hero .eyebrow,.hero h1,.hero .lead,.hero .cta,.hero .hero-trust,.page-hero .crumb,.page-hero h1,.page-hero .sub,.page-hero .cta{animation:fadeUp .8s var(--ease) both;}
  .hero h1{animation-delay:.08s;} .hero .lead{animation-delay:.16s;} .hero .cta{animation-delay:.24s;} .hero .hero-trust{animation-delay:.32s;}
  .page-hero h1{animation-delay:.06s;} .page-hero .sub{animation-delay:.13s;}
}

/* responsive */
@media(max-width:960px){
  .nav-links{display:none;}
  .nav-links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:16px 24px;gap:8px;align-items:stretch;box-shadow:0 16px 30px -18px rgba(20,29,38,.4);}
  .nav-links.open a{padding:11px 0;}
  .nav-links.open .btn{color:#fff;}
  .nav-toggle{display:inline-block;}
  .cards,.cards.c3,.cards.c4,.wrows,.split,.steps{grid-template-columns:1fr;}
  .cards.c2{grid-template-columns:1fr;}
  .strip .wrap{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .gallery{columns:2;} .work-band{grid-template-columns:1fr 1fr;}
  .steps{grid-template-columns:1fr 1fr;}
}
@media(max-width:860px){
  .callbar{display:flex;}
  body{padding-bottom:70px;}
}
@media(max-width:600px){
  .topbar{display:none;}
  .strip .wrap,.footer-grid,.work-band,.steps{grid-template-columns:1fr;}
  .gallery{columns:1;}
  .lead-form .row{grid-template-columns:1fr;}
  .hero .cta .btn,.page-hero .cta .btn{width:100%;}
  section{padding:56px 0;}
  .hero{min-height:560px;}
}
