:root{
  --carbon:#0a0d10;
  --panel:#11161b;
  --panel-2:#171e25;
  --panel-3:#1d252d;
  --line: rgba(255,255,255,0.08);
  --line-strong: rgba(255,255,255,0.14);
  --blue:#4fa6ff;
  --blue-2:#8fd7ff;
  --blue-dim: rgba(79,166,255,0.35);
  --red:#d2273f;
  --green:#4fd68c;
  --amber:#e8a23a;
  --text:#eaeef2;
  --muted:#93a0ac;
  --muted-2:#5f6b76;
  --disp: 'Oswald', sans-serif;
  --body: 'IBM Plex Sans', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--carbon);
  color:var(--text);
  font-family:var(--body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue-2);
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--blue); display:inline-block;}
h1,h2,h3,h4{font-family:var(--disp); font-weight:600; letter-spacing:.01em; text-transform:uppercase; line-height:1.06;}
h2{font-size:clamp(28px,4vw,44px); margin-bottom:14px;}
h3{font-size:20px;}
p{color:var(--muted); max-width:60ch;}
.lede{font-size:18px; color:#c3ccd4; max-width:56ch;}
section{position:relative; padding:96px 0;}
section.tight{padding:64px 0;}
.btn{
  font-family:var(--mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:10px; padding:14px 22px;
  border:1px solid var(--line-strong); color:var(--text); text-decoration:none;
  transition:.2s border-color ease, .2s background ease, .2s transform ease;
  background:transparent; cursor:pointer;
}
.btn:hover{border-color:var(--blue); transform:translateY(-1px);}
.btn.primary{background:var(--blue); border-color:var(--blue); color:#04121f; font-weight:600;}
.btn.primary:hover{background:var(--blue-2); border-color:var(--blue-2);}
.btn.ghost-sm{padding:9px 14px; font-size:11px;}
.btn.full{width:100%; justify-content:center;}
.btn .arrow{transition:.2s transform ease;}
.btn:hover .arrow{transform:translateX(3px);}
.btn:disabled{opacity:.4; cursor:not-allowed;}

/* ---------- NAV ---------- */
header.nav{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(10,13,16,.86); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav-inner{max-width:1180px; margin:0 auto; padding:0 28px; height:68px; display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{height:34px; width:auto; filter:grayscale(1) brightness(1.6);}
.brand-text{font-family:var(--disp); font-size:15px; letter-spacing:.08em; text-transform:uppercase;}
.brand-text span{display:block; font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); margin-top:2px;}
nav.links{display:flex; gap:30px; font-family:var(--mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;}
nav.links a{text-decoration:none; color:var(--muted); transition:.2s color; position:relative; padding-bottom:4px;}
nav.links a:hover{color:var(--blue-2);}
nav.links a.active{color:var(--blue-2);}
nav.links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--blue);}
.nav-right{display:flex; align-items:center; gap:16px;}
.nav-cta{display:none;}
@media(min-width:860px){.nav-cta{display:inline-flex;}}
.cart-btn{position:relative; background:none; border:1px solid var(--line-strong); color:var(--text); width:40px; height:40px; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.cart-btn svg{width:18px; height:18px; stroke:var(--text);}
.cart-count{position:absolute; top:-7px; right:-7px; background:var(--blue); color:#04121f; font-family:var(--mono); font-size:10px; font-weight:700; width:17px; height:17px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer;}
.burger span{width:22px; height:2px; background:var(--text);}
@media(max-width:860px){nav.links{display:none;} .burger{display:flex;}}

/* ---------- PAGE HEADER (sub pages) ---------- */
.page-head{padding:150px 0 60px; border-bottom:1px solid var(--line); position:relative; overflow:hidden;}
.page-head::after{content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 0%, rgba(79,166,255,.12), transparent 50%); pointer-events:none;}
.page-head h1{font-size:clamp(34px,5.4vw,60px); margin:14px 0 16px; position:relative;}
.crumb{font-family:var(--mono); font-size:11px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.06em; margin-top:18px;}
.crumb a{color:var(--muted-2); text-decoration:none;} .crumb a:hover{color:var(--blue-2);}

/* ---------- HERO (home) ---------- */
.hero{padding-top:160px; padding-bottom:70px; position:relative; overflow:hidden; min-height:92vh; display:flex; align-items:center;}
.hex-field{position:absolute; inset:0; z-index:0; opacity:.55;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 68% 40%, black 10%, transparent 72%);
          mask-image: radial-gradient(ellipse 80% 70% at 68% 40%, black 10%, transparent 72%);}
.hero::after{content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 78% 18%, rgba(79,166,255,.14), transparent 45%), radial-gradient(circle at 10% 90%, rgba(210,39,63,.10), transparent 40%);
  pointer-events:none;}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.hero h1{font-size:clamp(40px,6.4vw,84px); margin:18px 0 22px;}
.hero h1 em{font-style:normal; color:var(--blue-2); text-shadow:0 0 34px rgba(79,166,255,.45);}
.hero-sub{font-size:17px; color:#c3ccd4; max-width:52ch; margin-bottom:34px;}
.hero-cta{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:52px;}
.hero-stats{display:flex; gap:0; border-top:1px solid var(--line); padding-top:22px; flex-wrap:wrap;}
.hstat{padding:0 26px 0 0; margin-right:26px; border-right:1px solid var(--line);}
.hstat:last-child{border-right:none;}
.hstat b{font-family:var(--mono); font-size:26px; color:var(--blue-2); display:block; font-weight:600;}
.hstat span{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-2);}
.hero-art{position:relative;}
.hero-art .frame{position:relative; border:1px solid var(--line-strong); background:linear-gradient(180deg, var(--panel), var(--panel-2)); padding:26px 26px 20px;}
.hero-art .frame img{width:100%; height:480px; object-fit:cover; object-position:top center; filter:contrast(1.05) saturate(1.05);}
.hero-art .tag{position:absolute; top:14px; right:14px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; background:rgba(10,13,16,.75); border:1px solid var(--line-strong); padding:5px 9px; color:var(--blue-2);}
.corner-ticks{position:absolute; inset:0; pointer-events:none;}
.corner-ticks i{position:absolute; width:14px; height:14px; border:1px solid var(--blue);}
.corner-ticks i:nth-child(1){top:-1px; left:-1px; border-right:none; border-bottom:none;}
.corner-ticks i:nth-child(2){top:-1px; right:-1px; border-left:none; border-bottom:none;}
.corner-ticks i:nth-child(3){bottom:-1px; left:-1px; border-right:none; border-top:none;}
.corner-ticks i:nth-child(4){bottom:-1px; right:-1px; border-left:none; border-top:none;}
.caption-row{display:flex; justify-content:space-between; margin-top:14px; font-family:var(--mono); font-size:11px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.06em;}

/* ---------- SECTION HEADS ---------- */
.head-row{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:52px; flex-wrap:wrap;}

/* ---------- FEATURES ---------- */
.feat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.feat-grid{grid-template-columns:1fr;}}
.feat{background:var(--panel); padding:34px 26px; position:relative;}
.feat .num{font-family:var(--mono); font-size:11px; color:var(--muted-2); letter-spacing:.08em;}
.feat svg{width:30px; height:30px; margin:18px 0 16px; stroke:var(--blue-2);}
.feat h3{font-size:16px; margin-bottom:10px; letter-spacing:.02em;}
.feat p{font-size:13.5px; color:var(--muted); max-width:none;}

/* ---------- NANO SECTION ---------- */
.nano{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.nano-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
@media(max-width:900px){.nano-grid{grid-template-columns:1fr;}}
.plate-viz{position:relative; aspect-ratio:1/0.82; border:1px solid var(--line-strong);
  background:linear-gradient(var(--line) 1px, transparent 1px) 0 0/28px 28px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0/28px 28px, #0d1116;
  overflow:hidden;}
.plate-viz .dot{position:absolute; border-radius:50%; background:radial-gradient(circle at 35% 30%, rgba(143,215,255,.95), rgba(79,166,255,.35) 55%, transparent 75%);}
.plate-viz .meas{position:absolute; font-family:var(--mono); font-size:10.5px; color:var(--blue-2); display:flex; align-items:center; gap:6px;}
.plate-viz .meas::before, .plate-viz .meas::after{content:""; width:14px; height:1px; background:var(--blue-dim);}
.plate-viz .frame-label{position:absolute; bottom:10px; left:10px; font-family:var(--mono); font-size:9.5px; color:var(--muted-2); letter-spacing:.06em;}
.nano-copy .stat-line{display:flex; gap:14px; margin:26px 0; padding-bottom:14px; border-bottom:1px solid var(--line);}
.nano-copy .stat-line b{font-family:var(--mono); color:var(--blue-2); font-size:15px; white-space:nowrap;}

/* ---------- LAB / DATA SECTION ---------- */
.lab-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:10px;}
@media(max-width:900px){.lab-cards{grid-template-columns:1fr;}}
.lab-card{background:var(--panel); padding:28px 26px 22px;}
.lab-card .lc-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:4px;}
.lab-card .method{font-family:var(--mono); font-size:11px; color:var(--muted-2); letter-spacing:.06em;}
.lab-card h4{font-family:var(--disp); font-size:15px; letter-spacing:.02em; margin-bottom:18px; text-transform:uppercase; color:var(--text);}
.lab-card p.note{font-size:13px; color:var(--muted); margin-top:14px;}
.graph{position:relative; height:150px; border:1px solid var(--line); background:
  repeating-linear-gradient(0deg, transparent, transparent 17px, var(--line) 17px, var(--line) 18px),
  repeating-linear-gradient(90deg, transparent, transparent 17px, var(--line) 17px, var(--line) 18px);
  margin-bottom:6px;}
