/* =========================================================
   Summerland Continuous Guttering — "Blueprint" design system
   Vanilla CSS, no framework. Brand colours + fonts are injected
   inline per-page from config.js (--accent, --ink, --gold,
   --font-head, --font-body…); blueprint-specific tokens below.
   ========================================================= */
:root{
  --paper:#f4f2ec;          /* drafting paper */
  --panel:#fbfaf6;          /* lighter panel */
  --ink:#15242e;            /* fallback (overridden inline) */
  --ink-2:#2a3b44;
  --muted:#5b6469;
  --line:#d8d3c6;           /* warm hairline */
  --line-2:#c7c2b4;
  --brand-navy:#102059;
  --logo-blue:#05a8cd;
  --logo-yellow:#f9b823;
  --band-ink:#fff;
  --band-muted:rgba(255,255,255,.82);
  --band-line:rgba(255,255,255,.22);
  --accent:#0e7aa6;
  --accent-dark:#0a5d80;
  --accent-soft:#e3f2f8;
  --gold:#f4ad1a;
  --gold-deep:#b97d09;      /* gold readable on paper */
  --ok:#1f7a4d;
  --bad:#b15839;
  --grid:rgba(14,122,166,.05);
  --wrap:1200px;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-head:"Barlow Semi Condensed","Arial Narrow",sans-serif;
  --font-body:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);font-size:17px;line-height:1.6;
  background-color:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:38px 38px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:var(--accent-dark);}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.05;margin:0 0 .4em;font-weight:800;letter-spacing:-.005em;color:var(--ink);}
h1{font-size:clamp(2.4rem,5.2vw,3.6rem);text-transform:none;}
h2{font-size:clamp(1.85rem,3.6vw,2.6rem);text-transform:uppercase;}
h3{font-size:1.4rem;font-weight:700;}
p{margin:0 0 1rem;}
.lead{font-size:1.15rem;color:var(--muted);max-width:64ch;}
.h2big{font-size:clamp(1.9rem,3.6vw,2.7rem);text-transform:uppercase;margin-bottom:10px;}
.measure{max-width:720px;}
.center{text-align:center;}

.framewrap{max-width:var(--wrap);margin:0 auto;background:var(--panel);border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);}
.pad{padding:0 clamp(18px,4vw,52px);}
.mono{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-dark);}

/* skip link */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;font-weight:700;text-decoration:none;}
.skip-link:focus{left:0;}

/* ---------- spec bar ---------- */
.specbar{background:#fff;color:var(--brand-navy);border-bottom:1px solid var(--line-2);}
.specbar .wrap{max-width:var(--wrap);margin:0 auto;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;min-height:34px;}
.specbar b{color:var(--brand-navy);font-weight:600;}
.specbar .ph{margin-left:auto;display:inline-flex;align-items:center;gap:7px;}
.specbar a{color:var(--brand-navy);text-decoration:none;}
.specbar .icon{width:14px;height:14px;}

/* ---------- nav ---------- */
.site-header{position:sticky;top:0;z-index:40;background:var(--brand-navy);border-bottom:1px solid var(--band-line);}
.site-header .wrap{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:16px;min-height:70px;padding:0 clamp(18px,4vw,52px);}
.brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.brand img{height:44px;width:auto;}
.main-nav{margin-left:auto;}
.main-nav>ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;align-items:center;}
.main-nav a,.nav-parent{display:block;font-family:var(--font-head);font-weight:700;font-size:1.02rem;text-transform:uppercase;
  letter-spacing:.02em;text-decoration:none;color:var(--band-ink);padding:10px 13px;cursor:pointer;}
