/* FireProShop — Moss on warm paper
   Palette + type per FireProShop Brand Guide / Site design (Claude Design handoff) */

:root{
  --bg:#f4f2ec;
  --card:#fbfaf6;
  --ink:#1a1916;
  --body:#4a463f;
  --mid:#3a372f;
  --muted:#716c60;
  --line:#dbd7cb;
  --line-dash:#cfcabd;
  --green:#628346;
  --green-lt:#8fb06e;
  --dark:#1a1916;
  --dark-line:#35332d;
  --dark-body:#a09a8e;
  --dark-text:#e9e6de;
  --dark-link:#d6d1c6;
  --dark-label:#6e685e;
  --dark-border:#55524a;
  --sans:"Public Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;}
a{color:var(--green);text-decoration:none;}
a:hover{color:var(--ink);}
img{display:block;max-width:100%;}
h1,h2,h3,p{margin:0;}

.wrap{max-width:1240px;margin:0 auto;}
.frame{max-width:1240px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);}

.mono{font-family:var(--mono);}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);}
.mono-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}

/* Buttons */
.btn{display:inline-flex;align-items:center;white-space:nowrap;background:var(--green);color:#fff;font-weight:700;cursor:pointer;border:0;font-family:var(--sans);}
.btn:hover{background:#54713c;color:#fff;}
.btn-outline{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid var(--ink);color:var(--ink);font-weight:600;cursor:pointer;background:transparent;font-family:var(--sans);}
.btn-outline:hover{background:var(--ink);color:var(--bg);}
.btn-lg{padding:16px 28px;font-size:15px;}
.btn-md{padding:13px 22px;font-size:14px;}
.btn-xl{padding:17px 30px;font-size:16px;}

/* ============ Header ============ */
.site-head{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);}
.site-head .bar{width:100%;padding:10px 40px;min-height:68px;display:flex;align-items:center;justify-content:flex-start;gap:28px;flex-wrap:wrap;}
.site-head .logo img{height:48px;width:auto;}
.site-nav{display:flex;gap:22px;font-size:14.5px;font-weight:700;flex-wrap:wrap;min-width:0;margin-left:auto;}
.site-nav a{display:inline-flex;white-space:nowrap;color:var(--mid);}
.site-nav a:hover{color:var(--ink);}
.site-nav a.on{color:var(--green);}
.head-cta{display:flex;gap:12px;align-items:center;flex:none;}
.head-cta .phone{font-family:var(--mono);font-size:13px;color:var(--muted);}
.head-cta .btn{padding:11px 17px;font-size:13.5px;}
.nav-toggle{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer;}

/* ============ Shared section patterns ============ */
.page-intro{padding:64px 40px 40px;border-bottom:1px solid var(--line);}
.page-intro h1{font-size:52px;line-height:1;letter-spacing:-.035em;font-weight:800;margin:0 0 12px;}
.page-intro .eyebrow{margin-bottom:14px;}
.page-intro p{font-size:18px;color:var(--body);line-height:1.5;}

.section-cta{padding:52px 40px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}

/* ============ Home ============ */
.hero{display:grid;grid-template-columns:1.1fr 1fr;border-bottom:1px solid var(--line);}
.hero-copy{padding:72px 48px 64px 40px;display:flex;flex-direction:column;gap:26px;}
.hero-copy h1{font-size:64px;line-height:.97;letter-spacing:-.038em;font-weight:800;text-wrap:balance;margin:0;}

/* Hero slider — full-bleed background slides */
.hero-slider{position:relative;display:grid;border-bottom:1px solid var(--line);}
.hs-slide{grid-area:1/1;position:relative;display:flex;align-items:center;min-height:640px;background-size:cover;background-position:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility .55s;}
.hs-slide.on{opacity:1;visibility:visible;pointer-events:auto;}
.hs-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,25,22,.82) 0%,rgba(26,25,22,.6) 45%,rgba(26,25,22,.2) 100%);}
.hs-inner{position:relative;z-index:1;width:100%;max-width:1240px;margin:0 auto;padding:90px 40px;display:flex;flex-direction:column;gap:22px;align-items:flex-start;}
.hs-inner .eyebrow{color:var(--green-lt);}
.hs-title{margin:0;font-size:64px;line-height:.97;letter-spacing:-.038em;font-weight:800;text-wrap:balance;color:#fff;max-width:18ch;}
.hs-lede{font-size:18.5px;line-height:1.5;color:var(--dark-text);max-width:52ch;}
.hs-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px;}
.hs-play{display:inline-flex;align-items:center;gap:12px;padding:0 24px 0 0;background:transparent;border:0;color:#fff;font-family:var(--sans);font-size:15px;font-weight:700;cursor:pointer;white-space:nowrap;}
.hs-play .ic{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.7);background:rgba(26,25,22,.35);flex:none;transition:background .15s,border-color .15s;}
.hs-play .ic svg{width:18px;height:18px;margin-left:3px;fill:#fff;}
.hs-play:hover .ic{background:var(--green);border-color:var(--green);}
.hs-play:focus-visible{outline:2px solid var(--green-lt);outline-offset:4px;}
.vl{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;}
.vl[hidden]{display:none;}
.vl-back{position:absolute;inset:0;background:rgba(26,25,22,.92);}
.vl-box{position:relative;width:min(1120px,100%);}
.vl-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border:12px solid var(--bg);}
.vl-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vl-close{position:absolute;right:0;top:-46px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--ink);border:0;cursor:pointer;font-family:var(--mono);font-size:16px;padding:0;}
.vl-close:hover{background:var(--green);color:#fff;}
.vl-close:focus-visible{outline:2px solid var(--green-lt);outline-offset:2px;}
html.vl-open{overflow:hidden;}
.hs-controls{position:absolute;right:20px;bottom:20px;z-index:2;display:flex;gap:6px;align-items:stretch;}
.hs-count{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--bg);background:rgba(26,25,22,.82);padding:0 13px;display:flex;align-items:center;}
.hs-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(26,25,22,.82);color:var(--bg);border:0;cursor:pointer;font-family:var(--mono);font-size:16px;padding:0;}
.hs-btn:hover{background:var(--ink);}
.hs-btn:focus-visible{outline:2px solid var(--green);}
.hero-copy .lede{max-width:46ch;font-size:18.5px;line-height:1.5;color:var(--body);}
.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.hero-badges{display:flex;gap:14px;align-items:center;padding-top:6px;flex-wrap:wrap;}
.badge{border:1.5px solid var(--ink);padding:9px 13px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;flex:none;}
.hero-badges .note{font-size:14.5px;color:var(--body);max-width:28ch;line-height:1.4;}
.hero-img{border-left:1px solid var(--line);min-height:560px;position:relative;overflow:hidden;}
.hero-img img,.img-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border: 12px solid #f4f2ec;}
.img-caption{position:absolute;left:20px;bottom:20px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:rgba(26,25,22,.82);padding:8px 11px;}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);}
.stats>div{padding:26px 30px;border-right:1px solid var(--line);}
.stats>div:last-child{border-right:0;}
.stats .n{font-family:var(--mono);font-size:36px;font-weight:600;letter-spacing:-.03em;}
.stats .d{font-size:13px;color:var(--muted);margin-top:4px;}