.graph .edge{position:absolute; top:0; bottom:0; width:3px; background:var(--amber);}
.graph .edge.l{left:0;} .graph .edge.r{right:0;}
.graph svg{position:absolute; inset:0; width:100%; height:100%;}
.graph-foot{display:flex; justify-content:space-between; font-family:var(--mono); font-size:10px; color:var(--muted-2); text-transform:uppercase;}
.wear-list{list-style:none; margin-top:6px;}
.wear-list li{display:grid; grid-template-columns:110px 1fr 60px; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:12px;}
.wear-list li:last-child{border-bottom:none;}
.wear-list .bar{height:6px; background:var(--panel-3); position:relative;}
.wear-list .bar i{position:absolute; left:0; top:0; bottom:0; background:var(--blue);}
.wear-list .val{text-align:right; color:var(--blue-2);}
.wear-list .lbl{color:var(--muted);}
.foam-vis{display:flex; align-items:flex-end; gap:30px; height:160px; margin-top:10px;}
.fcol{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;}
.fcol .tube{width:38px; border:1px solid var(--line-strong); border-bottom:none; position:relative; display:flex; flex-direction:column-reverse; background:#0d1116;}
.fcol .foam{background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(143,215,255,.15)); width:100%;}
.fcol .liquid{background:linear-gradient(180deg, rgba(79,166,255,.5), rgba(79,166,255,.15)); width:100%; height:70px;}
.fcol .flabel{font-family:var(--mono); font-size:11px; margin-top:10px; color:var(--muted); text-align:center;}
.fcol .flabel b{display:block; color:var(--blue-2); font-size:15px;}
.source-strip{margin-top:40px; display:flex; gap:40px; flex-wrap:wrap; align-items:center; font-family:var(--mono); font-size:11.5px; color:var(--muted-2); letter-spacing:.03em; border-top:1px solid var(--line); padding-top:22px;}
.source-strip strong{color:var(--muted);}