.main-nav a:hover,.nav-parent:hover{color:#fff;background:rgba(255,255,255,.08);}
.main-nav a[aria-current="page"],.nav-parent[aria-current="page"]{color:#fff;box-shadow:inset 0 -3px 0 var(--gold);}
.has-sub{position:relative;}
.has-sub>.nav-parent{display:inline-flex;align-items:center;gap:7px;}
.has-sub>.nav-parent::after{content:"";width:.42em;height:.42em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s ease;}
.has-sub:hover>.nav-parent::after,.has-sub:focus-within>.nav-parent::after{transform:translateY(1px) rotate(225deg);}
.submenu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);min-width:560px;background:var(--panel);border:1px solid var(--line-2);box-shadow:0 18px 40px rgba(11,28,36,.18);padding:12px;margin:0;list-style:none;display:none;grid-template-columns:1fr 1fr;gap:6px;}
.submenu::before{content:"";position:absolute;left:0;right:0;top:-11px;height:12px;}
.has-sub:hover>.submenu,.has-sub:focus-within>.submenu{display:grid;}
.submenu a{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 13px;text-transform:none;letter-spacing:0;font-family:var(--font-body);font-weight:600;color:var(--ink);text-decoration:none;}
.submenu a:hover,.submenu a[aria-current="page"]{color:var(--brand-navy);background:rgba(16,32,89,.07);box-shadow:none;}
.menu-link-icon{grid-row:1 / 3;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;}
.menu-link-icon img{width:40px;height:40px;object-fit:contain;}
.mm-title{font-family:var(--font-head);font-size:1.07rem;font-weight:700;color:var(--ink);line-height:1.1;}
.mm-blurb{grid-column:2;font-size:.86rem;line-height:1.32;color:var(--muted);font-weight:400;margin-top:2px;}
.submenu a:hover .mm-title,.submenu a[aria-current="page"] .mm-title{color:var(--brand-navy);}
.header-cta{display:flex;align-items:center;gap:10px;}
.site-header .nav-toggle{display:none;}
.site-header .btn-ghost{border-color:rgba(255,255,255,.72);color:#fff;}
.site-header .btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff;}

.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;font-size:1rem;text-decoration:none;padding:12px 20px;border:1.5px solid var(--ink);cursor:pointer;background:none;color:var(--ink);transition:background-color .15s ease,color .15s ease,border-color .15s ease;}
.btn .icon{width:18px;height:18px;}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff;}
.btn-ghost:hover{background:var(--ink);color:#fff;}
.btn-light{background:var(--ink);border-color:var(--ink);color:#fff;}
.btn-light:hover{background:#000;}
.btn-outline-light{background:none;border-color:#fff;color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.12);}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4rem;}

/* ---------- icons ---------- */
.icon{width:24px;height:24px;flex:none;display:inline-block;vertical-align:middle;}
.stars{display:inline-flex;gap:2px;color:var(--gold);}
.stars .icon{width:16px;height:16px;}

/* ---------- section rule ---------- */
section{padding:0 0 8px;}
.srule{display:flex;align-items:center;gap:16px;padding-top:58px;margin-bottom:26px;}
.srule .lbl{font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dark);white-space:nowrap;}
.srule .lbl b{color:var(--gold-deep);}
.srule::after{content:"";flex:1;height:1px;background:var(--line-2);}

/* ---------- breadcrumbs ---------- */
.breadcrumbs{padding:18px clamp(18px,4vw,52px) 0;}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.breadcrumbs a{color:var(--accent-dark);text-decoration:none;}
.breadcrumbs li::after{content:"/";margin-left:8px;color:var(--line-2);}
.breadcrumbs li:last-child::after{content:"";}

/* ---------- hero / split head ---------- */
.hero{display:grid;grid-template-columns:1.05fr .95fr;border-bottom:1px solid var(--line);}
.hero .copy{padding:54px clamp(18px,4vw,52px);border-right:1px solid var(--line);position:relative;}
.hero.nohead .copy{border-right:1px solid var(--line);}
.kick{font-family:var(--mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:18px;}
.kick b{color:var(--gold-deep);}
.hero h1{font-size:clamp(2.5rem,5.2vw,4rem);}
.hero h1 .u{box-shadow:inset 0 -.12em 0 var(--gold);}
.hero p.sub{font-size:1.16rem;color:var(--muted);max-width:42ch;margin:20px 0 26px;}
.ticks-mono{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:28px;padding-top:20px;border-top:1px dashed var(--line-2);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);}
.ticks-mono span::before{content:"";display:inline-block;width:9px;height:9px;margin-right:8px;background:var(--accent);vertical-align:middle;}
.vlabel{position:absolute;left:8px;bottom:34px;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--mono);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--line-2);}
.plate{position:relative;padding:34px clamp(18px,4vw,46px);display:flex;flex-direction:column;justify-content:center;}
.dim{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:12px;}
.dim::before,.dim::after{content:"";height:1px;flex:1;background:var(--line-2);}

.frame{position:relative;border:1px solid var(--accent);background:#fff;padding:8px;margin:0;}
.frame::before,.frame::after{content:"";position:absolute;width:16px;height:16px;border:2px solid var(--accent);}
.frame::before{top:-2px;left:-2px;border-right:0;border-bottom:0;}
.frame::after{bottom:-2px;right:-2px;border-left:0;border-top:0;}
.frame>img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.frame.tall>img{aspect-ratio:4/5;}
.frame .cap{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px dashed var(--line-2);margin-top:8px;padding-top:8px;display:flex;justify-content:space-between;gap:10px;}
.frame .cap b{color:var(--accent-dark);}

/* inner-page head (no photo) */
.page-head{border-bottom:1px solid var(--line);padding:34px clamp(18px,4vw,52px) 40px;}
.page-head h1{margin-bottom:.3rem;}

/* ---------- spec stats ---------- */
.specstats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);}
.specstats .cell{padding:26px clamp(14px,2.5vw,28px);border-left:1px solid var(--line);}
.specstats .cell:first-child{border-left:0;}
.specstats .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-dark);display:block;margin-bottom:10px;}
.specstats .v{font-family:var(--font-head);font-weight:800;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1;}
.specstats .v small{font-size:.5em;color:var(--gold-deep);font-weight:700;}
.specstats .v .stars{vertical-align:middle;}