.problem{display:grid;grid-template-columns:.9fr 1.1fr;border-bottom:1px solid var(--line);}
.problem-copy{padding:60px 40px;border-right:1px solid var(--line);}
.problem-copy h2{margin:0 0 14px;font-size:36px;line-height:1.05;letter-spacing:-.03em;font-weight:700;text-wrap:balance;}
.problem-copy .eyebrow{margin-bottom:14px;}
.problem-copy p{font-size:16px;line-height:1.55;color:var(--body);max-width:44ch;}
.exposures{display:grid;grid-template-rows:1fr 1fr;}
.exposure{padding:36px 40px;display:grid;grid-template-columns:120px 1fr;gap:24px;}
.exposure+.exposure{border-top:1px solid var(--line);}
.exposure .idx{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);line-height:1.7;}
.exposure .idx b{color:var(--ink);font-weight:600;}
.exposure h3{font-weight:700;font-size:20px;letter-spacing:-.02em;margin:0 0 8px;}
.exposure p{font-size:15.5px;line-height:1.55;color:var(--body);}

.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;gap:24px;flex-wrap:wrap;}
.section-head h2{font-size:36px;letter-spacing:-.03em;font-weight:700;}
.section-head .more{display:inline-flex;white-space:nowrap;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);}

.cards-3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.layer-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:var(--card);}
.layer-card .ph{height:220px;overflow:hidden;}
.layer-card .ph img{width:100%;height:100%;object-fit:cover;}
.layer-card .tx{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1;}
.layer-card .std{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.12em;}
.layer-card .nm{font-weight:700;font-size:21px;line-height:1.15;letter-spacing:-.02em;}
.layer-card .bl{font-size:15px;color:var(--body);line-height:1.5;}