/* ---------- data table (lab page) ---------- */
.data-table{width:100%; border-collapse:collapse; font-size:13.5px; margin-top:10px;}
.data-table th, .data-table td{text-align:left; padding:13px 14px; border-bottom:1px solid var(--line);}
.data-table th{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-2); font-weight:500;}
.data-table td{color:var(--muted);}
.data-table td.num{font-family:var(--mono); color:var(--blue-2);}
.data-table tr:hover td{color:var(--text);}
.table-wrap{border:1px solid var(--line-strong); overflow-x:auto; background:var(--panel);}
.table-wrap .data-table{min-width:600px;}

/* ---------- PRODUCTS / SHOP ---------- */
.products{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.prod-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:860px){.prod-grid{grid-template-columns:1fr;}}
.prod-card{background:var(--panel-2); padding:40px; display:flex; flex-direction:column;}
.prod-card .pimg{border:1px solid var(--line); margin-bottom:24px; background:#0d1116; height:300px; overflow:hidden; display:flex; align-items:center; justify-content:center;}
.prod-card .pimg img{height:100%; width:100%; object-fit:cover;}
.prod-card .pmeta{display:flex; justify-content:space-between; font-family:var(--mono); font-size:11px; color:var(--muted-2); text-transform:uppercase; margin-bottom:10px;}
.prod-card h3{font-size:24px; margin-bottom:10px;}
.prod-card .p-feats{list-style:none; margin:18px 0 0; display:grid; gap:10px;}
.prod-card .p-feats li{display:flex; gap:10px; font-size:13.5px; color:var(--muted); align-items:flex-start;}
.prod-card .p-feats li::before{content:"—"; color:var(--blue-2); flex:none;}

.shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:900px){.shop-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.shop-grid{grid-template-columns:1fr;}}
.shop-card{background:var(--panel); display:flex; flex-direction:column;}
.shop-card .simg{height:320px; background:#0d1116; overflow:hidden; position:relative; border-bottom:1px solid var(--line);}
.shop-card .simg img{width:100%; height:100%; object-fit:cover;}
.shop-card .sbadge{position:absolute; top:12px; left:12px; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; background:rgba(10,13,16,.8); border:1px solid var(--line-strong); padding:4px 8px; color:var(--blue-2);}
.shop-card .sbody{padding:22px; display:flex; flex-direction:column; flex:1;}
.shop-card .scat{font-family:var(--mono); font-size:10.5px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}
.shop-card h3{font-size:17px; margin-bottom:8px;}
.shop-card p{font-size:13px; color:var(--muted); margin-bottom:18px;}
.shop-card .sfoot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px;}
.shop-card .sprice{font-family:var(--mono); font-size:15px; color:var(--blue-2);}
.shop-card .sprice small{display:block; font-size:10px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.05em;}
.qty-row{display:flex; align-items:center; border:1px solid var(--line-strong);}
.qty-row button{width:30px; height:38px; background:none; border:none; color:var(--text); cursor:pointer; font-size:15px;}
.qty-row input{width:34px; text-align:center; background:none; border:none; color:var(--text); font-family:var(--mono); font-size:13px;}
.add-btn{width:38px; height:38px; background:var(--blue); border:1px solid var(--blue); color:#04121f; cursor:pointer; display:flex; align-items:center; justify-content:center; flex:none;}
.add-btn svg{width:16px; height:16px;}
.add-btn:hover{background:var(--blue-2);}

/* cart drawer */
.cart-overlay{position:fixed; inset:0; background:rgba(6,8,10,.6); z-index:200; opacity:0; pointer-events:none; transition:.25s opacity ease;}
.cart-overlay.open{opacity:1; pointer-events:auto;}
.cart-drawer{position:fixed; top:0; right:0; bottom:0; width:min(400px,92vw); background:var(--panel); border-left:1px solid var(--line-strong); z-index:201; transform:translateX(100%); transition:.3s transform ease; display:flex; flex-direction:column;}
.cart-drawer.open{transform:translateX(0);}
.cart-head{padding:22px 24px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center;}
.cart-head h4{font-size:15px; letter-spacing:.04em;}
.cart-close{background:none; border:none; color:var(--muted); font-size:20px; cursor:pointer; line-height:1;}
.cart-items{flex:1; overflow-y:auto; padding:10px 24px;}
.cart-item{display:flex; gap:12px; padding:16px 0; border-bottom:1px solid var(--line);}
.cart-item img{width:52px; height:52px; object-fit:cover; border:1px solid var(--line);}
.cart-item .ci-info{flex:1;}
.cart-item .ci-info b{font-size:13px; display:block;}
.cart-item .ci-info span{font-family:var(--mono); font-size:11px; color:var(--muted-2);}
.cart-item .ci-remove{background:none; border:none; color:var(--muted-2); font-family:var(--mono); font-size:10.5px; text-transform:uppercase; cursor:pointer; text-decoration:underline; margin-top:6px;}
.cart-empty{padding:40px 0; text-align:center; color:var(--muted-2); font-family:var(--mono); font-size:12.5px; text-transform:uppercase;}
.cart-foot{padding:22px 24px; border-top:1px solid var(--line);}
.cart-total{display:flex; justify-content:space-between; font-family:var(--mono); font-size:14px; margin-bottom:16px;}
.cart-total b{color:var(--blue-2);}
.cart-note{font-size:11.5px; color:var(--muted-2); margin-top:12px; line-height:1.5;}

/* ---------- APPLICATION ---------- */
.apply-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:20px;}
@media(max-width:900px){.apply-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.apply-grid{grid-template-columns:1fr;}}
.step{border-top:2px solid var(--blue-dim); padding-top:16px;}
.step .sn{font-family:var(--mono); font-size:26px; color:var(--blue-2); display:block; margin-bottom:10px;}
.step h4{font-size:14px; letter-spacing:.03em; margin-bottom:8px;}
.step p{font-size:13px; color:var(--muted);}
.hazard{margin-top:56px; border:1px solid var(--line-strong); background:var(--panel); padding:26px 30px; display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:flex-start;}
.hazard svg{width:26px; height:26px; stroke:var(--amber); flex:none; margin-top:2px;}
.hazard h4{font-size:13px; letter-spacing:.06em; color:var(--amber); margin-bottom:8px;}
.hazard p{font-size:12.5px; color:var(--muted-2); max-width:none;}

