:root {
  --ink: #01061d;
  --midnight: #0f172a;
  --silver: #cbd5e1;
  --luna: #5f5ee5;
  --luna-light: #818cf8;
  --snow: #f8fafc;
  --white: #ffffff;
  --text: #182033;
  --muted: #667085;
  --line: #e2e8f0;
  --success: #166534;
  --radius: 12px;
  --shadow: 0 16px 44px rgba(15, 23, 42, .08);
  --max: 1180px;
  --font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
html,body { overflow-x:clip; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--snow);
  line-height: 1.65;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 999; background: white; color: var(--midnight); padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { left: 8px; }
.eyebrow { margin: 0 0 12px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--luna); }
h1,h2,h3 { font-family: var(--font-display); letter-spacing: -.02em; line-height: 1.12; color: var(--midnight); }
h1 { font-size: clamp(42px, 6vw, 76px); margin: 0 0 22px; }
h2 { font-size: clamp(32px, 4vw, 48px); margin: 0 0 18px; }
h3 { font-size: 22px; margin: 0 0 10px; }
p { margin: 0 0 18px; }
.lead { font-size: clamp(18px, 2vw, 22px); color: #dbe4ff; max-width: 720px; }
.section-lead { max-width: 760px; color: var(--muted); font-size: 18px; }
.section { padding: 92px 0; }
.section-sm { padding: 64px 0; }
.section-dark { background: var(--midnight); color: #dbe4ff; }
.section-dark h2,.section-dark h3 { color: white; }
.section-dark .eyebrow { color: var(--luna-light); }
.section-soft { background: white; }
.header { position: sticky; top: 0; z-index: 50; background: rgba(1,6,29,.96); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.08); }
.nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.logo { width: 218px; height: 66px; object-fit: contain; object-position: left center; }
.nav-links { display: flex; align-items: center; gap: 28px; color: #e7ebff; font-size: 14px; font-weight: 600; }
.nav-links a { transition: .2s ease; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: white; }
.nav-cta { display: inline-flex; align-items: center; justify-content: center; padding: 11px 17px; border-radius: 8px; background: var(--luna); color: white !important; }
.mobile-toggle { display: none; border: 0; background: transparent; color: white; padding: 10px; }
.mobile-toggle span { display: block; width: 25px; height: 2px; background: currentColor; margin: 5px 0; }
.hero { position: relative; overflow: hidden; min-height: 680px; display: flex; align-items: center; background:
  radial-gradient(circle at 78% 30%, rgba(99,102,241,.34), transparent 25%),
  radial-gradient(circle at 88% 58%, rgba(129,140,248,.14), transparent 30%),
  linear-gradient(135deg, var(--ink) 0%, #07102f 64%, #111b49 100%);
  color: white;
}
.hero::before,.hero::after { content:""; position:absolute; border:1px solid rgba(129,140,248,.22); border-radius:50%; pointer-events:none; }
.hero::before { width: 560px; height: 560px; right: -160px; top: 32px; box-shadow: 0 0 80px rgba(99,102,241,.12); }
.hero::after { width: 340px; height: 340px; right: 18px; top: 145px; border-color: rgba(255,255,255,.08); }
.hero h1 { color: white; max-width: 820px; }
.hero-content { position: relative; z-index: 2; padding: 90px 0; }
.hero .eyebrow { color: #a5b4fc; }
.hero-actions { display: flex; gap: 14px; margin-top: 34px; flex-wrap: wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding: 0 22px; border-radius:8px; border:1px solid transparent; font-weight:700; transition:.2s ease; }
.btn-primary { background: var(--luna); color: white; box-shadow: 0 10px 30px rgba(99,102,241,.24); }
.btn-primary:hover { background: #5558e8; transform: translateY(-1px); }
.btn-secondary { border-color: rgba(255,255,255,.26); color:white; background:rgba(255,255,255,.04); }
.btn-secondary:hover { background:rgba(255,255,255,.09); }
.btn-outline { color: var(--midnight); border-color: var(--silver); background:white; }
.btn-outline:hover { border-color: var(--luna); color: var(--luna); }
.grid { display:grid; gap:22px; }
.grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:30px; box-shadow:0 1px 0 rgba(15,23,42,.02); transition:.25s ease; }
.card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:#d7def0; }
.card-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:12px; background:#eef2ff; color:var(--luna); margin-bottom:22px; }
.card-icon svg { width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.8; }
.card p { color:var(--muted); }
.card-link { color:var(--luna); font-weight:700; display:inline-flex; align-items:center; gap:8px; }
.card-link::after { content:"→"; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius); overflow:hidden; margin-top:54px; background:rgba(255,255,255,.03); }
.stat { padding:26px 28px; border-right:1px solid rgba(255,255,255,.1); }
.stat:last-child { border-right:0; }
.stat strong { display:block; color:white; font-family:var(--font-display); font-size:21px; margin-bottom:4px; }
.stat span { color:#aeb9d8; font-size:14px; }
.split { display:grid; grid-template-columns:1.1fr .9fr; gap:68px; align-items:center; }
.visual-panel { min-height:420px; border-radius:24px; background:
  radial-gradient(circle at 35% 35%, rgba(99,102,241,.46), transparent 22%),
  linear-gradient(145deg, #020a28, #121c45); position:relative; overflow:hidden; border:1px solid rgba(99,102,241,.2); box-shadow:0 24px 80px rgba(1,6,29,.18); }
.visual-panel::before { content:""; position:absolute; width:270px; height:270px; border:1px solid rgba(165,180,252,.4); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.visual-panel::after { content:""; position:absolute; width:140px; height:140px; border:1px solid rgba(255,255,255,.15); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); box-shadow:0 0 90px rgba(99,102,241,.25); }
.visual-dot { position:absolute; width:9px; height:9px; border-radius:50%; background:#c7d2fe; box-shadow:0 0 18px #818cf8; }
.visual-dot.d1 { left:33%; top:25%; } .visual-dot.d2 { left:62%; top:34%; } .visual-dot.d3 { left:42%; top:67%; } .visual-dot.d4 { left:72%; top:68%; }
.checks { list-style:none; padding:0; margin:26px 0 0; }
.checks li { position:relative; padding-left:30px; margin:13px 0; color:var(--muted); }
.checks li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--luna); font-weight:800; }
.category { min-height:250px; display:flex; flex-direction:column; justify-content:flex-end; background:linear-gradient(160deg,#ffffff 0%,#eef2ff 100%); }
.partner-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:34px; }
.partner { background:white; border:1px solid var(--line); border-radius:10px; min-height:88px; display:grid; place-items:center; font-family:var(--font-display); font-weight:800; letter-spacing:.04em; color:#45506b; }
.cta-panel { border-radius:22px; padding:52px; background:linear-gradient(130deg,#111b49,#0f172a); color:white; display:flex; justify-content:space-between; gap:40px; align-items:center; }
.cta-panel h2 { color:white; margin-bottom:10px; }
.cta-panel p { color:#cdd6f4; margin:0; }
.page-hero { background:linear-gradient(135deg,var(--ink),#101a43); color:white; padding:90px 0 80px; }
.page-hero h1 { color:white; font-size:clamp(40px,5vw,64px); max-width:900px; }
.page-hero p { color:#d4dcf4; max-width:760px; font-size:19px; }
.breadcrumbs { font-size:13px; color:#aeb9d8; margin-bottom:25px; }
.breadcrumbs a { color:#c7d2fe; }
.content-narrow { max-width:850px; }
.feature-list { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 24px; margin-top:30px; }
.feature-list div { border-top:1px solid var(--line); padding-top:15px; font-weight:600; }
.product-list { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.product-card { background:white; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.product-media { height:210px; display:grid; place-items:center; background:linear-gradient(145deg,#f4f6fb,#e8edff); color:#7b87a7; font-weight:700; }
.product-body { padding:24px; }
.tag { display:inline-flex; padding:5px 9px; border-radius:999px; background:#eef2ff; color:#4f46e5; font-size:12px; font-weight:700; margin-bottom:12px; }
.form-shell { background:white; border:1px solid var(--line); border-radius:16px; padding:34px; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:flex; flex-direction:column; gap:7px; }
.field.full { grid-column:1/-1; }
label { font-size:14px; font-weight:700; color:var(--midnight); }
input,textarea,select { width:100%; border:1px solid #cbd5e1; background:white; color:var(--text); border-radius:8px; padding:12px 13px; outline:none; }
input:focus,textarea:focus,select:focus { border-color:var(--luna); box-shadow:0 0 0 3px rgba(99,102,241,.12); }
textarea { min-height:130px; resize:vertical; }
.checkbox { display:flex; gap:10px; align-items:flex-start; color:var(--muted); font-size:13px; }
.checkbox input { width:auto; margin-top:4px; }
.form-status { margin-top:16px; color:var(--success); font-weight:700; display:none; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; }
.contact-card { background:var(--midnight); color:white; border-radius:16px; padding:34px; }
.contact-card h2,.contact-card h3 { color:white; }
.contact-row { padding:15px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.contact-row:last-child { border-bottom:0; }
.notice { padding:18px 20px; border-left:4px solid var(--luna); background:#eef2ff; border-radius:0 10px 10px 0; color:#46506a; }
.footer { background:var(--ink); color:#aeb9d8; padding:58px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:48px; }
.footer-logo { width:220px; height:auto; aspect-ratio:440 / 150; object-fit:contain; margin-bottom:18px; }
.footer h3 { color:white; font-size:15px; }
.footer a:hover { color:white; }
.footer-links { display:grid; gap:8px; font-size:14px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:40px; padding-top:20px; font-size:12px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
@media (max-width: 900px) {
  .nav-links { display:none; position:fixed; inset:76px 0 0 0; background:var(--ink); padding:28px 24px; flex-direction:column; align-items:flex-start; gap:20px; }
  .menu-open .nav-links { display:flex; }
  .mobile-toggle { display:block; }
  .grid-3,.product-list { grid-template-columns:1fr 1fr; }
  .split,.contact-grid { grid-template-columns:1fr; gap:36px; }
  .partner-row { grid-template-columns:1fr 1fr; }
  .cta-panel { flex-direction:column; align-items:flex-start; padding:38px; }
  .stats { grid-template-columns:1fr; }
  .stat { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .stat:last-child { border-bottom:0; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1/-1; }
}
@media (max-width: 620px) {
  .container { width:min(calc(100% - 28px),var(--max)); }
  .logo { width:176px; height:58px; }
  .nav { min-height:68px; }
  .nav-links { inset:68px 0 0 0; }
  .hero { min-height:620px; }
  .hero-content { padding:70px 0; }
  .section { padding:70px 0; }
  .grid-2,.grid-3,.product-list,.partner-row,.feature-list,.form-grid,.footer-grid { grid-template-columns:1fr; }
  .footer-grid > :first-child { grid-column:auto; }
  .field.full { grid-column:auto; }
  .card { padding:24px; }
  .cta-panel { padding:28px; }
  .form-shell { padding:24px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; }
}

/* v0.2 additions */
.section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; }
.product-media--brand { min-height:210px; flex-direction:column; gap:8px; background:radial-gradient(circle at 50% 20%, rgba(99,102,241,.18), transparent 32%), linear-gradient(145deg,#f7f9ff,#e9edff); }
.product-media--brand span { font-family:var(--font-display); font-size:18px; font-weight:800; letter-spacing:.08em; color:#4b5878; }
.product-detail { display:grid; grid-template-columns:.9fr 1.1fr; gap:58px; align-items:center; }
.product-visual-large { min-height:420px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:18px; padding:40px; border-radius:24px; background:radial-gradient(circle at 45% 35%,rgba(99,102,241,.34),transparent 25%),linear-gradient(145deg,#07102f,#17214f); color:white; box-shadow:0 24px 70px rgba(15,23,42,.16); }
.product-visual-large span { font-size:14px; font-weight:800; letter-spacing:.14em; color:#b9c3ef; text-transform:uppercase; }
.product-visual-large strong { max-width:440px; font-family:var(--font-display); font-size:clamp(30px,5vw,52px); line-height:1.05; }
.product-actions { margin-top:30px; }
.spec-table { margin-top:26px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:white; }
.spec-table table { width:100%; border-collapse:collapse; }
.spec-table th,.spec-table td { padding:15px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.spec-table tr:last-child th,.spec-table tr:last-child td { border-bottom:0; }
.spec-table th { width:38%; background:#f5f7fb; font-size:14px; color:var(--midnight); }
.spec-table td { color:var(--muted); }
.source-note { margin-top:18px; font-size:12px; line-height:1.6; color:#7b849c; }
.filter-bar { display:flex; gap:10px; flex-wrap:wrap; }
.filter-btn { appearance:none; border:1px solid var(--line); border-radius:999px; background:white; color:var(--midnight); padding:9px 14px; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.filter-btn:hover,.filter-btn.is-active { border-color:var(--luna); color:var(--luna); background:#eef2ff; }
.stack-cards { display:grid; gap:14px; margin:26px 0; }
.mini-card { border:1px solid var(--line); border-radius:12px; background:white; padding:20px; }
.mini-card h3 { margin-bottom:6px; font-size:18px; }
.mini-card p { margin:0; color:var(--muted); }
.article-body p { font-size:18px; line-height:1.8; color:#46506a; }
.hp-field { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
.form-status { display:block; min-height:22px; color:var(--muted); }
.form-status.is-success { color:var(--success); }
.form-status.is-error { color:#b42318; }
.form-shell button[disabled] { opacity:.65; cursor:wait; }
@media (max-width:900px) {
  .product-detail { grid-template-columns:1fr; gap:34px; }
  .section-head { align-items:flex-start; flex-direction:column; }
}
@media (max-width:620px) {
  .product-visual-large { min-height:300px; padding:28px; }
  .spec-table th,.spec-table td { display:block; width:100%; }
  .spec-table th { border-bottom:0; padding-bottom:4px; }
  .spec-table td { padding-top:4px; }
}

/* v0.4 catalog + mobile navigation fixes */
@media (max-width: 900px) {
  body.menu-open { overflow:hidden; }
  .header { z-index:1100; }
  .nav-links {
    display:none;
    position:fixed;
    inset:76px 0 0 0;
    z-index:1090;
    width:100%;
    height:calc(100dvh - 76px);
    overflow-y:auto;
    padding:22px 24px 40px;
    background:#01061d !important;
    background-color:#01061d !important;
    box-shadow:0 24px 60px rgba(0,0,0,.45);
    border-top:1px solid rgba(255,255,255,.1);
    isolation:isolate;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .menu-open .nav-links { display:flex; }
  .nav-links > a {
    display:block;
    width:100%;
    padding:16px 4px;
    color:#f8fafc !important;
    border-bottom:1px solid rgba(203,213,225,.14);
    font-size:17px;
  }
  .nav-links > a:hover,.nav-links > a:focus-visible { color:#a5b4fc !important; }
  .nav-links .nav-cta { margin-top:20px; padding:14px 18px; text-align:center; border-bottom:0; }
}
@media (max-width:620px) {
  .nav-links { inset:68px 0 0 0; height:calc(100dvh - 68px); }
}

.pb-home-focus,.pb-catalog-hero { background:linear-gradient(135deg,#06102f,#0f172a 55%,#111c45); color:white; }
.pb-focus { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); align-items:center; gap:54px; padding:18px 0; }
.pb-focus h2 { color:white; max-width:850px; }
.pb-focus .section-lead { color:#cbd5e1; }
.pb-focus .btn-outline { border-color:rgba(255,255,255,.35); color:white; }
.pb-orbit { width:min(310px,75vw); aspect-ratio:1; margin:auto; border-radius:50%; border:1px solid rgba(99,102,241,.45); display:grid; place-items:center; position:relative; box-shadow:inset 0 0 80px rgba(99,102,241,.14),0 0 90px rgba(99,102,241,.12); }
.pb-orbit::before,.pb-orbit::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(203,213,225,.16); }
.pb-orbit::before { inset:14%; }
.pb-orbit::after { inset:29%; background:radial-gradient(circle,rgba(99,102,241,.42),transparent 68%); }
.pb-orbit span { position:relative; z-index:2; font-family:var(--font-display); font-weight:800; letter-spacing:.22em; color:#e0e7ff; }
.relay-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:44px; }
.relay-card { border:1px solid rgba(203,213,225,.18); border-radius:14px; padding:22px; background:rgba(255,255,255,.06); }
.relay-card h3 { color:white; font-size:20px; margin:12px 0 8px; }
.relay-card p { color:#cbd5e1; font-size:14px; }
.relay-card .card-link { color:#c7d2fe; }
.manufacturer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:32px; }
.manufacturer-card { display:flex; flex-direction:column; min-height:150px; gap:8px; padding:24px; border:1px solid var(--line); border-radius:14px; background:white; transition:.2s ease; }
.manufacturer-card:hover { border-color:var(--luna); transform:translateY(-2px); box-shadow:0 14px 34px rgba(15,23,42,.08); }
.manufacturer-card span { font-family:var(--font-display); font-size:20px; font-weight:800; color:var(--midnight); }
.manufacturer-card strong { font-size:13px; color:var(--luna); }
.manufacturer-card small { margin-top:auto; color:var(--muted); }
.catalog-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:end; }
.catalog-label { display:block; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#65708b; margin-bottom:9px; }
.catalog-search { width:100%; min-height:48px; border:1px solid var(--line); border-radius:10px; padding:10px 14px; font:inherit; background:white; }
.catalog-search:focus { border-color:var(--luna); box-shadow:0 0 0 3px rgba(99,102,241,.12); outline:none; }
.catalog-count { font-size:13px; font-weight:800; color:#59637d; white-space:nowrap; }
.catalog-filter-group { margin-top:22px; }
.product-card[hidden] { display:none !important; }
.source-panel { margin-top:24px; padding:20px; border:1px solid var(--line); border-radius:12px; background:white; color:var(--muted); font-size:13px; line-height:1.65; }
.source-panel p { margin:0 0 8px; }
.source-panel p:last-child { margin-bottom:0; }
.source-panel a { color:var(--luna); text-decoration:underline; text-underline-offset:3px; }
@media(max-width:1000px){ .manufacturer-grid{grid-template-columns:1fr 1fr}.relay-strip{grid-template-columns:1fr 1fr}.pb-focus{grid-template-columns:1fr}.pb-orbit{display:none} }
@media(max-width:620px){ .manufacturer-grid,.relay-strip{grid-template-columns:1fr}.catalog-tools{grid-template-columns:1fr}.catalog-count{white-space:normal}.pb-focus{gap:24px} }

.product-media--image { background:linear-gradient(180deg,#f8fbff,#eef3ff); padding:16px; align-items:stretch; }
.product-media--image img { width:100%; height:100%; object-fit:contain; display:block; }
.product-media--large { min-height:360px; }
.product-meta { margin-top:14px; font-size:13px; color:#59637d; }
.product-actions { margin-top:26px; }
.catalog-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:flex-end; }
.product-list-featured { grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.model-pill-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.model-pill { display:inline-flex; align-items:center; padding:9px 14px; border-radius:999px; background:#eef2ff; color:#2c3773; font-size:14px; font-weight:700; }
.checks { margin:18px 0 0; padding-left:18px; display:grid; gap:10px; }
.checks li { color:#334155; }
.content-narrow { width:min(820px,100%); }
.spec-table { margin-top:20px; overflow:auto; border:1px solid var(--line); border-radius:14px; background:white; }
.spec-table table { width:100%; border-collapse:collapse; }
.spec-table th,.spec-table td { padding:14px 16px; text-align:left; border-bottom:1px solid #e6ebf5; vertical-align:top; }
.spec-table th { width:34%; color:#0f172a; font-weight:800; background:#f8fafc; }
.spec-table tr:last-child th,.spec-table tr:last-child td { border-bottom:0; }
.notice { margin-top:18px; padding:18px 20px; border:1px dashed #cbd5e1; border-radius:12px; background:#f8fafc; color:#475569; }
@media(max-width:620px){
  .catalog-actions { justify-content:flex-start; }
  .product-media--large { min-height:280px; }
  .spec-table th,.spec-table td { padding:12px 14px; }
}

/* v0.5.2 manufacturer-source product photography */
.product-media--image { position:relative; overflow:hidden; background:#fff; }
.product-media--image img { min-width:0; min-height:0; object-fit:contain; object-position:center; }
.source-list { margin:8px 0 14px; padding-left:20px; display:grid; gap:5px; }
.source-list li { color:#64748b; }
.source-list a { overflow-wrap:anywhere; }
/* v0.5.3 product-photo caption flow + expandable technical specifications */
.product-photo-figure { margin:0; width:100%; }
.product-photo-figure .product-media--large { width:100%; }
.spec-accordions { margin-top:28px; border-top:1px solid var(--line); }
.spec-accordion { border-bottom:1px solid var(--line); background:#fff; }
.spec-accordion summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:68px;
  padding:18px 4px;
  cursor:pointer;
  color:var(--midnight);
  font-family:var(--font-display);
  font-size:18px;
  font-weight:800;
  line-height:1.3;
}
.spec-accordion summary::-webkit-details-marker { display:none; }
.spec-accordion summary::marker { display:none; content:""; }
.spec-accordion summary:hover { color:var(--luna); }
.spec-accordion summary:focus-visible { outline:3px solid rgba(99,102,241,.22); outline-offset:4px; border-radius:6px; }
.spec-toggle { position:relative; width:24px; height:24px; flex:0 0 24px; }
.spec-toggle::before,.spec-toggle::after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:16px;
  height:2px;
  border-radius:2px;
  background:var(--luna);
  transform:translate(-50%,-50%);
  transition:transform .2s ease, opacity .2s ease;
}
.spec-toggle::after { transform:translate(-50%,-50%) rotate(90deg); }
.spec-accordion[open] .spec-toggle::after { transform:translate(-50%,-50%) rotate(0deg); opacity:0; }
.spec-accordion-body { padding:0 4px 24px; }
.spec-accordion-description { margin:0 0 18px; color:#64748b; font-size:15px; }
.spec-grid { margin:0; padding:0; }
.spec-row { display:grid; grid-template-columns:minmax(180px,34%) 1fr; border-top:1px solid #edf1f6; }
.spec-row:first-child { border-top:0; }
.spec-row dt,.spec-row dd { margin:0; padding:13px 14px; }
.spec-row dt { color:#0f172a; font-size:14px; font-weight:800; background:#f8fafc; }
.spec-row dd { color:#475569; overflow-wrap:anywhere; }

@media(max-width:620px){
  .spec-accordion summary { min-height:60px; padding:16px 2px; font-size:16px; }
  .spec-row { grid-template-columns:1fr; }
  .spec-row dt { padding-bottom:5px; background:transparent; }
  .spec-row dd { padding-top:4px; }
}

/* v0.5.5 homepage contrast and editorial cleanup */
.hero-strip {
  background: #eef2ff;
  color: var(--midnight);
  border-bottom: 1px solid #dbe3f3;
}
.hero-strip-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.hero-strip-card {
  padding: 24px 28px;
  border-right: 1px solid #dbe3f3;
}
.hero-strip-card:last-child { border-right: 0; }
.hero-strip-card strong {
  display: block;
  color: var(--midnight);
  font-family: var(--font-display);
  font-size: 17px;
  margin-bottom: 4px;
}
.hero-strip-card span { color: #475569; font-size: 14px; }
.stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #dbe3f3;
  border-radius: var(--radius);
  background: #f8fafc;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.stat-row .stat { border-right: 1px solid #dbe3f3; }
.stat-row .stat:last-child { border-right: 0; }
.stat-row .stat strong { color: var(--midnight); }
.stat-row .stat span { color: #475569; }

.section .stat-row {
  background: #ffffff;
  border-color: #d7deef;
  box-shadow: 0 12px 32px rgba(15,23,42,.08);
}
.section .stat-row .stat {
  background: #ffffff;
  color: var(--midnight) !important;
}
.section .stat-row .stat strong {
  color: var(--midnight) !important;
}
.section .stat-row .stat span {
  display: block;
  color: #334155 !important;
}
.section .stat-row .stat * {
  opacity: 1 !important;
}
@media (max-width: 760px) {
  .hero-strip-inner, .stat-row { grid-template-columns: 1fr; }
  .hero-strip-card, .stat-row .stat { border-right: 0; border-bottom: 1px solid #dbe3f3; }
  .hero-strip-card:last-child, .stat-row .stat:last-child { border-bottom: 0; }
}

/* v0.6.1 dedicated service report */
.service-report-layout { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:40px; align-items:start; }
.form-intro { margin-top:-6px; color:var(--muted); }
.field-help { font-size:12px; line-height:1.45; color:var(--muted); font-weight:500; }
input[type="file"] { padding:10px; }
.service-report-form textarea { min-height:170px; }
@media (max-width: 900px) { .service-report-layout { grid-template-columns:1fr; gap:28px; } }

/* v0.6.2 accessible desktop mega menus and mobile navigation */
:root { --header-height: 76px; }
.header { position: relative; top: auto; left: auto; right: auto; z-index: 1200; width: 100%; }
.header.is-sticky { position: fixed; top: 0; left: 0; right: 0; box-shadow: 0 10px 32px rgba(1,6,29,.18); animation: header-in .18s ease-out; }
@keyframes header-in { from { transform: translateY(-10px); opacity:.96; } to { transform:translateY(0); opacity:1; } }
.header-placeholder { height: 0; }
.nav { position: relative; }
.brand-link { flex: 0 0 auto; }
.nav-links { position: static; display:flex; align-items:center; gap:4px; color:#e7ebff; font-size:14px; font-weight:600; }
.nav-group { position: relative; }
.nav-trigger,.nav-direct { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:5px; padding:9px; border:0; border-radius:8px; background:transparent; color:#e7ebff; font:inherit; font-weight:600; white-space:nowrap; transition:background-color .16s ease,color .16s ease; }
.nav-trigger:hover,.nav-trigger:focus-visible,.nav-direct:hover,.nav-direct:focus-visible,.nav-group.is-current>.nav-trigger,.nav-direct[aria-current="page"] { color:#fff; background:rgba(255,255,255,.07); }
.nav-trigger:focus-visible,.nav-direct:focus-visible,.nav-cta:focus-visible,.mobile-toggle:focus-visible,.nav-panel-close:focus-visible,.nav-menu-card:focus-visible,.nav-manufacturers a:focus-visible,.nav-overview-link:focus-visible { outline:3px solid #818cf8; outline-offset:2px; }
.nav-chevron { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; transition:transform .16s ease; }
.nav-group.is-open .nav-chevron { transform:rotate(180deg); }
.nav-panel-head,.nav-cta-mobile { display:none; }
.nav-dropdown[hidden] { display:none !important; }
.nav-dropdown { position:fixed; top:var(--header-height); left:50%; z-index:1210; width:min(1120px,calc(100vw - 64px)); transform:translateX(-50%); padding:12px; border:1px solid var(--line); border-top:0; border-radius:0 0 16px 16px; background:#fff; color:var(--text); box-shadow:0 28px 70px rgba(1,6,29,.2); }
.nav-dropdown-inner { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.8fr); gap:26px; padding:18px; }
.nav-dropdown-inner-products { grid-template-columns:minmax(200px,.62fr) minmax(0,1.7fr) minmax(150px,.5fr); }
.nav-dropdown-intro { padding:10px 10px 8px; border-right:1px solid var(--line); }
.nav-dropdown-intro strong { display:block; margin:6px 0 9px; font-family:var(--font-display); color:var(--midnight); font-size:20px; line-height:1.2; }
.nav-dropdown-intro p { margin:0 18px 12px 0; color:var(--muted); font-size:13px; line-height:1.55; }
.nav-kicker,.nav-column-label { display:block; margin-bottom:8px; color:var(--luna); font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.nav-overview-link { color:var(--luna); font-size:13px; font-weight:800; }
.nav-menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.nav-menu-card { display:block; padding:13px 14px; border:1px solid transparent; border-radius:10px; background:#f8fafc; }
.nav-menu-card:hover,.nav-menu-card:focus-visible { border-color:#c7d2fe; background:#eef2ff; }
.nav-menu-card strong { display:block; color:var(--midnight); font-size:13px; line-height:1.3; }
.nav-menu-card span { display:block; margin-top:4px; color:var(--muted); font-size:11px; line-height:1.45; }
.nav-manufacturers { padding:6px 0 0 4px; }
.nav-manufacturers a { display:block; padding:9px 7px; border-bottom:1px solid var(--line); color:var(--midnight); font-size:13px; font-weight:800; }
.nav-manufacturers a:hover { color:var(--luna); }
.nav-cta-desktop { margin-left:6px; }
.nav-backdrop { display:none; }

@media (max-width:1120px) and (min-width:901px) {
  .logo { width:190px; }
  .nav-trigger,.nav-direct { padding-inline:6px; font-size:13px; }
  .nav-cta-desktop { padding-inline:13px; }
  .nav-dropdown { width:calc(100vw - 40px); }
}

@media (max-width:900px) {
  body.menu-open { overflow:hidden; touch-action:none; }
  .header { z-index:1260; }
  .nav-links { display:flex !important; position:fixed; inset:0 0 0 auto; z-index:1300; width:min(440px,100vw); height:100dvh; padding:0 22px 36px; overflow-y:auto; overscroll-behavior:contain; flex-direction:column; align-items:stretch; gap:0; background:var(--ink) !important; box-shadow:-24px 0 60px rgba(0,0,0,.38); transform:translateX(105%); visibility:hidden; pointer-events:none; transition:transform .22s ease,visibility .22s ease; }
  body.menu-open .nav-links { transform:translateX(0); visibility:visible; pointer-events:auto; }
  .nav-backdrop { position:fixed; inset:0; z-index:1250; display:block; background:rgba(1,6,29,.64); backdrop-filter:blur(2px); }
  .nav-backdrop[hidden] { display:none !important; }
  .mobile-toggle { display:block; position:relative; z-index:1270; }
  .nav-panel-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; min-height:74px; margin:0 -22px 14px; padding:0 22px; border-bottom:1px solid rgba(203,213,225,.16); background:rgba(1,6,29,.98); color:#fff; font-family:var(--font-display); font-weight:800; }
  .nav-panel-close { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(203,213,225,.2); border-radius:9px; background:rgba(255,255,255,.04); color:#fff; }
  .nav-panel-close svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; }
  .nav-links .nav-cta-mobile { display:inline-flex; width:100%; min-height:50px; margin:0 0 14px; padding:0 18px; }
  .nav-links .nav-cta-desktop { display:none !important; }
  .nav-group { width:100%; }
  .nav-trigger,.nav-direct { width:100%; min-height:54px; justify-content:space-between; padding:13px 4px; border-radius:0; border-bottom:1px solid rgba(203,213,225,.14); color:#f8fafc !important; font-size:16px; text-align:left; }
  .nav-direct { display:flex !important; }
  .nav-trigger:hover,.nav-trigger:focus-visible,.nav-direct:hover,.nav-direct:focus-visible,.nav-group.is-current>.nav-trigger,.nav-direct[aria-current="page"] { background:transparent; color:#a5b4fc !important; }
  .nav-dropdown { position:static; width:100%; transform:none; padding:0; border:0; border-radius:0; background:rgba(255,255,255,.035); box-shadow:none; color:#fff; }
  .nav-dropdown-inner,.nav-dropdown-inner-products { display:block; padding:10px 10px 14px; }
  .nav-dropdown-intro { display:none; }
  .nav-menu-grid,.nav-menu-grid-products { grid-template-columns:1fr; gap:4px; }
  .nav-menu-card { padding:11px 12px; border-color:rgba(203,213,225,.11); background:rgba(255,255,255,.03); }
  .nav-menu-card:hover,.nav-menu-card:focus-visible { border-color:rgba(165,180,252,.45); background:rgba(99,102,241,.12); }
  .nav-menu-card strong { color:#fff; font-size:14px; }
  .nav-menu-card span { color:#aeb9d8; font-size:11px; }
  .nav-column-label { margin:8px 2px 6px; color:#a5b4fc; }
  .nav-manufacturers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 8px; margin-top:10px; padding:10px 0 0; border-top:1px solid rgba(203,213,225,.12); }
  .nav-manufacturers .nav-column-label { grid-column:1/-1; }
  .nav-manufacturers a { padding:8px 4px; border-bottom:0; color:#e7ebff; font-size:12px; }
}

@media (max-width:620px) {
  :root { --header-height:68px; }
  .nav-links { width:100vw; }
}

@media (prefers-reduced-motion:reduce) {
  .header.is-sticky { animation:none; }
  .nav-links,.nav-chevron { transition:none !important; }
}

/* v0.6.3 legal shells and consent manager */
.footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; padding:14px 0 0; margin-top:12px; border-top:1px solid rgba(203,213,225,.14); font-size:12px; }
.footer-legal a,.footer-consent-button { color:#cbd5e1; }
.footer-legal a:hover,.footer-legal a:focus-visible,.footer-consent-button:hover,.footer-consent-button:focus-visible { color:#fff; }
.footer-consent-button { padding:0; border:0; background:transparent; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.footer-consent-button:focus-visible,.consent-close:focus-visible,.consent-dialog button:focus-visible,.consent-dialog a:focus-visible { outline:3px solid #818cf8; outline-offset:3px; }
.legal-gate { margin:0 0 30px; padding:18px 20px; border-left:4px solid #6366f1; background:#eef2ff; color:#1e293b; border-radius:0 10px 10px 0; }
.legal-gate strong { display:block; margin-bottom:5px; color:#4338ca; font-family:var(--font-display); }
.legal-gate p { margin:0; }
.legal-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:18px 0 34px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--line); }
.legal-data-grid>div { padding:16px 18px; background:#fff; }
.legal-data-grid span { display:block; margin-bottom:4px; color:var(--muted); font-size:12px; }
.legal-data-grid strong { color:var(--midnight); font-size:14px; overflow-wrap:anywhere; }
.legal-table { margin:18px 0 28px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); }
.legal-table-row { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(100px,.5fr) minmax(0,1.8fr); }
.legal-table-row>* { padding:13px 16px; border-top:1px solid var(--line); }
.legal-table-row:first-child>* { border-top:0; }
.legal-table-head { background:var(--midnight); color:#fff; font-weight:800; }
.consent-banner { position:fixed; inset:auto 16px 16px; z-index:3100; }
.consent-banner[hidden],.consent-modal[hidden] { display:none !important; }
.consent-banner-inner { width:min(1120px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding:20px 22px; border:1px solid #cbd5e1; border-radius:14px; background:#fff; box-shadow:0 24px 80px rgba(1,6,29,.28); }
.consent-banner strong { display:block; margin-bottom:4px; color:var(--midnight); font-family:var(--font-display); font-size:17px; }
.consent-banner p { margin:0; max-width:760px; color:#475569; font-size:13px; line-height:1.55; }
.consent-banner-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.consent-banner-actions .btn,.consent-dialog-actions .btn { min-height:44px; padding:10px 14px; font-size:13px; white-space:nowrap; }
body.consent-open { overflow:hidden; }
.consent-modal { position:fixed; inset:0; z-index:3200; display:grid; place-items:center; padding:20px; }
.consent-modal-backdrop { position:absolute; inset:0; background:rgba(1,6,29,.72); backdrop-filter:blur(3px); }
.consent-dialog { position:relative; z-index:1; width:min(680px,100%); max-height:min(760px,calc(100dvh - 40px)); overflow:auto; padding:26px; border-radius:16px; background:#fff; box-shadow:0 30px 100px rgba(0,0,0,.35); outline:none; }
.consent-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.consent-dialog-head h2 { margin:0; font-size:25px; }
.consent-dialog-head .eyebrow { margin:0 0 4px; }
.consent-close { width:42px; height:42px; flex:0 0 auto; border:1px solid var(--line); border-radius:10px; background:#f8fafc; color:var(--midnight); font-size:28px; line-height:1; cursor:pointer; }
.consent-copy { color:var(--muted); }
.consent-category { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:16px 0; border-top:1px solid var(--line); }
.consent-category strong { display:block; color:var(--midnight); }
.consent-category span { display:block; margin-top:3px; color:var(--muted); font-size:12px; line-height:1.45; }
.consent-switch { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; }
.consent-switch input { width:20px; height:20px; accent-color:var(--luna); }
.consent-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding-top:18px; border-top:1px solid var(--line); }
.consent-more { margin:18px 0 0; text-align:right; font-size:12px; }
@media (max-width:760px) {
  .footer-legal { align-items:flex-start; flex-direction:column; gap:8px; }
  .legal-data-grid { grid-template-columns:1fr; }
  .legal-table-row { grid-template-columns:1fr; padding:10px 0; }
  .legal-table-row>* { padding:5px 14px; border-top:0; }
  .legal-table-head { display:none; }
  .consent-banner { inset:auto 10px 10px; }
  .consent-banner-inner { grid-template-columns:1fr; gap:14px; padding:17px; }
  .consent-banner-actions { justify-content:stretch; }
  .consent-banner-actions .btn { flex:1 1 140px; }
  .consent-dialog { padding:20px; }
  .consent-category { grid-template-columns:1fr; gap:10px; }
  .consent-dialog-actions { justify-content:stretch; }
  .consent-dialog-actions .btn { flex:1 1 180px; }
  .consent-more { text-align:left; }
}
@media (prefers-reduced-motion:reduce) {
  .consent-modal-backdrop { backdrop-filter:none; }
}

/* v0.6.5 product manufacturer PDF downloads */
.product-downloads { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.download-list { display:grid; gap:14px; margin-top:28px; }
.download-card { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:24px 26px; background:var(--snow); border:1px solid var(--line); border-radius:var(--radius); }
.download-card h3 { margin:5px 0 8px; font-size:20px; }
.download-card p { margin:0 0 6px; color:var(--muted); font-size:15px; }
.download-meta { display:block; color:var(--luna); font-size:12px; line-height:1.35; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.download-verified { display:block; color:#64748b; font-size:13px; }
.download-link { flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border:1px solid var(--silver); border-radius:8px; background:white; color:var(--midnight); font-weight:700; }
.download-link:hover { border-color:var(--luna); color:var(--luna); }
.download-link:focus-visible { outline:3px solid rgba(99,102,241,.24); outline-offset:3px; }
@media (max-width:700px) {
  .download-card { align-items:flex-start; flex-direction:column; padding:22px; gap:18px; }
  .download-link { width:100%; }
}


/* v0.6.6 release QA: deterministic local typography, focus visibility and form errors */
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible {
  outline: 3px solid #818cf8;
  outline-offset: 3px;
}
.field-error {
  min-height: 18px;
  margin-top: 1px;
  color: #b42318;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.field-error:empty { display:none; }
.field :is(input,textarea,select)[aria-invalid="true"] {
  border-color: #b42318;
  box-shadow: 0 0 0 3px rgba(180,35,24,.12);
}
.checkbox { flex-wrap:wrap; }
.checkbox.has-error { color:#7a271a; }
.checkbox .field-error { flex-basis:100%; padding-left:30px; }
.form-error-summary {
  margin: 0 0 18px;
  padding: 12px 14px;
  border-left: 4px solid #b42318;
  border-radius: 0 8px 8px 0;
  background: #fff4f2;
  color: #7a271a;
  font-size: 13px;
  font-weight: 700;
}
.form-error-summary:empty { display:none; }
@media (forced-colors: active) {
  :where(a,button,input,textarea,select,summary,[tabindex]):focus-visible { outline: 2px solid CanvasText; }
  .field :is(input,textarea,select)[aria-invalid="true"] { border:2px solid CanvasText; }
}
/* v0.6.6 checkbox error layout: keep consent copy and inline error inside the form column. */
.checkbox {
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:4px 10px;
  align-items:start;
}
.checkbox input { grid-column:1; grid-row:1; margin-top:4px; }
.checkbox > span:not(.field-error) { grid-column:2; grid-row:1; min-width:0; }
.checkbox .field-error { grid-column:2; grid-row:2; padding-left:0; min-width:0; }