/* ---------- comparison ---------- */
.compare{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:#fff;margin-top:22px;}
.compare .col{padding:26px clamp(18px,3vw,30px);}
.compare .col+.col{border-left:1px solid var(--line);}
.compare .col.good{background:var(--accent-soft);}
.compare .ch{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;}
.compare .ch.bad{color:var(--bad);}
.compare .ch.good{color:var(--accent-dark);}
.compare h3{font-size:1.5rem;text-transform:uppercase;margin-bottom:12px;}
.compare ul{list-style:none;margin:0;padding:0;}
.compare li{position:relative;padding-left:26px;margin-bottom:10px;}
.compare li::before{position:absolute;left:0;top:0;font-family:var(--mono);font-weight:600;}
.compare .bad li::before{content:"\00d7";color:var(--bad);}
.compare .good li::before{content:"\2713";color:var(--ok);}

/* ---------- spec table (services) ---------- */
.spectable{border:1px solid var(--line);background:#fff;margin-top:6px;}
.spec-row{display:grid;grid-template-columns:68px 1.15fr 2fr 40px;align-items:center;gap:20px;padding:22px clamp(16px,2.5vw,26px);border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:background .15s ease;}
.spec-row:first-child{border-top:0;}
.spec-row:hover{background:var(--accent-soft);}
.spec-row .spec-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;}
.spec-row .spec-icon img{width:32px;height:32px;object-fit:contain;}
.spec-row h3{font-size:1.5rem;text-transform:uppercase;margin:0;}
.spec-row p{margin:0;color:var(--muted);font-size:1rem;}
.spec-row .arr{justify-self:end;font-family:var(--mono);color:var(--accent);font-size:1.3rem;}

/* ---------- cards (what's included / why us) ---------- */
.grid{display:grid;gap:0;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:1fr 1fr 1fr;}
.cardset{border:1px solid var(--line);background:#fff;display:grid;margin-top:6px;}
.cardset.cols-2{grid-template-columns:1fr 1fr;}
.cardset.cols-3{grid-template-columns:1fr 1fr 1fr;}
.cardset .cell{padding:26px clamp(18px,2.4vw,28px);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.cardset.cols-2 .cell:nth-child(-n+2),.cardset.cols-3 .cell:nth-child(-n+3){border-top:0;}
.cardset.cols-2 .cell:nth-child(2n+1),.cardset.cols-3 .cell:nth-child(3n+1){border-left:0;}
.cardset .cnum{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--accent-dark);display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.cardset .cnum .icon{width:20px;height:20px;color:var(--accent);}
.cardset h3{font-size:1.3rem;text-transform:uppercase;margin-bottom:8px;}
.cardset p{margin:0;color:var(--muted);font-size:1rem;}

/* ---------- ticks list ---------- */
.ticks{list-style:none;padding:0;margin:18px 0 0;}
.ticks li{position:relative;padding-left:28px;margin-bottom:.85rem;}
.ticks li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--ok);font-family:var(--mono);font-weight:700;}
.ticks strong{font-weight:700;}

/* ---------- split (text + image) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
.split.rev>.s-txt{order:2;}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#fff;margin-top:18px;}
.steps .st{padding:24px clamp(16px,2vw,24px);border-left:1px solid var(--line);}
.steps .st:first-child{border-left:0;}
.steps .sn{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--accent-dark);margin-bottom:14px;}
.steps .st h3{font-size:1.25rem;text-transform:uppercase;margin-bottom:8px;}
.steps .st p{margin:0;color:var(--muted);font-size:.98rem;}

/* ---------- recent-work reel ---------- */
.reel{background:var(--brand-navy);border-top:3px solid var(--gold);margin:22px 0 -30px;padding-bottom:38px;}
.reel .rt{padding:34px clamp(18px,4vw,52px) 22px;font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--band-ink);display:flex;gap:14px;align-items:center;}
.reel .rt em{color:#fff;font-style:normal;}
.reel .rt::after{content:"";flex:1;height:1px;background:var(--band-line);}
.reel-mask{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.reel-track{display:flex;width:max-content;animation:reel 45s linear infinite;}
.reel-track:hover{animation-play-state:paused;}
@keyframes reel{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.reel-card{flex:0 0 auto;width:clamp(210px,25vw,330px);aspect-ratio:4/3;margin-right:16px;border:1px solid var(--band-line);background:rgba(10,42,54,.14);overflow:hidden;}
.reel-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,filter .4s ease;}
.reel-card:hover img{transform:scale(1.05);filter:brightness(1.08);}

/* ---------- scrolling trust / compliance ticker ---------- */
.trustbar{background:var(--brand-navy);border-top:3px solid var(--gold);border-bottom:1px solid var(--line);overflow:hidden;
  -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.trust-track{display:flex;width:max-content;animation:reel 55s linear infinite;}
.trust-track:hover{animation-play-state:paused;}
.trust-track .tg{display:flex;flex:0 0 auto;}
.trust-track span{display:inline-flex;align-items:center;gap:9px;padding:15px 28px;font-family:var(--mono);font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;color:#fff;white-space:nowrap;border-right:1px solid rgba(255,255,255,.28);
  text-shadow:0 1px 1px rgba(10,42,54,.18);}
.trust-track .icon{width:15px;height:15px;color:#fff;}
@media(prefers-reduced-motion:reduce){.trustbar{overflow-x:auto;-webkit-mask:none;mask:none;}.trust-track{animation:none;}}

/* ---------- reviews ---------- */
.review-intro{margin:0 0 18px;color:var(--muted);}
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:6px;}
.rev{border:1px solid var(--line);background:#fff;padding:24px;margin:0;box-shadow:0 12px 28px rgba(11,28,36,.09);transition:box-shadow .16s ease,transform .16s ease,border-color .16s ease;display:flex;flex-direction:column;}
.rev:hover{border-color:var(--line-2);box-shadow:0 18px 38px rgba(11,28,36,.13);transform:translateY(-2px);}
.rev p{font-size:1.05rem;margin:12px 0 16px;flex:1;}
.rev .by{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:auto;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);}
.rev .stars{font-size:1rem;letter-spacing:2px;line-height:1;}
.google-review-mark{width:18px;height:18px;flex:0 0 auto;}
.review-proof{font-weight:700;color:var(--accent-dark);}
.review-author{display:block;flex-basis:100%;margin-left:25px;color:var(--ink);}

/* ---------- location cards ---------- */
.loc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:6px;}
.loc{display:block;border:1px solid var(--line);background:#fff;padding:8px;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease;}
.loc:hover{border-color:var(--accent);box-shadow:0 8px 22px rgba(11,28,36,.10);}
.loc .ph{position:relative;overflow:hidden;}
.loc .ph img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .45s ease;}
.loc:hover .ph img{transform:scale(1.05);}
.loc .pc{position:absolute;top:0;left:0;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-ink);background:var(--brand-navy);padding:4px 9px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);}
.loc .mt{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 4px 4px;}
.loc .mt h3{font-size:1.5rem;text-transform:uppercase;margin:0;}
.loc .go{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);white-space:nowrap;}
.loc:hover .go{color:var(--accent);}