.cards-5{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.prod-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:var(--card);color:var(--ink);}
.prod-card:hover{color:var(--ink);background:#f6f4ee;}
.prod-card .ph{height:190px;overflow:hidden;}
.prod-card .ph img{width:100%;height:100%;object-fit:cover;border:12px solid #f4f2ec;}
.prod-card .tx{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.prod-card .num{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.1em;}
.prod-card .nm{font-weight:700;font-size:16px;line-height:1.2;}
.prod-card .bl{font-size:13px;color:var(--muted);line-height:1.45;}

.split{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);}
.split .img-cover{position:relative;min-height:440px;overflow:hidden;border-right:1px solid var(--line);}
.split-copy{padding:56px 40px;display:flex;flex-direction:column;gap:16px;justify-content:center;}
.split-copy h2{font-size:34px;line-height:1.05;letter-spacing:-.03em;font-weight:700;}
.split-copy p{font-size:16px;line-height:1.55;color:var(--body);max-width:44ch;}
.chip-row{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--body);}
.chip-row span{border:1px solid var(--line);background:var(--card);padding:7px 11px;}

.proof{padding:44px 40px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:center;}
.proof .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.7;}
.proof .lbl b{color:var(--ink);font-weight:600;}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.proof-grid>div{background:var(--card);padding:20px 22px;}
.proof-grid .co{font-weight:700;font-size:17px;}
.proof-grid .dt{font-size:13.5px;color:var(--muted);margin-top:3px;line-height:1.45;}

.docs{background:var(--dark);color:var(--dark-text);padding:56px 40px;display:grid;grid-template-columns:1fr 1fr;gap:48px;border-bottom:1px solid var(--line);}
.docs .eyebrow{color:var(--green-lt);margin-bottom:14px;}
.docs h2{margin:0 0 14px;font-size:36px;line-height:1.05;letter-spacing:-.03em;font-weight:700;}
.docs p{margin:0 0 20px;font-size:16px;line-height:1.55;color:var(--dark-body);max-width:44ch;}
.btn-outline-dark{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid var(--dark-border);color:var(--dark-text);padding:13px 22px;font-weight:600;font-size:14px;}
.btn-outline-dark:hover{background:var(--dark-text);color:var(--dark);}
.docs-table{font-family:var(--mono);font-size:13px;}
.docs-table>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--dark-line);}
.docs-table>div:last-child{border-bottom:0;}
.docs-table .v{color:var(--green-lt);text-align:right;}

.home-cta{padding:58px 40px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.home-cta h2{margin:0 0 8px;font-size:38px;letter-spacing:-.03em;font-weight:800;}
.home-cta p{font-size:16px;color:var(--muted);}

/* ============ Products ============ */
.prod-row{display:grid;grid-template-columns:.9fr 1.1fr;border-bottom:1px solid var(--line);}
.prod-row .img-cover{position:relative;min-height:380px;border-right:1px solid var(--line);overflow:hidden;}
.prod-row .tx{padding:40px;display:flex;flex-direction:column;gap:14px;}
.prod-row .std{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.14em;}
.prod-row h2{font-size:34px;letter-spacing:-.03em;font-weight:800;line-height:1.05;}
.prod-row .long{font-size:16.5px;line-height:1.55;color:var(--body);max-width:54ch;}
.spec-table{font-family:var(--mono);font-size:13px;border-top:1px solid var(--line);max-width:540px;}
.spec-table>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line);}
.spec-table .k{color:var(--muted);}
.spec-table .v{text-align:right;}
.prod-row .acts{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap;}

