/* ============================================================
   5Star Plumbing Gas — Design System
   Direction: engraved / almanac. Warm paper, oxblood and slate
   discipline coding, brass ornament, dotted leader specification
   lists, corner brackets, drop caps.
   Type: Young Serif (display) / Plus Jakarta Sans / Spline Sans Mono
   ============================================================ */

:root{
  /* discipline: gas = oxblood + brass, water = slate blue */
  --ox:#5A1F2B;
  --ox-d:#3E1420;
  --ox-dd:#2A0E17;
  --ox-lt:#F6EAEC;
  --slate:#3E5C6B;
  
  --slate-dd:#22343D;
  --slate-lt:#EAF0F3;
  --brass:#B98A2E;
  --brass-lt:#D9B36C;
  --brass-pale:#F4EAD6;
  --char:#211C1E;
  --paper:#FBF7F0;
  --paper-2:#F5F0E6;
  --rule:#DED5C6;
  --rule-2:#EFE8DB;
  --text:#241F21;
  --muted:#6B6058;
  --maxw:1200px;

  /* spacing scale */
  --s1:6px; --s2:12px; --s3:20px; --s4:32px; --s5:52px; --s6:84px;
}
:root{ --slate-d:#2C4552; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; color:var(--text);
  background-color:var(--paper);
  /* fine paper grain */
  background-image:
    repeating-linear-gradient(0deg, rgba(33,28,30,.016) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(33,28,30,.012) 0 1px, transparent 1px 4px);
  font-family:'Plus Jakarta Sans',-apple-system,'Segoe UI',sans-serif;
  font-size:17px; line-height:1.68; -webkit-font-smoothing:antialiased;
  font-feature-settings:"kern" 1;
}
img{ max-width:100%; display:block; }
svg{ width:1.4em; height:1.4em; flex-shrink:0; }
figure > svg, .panel-svg{ width:100%; height:auto; display:block; }
a{ color:var(--ox); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
:focus-visible{ outline:3px solid var(--brass); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{animation-duration:.001ms!important;transition-duration:.001ms!important} }

h1,h2,h3{
  font-family:'Young Serif',Georgia,serif; font-weight:400; color:var(--ox-d);
  line-height:1.1; margin:0 0 .45em; letter-spacing:-.012em;
}
h1{ font-size:clamp(2.5rem,4vw + 1rem,4.3rem); line-height:1.04; }
h2{ font-size:clamp(1.9rem,2.2vw + 1rem,3rem); }
h3{ font-size:1.34rem; }
h4{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:1rem; margin:0 0 .5em; color:var(--char); }
p{ margin:0 0 1.05em; }
ul,ol{ padding-left:1.15em; }
strong{ color:var(--char); }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 30px; }
section{ padding:var(--s6) 0; }
.lede{ font-size:1.17rem; color:var(--muted); line-height:1.6; }
.mono{ font-family:'Spline Sans Mono',monospace; }
.center{ text-align:center; }

