/* Fireman's Friend Engineering: "Bold Industrial" theme. Theme tokens are injected at build time. */
:root{--bg:#0d0d0e;--bg-alt:#161719;--surface:#1b1c1f;--input:#121315;--ink:#e4e4e6;--ink-strong:#ffffff;--muted:#a9abb0;--line:#2c2e33;--line-strong:#55585e;--link:#ff6b61;--link-hover:#ff9a92;--focus:#ffb627;--accent-text:#ff5247;--red:#d40000;--red-bright:#ff5247;--red-hot:#ff3b30;--red-band:#c80000;--red-tint:rgba(255,40,40,.12);--btn:#d40000;--btn-hover:#b00000;--slab:#151618;--shadow:0 1px 2px rgba(0,0,0,.5);--font-head:"Oswald","Arial Narrow","Roboto Condensed",Impact,sans-serif;--font-body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--font-cond:"Barlow Condensed","Arial Narrow","Roboto Condensed",sans-serif;--max:1320px;color-scheme:dark}
@font-face{font-family:"Oswald";src:url(fonts/oswald-var.woff2) format("woff2");font-weight:200 700;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url(fonts/barlow-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url(fonts/barlow-semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url(fonts/barlow-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlowcond-semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlowcond-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:100px;background:var(--bg)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.125rem/1.6 var(--font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
picture{display:contents}
a{color:var(--link);text-underline-offset:.18em}
a:hover{color:var(--link-hover)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
p{margin:0 0 1em}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;text-transform:uppercase;line-height:.98;letter-spacing:.005em;margin:0 0 .45em;color:var(--ink-strong)}
h1{font-size:clamp(2.75rem,1.4rem + 5.4vw,6.5rem)}
h2{font-size:clamp(2.3rem,1.3rem + 3.4vw,5rem)}
h3{font-size:clamp(1.3rem,1.15rem + .5vw,1.65rem);line-height:1.08}
.wrap{width:min(100% - 2.5rem,var(--max));margin-inline:auto}
@media (min-width:1900px){:root{--max:1440px}}
@media (min-width:2400px){:root{--max:1680px}body{font-size:1.25rem}}
.skip{position:absolute;left:1rem;top:-100px;z-index:200;background:#fff;color:#000;padding:.75rem 1rem;font-weight:700}
.skip:focus{top:1rem}
.eyebrow{display:inline-flex;align-items:center;gap:.8rem;font:700 .95rem/1 var(--font-cond);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text);margin-bottom:1.1rem}
.eyebrow::before{content:"";width:36px;height:6px;background:var(--red);transform:skewX(-30deg);flex:none}
.lead{font-size:clamp(1.15rem,1.05rem + .35vw,1.35rem);color:var(--ink);max-width:62ch}
.muted{color:var(--muted)}
/* ---------- Header (always over a dark band) */
.site-header{--hh:150px;--logo-h:120px;position:fixed;top:0;left:0;right:0;z-index:50;background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.28) 70%,rgba(0,0,0,0));transition:background-color .25s ease,box-shadow .25s ease}
.site-header.scrolled,.site-header.menu-open{--hh:90px;--logo-h:70px;background:#0b0b0c;box-shadow:0 10px 30px -14px rgba(0,0,0,.6)}
.site-header.menu-open:not(.scrolled){--hh:150px;--logo-h:120px}
.topbar{color:#d8d8d8;font:600 .875rem/1 var(--font-cond);letter-spacing:.1em;text-transform:uppercase;max-height:3rem;overflow:hidden;transition:max-height .25s ease,opacity .25s ease;border-bottom:1px solid rgba(255,255,255,.12)}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:.35rem 1.75rem;justify-content:space-between;padding:.6rem 0}
.topbar span{display:inline-flex;gap:.5rem;align-items:center}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{color:#fff;text-decoration:underline}
.topbar svg{width:14px;height:14px;fill:var(--red-bright);flex:none}
.site-header.scrolled .topbar{max-height:0;opacity:0;border-bottom-color:transparent}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--hh);transition:min-height .25s ease}
.brand{display:flex;align-items:center;text-decoration:none;flex:none}
.brand img{height:var(--logo-h);width:auto;transition:height .25s ease}
.menu{display:flex;align-items:center;gap:clamp(.25rem,.1rem + .9vw,1.6rem);list-style:none;margin:0;padding:0}
.menu a{display:block;padding:.55rem .15rem;font:700 1.05rem/1 var(--font-cond);text-transform:uppercase;letter-spacing:.1em;color:#fff;text-decoration:none;border-bottom:4px solid transparent}
.menu a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.5)}
.menu a[aria-current="page"]{border-bottom-color:var(--red)}
.menu .btn{margin-left:.5rem;border:0;padding:.95rem 1.7rem;font-size:1.05rem}
.menu a.btn[aria-current="page"]{box-shadow:inset 0 -4px 0 #fff}
.menu-toggle{display:none;background:rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.55);width:48px;height:48px;color:#fff;cursor:pointer;align-items:center;justify-content:center}
.menu-toggle svg{width:26px;height:26px;stroke:currentColor}
@media (max-width:1180px){
 .site-header{--hh:120px;--logo-h:94px}
 .site-header.scrolled,.site-header.menu-open{--hh:80px;--logo-h:62px}
 .site-header.menu-open:not(.scrolled){--hh:120px;--logo-h:94px}
 .menu-toggle{display:inline-flex}
 .menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#0b0b0c;border-top:4px solid var(--red);padding:.5rem 1.25rem 1.5rem;display:none;max-height:calc(100vh - var(--hh) - 2rem);overflow:auto}
 .menu.open{display:flex}
 .menu a{padding:1rem .25rem;border-bottom:1px solid rgba(255,255,255,.12);font-size:1.15rem}
 .menu a[aria-current="page"]{border-bottom-color:rgba(255,255,255,.12);box-shadow:inset 5px 0 0 var(--red);padding-left:1rem}
 .menu .btn{margin:1.1rem 0 0;justify-content:center}
}
@media (max-width:640px){
 .topbar .addr{display:none}
 .topbar .wrap{justify-content:center;gap:.3rem 1.25rem;font-size:.8rem}
 .site-header{--hh:100px;--logo-h:78px}
 .site-header.scrolled,.site-header.menu-open{--hh:74px;--logo-h:56px}
 .site-header.menu-open:not(.scrolled){--hh:100px;--logo-h:78px}
}
@media (min-width:2400px){.site-header{--hh:176px;--logo-h:142px}.site-header.scrolled{--hh:106px;--logo-h:84px}.menu a{font-size:1.2rem}}
/* ---------- Buttons (parallelogram; rectangular when keyboard-focused) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;white-space:nowrap;padding:1.05rem 2.1rem;border:0;font:700 1.15rem/1 var(--font-cond);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;cursor:pointer;clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);transition:background-color .15s,color .15s}
.btn:focus-visible{clip-path:none}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn-primary,.menu a.btn-primary{background:var(--btn);color:#fff}
.btn-primary:hover,.menu a.btn-primary:hover{background:var(--btn-hover);color:#fff}
.btn-light{background:#fff;color:#111}
.btn-light:hover{background:#e6e6e6;color:#000}
.btn-dark{background:var(--ink-strong);color:var(--bg)}
.btn-dark:hover{background:var(--red);color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
@media (max-width:420px){.btn{white-space:normal;text-align:center;padding:1rem 1.6rem}}
/* ---------- Sections */
section{position:relative;padding:clamp(4rem,2.5rem + 5vw,8rem) 0}
.section-head{max-width:820px;margin-bottom:clamp(2rem,1.5rem + 2vw,3.5rem)}
.head-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem 4rem;align-items:end;margin-bottom:clamp(2rem,1.5rem + 2vw,3.5rem)}
.head-split h2{margin-bottom:0}
.head-split p{margin:0;color:var(--muted);max-width:52ch}
@media (max-width:900px){.head-split{grid-template-columns:1fr}}
.alt{background:var(--bg-alt);clip-path:polygon(0 clamp(18px,3vw,60px),100% 0,100% calc(100% - clamp(18px,3vw,60px)),0 100%);padding-block:clamp(5rem,3rem + 6vw,9.5rem)}
.slab{background:var(--slab);color:#e9e9e9;clip-path:polygon(0 clamp(24px,4.5vw,80px),100% 0,100% calc(100% - clamp(24px,4.5vw,80px)),0 100%);padding-block:clamp(6rem,4rem + 7vw,11rem)}
.slab h2,.slab h3{color:#fff}
.slab .muted,.slab .lead,.slab .head-split p{color:#b9b9bd}
.slab .eyebrow{color:var(--red-bright)}
.slab a:not(.btn){color:#fff}
/* ---------- Home hero */
.hero{min-height:clamp(640px,96vh,1010px);display:flex;align-items:center;color:#fff;background:#000;padding:clamp(13rem,10rem + 6vw,17.5rem) 0 clamp(9rem,6rem + 6vw,13rem);clip-path:polygon(0 0,100% 0,100% calc(100% - clamp(40px,8vw,130px)),0 100%);isolation:isolate;overflow:hidden}
.hero .bg img,.page-hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero .bg img{object-position:62% 60%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.74) 45%,rgba(0,0,0,.18) 82%),linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}
.hero h1{color:#fff;max-width:1060px;margin:0 0 .3em;font-size:clamp(2.9rem,1.2rem + 6.4vw,6.75rem)}
.hero h1 em{font-style:normal;color:var(--red-hot)}
.hero h1 .l{display:block}
.hero h1{text-wrap:balance;font-size:clamp(2.6rem,1rem + 4.6vw,5.4rem);max-width:none}
.hero .lead{color:#e6e6e6;max-width:44rem}
.hero .eyebrow,.page-hero .eyebrow{color:#fff}
@media (max-width:900px){.hero::after{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.66)),linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}}
/* stats bar */
.stats-wrap{position:relative;z-index:3;margin-top:calc(-1 * clamp(4.5rem,3rem + 4vw,7rem));padding:0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--red-band);color:#fff;clip-path:polygon(28px 0,100% 0,calc(100% - 28px) 100%,0 100%);box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}
.stat{padding:clamp(1.4rem,1rem + 1vw,2.2rem) clamp(1.4rem,1rem + 1.6vw,2.8rem);border-right:2px solid rgba(255,255,255,.25)}
.stat:first-child{padding-left:clamp(2rem,1.5rem + 2vw,3.2rem)}
.stat:last-child{border:0}
.stat b{display:block;font:700 clamp(2rem,1.4rem + 1.6vw,3rem)/1 var(--font-head);text-transform:none}
.stat span{display:block;margin-top:.4rem;font:600 .95rem/1.3 var(--font-cond);letter-spacing:.08em;text-transform:uppercase;color:#fff}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));clip-path:polygon(16px 0,100% 0,calc(100% - 16px) 100%,0 100%)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:2px solid rgba(255,255,255,.25)}.stat,.stat:first-child{padding:1.3rem 1.6rem}}
/* ---------- Inner page header band */
.page-hero{background:#0b0b0c;color:#fff;padding:clamp(12.5rem,10rem + 5vw,16rem) 0 clamp(5.5rem,4rem + 5vw,9rem);clip-path:polygon(0 0,100% 0,100% calc(100% - clamp(30px,6vw,100px)),0 100%);isolation:isolate;overflow:hidden}
.page-hero.textured::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 500px at 88% 10%,rgba(212,0,0,.35),transparent 62%),repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 16px),linear-gradient(180deg,#141416,#0b0b0c)}
.page-hero.photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.78) 50%,rgba(0,0,0,.35) 100%)}
.page-hero h1{color:#fff;margin:0 0 .3em;max-width:16ch}
.page-hero .lead{color:#dedede;margin:0}
.crumbs{font:600 .95rem/1.2 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.4rem;color:#cfcfcf}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--red-bright)}
.crumbs a{color:#fff;text-decoration:none}
.crumbs a:hover{text-decoration:underline;color:#fff}
/* ---------- Grids, cards */
.grid{display:grid;gap:clamp(1rem,.75rem + 1vw,1.75rem)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.g2{grid-template-columns:1fr}}
@media (max-width:560px){.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--surface);border-top:6px solid var(--ink-strong);padding:clamp(1.5rem,1.1rem + 1vw,2.2rem);box-shadow:var(--shadow)}
.alt .card{background:var(--surface)}
.card.red-top{border-top-color:var(--red)}
.card h3{margin-bottom:.35em}
.card p:last-child{margin-bottom:0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,1rem + 5vw,6rem);align-items:center}
.split.top{align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.prose{max-width:70ch}
.prose p{margin-bottom:1.1em}
.prose h2{margin-top:1.2em}
.prose p:not(.lead){color:var(--muted)}
.slab .prose p:not(.lead){color:#c4c4c8}
.more-link{font:700 1.1rem/1 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);text-decoration:none}
.more-link:hover{text-decoration:underline;color:var(--accent-text)}
/* angled photo with red offset block */
.angled-photo{position:relative;isolation:isolate;margin:0 0 24px 24px}
.angled-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}
.angled-photo::before{content:"";position:absolute;left:-24px;bottom:-24px;width:55%;height:60%;background:var(--red);z-index:-1;clip-path:polygon(0 0,100% 0,85% 100%,0 100%)}
/* ---------- Features (outlined numbers) */
.fgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:2px solid #333;counter-reset:feat;list-style:none;margin:0;padding:0}
.fgrid li{padding:2rem 1.6rem 2rem 0;border-bottom:2px solid #333;counter-increment:feat}
.fgrid li::before{content:counter(feat,decimal-leading-zero);display:block;font:700 clamp(3.2rem,2.4rem + 1.6vw,4.4rem)/1 var(--font-head);color:transparent;-webkit-text-stroke:2px var(--red-bright)}
.fgrid h3{font-size:1.55rem;margin:.9rem 0 .5rem;color:#fff}
.fgrid p{color:#b9b9bd;font-size:1rem;line-height:1.5;margin:0}
@media (max-width:1180px){.fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.fgrid{grid-template-columns:1fr}.fgrid li{padding-right:0}}
/* ---------- Products */
.plist{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:2px solid var(--ink-strong);background:var(--ink-strong);gap:2px}
.plist.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.pcard{display:flex;flex-direction:column;background:var(--surface);padding:1.6rem 1.4rem 1.6rem;color:var(--ink);text-decoration:none;transition:background-color .15s}
.pcard:hover{background:var(--bg-alt);color:var(--ink)}
.pcard:hover .go{text-decoration:underline}
.pcard img{width:180px;max-width:100%;height:auto;aspect-ratio:4/3;margin:0 auto 1.3rem;border:1px solid var(--line)}
.tag{display:inline-block;align-self:flex-start;background:var(--ink-strong);color:var(--bg);font:700 .85rem/1 var(--font-cond);letter-spacing:.14em;padding:.35rem .65rem;text-transform:uppercase}
.pcard .model{font:700 1.55rem/1.05 var(--font-head);letter-spacing:.02em;margin:.75rem 0 .3rem;color:var(--ink-strong);text-transform:uppercase}
.pcard .spec{color:var(--muted);font-size:1rem}
.pcard .go{margin-top:auto;padding-top:1rem;font:700 1rem/1 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
@media (max-width:1180px){.plist{grid-template-columns:repeat(3,minmax(0,1fr))}.plist.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.plist,.plist.four{grid-template-columns:repeat(2,minmax(0,1fr))}.pcard{padding:1.2rem 1rem}.pcard .model{font-size:1.25rem}}
@media (max-width:400px){.plist,.plist.four{grid-template-columns:1fr}}
/* ---------- Materials band */
.mat{background:var(--red-band);color:#fff;clip-path:polygon(0 clamp(24px,4vw,60px),100% 0,100% calc(100% - clamp(12px,2vw,30px)),0 100%);padding:clamp(5rem,3.5rem + 4vw,7.5rem) 0 clamp(4rem,3rem + 3vw,6rem)}
.mat .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem}
.mat b{display:block;font:700 1.6rem/1.08 var(--font-head);text-transform:uppercase;margin-bottom:.55rem}
.mat p{font-size:1.02rem;color:#fff;margin:0}
@media (max-width:1024px){.mat .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.mat .wrap{grid-template-columns:1fr;gap:1.6rem}}
/* ---------- Duo band */
.duo{min-height:clamp(560px,50vw,760px);background:#000;color:#fff;overflow:hidden;isolation:isolate;display:flex;align-items:center;margin-top:-2px}
.duo .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 50%;z-index:-2}
.duo .panel{position:absolute;left:0;top:0;bottom:0;width:60%;background:rgba(10,10,10,.93);clip-path:polygon(0 0,100% 0,80% 100%,0 100%);z-index:-1}
.duo .inner{max-width:min(560px,48%);position:relative}
.duo h2{color:#fff;font-size:clamp(2.6rem,1.4rem + 4vw,5.75rem)}
.duo p{color:#d8d8d8}
.duo .eyebrow{color:var(--red-bright)}
.pills{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 .25rem}
.pills span{border:2px solid var(--red-bright);color:#fff;font:600 1rem/1.2 var(--font-cond);letter-spacing:.06em;text-transform:uppercase;padding:.4rem .85rem}
@media (max-width:1000px){.duo .panel{width:100%;clip-path:none;background:rgba(8,8,8,.84)}.duo .inner{max-width:640px}}
/* ---------- Testimonials */
.qbig{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1rem,.5rem + 2vw,2.5rem);border-left:10px solid var(--red);padding:.5rem 0 .5rem clamp(1.25rem,1rem + 2vw,2.75rem);margin:0 0 clamp(2.5rem,2rem + 2vw,4rem)}
.qbig .mark{font:700 clamp(7rem,5rem + 6vw,13.75rem)/.8 var(--font-head);color:var(--red);user-select:none}
.qbig blockquote{margin:0;font:600 clamp(1.7rem,1rem + 2.6vw,3.2rem)/1.08 var(--font-head);text-transform:uppercase;color:var(--ink-strong)}
.qbig blockquote p{margin:0}
.who{margin-top:1.25rem;font:600 1.05rem/1.4 var(--font-cond);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.who b{color:var(--ink-strong)}
.qcard{background:var(--bg-alt);padding:clamp(1.5rem,1.1rem + 1vw,2.2rem);border-top:6px solid var(--ink-strong);display:flex;flex-direction:column;break-inside:avoid;margin:0}
.alt .qcard{background:var(--surface)}
.qcard blockquote{margin:0 0 1.2rem;font-size:1.1rem;color:var(--ink)}
.qcard blockquote p{margin:0}
.qcard .who{margin-top:auto;font-size:.95rem}
.qcard.founder{border-top-color:var(--red)}
.masonry{columns:3 320px;column-gap:clamp(1rem,.75rem + 1vw,1.75rem)}
.masonry .qcard{margin-bottom:clamp(1rem,.75rem + 1vw,1.75rem);display:block}
.masonry .qcard .who{margin-top:0}
@media (max-width:640px){.qbig{grid-template-columns:1fr;border-left-width:6px}.qbig .mark{font-size:6rem;line-height:.6;margin-top:.5rem}}
/* ---------- Tables */
.table-wrap{overflow-x:auto;border:2px solid var(--ink-strong);background:var(--surface)}
table{width:100%;border-collapse:collapse;font-size:1.02rem}
th,td{padding:.85rem 1.05rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font:700 .95rem/1.2 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#111;border-bottom:0}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
tbody th{font-weight:700;color:var(--ink-strong)}
tbody th a{font:700 1.2rem/1 var(--font-head);letter-spacing:.02em}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.group th{background:var(--red-tint);color:var(--accent-text);font:700 .95rem/1.2 var(--font-cond);letter-spacing:.12em;text-transform:uppercase}
.spec-table th{width:38%;color:var(--muted);font:600 .95rem/1.4 var(--font-cond);letter-spacing:.08em;text-transform:uppercase}
.spec-table td{color:var(--ink-strong);font-weight:600}
/* ---------- Lists */
.checks{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.checks.cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem}
.checks.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.checks.cols3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.checks.cols,.checks.cols3{grid-template-columns:1fr}}
.checks li{position:relative;padding-left:2.1rem}
.checks li::before{content:"";position:absolute;left:0;top:.3em;width:1.2rem;height:1.2rem;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='square'/%3E%3C/svg%3E") center/78% no-repeat;clip-path:polygon(18% 0,100% 0,82% 100%,0 100%)}
.slab .checks li{font:600 1.15rem/1.35 var(--font-cond);letter-spacing:.04em;text-transform:uppercase;color:#fff}
/* ---------- Product detail */
.product-hero{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,1rem + 4vw,5rem);align-items:start}
@media (max-width:900px){.product-hero{grid-template-columns:1fr}}
.plate{background:#111;color:#fff;padding:2.2rem 1.6rem 1.6rem;position:relative;clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
.plate::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(-45deg,var(--red) 0 14px,#111 14px 28px)}
.plate .frame{width:180px;max-width:100%;margin:0 auto;border:2px solid #444;background:#fff}
.plate .frame img{width:180px;max-width:100%;height:auto}
.plate dl{margin:1.6rem 0 0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:1rem}
.plate dt{font:600 .9rem/1.5 var(--font-cond);letter-spacing:.1em;text-transform:uppercase;color:#bdbdbd}
.plate dd{margin:0;font-weight:700}
.badge-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.6rem}
.badge{font:700 .9rem/1 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;padding:.5rem .75rem;background:var(--ink-strong);color:var(--bg)}
.badge.red{background:var(--btn);color:#fff}
.price-note{border-left:8px solid var(--red);background:var(--red-tint);padding:1.1rem 1.35rem;margin:1.6rem 0}
.price-note p{margin:0;color:var(--ink)}
.price-note b{color:var(--ink-strong)}
/* ---------- FAQ */
details{border:2px solid var(--ink-strong);background:var(--surface);margin-bottom:.9rem}
details[open]{border-left:10px solid var(--red)}
summary{cursor:pointer;list-style:none;padding:1.2rem 3.5rem 1.2rem 1.4rem;font:700 1.3rem/1.15 var(--font-head);text-transform:uppercase;color:var(--ink-strong);position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font:700 2rem/1 var(--font-head);color:var(--accent-text)}
details[open] summary::after{content:"\2212"}
details .answer{padding:0 1.4rem 1.3rem;color:var(--ink)}
.spec-block{background:var(--surface);border:2px solid var(--ink-strong);border-left:10px solid var(--red);padding:1.5rem 1.75rem}
.spec-block p{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem;line-height:1.75;color:var(--ink)}
.spec-block p:last-child{margin-bottom:0}
/* ---------- Contact */
.contact-cards .card{display:flex;flex-direction:column;gap:.35rem;border-top-color:var(--red)}
.contact-cards .ico{width:54px;height:54px;display:grid;place-items:center;background:var(--ink-strong);color:var(--bg);margin-bottom:.8rem;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.contact-cards .ico svg{width:24px;height:24px;fill:currentColor}
.contact-cards a{font-weight:700}
.contact-cards dt{font:600 .9rem/1.3 var(--font-cond);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:.5rem}
.contact-cards dd{margin:0;font-weight:700;font-size:1.15rem}
.card-title{font-size:1.6rem}
.lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,.5rem + 1.2vw,1.75rem);margin-top:2rem}
@media (max-width:980px){.lines{grid-template-columns:1fr}}
.line{position:relative;display:flex;flex-direction:column;gap:.55rem;background:#111;color:#fff;text-decoration:none;padding:2.4rem 1.7rem 1.7rem;clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);transition:background-color .2s ease,transform .2s ease}
.line::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(-45deg,var(--red) 0 14px,#111 14px 28px)}
.line:hover,.line:focus-visible{background:#1c1c1e;transform:translateY(-3px)}
.line:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.line-ico{width:54px;height:54px;display:grid;place-items:center;background:var(--btn,var(--red));color:#fff;margin-bottom:.4rem;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.line-ico svg{width:24px;height:24px;fill:currentColor}
.line-label{font:700 .95rem/1.2 var(--font-cond);letter-spacing:.16em;text-transform:uppercase;color:#bdbdbd}
.line-num{font:700 clamp(1.9rem,1.3rem + 1.4vw,2.7rem)/1.05 var(--font-head);letter-spacing:.01em;color:#fff}
.line-email{font-size:clamp(1.25rem,1rem + .8vw,1.65rem);overflow-wrap:anywhere;text-transform:none}
.line-go{margin-top:auto;padding-top:1rem;display:inline-flex;align-items:center;gap:.5rem;font:700 1rem/1 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:#ff6b5e}
.line-go svg{width:18px;height:18px;fill:currentColor}
.lines + .price-note{margin-top:2rem}
.visit-plate{margin-top:1.4rem}
.visit-plate dl{margin-top:.4rem}
.visit-plate a{color:#fff}
.visit-plate .btn svg{width:20px;height:20px;fill:currentColor}
.section-head .lead{max-width:48rem}
/* ---------- Milestones */
.miles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;border-top:2px solid #333}
.miles>div{padding-top:1.6rem}
.milestone{display:block;font:700 clamp(2.8rem,2rem + 2vw,4.2rem)/1 var(--font-head);color:var(--red-bright)}
@media (max-width:760px){.miles{grid-template-columns:1fr}}
/* ---------- CTA + footer */
.cta{background:#0c0c0c;color:#fff;padding:clamp(4.5rem,3rem + 4vw,6.5rem) 0}
.cta::before{content:"";position:absolute;left:0;right:0;top:0;height:16px;background:repeating-linear-gradient(-45deg,var(--red) 0 22px,#0c0c0c 22px 44px)}
.cta .wrap{display:flex;flex-wrap:wrap;gap:2rem 3rem;align-items:center;justify-content:space-between}
.cta h2{color:#fff;font-size:clamp(2.2rem,1.4rem + 2.8vw,4.25rem);margin:0 0 .3em;max-width:16ch}
.cta p{margin:0;color:#c8c8c8;max-width:60ch}
.cta .btn-row{margin-top:0}
.site-footer{background:#000;color:#b5b5b5;padding:clamp(3.5rem,2.5rem + 3vw,4.5rem) 0 2rem;font-size:1rem}
[data-theme="dark"] .site-footer{border-top:1px solid #222}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.5rem}
@media (max-width:900px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.site-footer .cols{grid-template-columns:1fr}}
.site-footer h2{font-size:1.3rem;letter-spacing:.05em;color:#fff;margin-bottom:1rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.site-footer a{color:#e2e2e2;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .flogo{height:84px;width:auto;margin-bottom:1.2rem}
.site-footer address{font-style:normal;display:grid;gap:.5rem}
.legal{border-top:1px solid #222;margin-top:3rem;padding-top:1.4rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.9rem;color:#a0a0a0}
/* ---------- 404 + utilities */
.page-hero.notfound{clip-path:none;padding-bottom:clamp(5rem,4rem + 4vw,8rem);border-bottom:8px solid var(--red)}
.notfound{min-height:80vh;display:flex;align-items:center;text-align:left}
.notfound .lead{color:#dedede}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mt-0{margin-top:0!important}.mt-s{margin-top:.6rem}.mt-m{margin-top:1.5rem}.mt-l{margin-top:2.25rem}.m-0{margin:0}
.role{margin-bottom:.6em;font:600 1rem/1.3 var(--font-cond);letter-spacing:.12em;text-transform:uppercase}
figure{margin:0}
@media (max-width:700px){
 table.stack thead{position:absolute;left:-9999px}
 table.stack,table.stack tbody,table.stack tr,table.stack th,table.stack td{display:block;width:100%}
 table.stack tr{border-bottom:2px solid var(--line);padding:.7rem 0}
 table.stack tr:last-child{border-bottom:0}
 table.stack th,table.stack td{border:0;padding:.3rem 1rem}
 table.stack td::before{content:attr(data-label);display:block;font:600 .8rem/1.3 var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
}
/* ---------- Angled-edge adjacency fixes */
:root{--ph-slant:clamp(30px,6vw,100px);--alt-slant:clamp(18px,3vw,60px);--slab-slant:clamp(24px,4.5vw,80px)}
.edge{height:calc(var(--ph-slant) + 8px);margin-top:calc(-1 * var(--ph-slant));background:var(--red);clip-path:polygon(0 calc(100% - 8px),100% 0,100% 8px,0 100%);position:relative;z-index:2}
.alt:has(+ .cta),.alt:last-child{clip-path:polygon(0 var(--alt-slant),100% 0,100% 100%,0 100%)}
.slab:has(+ .cta),.slab:last-child{clip-path:polygon(0 var(--slab-slant),100% 0,100% 100%,0 100%)}
.alt:has(+ .slab){clip-path:polygon(0 var(--alt-slant),100% 0,100% 100%,0 100%);padding-bottom:calc(clamp(5rem,3rem + 6vw,9.5rem) + var(--slab-slant))}
.alt + .slab{margin-top:calc(-1 * var(--slab-slant))}
.mat:has(+ .cta){clip-path:polygon(0 clamp(24px,4vw,60px),100% 0,100% 100%,0 100%)}
.mat{position:relative;z-index:2}
.mat + .duo{margin-top:calc(-1 * clamp(12px,2vw,30px));z-index:1}
[data-theme="dark"] .plate{background:#1d1e21}
[data-theme="dark"] .plate::before{background:repeating-linear-gradient(-45deg,var(--red) 0 14px,#1d1e21 14px 28px)}
[data-theme="dark"] .page-hero.textured::before{background:radial-gradient(900px 500px at 88% 10%,rgba(212,0,0,.38),transparent 62%),repeating-linear-gradient(-45deg,rgba(255,255,255,.04) 0 2px,transparent 2px 16px),linear-gradient(180deg,#1b1c1f,#111214)}
/* ---------- Mobile tightening */
@media (max-width:560px){
 .site-footer .cols{grid-template-columns:1fr 1fr;gap:2rem 1.25rem}
 .site-footer .cols>div:first-child,.site-footer .cols>div:last-child{grid-column:1/-1}
 .eyebrow{letter-spacing:.16em;font-size:.85rem}
 .stat b{font-size:1.75rem}
 .stat span{font-size:.85rem}
}
@media (max-width:480px){
 .fgrid li{display:grid;grid-template-columns:3.4rem minmax(0,1fr);column-gap:1rem;padding:1.4rem 0}
 .fgrid li::before{grid-row:1/3;font-size:2.8rem}
 .fgrid h3{margin:.15rem 0 .35rem;font-size:1.35rem}
}
@media (max-width:400px){.plist,.plist.four{grid-template-columns:repeat(2,minmax(0,1fr))}.pcard{padding:1rem .8rem}.pcard .model{font-size:1.1rem}.pcard .spec{font-size:.92rem}.tag{font-size:.75rem}}
@media (max-width:1180px) and (min-width:641px){.plist:not(.four) .pcard:nth-child(5){grid-column:span 2}}
@media (max-width:640px){.plist:not(.four) .pcard:nth-child(5){grid-column:1/-1}}