/* ============ Product page ============ */
.crumbs{padding:16px 40px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;}
.crumbs a{color:var(--green);}
.pp-hero{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);}
.pp-hero .tx{padding:56px 40px;display:flex;flex-direction:column;gap:16px;}
.pp-hero .std{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.14em;}
.pp-hero h1{font-size:46px;line-height:1.02;letter-spacing:-.035em;font-weight:800;text-wrap:balance;}
.pp-hero .lede{font-size:18.5px;line-height:1.5;color:var(--ink);font-weight:500;max-width:48ch;}
.pp-hero .long{font-size:16px;line-height:1.55;color:var(--body);max-width:54ch;}
.pp-hero .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.pp-hero .img-cover{position:relative;min-height:460px;overflow:hidden;border-left:1px solid var(--line);}
.pp-specs{padding:40px 40px 48px;border-bottom:1px solid var(--line);}
.pp-specs .mono-label{display:block;margin-bottom:14px;}
.pp-specs .spec-table{max-width:760px;font-size:14px;}
.pp-inq{border-bottom:1px solid var(--line);}
.pp-inq .form-main h2{margin:0 0 12px;font-size:40px;line-height:1.02;letter-spacing:-.035em;font-weight:800;text-wrap:balance;}
.pp-inq .form-side .block:first-child{padding-top:64px;}
.pp-more{padding:48px 40px 60px;border-bottom:1px solid var(--line);}
.pc-head{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:24px;}
.pc-head h2{font-size:32px;letter-spacing:-.025em;font-weight:700;}
.pc-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.pc-controls{display:flex;gap:6px;align-items:center;}
.pc-count{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);padding:0 10px;}
.pc-btn{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-family:var(--mono);font-size:16px;padding:0;}
.pc-btn:hover{background:var(--ink);color:var(--bg);}
.pc-btn:disabled{border-color:var(--line);color:var(--line);cursor:default;background:transparent;}
.pc-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.pc-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-top:1px solid var(--line);border-left:1px solid var(--line);-webkit-overflow-scrolling:touch;contain:inline-size;min-width:0;}
.pc-track img{min-width:0;}
.page-shell>*{min-width:0;}
.pc-track::-webkit-scrollbar{display:none;}
.pc-track:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.pc-track .prod-card{flex:0 0 33.3334%;scroll-snap-align:start;}
.pc-track .prod-card .ph{height:200px;}

/* ============ How it works ============ */
.seq-row{display:grid;grid-template-columns:120px 1fr 1fr;border-bottom:1px solid var(--line);}
.seq-row .num{padding:36px 0 36px 40px;font-family:var(--mono);font-size:32px;font-weight:600;color:var(--green);letter-spacing:-.03em;}
.seq-row .tx{padding:36px 40px;display:flex;flex-direction:column;gap:10px;}
.seq-row .when{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.seq-row h2{font-size:26px;letter-spacing:-.025em;font-weight:700;}
.seq-row p{font-size:16px;line-height:1.55;color:var(--body);max-width:46ch;}
.seq-row .std{font-family:var(--mono);font-size:12px;color:var(--green);margin-top:4px;}
.seq-row .img-cover{position:relative;min-height:260px;overflow:hidden;border-left:1px solid var(--line);}

.steps-4{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.step-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px;background:var(--card);display:flex;flex-direction:column;gap:8px;min-height:180px;}
.step-card .num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--green);}
.step-card .nm{font-weight:700;font-size:17px;line-height:1.2;}
.step-card .bl{font-size:14px;color:var(--muted);line-height:1.5;}
.plate-facts{display:flex;gap:28px;margin-top:20px;font-family:var(--mono);font-size:12.5px;color:var(--body);flex-wrap:wrap;}
.plate-facts .k{color:var(--muted);}

/* ============ Solutions ============ */
.sol-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:20px 40px;border-bottom:1px solid var(--line);background:var(--card);}
.sol-tab{display:inline-flex;align-items:center;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--mid);padding:10px 16px;font-size:14px;font-weight:600;font-family:var(--sans);}
.sol-tab:hover{border-color:var(--ink);color:var(--ink);}
.sol-tab.on{background:var(--dark);color:var(--bg);border-color:var(--dark);}
.sol-hero{display:grid;grid-template-columns:1.1fr .9fr;border-bottom:1px solid var(--line);}
.sol-hero .tx{padding:56px 40px;display:flex;flex-direction:column;gap:18px;}
.sol-hero h2{font-size:38px;line-height:1.05;letter-spacing:-.03em;font-weight:800;text-wrap:balance;}
.sol-hero p{font-size:17px;line-height:1.55;color:var(--body);max-width:50ch;}
.sol-hero .acts{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap;}
.sol-hero .img-cover{position:relative;min-height:420px;overflow:hidden;border-left:1px solid var(--line);}
.sol-layers{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
.sol-layer{padding:32px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;background:var(--card);}
.sol-layer:last-child{border-right:0;}
.sol-layer.optional{background:var(--bg);}
.sol-layer .top{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.sol-layer .std{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--green);}
.sol-layer .tag{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border:1px solid var(--ink);color:var(--ink);}
.sol-layer.optional .tag{border-color:var(--line);color:var(--muted);}
.sol-layer .nm{font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1.15;}
.sol-layer .note{font-size:14.5px;color:var(--body);line-height:1.5;}
.sol-bottom{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);}
.sol-paper{padding:44px 40px;border-right:1px solid var(--line);}
.sol-paper .mono-label,.sol-proof .mono-label{display:block;margin-bottom:16px;}
.paper-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);}
.paper-item .dot{width:8px;height:8px;background:var(--green);margin-top:8px;flex:none;}
.paper-item span:last-child{font-size:15.5px;color:var(--mid);line-height:1.5;}
.sol-proof{padding:44px 40px;}
.sol-proof .txt{font-size:16px;line-height:1.6;color:var(--body);}