/* ---------- chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;margin:16px 0 0;}
.chips li a,.chips li span{display:inline-block;border:1px solid var(--line-2);background:#fff;padding:8px 15px;text-decoration:none;color:var(--ink);font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;}
.chips li a:hover{border-color:var(--accent);color:var(--accent-dark);}

/* ---------- dark band (trust / compliance) ---------- */
.section-dark{background:var(--brand-navy);color:var(--band-ink);border-top:3px solid var(--gold);}
.section-dark .wrapin{padding:48px clamp(18px,4vw,52px);}
.section-dark h2,.section-dark h3{color:var(--band-ink);}
.section-dark .lead{color:var(--band-muted);}
.section-dark .eyebrow,.section-dark .kick{color:var(--band-ink);}
.section-dark a{color:#fff;}
.trust-ticks{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:10px 26px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;}
.trust-ticks li{display:inline-flex;align-items:center;gap:8px;}
.trust-ticks .icon{width:16px;height:16px;color:var(--band-ink);}

/* ---------- FAQ ---------- */
.faq-list{margin-top:6px;border:1px solid var(--line);background:#fff;}
.faq-item{border-top:1px solid var(--line);}
.faq-item:first-child{border-top:0;}
.faq-item summary{cursor:pointer;padding:18px clamp(16px,2.4vw,24px);font-family:var(--font-head);font-weight:700;font-size:1.2rem;text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:var(--mono);color:var(--accent);font-size:1.3rem;}
.faq-item[open] summary::after{content:"\2013";}
.faq-item .faq-body{padding:0 clamp(16px,2.4vw,24px) 20px;color:var(--muted);}
.faq-item .faq-body p:last-child{margin-bottom:0;}

/* ---------- forms ---------- */
.form-card{border:1px solid var(--line-2);background:#e8eff3;padding:30px;box-shadow:0 1px 3px rgba(11,28,36,.07);}
.field{margin-bottom:18px;}
.field label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:7px;}
.field .req{color:var(--bad);}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border:1.5px solid var(--line-2);background:#fff;color:var(--ink);border-radius:0;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(14,122,176,.30);outline-offset:0;border-color:var(--accent);background:#fff;}
.field .hint{font-size:.85rem;color:var(--muted);margin-top:5px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
.contact-list{list-style:none;padding:0;margin:0;}
.contact-list li{display:flex;gap:12px;margin-bottom:16px;align-items:flex-start;}
.contact-list .ic{color:var(--accent);flex-shrink:0;width:22px;}
.contact-list .lbl{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);}
.contact-list a{font-weight:700;text-decoration:none;color:var(--ink);}
.map-embed{border:1px solid var(--line);margin-top:24px;}
.map-embed iframe{display:block;width:100%;height:420px;border:0;}

/* ---------- CTA ---------- */
.cta-band{margin-top:60px;background:var(--brand-navy);color:var(--band-ink);border-top:3px solid var(--gold);}
.cta-band .in{max-width:var(--wrap);margin:0 auto;padding:46px clamp(18px,4vw,52px);display:flex;flex-wrap:wrap;align-items:center;gap:22px;justify-content:space-between;}
.cta-band .label{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted);margin-bottom:8px;}
.cta-band h2{color:var(--band-ink);font-size:clamp(1.8rem,3.4vw,2.6rem);}
.cta-band .btn-row{margin-top:0;}

/* ---------- footer ---------- */
.site-footer{background:var(--brand-navy);color:var(--band-ink);border-top:1px solid var(--band-line);}
.site-footer .in{max-width:var(--wrap);margin:0 auto;padding:46px clamp(18px,4vw,52px) 26px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:32px;}
.site-footer img.logo{height:46px;margin-bottom:14px;}
.site-footer h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--band-ink);margin:0 0 14px;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:9px;}
.site-footer p{color:var(--band-muted);max-width:44ch;}
.site-footer a{color:var(--band-ink);text-decoration:none;}
.site-footer a:hover{color:var(--logo-blue);}
.footer-base{max-width:var(--wrap);margin:0 auto;padding:16px clamp(18px,4vw,52px);border-top:1px solid var(--band-line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--band-ink);background:var(--brand-navy);box-shadow:0 0 0 100vmax var(--brand-navy);clip-path:inset(0 -100vmax);}
.footer-base img{height:24px;width:auto;}
.footer-base a{display:inline-flex;opacity:.94;background:transparent;padding:0;border:0;line-height:0;}
.footer-base a:hover{opacity:1;}