/* ---------- surfaces ---------- */
.s-paper2{ background:var(--paper-2); }
.s-ox{ background:var(--ox-d); color:#E7D6D9; }
.s-ox h1,.s-ox h2,.s-ox h3,.s-ox h4{ color:var(--paper); }
.s-ox .lede{ color:rgba(251,247,240,.7); }
.s-slate{ background:var(--slate-dd); color:#D3DFE5; }
.s-slate h2,.s-slate h3,.s-slate h4{ color:var(--paper); }
.s-slate .lede{ color:rgba(251,247,240,.7); }
.s-char{ background:var(--char); color:#CFC7C2; }
.s-char h2,.s-char h3,.s-char h4{ color:var(--paper); }
.s-char .lede{ color:rgba(251,247,240,.68); }

/* ---------- ornament: brass double rule with diamond ---------- */
.orn{ display:flex; align-items:center; gap:10px; margin:0 0 var(--s3); }
.orn::before,.orn::after{ content:""; height:3px; flex:none; border-top:1px solid var(--brass); border-bottom:1px solid var(--brass); }
.orn::before{ width:46px; }
.orn::after{ width:14px; }
.orn i{ width:7px; height:7px; background:var(--brass); transform:rotate(45deg); flex:none; font-style:normal; }
.orn.wide::before{ width:100%; }
.s-ox .orn::before,.s-ox .orn::after,.s-slate .orn::before,.s-slate .orn::after,.s-char .orn::before,.s-char .orn::after{ border-color:var(--brass-lt); }
.s-ox .orn i,.s-slate .orn i,.s-char .orn i{ background:var(--brass-lt); }

/* ---------- eyebrow ---------- */
.eb{
  font-family:'Spline Sans Mono',monospace; font-size:.68rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--brass); display:block; margin-bottom:14px; font-weight:500;
}
.s-ox .eb,.s-slate .eb,.s-char .eb{ color:var(--brass-lt); }
.shead{ max-width:760px; margin-bottom:var(--s5); }
.shead.center{ margin-left:auto; margin-right:auto; text-align:center; }
.shead.center .orn{ justify-content:center; }

/* ---------- discipline chip ---------- */
.chip{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Spline Sans Mono',monospace; font-size:.63rem; letter-spacing:.18em;
  text-transform:uppercase; padding:7px 14px; border:1px solid currentColor; font-weight:500;
}
.chip::before{ content:""; width:7px; height:7px; background:currentColor; transform:rotate(45deg); flex:none; }
.chip-g{ color:var(--ox); }
.chip-w{ color:var(--slate-d); }
.s-ox .chip-g,.s-char .chip-g{ color:var(--brass-lt); }
.s-ox .chip-w,.s-char .chip-w{ color:#93B6C4; }
.hero .chip-g{ color:var(--brass-lt); }
.hero .chip-w{ color:#93B6C4; }

/* ---------- corner-bracket frame: signature ---------- */
.brk{ position:relative; }
.brk::before,.brk::after{
  content:""; position:absolute; width:16px; height:16px; pointer-events:none;
  border-color:var(--brass); border-style:solid; border-width:0;
}
.brk::before{ top:-1px; left:-1px; border-top-width:2px; border-left-width:2px; }
.brk::after{ bottom:-1px; right:-1px; border-bottom-width:2px; border-right-width:2px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:.96rem;
  padding:15px 28px; border:1.5px solid var(--ox-d); background:var(--ox-d); color:var(--paper);
  border-radius:2px; cursor:pointer; position:relative;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.btn:hover{ text-decoration:none; background:var(--ox); border-color:var(--ox); transform:translateY(-1px); }
.btn-brass{ background:var(--brass); border-color:var(--brass); color:var(--ox-dd); }
.btn-brass:hover{ background:var(--brass-lt); border-color:var(--brass-lt); color:var(--ox-dd); }
.btn-slate{ background:var(--slate-d); border-color:var(--slate-d); color:var(--paper); }
.btn-slate:hover{ background:var(--slate); border-color:var(--slate); }
.btn-out{ background:transparent; color:var(--ox-d); }
.btn-out:hover{ background:var(--ox-d); color:var(--paper); }
.btn-out-l{ background:transparent; color:var(--paper); border-color:rgba(251,247,240,.45); }
.btn-out-l:hover{ background:var(--paper); color:var(--ox-d); border-color:var(--paper); }
.btn-sm{ padding:10px 18px; font-size:.84rem; }
.btn-block{ width:100%; }

/* ---------- topbar ---------- */
.topbar{ background:var(--ox-dd); color:#C4A9AE; font-family:'Spline Sans Mono',monospace; font-size:.66rem; letter-spacing:.09em; }
.topbar .container{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; padding-top:11px; padding-bottom:11px; align-items:center; }
.topbar div{ overflow-wrap:anywhere; min-width:0; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.topbar a{ color:var(--brass-lt); }
.topbar .dia{ width:5px; height:5px; background:var(--brass); transform:rotate(45deg); display:inline-block; }

/* ---------- header ---------- */
.site-header{ background:var(--paper); border-bottom:1px solid var(--rule); position:sticky; top:0; z-index:60; }
.site-header::after{ content:""; display:block; height:2px; background:linear-gradient(90deg,var(--ox) 0 40%,var(--brass) 40% 60%,var(--slate) 60% 100%); }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:13px; padding-bottom:13px; }
.brand{ display:flex; align-items:center; gap:13px; min-width:0; }
.brand img{ height:48px; width:auto; }
.bw strong{ display:block; font-family:'Young Serif',serif; font-weight:400; font-size:1.26rem; color:var(--ox-d); line-height:1.05; }
.bw span{ display:block; font-family:'Spline Sans Mono',monospace; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:5px; }
.mainnav ul{ list-style:none; display:flex; gap:28px; margin:0; padding:0; align-items:center; }
.mainnav a{ color:var(--char); font-weight:600; font-size:.95rem; padding-bottom:4px; position:relative; }
.mainnav a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--brass); transition:right .2s ease; }
.mainnav a:hover{ text-decoration:none; }
.mainnav a:hover::after{ right:0; }
.mainnav a[aria-current="page"]::after{ right:0; background:var(--ox); }
.navcta{ display:flex; align-items:center; gap:11px; }
.navtoggle{ display:none; background:var(--ox-d); border:none; width:45px; height:39px; border-radius:2px; cursor:pointer; align-items:center; justify-content:center; }
.navtoggle span,.navtoggle span::before,.navtoggle span::after{ content:""; display:block; width:18px; height:1.6px; background:var(--paper); position:relative; }
.navtoggle span::before{ position:absolute; top:-6px; }
.navtoggle span::after{ position:absolute; top:6px; }
.callicon{ display:none; padding:11px; }
.callicon svg{ width:18px; height:18px; }

.hasdrop{ position:relative; }
.mainnav .drop{
  display:none; position:absolute; top:calc(100% + 15px); left:-20px; background:var(--paper);
  border:1px solid var(--rule); border-top:3px solid var(--brass);
  box-shadow:0 26px 52px -26px rgba(62,20,32,.4); padding:16px; min-width:470px;
  list-style:none; margin:0; flex-direction:column; gap:1px;
}
.mainnav .hasdrop:hover .drop,.mainnav .hasdrop:focus-within .drop{ display:flex; }
.mainnav .drop .grp{
  font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); padding:12px 10px 6px; display:flex; align-items:center; gap:9px;
}
.mainnav .drop .grp .dia{ width:6px; height:6px; transform:rotate(45deg); display:inline-block; }
.mainnav .drop .grp.g .dia{ background:var(--ox); }
.mainnav .drop .grp.w .dia{ background:var(--slate); }
.mainnav .drop a{ display:grid; grid-template-columns:34px 1fr; gap:10px; padding:9px 10px; font-weight:600; font-size:.93rem; color:var(--char); }
.mainnav .drop a em{ font-family:'Spline Sans Mono',monospace; font-style:normal; font-size:.6rem; color:var(--muted); padding-top:3px; }
.mainnav .drop a:hover{ background:var(--paper-2); text-decoration:none; }

/* ---------- hero ---------- */
.hero{ background:var(--ox-d); color:var(--paper); position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(90deg, rgba(251,247,240,.05) 0 1px, transparent 1px 46px);
  pointer-events:none;
}
.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:0; align-items:stretch; position:relative; z-index:2; }
.hero-copy{ padding:var(--s6) 56px var(--s6) 0; }
.hero h1{ color:var(--paper); }
.hero .lede{ color:rgba(251,247,240,.74); max-width:47ch; }
.hero-chips{ display:flex; gap:10px; margin-bottom:22px; flex-wrap:wrap; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }
.hero-note{ font-family:'Spline Sans Mono',monospace; font-size:.64rem; letter-spacing:.1em; color:rgba(251,247,240,.52); margin-top:26px; line-height:2; }
.hero-fig{ position:relative; min-height:540px; }
.hero-fig img{ width:100%; height:100%; object-fit:cover; opacity:.62; }
.hero-fig::after{ content:""; position:absolute; inset:0; background:linear-gradient(200deg,rgba(62,20,32,.25),rgba(42,14,23,.82)); }
.hero-cap{
  position:absolute; left:22px; bottom:20px; z-index:2;
  font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.14em;
  color:rgba(251,247,240,.82); text-transform:uppercase;
}

/* ---------- ledger row ---------- */
.ledger{ background:var(--paper-2); border-bottom:1px solid var(--rule); }
.ledger .container{ display:grid; grid-template-columns:repeat(4,1fr); }
.ledger div{ padding:30px 26px 30px 0; border-right:1px solid var(--rule); }
.ledger div:last-child{ border-right:none; }
.ledger b{ display:block; font-family:'Young Serif',serif; font-weight:400; font-size:2.3rem; line-height:1; color:var(--ox-d); margin-bottom:10px; }
.ledger span{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); line-height:1.8; display:block; }

/* ---------- drop cap ---------- */
.dropcap::first-letter{
  font-family:'Young Serif',serif; font-size:3.5rem; line-height:.86; float:left;
  padding:6px 12px 0 0; color:var(--ox); 
}

/* ---------- service cards ---------- */
.svc{
  background:var(--paper); border:1px solid var(--rule); padding:0; overflow:hidden;
  display:flex; flex-direction:column; position:relative;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.svc::before{ content:""; height:3px; display:block; }
.svc.g::before{ background:linear-gradient(90deg,var(--ox),var(--brass)); }
.svc.w::before{ background:linear-gradient(90deg,var(--slate),#8FB4C2); }
.svc:hover{ border-color:var(--brass); box-shadow:0 18px 34px -24px rgba(62,20,32,.42); transform:translateY(-3px); }
.svc .in{ padding:26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.svc .hd{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.svc .hd .n{ font-family:'Spline Sans Mono',monospace; font-size:.63rem; letter-spacing:.16em; color:var(--muted); }
.svc .hd svg{ width:28px; height:28px; }
.svc.g .hd svg{ color:var(--ox); }
.svc.w .hd svg{ color:var(--slate-d); }
.svc h3{ margin:0; font-size:1.2rem; line-height:1.2; }
.svc h3 a{ color:var(--ox-d); }
.svc.w h3 a{ color:var(--slate-dd); }
.svc p{ margin:0; color:var(--muted); font-size:.96rem; }
.svc .more{ margin-top:auto; font-family:'Spline Sans Mono',monospace; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; }
.svc.g .more{ color:var(--ox); }
.svc.w .more{ color:var(--slate-d); }

/* ---------- layout ---------- */
.grid{ display:grid; gap:22px; }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.card{ background:var(--paper); border:1px solid var(--rule); padding:30px; }
.card-dark{ background:rgba(251,247,240,.06); border:1px solid rgba(251,247,240,.18); padding:30px; }

/* ---------- dotted-leader spec list: signature ---------- */
.spec{ list-style:none; padding:0; margin:0; }
.spec li{ display:flex; align-items:baseline; gap:8px; padding:12px 0; border-bottom:1px dotted var(--rule); }
.spec li:first-child{ border-top:1px dotted var(--rule); }
.spec .k{ font-family:'Spline Sans Mono',monospace; font-size:.63rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ox); flex:none; }
.spec .dots{ flex:1; border-bottom:1px dotted var(--rule); transform:translateY(-4px); min-width:18px; }
.spec .v{ text-align:right; font-size:.95rem; color:var(--text); max-width:62%; }
.s-ox .spec li,.s-char .spec li,.s-slate .spec li{ border-color:rgba(251,247,240,.2); }
.s-ox .spec .dots,.s-char .spec .dots,.s-slate .spec .dots{ border-color:rgba(251,247,240,.28); }
.s-ox .spec .k,.s-char .spec .k,.s-slate .spec .k{ color:var(--brass-lt); }
.s-ox .spec .v,.s-char .spec .v,.s-slate .spec .v{ color:rgba(251,247,240,.86); }

/* ---------- numbered checks ---------- */
.checks{ list-style:none; padding:0; margin:0; }
.checks li{ display:grid; grid-template-columns:34px 1fr; gap:14px; padding:16px 0; border-bottom:1px solid var(--rule-2); align-items:baseline; }
.checks li:first-child{ border-top:1px solid var(--rule-2); }
.checks li b{ font-family:'Spline Sans Mono',monospace; font-size:.64rem; color:var(--brass); letter-spacing:.1em; }
.s-ox .checks li,.s-char .checks li{ border-color:rgba(251,247,240,.16); }
.s-ox .checks li b,.s-char .checks li b{ color:var(--brass-lt); }

/* ---------- scope ---------- */
.scope{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.scope > div{ padding:32px; border:1px solid var(--rule); }
.scope .inc{ background:var(--slate-lt); border-color:#C6D8E0; }
.scope .exc{ background:var(--brass-pale); border-color:#E4D3AE; }
.scope h4{ font-family:'Spline Sans Mono',monospace; font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; display:flex; align-items:center; gap:9px; }
.scope h4 .dia{ width:7px; height:7px; transform:rotate(45deg); display:inline-block; }
.scope .inc h4{ color:var(--slate-d); } .scope .inc h4 .dia{ background:var(--slate); }
.scope .exc h4{ color:#8A6412; } .scope .exc h4 .dia{ background:var(--brass); }
.scope ul{ list-style:none; padding:0; margin:0; }
.scope li{ font-size:.96rem; line-height:1.52; padding:11px 0; border-bottom:1px dotted rgba(33,28,30,.18); }
.scope li:last-child{ border-bottom:none; }

/* ---------- local note ---------- */
.local{ border:1px solid var(--rule); border-left:4px solid var(--brass); padding:28px 30px; background:var(--paper); position:relative; }
.local h4{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin-bottom:12px; }
.local p{ margin:0; color:var(--muted); }

/* ---------- tables ---------- */
.tbl-wrap{ overflow-x:auto; border:1px solid var(--rule); }
table{ border-collapse:collapse; width:100%; min-width:580px; font-size:.94rem; background:var(--paper); }
th,td{ text-align:left; padding:15px 20px; border-bottom:1px solid var(--rule-2); vertical-align:top; }
thead th{
  background:var(--ox-d); color:var(--paper); font-family:'Spline Sans Mono',monospace; font-size:.6rem;
  letter-spacing:.16em; text-transform:uppercase; font-weight:500;
}
tbody tr:last-child td{ border-bottom:none; }
tbody tr:nth-child(even){ background:var(--paper-2); }

/* ---------- gallery ---------- */
.gal{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:18px; }
.gal figure{ margin:0; position:relative; background:var(--ox-dd); overflow:hidden; border:1px solid rgba(251,247,240,.14); }
.gal img{ width:100%; height:220px; object-fit:cover; opacity:.86; transition:opacity .3s ease, transform .5s ease; }
.gal figure:hover img{ opacity:1; transform:scale(1.04); }
.gal figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:11px 15px;
  background:linear-gradient(0deg,rgba(42,14,23,.95),rgba(42,14,23,0));
  color:#EBDFE1; font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.08em; line-height:1.6;
}
.gal figcaption em{ font-style:normal; color:var(--brass-lt); }

/* ---------- symptoms ---------- */
.symp{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 46px; }
.symp div{ display:grid; grid-template-columns:34px 1fr; gap:12px; padding:15px 0; border-bottom:1px solid rgba(251,247,240,.16); font-size:.96rem; align-items:baseline; }
.symp b{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; color:var(--brass-lt); letter-spacing:.1em; }

/* ---------- FAQ ---------- */
.faq{ max-width:900px; }
.faq details{ border-bottom:1px solid var(--rule); background:transparent; }
.faq details:first-child{ border-top:1px solid var(--rule); }
.faq summary{
  cursor:pointer; list-style:none; padding:24px 0; display:grid; grid-template-columns:30px 1fr 28px; gap:16px;
  align-items:baseline; font-family:'Young Serif',serif; font-size:1.22rem; line-height:1.25; color:var(--ox-d);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .qn{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; color:var(--brass); letter-spacing:.08em; }
.faq summary::after{ content:"+"; font-family:'Spline Sans Mono',monospace; font-size:1.1rem; color:var(--brass); justify-self:end; }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ margin:0; padding:0 0 26px 46px; color:var(--muted); max-width:72ch; }

/* ---------- reviews ---------- */
.rev{ background:var(--paper); border:1px solid var(--rule); padding:30px; position:relative; }
.rev .stars{ display:flex; gap:5px; margin-bottom:14px; }
.rev .stars i{ width:8px; height:8px; background:var(--brass); transform:rotate(45deg); display:block; }
.rev p.q{ font-family:'Young Serif',serif; font-size:1.14rem; line-height:1.42; color:var(--char); margin-bottom:18px; }
.rev .who{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* ---------- contact ---------- */
.ccard{ background:var(--paper); border:1px solid var(--rule); padding:28px; }
.ccard h4{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.ccard p{ margin:0; font-size:1.05rem; overflow-wrap:anywhere; }
.ccard .sub{ font-size:.87rem; color:var(--muted); margin-top:8px; }
.mapbox{ border:1px solid var(--rule); padding:8px; background:var(--paper); }
.mapbox iframe{ width:100%; height:450px; border:0; display:block; }

/* ---------- CTA ---------- */
.cta{ text-align:center; }
.cta h2{ max-width:18ch; margin-left:auto; margin-right:auto; }
.cta p{ color:rgba(251,247,240,.74); max-width:58ch; margin:0 auto 28px; }
.cta-actions{ display:flex; gap:15px; justify-content:center; flex-wrap:wrap; }

/* ---------- breadcrumb ---------- */
.crumb{ font-family:'Spline Sans Mono',monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding:22px 0 0; }
.crumb a{ color:var(--muted); }
.crumb i{ font-style:normal; margin:0 10px; color:var(--brass); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ox-dd); color:#B49AA0; }
.site-footer .container{ padding-top:66px; }
.fgrid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.15fr; gap:40px; padding-bottom:44px; }
.fbrand{ display:flex; gap:13px; align-items:center; margin-bottom:18px; }
.fbrand img{ height:50px; }
.fbrand strong{ font-family:'Young Serif',serif; font-weight:400; color:var(--paper); font-size:1.22rem; line-height:1.1; }
.site-footer h5{ font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-lt); margin:0 0 17px; display:flex; align-items:center; gap:9px; }
.site-footer h5 .dia{ width:6px; height:6px; background:var(--brass); transform:rotate(45deg); display:inline-block; }
.site-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:11px; }
.site-footer li{ overflow-wrap:anywhere; font-size:.93rem; }
.site-footer a{ color:#B49AA0; }
.site-footer a:hover{ color:var(--paper); }
.fbot{ border-top:1px solid rgba(251,247,240,.15); padding:22px 0 32px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.1em; color:#8C7178; }

/* ---------- mobile ---------- */
.mcall{ display:none; }
.mpanel{ display:none; position:fixed; inset:0; background:var(--paper); z-index:100; padding:22px 26px; overflow-y:auto; }
.mpanel.open{ display:block; }
.mpanel .top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.mpanel ul{ list-style:none; padding:0; margin:0; }
.mpanel .grp{ font-family:'Spline Sans Mono',monospace; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); padding:20px 0 8px; }
.mpanel a{ display:block; padding:14px 0; border-bottom:1px solid var(--rule); font-family:'Young Serif',serif; font-size:1.24rem; color:var(--ox-d); }

@media (max-width:1060px){
  .hero-grid,.two-col{ grid-template-columns:1fr; }
  .hero-copy{ padding:var(--s5) 0; }
  .hero-fig{ min-height:340px; margin:0 -30px; }
  .g3,.g4,.ledger .container,.fgrid{ grid-template-columns:repeat(2,1fr); }
  .ledger div:nth-child(2n){ border-right:none; }
  .mainnav .drop{ min-width:320px; }
}
@media (max-width:780px){
  .mainnav ul,.navcta .btn-out{ display:none; }
  .navtoggle{ display:flex; }
  .callicon{ display:inline-flex; }
  .callfull{ display:none; }
  .g2,.g3,.g4,.scope,.symp,.ledger .container,.fgrid{ grid-template-columns:1fr; }
  .ledger div{ border-right:none; border-bottom:1px solid var(--rule); padding-right:0; }
  .ledger div:last-child{ border-bottom:none; }
  .spec li{ flex-wrap:wrap; }
  .spec .v{ max-width:100%; text-align:left; }
  .spec .dots{ display:none; }
  .faq summary{ grid-template-columns:26px 1fr 22px; gap:12px; font-size:1.08rem; }
  .faq details p{ padding-left:38px; }
  section{ padding:var(--s5) 0; }
  body{ padding-bottom:68px; }
  .brand img{ height:38px; }
  .bw strong{ font-size:1.02rem; }
  .bw span{ display:none; }
  .dropcap::first-letter{ font-size:2.8rem; }
  .mcall{ display:flex; position:fixed; bottom:0; left:0; right:0; z-index:70; background:var(--ox-dd); padding:11px 14px; }
}
