/* BOXWAY — shared stylesheet (all pages).
   Visual language kept from the original site: ink #111, signal orange #f7931e,
   large tight-tracked headlines, rounded media, generous whitespace. */
@font-face { font-family:"Inter"; src:url("/public/fonts/inter-var-latin.woff2") format("woff2"); font-weight:100 900; font-style:normal; font-display:swap; }
:root {
  --ink:#111111;
  --ink-2:#1c1d20;
  --muted:#54545b;
  --line:#d9d9de;
  --line-dark:rgba(255,255,255,.16);
  --surface:#f5f5f7;
  --brand:#f7931e;
  --brand-text:#a85a06;          /* orange that passes AA on white */
  --white:#ffffff;
  --radius:18px;
  --max:1440px;
  --nav-h:72px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 12px); }
body {
  margin:0; color:var(--ink); background:var(--white);
  font-family:Inter,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:20px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
button,input,textarea,select { font:inherit; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { color:inherit; }
::selection { color:white; background:var(--brand); }
:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
.skip { position:absolute; left:16px; top:-60px; z-index:200; padding:10px 16px; background:var(--brand); color:var(--ink); font-weight:700; border-radius:8px; }
.skip:focus { top:12px; }
.num { font-variant-numeric:tabular-nums; }
.visually-hidden { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- Navigation ---------- */
.nav { position:sticky; top:0; z-index:50; height:var(--nav-h); color:white; background:rgba(17,17,17,.96); border-bottom:1px solid var(--line-dark); backdrop-filter:blur(14px); }
.nav-inner { width:min(100%,1680px); height:100%; margin:auto; padding:0 32px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; }
.brand { display:block; width:max-content; }
.brand img { width:148px; }
.nav-links { display:flex; justify-content:center; gap:clamp(16px,2.2vw,36px); font-size:17px; font-weight:650; }
.nav-links a { position:relative; padding:24px 0; color:rgba(255,255,255,.82); }
.nav-links a:hover,.nav-links a[aria-current="page"] { color:white; }
.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:18px; height:2px; background:var(--brand); transition:right .2s ease; }
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after { right:0; }
.nav-actions { display:flex; align-items:center; gap:10px; }
.nav-cta { padding:11px 18px; border-radius:999px; color:var(--ink); background:var(--brand); font-size:17px; font-weight:750; white-space:nowrap; }
.nav-cta:hover { background:white; }
.menu-button { display:none; height:42px; padding:0 16px; border:0; border-radius:999px; color:white; background:rgba(255,255,255,.14); font-size:17px; font-weight:700; cursor:pointer; }
.mobile-menu { position:fixed; z-index:100; inset:0; padding:22px; display:flex; flex-direction:column; color:white; background:var(--ink); visibility:hidden; opacity:0; transform:translateY(-14px); transition:.22s ease; overflow-y:auto; }
.mobile-menu.open { visibility:visible; opacity:1; transform:none; }
.mobile-top { display:flex; justify-content:space-between; align-items:center; }
.mobile-top button { padding:10px 14px; border:0; border-radius:999px; background:rgba(255,255,255,.14); font-weight:700; cursor:pointer; }
.mobile-menu nav { margin:36px 0 24px; }
.mobile-menu nav a { padding:14px 0; display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--line-dark); font-size:clamp(28px,7vw,40px); font-weight:600; letter-spacing:-.03em; }
.mobile-menu nav a small { color:rgba(255,255,255,.55); font-size:16px; font-weight:500; letter-spacing:0; }
.mobile-menu .button { margin-top:auto; width:100%; justify-content:center; }

/* ---------- Buttons & links ---------- */
.button { min-height:52px; padding:0 24px; display:inline-flex; width:max-content; align-items:center; gap:14px; border:1px solid transparent; border-radius:999px; font-size:18px; font-weight:750; cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease; }
.button-brand { color:var(--ink); background:var(--brand); }
.button-brand:hover { background:var(--ink); color:white; }
.button-dark { color:white; background:var(--ink); }
.button-dark:hover { color:var(--ink); background:var(--brand); }
.button-outline { color:var(--ink); border-color:var(--ink); background:transparent; }
.button-outline:hover { color:white; background:var(--ink); }
.dark .button-outline,.button-outline.on-dark { color:white; border-color:rgba(255,255,255,.5); }
.dark .button-outline:hover,.button-outline.on-dark:hover { color:var(--ink); background:white; border-color:white; }
.button-light { color:var(--ink); background:white; }
.button-light:hover { background:var(--brand); }
.actions { display:flex; flex-wrap:wrap; gap:12px; }
.text-link { display:inline-flex; gap:10px; padding-bottom:4px; border-bottom:2px solid var(--brand); font-weight:700; }
.text-link:hover { color:var(--brand-text); }
.dark .text-link:hover { color:var(--brand); }
.inline-link { border-bottom:1px solid currentColor; }
.inline-link:hover { color:var(--brand-text); }

/* ---------- Section scaffolding ---------- */
.section { padding:clamp(80px,9vw,140px) max(5vw,28px); }
.section.tight { padding-top:clamp(56px,6vw,90px); padding-bottom:clamp(56px,6vw,90px); }
.surface { background:var(--surface); }
.dark { color:white; background:var(--ink); }
.wrap { width:min(100%,var(--max)); margin:0 auto; }
.head { width:min(100%,var(--max)); margin:0 auto clamp(44px,5vw,80px); display:grid; grid-template-columns:minmax(160px,.5fr) minmax(380px,1.5fr) minmax(240px,.8fr); gap:40px; align-items:start; }
.label { color:var(--brand-text); font-size:17px; font-weight:750; }
.dark .label { color:var(--brand); }
.head h2 { margin:-8px 0 0; font-size:clamp(40px,5vw,78px); line-height:1; letter-spacing:-.055em; font-weight:560; }
.head h2 .sub { display:block; margin-top:14px; color:var(--muted); font-size:.42em; line-height:1.25; letter-spacing:-.02em; font-weight:500; }
.dark .head h2 .sub { color:rgba(255,255,255,.62); }
.head>p { margin:0; color:var(--muted); font-size:20px; line-height:1.65; }
.dark .head>p,.dark .muted { color:rgba(255,255,255,.66); }
.muted { color:var(--muted); }
.lead { font-size:20px; line-height:1.6; color:var(--muted); max-width:62ch; }

/* ---------- Home hero ---------- */
.hero { min-height:calc(100svh - var(--nav-h)); display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); background:#f1f0ec; }
.hero-copy { padding:clamp(48px,6vw,96px) clamp(28px,4vw,72px) clamp(40px,5vw,72px) max(5vw,28px); display:flex; flex-direction:column; justify-content:center; background:white; }
.esr-chip { display:inline-flex; align-items:center; gap:10px; width:max-content; max-width:100%; padding:8px 14px 8px 8px; border:1px solid var(--line); border-radius:999px; font-size:16px; font-weight:700; }
.esr-chip b { padding:4px 9px; border-radius:999px; color:white; background:var(--ink); font-size:15px; letter-spacing:.04em; }
.esr-chip:hover { border-color:var(--ink); }
.hero h1 { margin:30px 0 0; font-size:clamp(54px,6.4vw,108px); line-height:.92; letter-spacing:-.065em; font-weight:580; }
.hero-tagline { margin:22px 0 0; font-size:clamp(19px,1.6vw,24px); font-weight:650; letter-spacing:-.015em; }
.hero-body { margin:18px 0 34px; max-width:52ch; color:var(--muted); font-size:20px; line-height:1.65; }
.hero-media { position:relative; min-height:420px; overflow:hidden; }
.hero-media video,.hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-media figcaption { position:absolute; left:20px; bottom:20px; padding:8px 14px; border-radius:999px; background:rgba(255,255,255,.88); font-size:15px; font-weight:700; backdrop-filter:blur(10px); }

/* Audience paths under hero */
.paths { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:white; }
.paths-inner { width:min(100%,1680px); margin:auto; display:grid; grid-template-columns:repeat(4,1fr); }
.path { padding:26px max(2vw,22px); display:flex; flex-direction:column; gap:6px; border-right:1px solid var(--line); transition:background .18s ease; }
.path:last-child { border-right:0; }
.path:hover { background:var(--surface); }
.path span { color:var(--muted); font-size:16px; font-weight:650; }
.path strong { font-size:20px; letter-spacing:-.02em; }
.path strong::after { content:" →"; color:var(--brand-text); }

/* ---------- More than prefab / system ---------- */
.pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,48px); }
.pillars article { padding-top:22px; border-top:2px solid var(--ink); }
.pillars h3 { margin:0 0 10px; font-size:22px; letter-spacing:-.02em; }
.pillars p { margin:0; color:var(--muted); line-height:1.6; }
.system-video { position:relative; width:min(100%,1040px); margin:clamp(48px,5vw,80px) auto 0; aspect-ratio:16/9; overflow:hidden; background:#20242a; border-radius:var(--radius); cursor:pointer; }
.system-video video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#20242a; }
.system-video.is-playing { cursor:default; }
.video-play { position:absolute; z-index:2; left:18px; bottom:18px; padding:8px 18px 8px 8px; display:inline-flex; gap:12px; align-items:center; color:var(--ink); background:rgba(255,255,255,.94); border:0; border-radius:999px; font-size:18px; font-weight:750; cursor:pointer; }
.video-play[hidden] { display:none; }
.video-play small { color:var(--brand-text); font-variant-numeric:tabular-nums; }
.video-play-icon { width:40px; height:40px; border-radius:50%; background:var(--brand); display:grid; place-items:center; }
.video-play-icon::before { content:""; margin-left:3px; border-style:solid; border-width:8px 0 8px 13px; border-color:transparent transparent transparent var(--ink); }
.video-caption { width:min(100%,1040px); margin:12px auto 0; color:var(--muted); font-size:16px; }
.video-undock { position:absolute; z-index:3; top:6px; right:6px; width:30px; height:30px; display:grid; place-items:center; color:white; background:rgba(17,17,17,.72); border:0; border-radius:50%; font-size:21px; line-height:1; cursor:pointer; }
.video-undock[hidden] { display:none; }
.system-video.is-docked video { position:fixed; z-index:60; inset:auto 12px calc(12px + env(safe-area-inset-bottom)) auto; width:min(58vw,300px); height:auto; aspect-ratio:16/9; border-radius:12px; box-shadow:0 18px 40px -12px rgba(0,0,0,.55); }
.system-video.is-docked .video-undock { position:fixed; z-index:61; top:auto; right:12px; bottom:calc(18px + env(safe-area-inset-bottom) + min(58vw,300px) * .5625); }

/* ---------- Proof stats ---------- */
.proof-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); }
.proof { padding:34px 28px 30px 0; border-bottom:1px solid var(--line-dark); }
.proof:not(:nth-child(3n+1)) { padding-left:28px; border-left:1px solid var(--line-dark); }
.proof strong { display:block; font-size:clamp(52px,6vw,92px); line-height:.95; letter-spacing:-.06em; font-weight:560; font-variant-numeric:tabular-nums; white-space:nowrap; }
.proof strong small { font-size:.38em; letter-spacing:-.01em; margin-left:6px; color:var(--brand); }
.proof p { margin:14px 0 0; color:rgba(255,255,255,.72); font-size:18px; }
.proof-foot { margin-top:26px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:22px; }
.proof-foot p { margin:0; max-width:70ch; color:rgba(255,255,255,.6); font-size:16px; }