/* ---------- ABOUT ---------- */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;}}
.company-card{border:1px solid var(--line-strong); padding:30px; background:var(--panel);}
.company-card .row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:13.5px; gap:16px;}
.company-card .row:last-child{border-bottom:none;}
.company-card .row span:first-child{color:var(--muted-2); font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap;}
.company-card .row span:last-child{color:var(--text); text-align:right;}

/* ---------- RESELLER PAGE ---------- */
.tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:10px;}
@media(max-width:900px){.tier-grid{grid-template-columns:1fr;}}
.tier{background:var(--panel); padding:32px 28px; position:relative;}
.tier.featured{background:var(--panel-2); border-top:2px solid var(--blue);}
.tier .tier-badge{font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--blue-2); background:rgba(79,166,255,.12); border:1px solid var(--blue-dim); padding:4px 9px; display:inline-block; margin-bottom:16px;}
.tier h3{font-size:19px; margin-bottom:8px;}
.tier .tier-desc{font-size:13.5px; color:var(--muted); margin-bottom:22px;}
.tier ul{list-style:none; display:grid; gap:11px;}
.tier ul li{font-size:13px; color:var(--muted); display:flex; gap:10px;}
.tier ul li::before{content:"✓"; color:var(--blue-2); font-family:var(--mono); flex:none;}