/* ============ Pricing ============ */
.drivers{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
.drivers>div{padding:36px 32px;border-right:1px solid var(--line);}
.drivers>div:last-child{border-right:0;}
.drivers .num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--green);margin-bottom:10px;}
.drivers h3{font-weight:700;font-size:19px;margin:0 0 6px;}
.drivers p{font-size:15px;color:var(--muted);line-height:1.5;}
.includes{padding:52px 40px;border-bottom:1px solid var(--line);}
.includes h2{margin:0 0 20px;font-size:28px;letter-spacing:-.025em;font-weight:700;}
.includes-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;max-width:960px;}
.inc-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.inc-item .dot{width:9px;height:9px;background:var(--green);margin-top:7px;flex:none;}
.inc-item span:last-child{font-size:16px;color:var(--mid);}

/* ============ About ============ */
.about-hero{display:grid;grid-template-columns:1.1fr .9fr;border-bottom:1px solid var(--line);}
.about-hero .tx{padding:64px 40px 56px;}
.about-hero h1{margin:0 0 18px;font-size:52px;line-height:1;letter-spacing:-.035em;font-weight:800;}
.about-hero .eyebrow{margin-bottom:14px;display:block;}
.about-hero p{margin:0 0 16px;font-size:17.5px;color:var(--body);line-height:1.55;max-width:52ch;}
.about-hero p:last-child{margin-bottom:0;}
.about-hero .img-cover{border-left:1px solid var(--line);min-height:420px;position:relative;overflow:hidden;}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
.pillars>div{padding:40px 32px;border-right:1px solid var(--line);}
.pillars>div:last-child{border-right:0;}
.pillars h3{margin:0 0 8px;font-size:20px;font-weight:700;letter-spacing:-.02em;}
.pillars p{font-size:15px;color:var(--muted);line-height:1.55;}
.supply{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);}
.supply .tx{padding:48px 40px;border-right:1px solid var(--line);}
.supply .mono-label{display:block;margin-bottom:14px;}
.supply h2{margin:0 0 10px;font-size:26px;letter-spacing:-.025em;font-weight:700;}
.supply p{font-size:15.5px;line-height:1.55;color:var(--body);max-width:48ch;}
.supply .img-cover{position:relative;min-height:320px;overflow:hidden;}
.audiences{padding:52px 40px;border-bottom:1px solid var(--line);}
.audiences .mono-label{display:block;margin-bottom:20px;}
.aud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.aud-grid>div{background:var(--card);padding:20px;font-size:15px;font-weight:600;}