/* ---------- Panel cross-section diagram + spec list ---------- */
.anatomy { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(32px,4vw,70px); align-items:start; }
.diagram { margin:0; padding:clamp(18px,2.5vw,34px); background:white; border:1px solid var(--line); border-radius:var(--radius); }
.diagram svg { display:block; width:100%; height:auto; }
.diagram figcaption { margin-top:14px; color:var(--muted); font-size:16px; }
.spec-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.spec-list li { padding:13px 0; display:grid; grid-template-columns:minmax(120px,.8fr) 1.2fr; gap:16px; border-bottom:1px solid var(--line); font-size:18px; }
.spec-list li span:first-child { color:var(--muted); }
.spec-list li span:last-child { font-weight:650; font-variant-numeric:tabular-nums; }
.dark .spec-list { border-color:var(--line-dark); }
.dark .spec-list li { border-color:var(--line-dark); }

/* ---------- Products ---------- */
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.product-card { position:relative; min-height:620px; color:white; border-radius:var(--radius); overflow:hidden; background:#222; }
.product-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.product-card:hover>img { transform:scale(1.03); }
.product-card::after { content:""; position:absolute; inset:30% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.82)); }
.product-copy { position:absolute; z-index:2; inset:auto 0 0; padding:32px; }
.product-copy h3 { margin:0 0 12px; font-size:clamp(34px,3vw,48px); line-height:.95; letter-spacing:-.05em; font-weight:580; }
.product-copy p { margin:0 0 18px; max-width:38ch; color:rgba(255,255,255,.82); font-size:20px; line-height:1.5; }
.product-copy a { font-weight:700; border-bottom:2px solid var(--brand); padding-bottom:3px; }
.model-browser { margin-top:70px; }
.model-browser>h3 { margin:0 0 18px; font-size:26px; letter-spacing:-.03em; }
.tabs { display:grid; grid-template-columns:repeat(5,1fr); border-bottom:1px solid var(--line); }
.tabs button { position:relative; padding:16px 12px 18px 0; text-align:left; color:var(--muted); border:0; background:none; font-weight:750; cursor:pointer; }
.tabs button.active { color:var(--ink); }
.tabs button.active::after { content:""; position:absolute; left:0; right:12%; bottom:-1px; height:2px; background:var(--brand); }
.tabs small { display:block; margin-top:4px; font-size:15px; font-weight:500; }
.model-stage { min-height:600px; display:grid; grid-template-columns:1.2fr .8fr; background:white; border-radius:0 0 var(--radius) var(--radius); overflow:hidden; }
.model-image { position:relative; min-height:480px; }
.model-carousel { position:absolute; inset:0; }
.model-carousel img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity 1s ease; }
.model-carousel img.active { opacity:1; }
.model-info { padding:clamp(30px,4vw,64px); display:flex; flex-direction:column; justify-content:center; }
.model-info>small { color:var(--brand-text); font-size:16px; font-weight:750; }
.model-info h4 { margin:14px 0 12px; font-size:clamp(42px,4.4vw,66px); line-height:.94; letter-spacing:-.055em; font-weight:580; }
.model-info>p { margin:0; color:var(--muted); line-height:1.6; }
.specs { margin:24px 0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.specs div { padding:13px 12px 13px 0; border-bottom:1px solid var(--line); font-size:18px; }
.specs small { display:block; margin-bottom:3px; color:var(--muted); font-size:15px; }
.specs .wide { grid-column:1/-1; }

/* ---------- Applications ---------- */
.applications { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.application { position:relative; height:520px; color:white; border-radius:var(--radius); overflow:hidden; background:#222; }
.application img { width:100%; height:100%; object-fit:cover; }
.application::after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.8)); }
.application div { position:absolute; z-index:2; left:22px; right:22px; bottom:22px; }
.application h3 { margin:0 0 8px; font-size:26px; letter-spacing:-.03em; }
.application p { margin:0; color:rgba(255,255,255,.82); font-size:17px; line-height:1.5; }