/* ---------- mobile call bar ---------- */
.mobile-callbar{display:none;}

/* ---------- focus ---------- */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.nav-parent:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .specbar{display:none;}
  .hero{grid-template-columns:1fr;}
  .hero .copy{border-right:0;border-bottom:1px solid var(--line);}
  .vlabel{display:none;}
  .specstats{grid-template-columns:1fr 1fr;}
  .specstats .cell:nth-child(3){border-left:0;}
  .specstats .cell:nth-child(n+3){border-top:1px solid var(--line);}
  .steps{grid-template-columns:1fr 1fr;}
  .steps .st:nth-child(3){border-left:0;}
  .steps .st:nth-child(n+3){border-top:1px solid var(--line);}
  .revs{grid-template-columns:1fr 1fr;}
  .loc-grid{grid-template-columns:1fr 1fr;}
  .site-footer .in{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr;gap:28px;}
  .split.rev>.s-txt{order:0;}
  .cardset.cols-3{grid-template-columns:1fr 1fr;}
  .cardset.cols-3 .cell:nth-child(3){border-top:1px solid var(--line);border-left:0;}
  .cardset.cols-3 .cell:nth-child(2n+1){border-left:0;}
  .cardset.cols-3 .cell:nth-child(-n+2){border-top:0;}
  /* mobile nav */
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--brand-navy);border-bottom:1px solid var(--band-line);padding:10px 0 18px;margin:0;max-height:calc(100vh - 134px);max-height:calc(100dvh - 134px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .main-nav.open{display:block;}
  .main-nav>ul{flex-direction:column;align-items:stretch;gap:0;}
  .main-nav a,.nav-parent{padding:16px clamp(22px,5vw,65px);border-top:1px solid var(--band-line);}
  .has-sub>.nav-parent{display:flex;justify-content:space-between;width:100%;}
  .has-sub>.nav-parent::after{transform:translateY(-2px) rotate(45deg);}
  .has-sub:hover>.nav-parent::after,.has-sub:focus-within>.nav-parent::after{transform:translateY(-2px) rotate(45deg);}
  .submenu{position:static;display:block;transform:none;min-width:0;box-shadow:none;border:0;background:transparent;padding:0 0 0 clamp(22px,5vw,65px);}
  .submenu::before{content:none;}
  .submenu a{border-top:1px solid var(--band-line);grid-template-columns:34px 1fr;padding:13px clamp(22px,5vw,65px) 13px 0;}
  .submenu a:hover,.submenu a[aria-current="page"]{background:rgba(255,255,255,.08);color:#fff;}
  .menu-link-icon{width:34px;height:34px;}
  .menu-link-icon img{width:34px;height:34px;}
  .mm-title{font-size:1.04rem;color:#fff;}
  .mm-blurb{font-size:.83rem;color:var(--band-muted);}
  .submenu a:hover .mm-title,.submenu a[aria-current="page"] .mm-title{color:#fff;}
  .site-header .nav-toggle{display:inline-flex;}
  .header-cta{margin-left:auto;}
  .header-cta .btn-quote{display:none;}
  .cta-band .in{flex-direction:column;align-items:flex-start;}
}
@media(max-width:560px){
  body{font-size:16px;padding-bottom:54px;}
  .main-nav{max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px);}
  .specbar .ph{margin-left:0;width:100%;}
  .specstats{grid-template-columns:1fr 1fr;}
  .compare{grid-template-columns:1fr;}
  .compare .col+.col{border-left:0;border-top:1px solid var(--line);}
  .spec-row{grid-template-columns:46px 1fr;gap:6px 14px;}
  .spec-row .spec-icon{width:30px;height:30px;}
  .spec-row .spec-icon img{width:28px;height:28px;}
  .spec-row p,.spec-row .arr{grid-column:2;}
  .spec-row .arr{display:none;}
  .revs,.loc-grid,.steps,.cardset.cols-2,.cardset.cols-3{grid-template-columns:1fr;}
  .cardset .cell{border-left:0;}
  .form-grid{grid-template-columns:1fr;}
  .site-footer .in{grid-template-columns:1fr;gap:24px;}
  .footer-base{justify-content:center;align-items:center;text-align:center;gap:14px;}
  .footer-base a{justify-content:center;}
  .mobile-callbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;border-top:1px solid var(--gold);}
  .mobile-callbar a{flex:1;text-align:center;padding:13px;font-family:var(--font-head);font-weight:700;text-transform:uppercase;text-decoration:none;background:var(--brand-navy);color:var(--band-ink);display:flex;align-items:center;justify-content:center;gap:7px;}
  .mobile-callbar a.call{background:var(--brand-navy);border-right:1px solid var(--band-line);}
  .mobile-callbar .icon{width:16px;height:16px;}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
  .reel-track{animation:none;}
  .reel-mask{overflow-x:auto;-webkit-mask:none;mask:none;}
}