/* ============ Quote / Contact ============ */
.form-page{display:grid;grid-template-columns:1.15fr .85fr;}
.form-main{padding:64px 40px 56px;border-right:1px solid var(--line);}
.form-main h1{margin:0 0 12px;font-size:48px;line-height:1;letter-spacing:-.035em;font-weight:800;}
.form-main .eyebrow{display:block;margin-bottom:14px;}
.form-main .intro{margin:0 0 34px;font-size:17.5px;color:var(--body);line-height:1.5;max-width:50ch;}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.field input,.field textarea{border:1px solid var(--line);background:var(--card);height:46px;padding:0 13px;font-family:var(--sans);font-size:15px;color:var(--ink);border-radius:0;-webkit-appearance:none;}
.field textarea{height:120px;padding:12px 13px;resize:vertical;}
.field input:focus,.field textarea:focus{outline:2px solid var(--green);outline-offset:-1px;}
.needs-row{display:flex;flex-wrap:wrap;gap:8px;}
.need-chip{display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--mid);padding:10px 15px;font-size:14px;font-weight:600;font-family:var(--sans);}
.need-chip:hover{border-color:var(--ink);}
.need-chip{position:relative;}
.need-chip input{position:absolute;opacity:0;pointer-events:none;}
.need-chip.on,.need-chip:has(input:checked){background:var(--green);color:#fff;border-color:var(--green);}
.upload-box{margin-top:22px;border:1px dashed var(--line-dash);background:var(--card);padding:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.upload-box .t{font-weight:700;font-size:15px;}
.upload-box .d{font-size:14px;color:var(--muted);margin-top:2px;}
.form-side{display:flex;flex-direction:column;}
.form-side .block{padding:32px 36px;border-bottom:1px solid var(--line);}
.form-side .block:first-child{padding-top:64px;}
.form-side .mono-label{display:block;margin-bottom:16px;letter-spacing:.14em;}
.form-side .who{display:flex;flex-direction:column;gap:18px;font-size:16px;}
.form-side .img-cover{flex:1;min-height:240px;position:relative;overflow:hidden;}
.form-note{font-size:14px;color:var(--muted);}
.form-msg{margin-top:18px;padding:14px 16px;font-size:15px;display:none;}
.form-msg.ok{display:block;background:#eaf0e2;border:1px solid var(--green);color:#3c5527;}
.form-msg.err{display:block;background:#f6e9e6;border:1px solid #a5502f;color:#7c3a20;}
.hp-field{position:absolute;left:-9999px;top:-9999px;}

/* ============ Ben Franklin Award ============ */
.aw-hero{display:grid;grid-template-columns:1.1fr .9fr;border-bottom:1px solid var(--line);}
.aw-hero .tx{padding:64px 40px 56px;display:flex;flex-direction:column;gap:18px;}
.aw-hero h1{font-size:54px;line-height:1;letter-spacing:-.035em;font-weight:800;text-wrap:balance;}
.aw-hero .lede{font-size:18.5px;line-height:1.5;color:var(--body);max-width:50ch;}
.aw-hero .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.aw-hero .img-cover{position:relative;min-height:460px;overflow:hidden;border-left:1px solid var(--line);}
.aw-quote{background:var(--dark);color:var(--dark-text);padding:64px 40px;border-bottom:1px solid var(--line);text-align:center;}
.aw-quote blockquote{margin:0 auto;max-width:26ch;font-size:40px;line-height:1.1;letter-spacing:-.025em;font-weight:500;text-wrap:balance;}
.aw-quote .cite{margin-top:18px;font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-lt);}
.aw-steps{padding:56px 40px 0;border-bottom:1px solid var(--line);}
.aw-steps .section-head{align-items:flex-start;}
.aw-steps .section-head p{font-size:16px;line-height:1.55;color:var(--body);max-width:56ch;}
.aw-steps .drivers{margin:32px -40px 0;border-top:1px solid var(--line);border-bottom:0;}
.aw-recipients{padding:56px 40px 64px;border-bottom:1px solid var(--line);}
.aw-rec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:28px;}
.aw-rec-head .eyebrow{margin-bottom:12px;}
.aw-rec-head h2{font-size:36px;letter-spacing:-.03em;font-weight:700;line-height:1.05;text-wrap:balance;}
.aw-rec-head p{margin-top:12px;font-size:16px;line-height:1.55;color:var(--body);max-width:56ch;}
.aw-rec-count{display:flex;align-items:center;gap:14px;padding:14px 20px;border:1px solid var(--line);background:var(--card);}
.aw-rec-count .n{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--green);}
.aw-rec-count .mono-label{line-height:1.5;}
.aw-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.aw-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:var(--card);min-width:0;}
.aw-card .ph{aspect-ratio:1/1;overflow:hidden;background:#dce9f6;}
.aw-card .ph img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.aw-card:hover .ph img{transform:scale(1.03);}
.aw-card .tx{padding:16px 18px 20px;display:flex;flex-direction:column;gap:3px;}
.aw-card .num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--green);margin-bottom:6px;}
.aw-card .nm{font-weight:700;font-size:18px;letter-spacing:-.01em;line-height:1.2;color:var(--ink);}
.aw-card .co{font-size:14px;color:var(--muted);line-height:1.4;}
.aw-card-open{background:var(--dark);color:var(--dark-text);justify-content:flex-end;}
.aw-card-open .tx{padding:28px 22px 26px;gap:6px;}
.aw-card-open .nm{color:var(--dark-text);font-size:22px;}
.aw-card-open .co{color:var(--dark-text);opacity:.72;}
.aw-card-open .btn{margin-top:14px;align-self:flex-start;}
.aw-quotes{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);}
.aw-quotes>div{padding:44px 40px;border-right:1px solid var(--line);}
.aw-quotes>div:last-child{border-right:0;}
.aw-quotes blockquote{margin:0;padding:4px 0 4px 24px;border-left:3px solid var(--green);font-size:22px;line-height:1.35;font-weight:500;max-width:44ch;}
.aw-quotes footer{margin-top:12px;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;}
.aw-letter{display:grid;grid-template-columns:1.2fr .8fr;border-bottom:1px solid var(--line);}
.aw-letter .paper{padding:56px 48px 56px 40px;border-right:1px solid var(--line);background:var(--card);}
.aw-letter .head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid var(--line);}
.aw-letter .head img{height:44px;width:auto;}
.aw-letter .head .addr{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right;line-height:1.7;}
.aw-letter .eyebrow{display:block;margin-bottom:10px;}
.aw-letter .date{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:26px;}
.aw-letter .body{display:flex;flex-direction:column;gap:16px;font-size:17px;line-height:1.6;color:var(--body);max-width:66ch;}
.aw-letter .body .sal{color:var(--ink);font-weight:600;}
.aw-letter .sig{margin-top:28px;}
.aw-letter .sig .nm{font-weight:700;font-size:18px;color:var(--ink);margin-top:14px;}
.aw-letter .sig .ttl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;line-height:1.7;}
.aw-letter .ps{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:15.5px;line-height:1.55;color:var(--body);max-width:66ch;}
.aw-side{display:flex;flex-direction:column;}
.aw-side .block{padding:32px 36px;border-bottom:1px solid var(--line);}
.aw-side .block:first-child{padding-top:56px;}
.aw-side .mono-label{display:block;margin-bottom:16px;}
.aw-side .docs-links{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.aw-side .who{font-size:16px;}
.aw-side .img-cover{flex:1;min-height:280px;position:relative;overflow:hidden;}

/* ============ Footer ============ */
.site-foot{margin-top:auto;background:var(--dark);color:var(--dark-body);}
.foot-grid{max-width:1240px;margin:0 auto;padding:52px 40px 28px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
.foot-grid .logo img{height:84px;width:auto;}
.foot-grid .addr{margin-top:20px;font-size:14px;line-height:1.6;max-width:36ch;}
.foot-col{display:flex;flex-direction:column;gap:10px;}
.foot-col .h{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dark-label);}
.foot-col a{display:inline-flex;align-self:flex-start;font-size:14.5px;color:var(--dark-link);}
.foot-col a:hover{color:#fff;}
.foot-col .phone{font-family:var(--mono);font-size:13.5px;margin-top:4px;}
.foot-legal{max-width:1240px;margin:0 auto;padding:18px 40px 40px;border-top:1px solid var(--dark-line);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--dark-label);}
.foot-legal .up{text-transform:uppercase;}

.page-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);}