/* ---------- Assembly ---------- */
.assembly { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,5vw,80px); align-items:start; }
.assembly-frame { position:sticky; top:calc(var(--nav-h) + 24px); height:min(620px,72vh); border-radius:var(--radius); overflow:hidden; background:#222; }
.assembly-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s ease; }
.assembly-frame img.active { opacity:1; }
.assembly-frame figcaption { position:absolute; z-index:2; left:18px; bottom:18px; padding:9px 14px; color:var(--ink); background:rgba(255,255,255,.92); border-radius:999px; font-size:16px; font-weight:750; }
.steps { margin:0; padding:0; list-style:none; counter-reset:step; }
.steps li { padding:30px 0 34px; display:grid; grid-template-columns:56px 1fr; border-top:1px solid var(--line-dark); opacity:.5; transition:opacity .3s ease; }
.steps li.active,.steps li:hover { opacity:1; }
.steps li::before { counter-increment:step; content:counter(step,decimal-leading-zero); color:var(--brand); font-weight:750; font-variant-numeric:tabular-nums; }
.steps h3 { margin:0 0 10px; font-size:30px; letter-spacing:-.035em; }
.steps p { margin:0; color:rgba(255,255,255,.7); line-height:1.6; }
.steps .step-img { display:none; }
.assembly-core { margin:50px 0 0; padding-top:24px; border-top:2px solid var(--brand); font-size:clamp(20px,1.8vw,26px); line-height:1.4; letter-spacing:-.02em; font-weight:600; }