.process-row{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:20px; position:relative;}
@media(max-width:820px){.process-row{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.process-row{grid-template-columns:1fr;}}
.proc{padding:0 20px 0 0; position:relative;}
.proc .pn{width:38px; height:38px; border:1px solid var(--blue-dim); color:var(--blue-2); font-family:var(--mono); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:14px;}
.proc h4{font-size:14px; margin-bottom:8px; letter-spacing:.02em;}
.proc p{font-size:12.5px; color:var(--muted);}

.form-card{border:1px solid var(--line-strong); background:var(--panel); padding:36px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media(max-width:640px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1/-1;}
.field label{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-2);}
.field input, .field select, .field textarea{
  background:var(--panel-2); border:1px solid var(--line-strong); color:var(--text); padding:12px 14px; font-family:var(--body); font-size:14px;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--blue);}
.field textarea{resize:vertical; min-height:100px;}
.form-foot{margin-top:26px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.form-msg{font-family:var(--mono); font-size:12px; color:var(--green); display:none;}
.form-msg.show{display:inline-flex;}

.map-strip{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:60px;}
@media(max-width:820px){.map-strip{grid-template-columns:1fr;}}
.map-strip .mp{background:var(--panel); padding:30px;}
.map-strip .mp h4{font-size:13px; letter-spacing:.05em; color:var(--muted-2); font-family:var(--mono); text-transform:uppercase; margin-bottom:12px;}

/* ---------- CTA / FOOTER ---------- */
.cta-band{padding:110px 0; text-align:center; position:relative; overflow:hidden; background:linear-gradient(180deg, var(--carbon), #0d1319); border-top:1px solid var(--line);}
.cta-band h2{max-width:16ch; margin:0 auto 18px;}
.cta-band p{margin:0 auto 36px;}
.cta-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
footer{border-top:1px solid var(--line); padding:50px 0 34px;}
.foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; margin-bottom:36px;}
.foot-brand{max-width:320px;}
.foot-brand p{font-size:13px; margin-top:12px;}
.foot-cols{display:flex; gap:60px; flex-wrap:wrap;}
.foot-col h5{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-2); margin-bottom:14px;}
.foot-col a{display:block; font-size:13.5px; color:var(--muted); text-decoration:none; margin-bottom:10px;}
.foot-col a:hover{color:var(--blue-2);}
.foot-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:var(--mono); font-size:11px; color:var(--muted-2); padding-top:24px; border-top:1px solid var(--line);}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
}