/* ============ Responsive ============ */
@media (max-width:1023px){
  .hero{grid-template-columns:1fr;}
  .hero-img{border-left:0;border-top:1px solid var(--line);min-height:380px;}
  .hero-copy{padding:52px 32px 44px;}
  .hero-copy h1{font-size:48px;}
  .hs-slide{min-height:540px;}
  .hs-inner{padding:70px 32px;}
  .hs-title{font-size:48px;}
  .stats{grid-template-columns:1fr 1fr;}
  .stats>div:nth-child(2n){border-right:0;}
  .stats>div:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .problem{grid-template-columns:1fr;}
  .problem-copy{border-right:0;border-bottom:1px solid var(--line);}
  .cards-3,.sol-layers,.drivers,.pillars{grid-template-columns:1fr;}
  .cards-5{grid-template-columns:1fr 1fr;}
  .steps-4{grid-template-columns:1fr 1fr;}
  .split,.docs,.prod-row,.about-hero,.supply,.sol-hero,.sol-bottom,.form-page,.pp-hero{grid-template-columns:1fr;}
  .pp-hero .img-cover{border-left:0;border-top:1px solid var(--line);min-height:300px;}
  .pp-hero h1{font-size:40px;}
  .pp-inq .form-side .block:first-child{padding-top:40px;}
  .pc-track .prod-card{flex-basis:50%;}
  .aw-grid{grid-template-columns:repeat(3,1fr);}
  .aw-rec-head h2{font-size:30px;}
  .aw-hero,.aw-quotes,.aw-letter{grid-template-columns:1fr;}
  .aw-hero .img-cover{border-left:0;border-top:1px solid var(--line);min-height:340px;}
  .aw-hero h1{font-size:42px;}
  .aw-quote blockquote{font-size:32px;}
  .aw-quotes>div{border-right:0;border-bottom:1px solid var(--line);}
  .aw-quotes>div:last-child{border-bottom:0;}
  .aw-letter .paper{border-right:0;border-bottom:1px solid var(--line);}
  .aw-side .block:first-child{padding-top:36px;}
  .split .img-cover{border-right:0;min-height:320px;}
  .prod-row .img-cover{border-right:0;min-height:280px;}
  .sol-hero .img-cover,.about-hero .img-cover,.seq-row .img-cover{border-left:0;}
  .sol-layer,.pillars>div,.drivers>div{border-right:0;border-bottom:1px solid var(--line);}
  .sol-layer:last-child,.pillars>div:last-child,.drivers>div:last-child{border-bottom:0;}
  .sol-paper,.supply .tx,.form-main{border-right:0;border-bottom:1px solid var(--line);}
  .proof{grid-template-columns:1fr;gap:20px;}
  .proof-grid{grid-template-columns:1fr;}
  .seq-row{grid-template-columns:80px 1fr;}
  .seq-row .num{padding-left:24px;}
  .seq-row .img-cover{grid-column:1/-1;border-top:1px solid var(--line);}
  .aud-grid{grid-template-columns:1fr 1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .page-intro h1{font-size:42px;}
  .includes-grid{grid-template-columns:1fr;}
  .form-side .block:first-child{padding-top:40px;}
}
@media (max-width:719px){
  .site-head .bar{padding:10px 20px;}
  .site-nav{display:none;width:100%;flex-direction:column;gap:0;border-top:1px solid var(--line);padding-top:8px;order:3;}
  .site-nav.open{display:flex;}
  .site-nav a{padding:10px 0;font-size:16px;}
  .nav-toggle{display:inline-flex;}
  .head-cta .phone{display:none;}
  .page-intro,.hero-copy,.problem-copy,.exposure,.split-copy,.docs,.home-cta,.section-cta,.includes,.audiences,.form-main,.about-hero .tx,.supply .tx,.sol-hero .tx,.sol-paper,.sol-proof,.crumbs,.pp-hero .tx,.pp-specs,.pp-more{padding-left:20px;padding-right:20px;}
  .pp-hero h1{font-size:34px;}
  .pp-inq .form-main h2{font-size:32px;}
  .pc-head h2{font-size:28px;}
  .pc-track .prod-card{flex-basis:86%;}
  .aw-grid{grid-template-columns:repeat(2,1fr);}
  .aw-rec-head h2{font-size:26px;}
  .aw-card .tx{padding:12px 12px 16px;}
  .aw-card .nm{font-size:15.5px;}
  .aw-card .co{font-size:13px;}
  .aw-card-open .tx{padding:20px 14px;}
  .aw-card-open .nm{font-size:18px;}
  .aw-hero .tx,.aw-quote,.aw-steps,.aw-recipients,.aw-quotes>div,.aw-letter .paper,.aw-side .block{padding-left:20px;padding-right:20px;}
  .aw-steps .drivers{margin-left:-20px;margin-right:-20px;}
  .aw-hero h1{font-size:34px;}
  .aw-quote blockquote{font-size:26px;}
  .aw-letter .head{flex-direction:column;}
  .aw-letter .head .addr{text-align:left;}
  .pad-40{padding-left:20px !important;padding-right:20px !important;}
  .sol-tabs{padding:16px 20px;}
  .hero-copy h1{font-size:38px;}
  .hs-slide{min-height:480px;}
  .hs-inner{padding:56px 20px 80px;}
  .hs-title{font-size:38px;}
  .hs-shade{background:linear-gradient(180deg,rgba(26,25,22,.55) 0%,rgba(26,25,22,.8) 100%);}
  .hs-play{padding-right:0;}
  .hs-play .ic{width:46px;height:46px;}
  .vl{padding:12px;}
  .vl-frame{border-width:6px;}
  .page-intro h1,.form-main h1{font-size:34px;}
  .home-cta h2{font-size:30px;}
  .docs h2,.problem-copy h2,.section-head h2{font-size:28px;}
  .exposure{grid-template-columns:1fr;gap:10px;}
  .cards-5,.steps-4,.aud-grid,.field-grid{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .foot-grid{grid-template-columns:1fr;padding:44px 20px 20px;}
  .foot-legal{padding:16px 20px 32px;}
  .seq-row{grid-template-columns:1fr;}
  .seq-row .num{padding:28px 20px 0;}
  .seq-row .tx{padding:16px 20px 28px;}
  .hero-img{min-height:300px;}
}