/* ---------- Audience / business cards ---------- */
.audience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.audience { padding:clamp(26px,3vw,40px); display:flex; flex-direction:column; border-radius:var(--radius); background:white; border:1px solid var(--line); }
.surface .audience { border-color:transparent; }
.dark .audience { background:var(--ink-2); border-color:var(--line-dark); }
.audience h3 { margin:0 0 12px; font-size:clamp(26px,2.4vw,34px); letter-spacing:-.04em; line-height:1.05; }
.audience>p { margin:0 0 20px; color:var(--muted); }
.dark .audience>p { color:rgba(255,255,255,.68); }
.audience ul { margin:0 0 26px; padding:0; list-style:none; border-top:1px solid var(--line); }
.dark .audience ul { border-color:var(--line-dark); }
.audience li { padding:10px 0; border-bottom:1px solid var(--line); font-size:18px; }
.dark .audience li { border-color:var(--line-dark); }
.audience .text-link,.audience .button { margin-top:auto; }
.audience-grid.five { grid-template-columns:repeat(5,1fr); }
.audience-grid.five .audience h3 { font-size:24px; }

/* ---------- Why BOXWAY ---------- */
.why { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,100px); align-items:center; }
.why h2 { margin:0 0 22px; font-size:clamp(40px,5vw,76px); line-height:1; letter-spacing:-.055em; font-weight:560; }
.why blockquote { margin:28px 0; padding-left:22px; border-left:3px solid var(--brand); font-size:clamp(22px,2vw,30px); line-height:1.3; letter-spacing:-.02em; font-weight:600; }
.chain { margin:0; padding:18px 0 0; list-style:none; display:flex; flex-wrap:wrap; gap:10px 0; border-top:2px solid var(--ink); }
.chain li { font-weight:750; white-space:nowrap; }
.chain li:not(:last-child)::after { content:"→"; margin:0 14px; color:var(--brand-text); }
.why-media { margin:0; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5; }
.why-media img { width:100%; height:100%; object-fit:cover; }
.vision { margin-top:30px; font-size:17px; color:var(--muted); }
.vision strong { display:block; margin-top:4px; color:var(--ink); font-size:clamp(24px,2.2vw,32px); letter-spacing:-.03em; }

/* ---------- Subpage hero ---------- */
.page-hero { padding:clamp(70px,8vw,130px) max(5vw,28px) clamp(56px,6vw,96px); color:white; background:var(--ink); }
.page-hero .wrap { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(30px,5vw,80px); align-items:end; }
.page-hero h1 { margin:18px 0 0; font-size:clamp(50px,6.6vw,104px); line-height:.94; letter-spacing:-.06em; font-weight:580; }
.page-hero .subhead { margin:18px 0 0; font-size:clamp(20px,1.8vw,26px); font-weight:600; letter-spacing:-.02em; color:rgba(255,255,255,.9); }
.page-hero .lead { color:rgba(255,255,255,.7); margin:0; }
.page-hero .actions { margin-top:28px; }
.toc { margin:0; padding:0; list-style:none; border-top:1px solid var(--line-dark); }
.toc a { padding:12px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line-dark); color:rgba(255,255,255,.82); font-weight:600; }
.toc a:hover { color:var(--brand); }
.toc a::after { content:"↓"; color:var(--brand); }

/* ---------- Content blocks on subpages ---------- */
.block { display:grid; grid-template-columns:minmax(200px,.42fr) minmax(0,1.58fr); gap:clamp(28px,4vw,70px); padding:clamp(48px,5vw,80px) 0; border-top:1px solid var(--line); }
.block:first-child { border-top:0; padding-top:0; }
.dark .block { border-color:var(--line-dark); }
.block-head h2 { margin:0; font-size:clamp(30px,3vw,44px); line-height:1.05; letter-spacing:-.045em; font-weight:600; }
.block-head p { margin:14px 0 0; color:var(--muted); font-size:18px; }
.block-body>p { margin:0 0 18px; max-width:72ch; }
.block-body>p:last-child { margin-bottom:0; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,44px); }
.media-frame { margin:0; border-radius:var(--radius); overflow:hidden; background:var(--surface); }
.media-frame img { width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.media-frame figcaption { padding:12px 16px; color:var(--muted); font-size:16px; background:white; }

/* Drawings from ESR-5510 */
.drawings { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.drawings.three { grid-template-columns:repeat(3,1fr); }
.drawing { margin:0; display:flex; flex-direction:column; background:white; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.drawing .img { flex:1; min-height:220px; padding:18px; display:grid; place-items:center; }
.drawing img { max-height:300px; width:auto; object-fit:contain; }
.drawing figcaption { padding:14px 18px; border-top:1px solid var(--line); font-size:17px; }
.drawing figcaption strong { display:block; font-size:18px; }
.drawing figcaption span { color:var(--muted); font-size:16px; }

/* Data tables */
.table-wrap { width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:white; -webkit-overflow-scrolling:touch; }
.data { width:100%; min-width:560px; border-collapse:collapse; font-size:17px; font-variant-numeric:tabular-nums; }
.data caption { padding:16px 18px; text-align:left; font-weight:750; font-size:18px; border-bottom:1px solid var(--line); }
.data caption span { display:block; margin-top:2px; color:var(--muted); font-weight:500; font-size:16px; }
.data th,.data td { padding:12px 18px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; }
.data thead th { color:var(--muted); font-size:15px; font-weight:700; background:var(--surface); }
.data tbody th { font-weight:650; }
.data td.v { font-weight:700; white-space:nowrap; }
.data tr:last-child>* { border-bottom:0; }
.data .group th { padding-top:16px; }
.table-notes { margin:12px 0 0; padding-left:18px; color:var(--muted); font-size:15px; line-height:1.55; }
.table-notes li+li { margin-top:4px; }
.stack { display:grid; gap:24px; }

/* Source tags: separate ESR data from manufacturer data */
.source { display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:999px; font-size:15px; font-weight:750; letter-spacing:.01em; white-space:nowrap; vertical-align:middle; }
.source-esr { color:white; background:var(--ink); }
.source-mfr { color:var(--ink); background:#ececef; border:1px dashed #9a9aa2; }
.dark .source-esr { color:var(--ink); background:white; }

.callout { padding:20px 22px; border-radius:14px; background:var(--surface); border-left:3px solid var(--brand); font-size:18px; }
.callout strong { display:block; margin-bottom:6px; }
.callout p { margin:0; }
.callout p+p { margin-top:8px; }
.callout.mfr { background:white; border:1px dashed #9a9aa2; border-left:3px solid #9a9aa2; }
.facts { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); }
.facts div { padding:18px 18px 18px 0; border-bottom:1px solid var(--line); }
.facts div+div { padding-left:18px; border-left:1px solid var(--line); }
.facts strong { display:block; font-size:clamp(28px,2.6vw,40px); letter-spacing:-.04em; font-weight:600; line-height:1.05; font-variant-numeric:tabular-nums; }
.facts span { color:var(--muted); font-size:16px; }
.check-list,.x-list { margin:0; padding:0; list-style:none; }
.check-list li,.x-list li { position:relative; padding:10px 0 10px 30px; border-bottom:1px solid var(--line); }
.check-list li::before { content:"✓"; position:absolute; left:0; top:10px; color:var(--brand-text); font-weight:800; }
.x-list li::before { content:"✕"; position:absolute; left:2px; top:10px; color:#b3261e; font-weight:800; }
.kv { margin:0; display:grid; grid-template-columns:minmax(140px,.6fr) 1.4fr; border-top:1px solid var(--line); }
.kv dt,.kv dd { margin:0; padding:12px 0; border-bottom:1px solid var(--line); }
.kv dt { color:var(--muted); padding-right:16px; }
.kv dd { font-weight:600; }

/* Resources list */
.resource-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.resource-list li { padding:20px 0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; border-bottom:1px solid var(--line); }
.resource-list h3 { margin:0 0 4px; font-size:21px; letter-spacing:-.02em; }
.resource-list p { margin:0; color:var(--muted); font-size:17px; }
.resource-list .status { font-size:15px; font-weight:700; color:var(--muted); }
.resource-list a.go { white-space:nowrap; font-weight:750; border-bottom:2px solid var(--brand); padding-bottom:2px; }

/* Platform stack (business page) */
.platform { margin:0; padding:0; list-style:none; display:grid; gap:8px; }
.platform li { padding:18px 22px; display:grid; grid-template-columns:minmax(150px,.5fr) 1.5fr; gap:18px; align-items:baseline; border-radius:12px; background:var(--ink-2); border:1px solid var(--line-dark); }
.platform li strong { font-size:20px; }
.platform li span { color:rgba(255,255,255,.7); font-size:18px; }
.platform li.top { background:var(--brand); color:var(--ink); border-color:var(--brand); }
.platform li.top span { color:rgba(17,17,17,.78); }

/* ---------- Disclaimer band ---------- */
.disclaimer { padding:28px max(5vw,28px); background:var(--surface); border-top:1px solid var(--line); }
.disclaimer p { width:min(100%,var(--max)); margin:0 auto; color:var(--muted); font-size:16px; line-height:1.6; }
.disclaimer strong { color:var(--ink); }

/* ---------- Contact ---------- */
.contact { padding:clamp(80px,9vw,140px) max(5vw,28px); color:white; background:var(--ink); }
.contact-inner { width:min(100%,var(--max)); margin:auto; display:grid; grid-template-columns:.85fr 1.15fr; gap:7vw; }
.contact h2 { margin:18px 0 22px; font-size:clamp(56px,7.5vw,118px); line-height:.9; letter-spacing:-.065em; font-weight:580; }
.contact-copy>p { max-width:46ch; color:rgba(255,255,255,.66); }
.contact-direct { margin-top:30px; padding-top:20px; border-top:1px solid var(--line-dark); display:grid; gap:8px; font-size:18px; }
.contact-direct a:hover { color:var(--brand); }
.form { padding:clamp(24px,3.5vw,52px); color:var(--ink); background:white; border-radius:var(--radius); }
.form h3 { margin:0 0 30px; font-size:clamp(28px,2.6vw,38px); letter-spacing:-.045em; }
.fields { display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; }
label { display:flex; flex-direction:column; }
label>span { margin-bottom:6px; color:var(--muted); font-size:16px; font-weight:650; }
input,select,textarea { width:100%; padding:11px 0; border:0; border-bottom:1px solid #b9b9c0; border-radius:0; background:transparent; color:var(--ink); }
select { cursor:pointer; }
input:focus,select:focus,textarea:focus { outline:0; border-color:var(--brand); box-shadow:0 1px 0 var(--brand); }
.message { margin:24px 0; }
textarea { resize:vertical; }
.form-foot { display:flex; flex-wrap:wrap; align-items:center; gap:16px 22px; }
.form-foot small { color:var(--muted); font-size:15px; }
.form-status { min-height:22px; margin-top:14px; font-size:17px; }
.form-status.ok { color:#1f7a3f; }
.form-status.err { color:#b3261e; }

/* ---------- Footer ---------- */
.footer { padding:64px max(5vw,28px) 26px; color:white; background:#080808; }
.footer-inner { width:min(100%,var(--max)); margin:auto; }
.footer-top { padding-bottom:42px; display:grid; grid-template-columns:1fr 2fr; gap:40px; border-bottom:1px solid var(--line-dark); }
.footer-top p { margin:16px 0 0; color:rgba(255,255,255,.62); font-size:17px; max-width:34ch; }
.footer-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.footer-links div { display:flex; flex-direction:column; gap:10px; }
.footer-links h2 { margin:0 0 6px; color:rgba(255,255,255,.55); font-size:16px; font-weight:650; }
.footer-links a { width:max-content; max-width:100%; font-size:18px; overflow-wrap:anywhere; }
.footer-links a:hover { color:var(--brand); }
.footer-legal { padding:22px 0; color:rgba(255,255,255,.55); font-size:15px; line-height:1.6; border-bottom:1px solid var(--line-dark); }
.footer-bottom { padding-top:18px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; color:rgba(255,255,255,.55); font-size:15px; }

/* ---------- Responsive ---------- */
@media (max-width:1180px) {
  .nav-links { display:none; }
  .menu-button { display:block; }
  .nav-inner { grid-template-columns:1fr auto; }
  .head { grid-template-columns:.4fr 1.6fr; }
  .head>p { grid-column:2; }
  .applications { grid-template-columns:1fr 1fr; }
  .audience-grid.five { grid-template-columns:repeat(3,1fr); }
  .footer-top { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .hero { grid-template-columns:1fr; min-height:0; }
  .hero-media { min-height:0; aspect-ratio:16/10; order:2; }
  .paths-inner { grid-template-columns:1fr 1fr; }
  .path:nth-child(2) { border-right:0; }
  .path:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .head { grid-template-columns:1fr; gap:20px; }
  .head>p { grid-column:1; }
  .pillars,.product-grid,.audience-grid,.two-col { grid-template-columns:1fr; }
  .audience-grid.five { grid-template-columns:1fr 1fr; }
  .product-card { min-height:520px; }
  .proof-grid { grid-template-columns:1fr 1fr; }
  .proof,.proof:not(:nth-child(3n+1)) { padding:28px 20px 26px 0; border-left:0; }
  .proof:nth-child(even) { padding-left:20px; border-left:1px solid var(--line-dark); }
  .anatomy,.model-stage,.assembly,.why,.contact-inner,.page-hero .wrap,.block { grid-template-columns:1fr; }
  .assembly-frame { display:none; }
  .steps li { opacity:1; }
  .steps .step-img { display:block; margin:16px 0 0; border-radius:12px; aspect-ratio:16/10; width:100%; object-fit:cover; }
  .why-media { aspect-ratio:4/5; max-height:80vh; width:100%; }
  .facts { grid-template-columns:1fr 1fr; }
  .facts div:nth-child(odd) { padding-left:0; border-left:0; }
  .drawings.three { grid-template-columns:1fr 1fr; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  :root { --nav-h:64px; }
  .nav-inner { padding:0 18px; }
  .brand img { width:126px; }
  .nav-cta { display:none; }
  .section { padding:70px 18px; }
  .hero-copy { padding:44px 20px 36px; }
  .hero h1 { font-size:clamp(46px,14vw,64px); }
  .actions .button { width:100%; justify-content:space-between; }
  .paths-inner { grid-template-columns:1fr; }
  .path { border-right:0; border-bottom:1px solid var(--line); }
  .path:last-child { border-bottom:0; }
  .head h2 { font-size:40px; }
  .proof-grid { grid-template-columns:1fr; }
  .proof:nth-child(even) { padding-left:0; border-left:0; }
  .proof strong { font-size:56px; }
  .system-video { width:calc(100% + 36px); margin-left:-18px; margin-right:-18px; border-radius:0; }
  .spec-list li { grid-template-columns:1fr; gap:2px; }
  .tabs { display:flex; overflow-x:auto; }
  .tabs button { min-width:140px; }
  .model-image { min-height:320px; }
  .model-info { padding:28px 18px; }
  .applications,.audience-grid.five,.drawings,.drawings.three { grid-template-columns:1fr; }
  .application { height:420px; }
  .page-hero { padding:56px 18px 48px; }
  .facts { grid-template-columns:1fr; }
  .facts div,.facts div+div { padding-left:0; border-left:0; }
  .resource-list li { grid-template-columns:1fr; gap:10px; }
  .platform li,.kv { grid-template-columns:1fr; }
  .kv dt { padding-bottom:0; border-bottom:0; }
  .fields { grid-template-columns:1fr; }
  .contact { padding:70px 18px; }
  .form { padding:26px 18px; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .disclaimer { padding:24px 18px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
.data tbody th { white-space:nowrap; }
@media (max-width:600px) { .data th,.data td { padding:11px 12px; } }
.assembly-frame img.contain,.steps .step-img.contain { object-fit:contain; background:#fff; }
