

/* Layout: parts-manual shop. Sticky order sheet on the right, configurator + spec tables on the left. */
:root {
  --paper: #F3F2EE; --card: #FFFFFF; --ink: #16161A; --muted: #5B5B63; --rule: #D6D4CC; --rule-soft: #E6E4DD;
  --off: #9A9AA0; --accent: #C2410C; --on-accent: #FFFFFF; --sel: #16161A; --on-sel: #FFFFFF; --plate: #FFFFFF;
  --f-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --f-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper: #17171A; --card: #202024; --ink: #EDEBE6; --muted: #A7A6AD; --rule: #3A3A40; --rule-soft: #2C2C31;
  --off: #6E6E75; --accent: #EA7240; --on-accent: #17171A; --sel: #EDEBE6; --on-sel: #17171A; --plate: #FFFFFF; color-scheme: dark } }
:root[data-theme="dark"] {
  --paper: #17171A; --card: #202024; --ink: #EDEBE6; --muted: #A7A6AD; --rule: #3A3A40; --rule-soft: #2C2C31;
  --off: #6E6E75; --accent: #EA7240; --on-accent: #17171A; --sel: #EDEBE6; --on-sel: #17171A; --plate: #FFFFFF; color-scheme: dark }

* { box-sizing: border-box }
body { background: var(--paper); color: var(--ink); font-family: var(--f-body); font-size: 16px; line-height: 1.45; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.wrap { max-width: 1360px; margin: 0 auto; padding-inline: clamp(16px, 3vw, 40px); padding-block: 0 48px; }
.mono { font-family: var(--f-mono); }
.label { font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; }
.num { font-variant-numeric: tabular-nums; }

header.top { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding-block: 18px; border-bottom: 2px solid var(--ink); }
.brand { display: flex; align-items: baseline; gap: 10px; }
.brand b { font-family: var(--f-display); font-weight: 800; font-size: 30px; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1; }
.brand span { background: var(--accent); color: var(--on-accent); font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.12em; padding: 3px 8px; }
.proto { margin-left: auto; font-family: var(--f-mono); font-size: 12px; color: var(--muted); border: 1px dashed var(--rule); padding: 6px 10px; }

.tabs { display: flex; gap: 0; margin-top: 24px; border-bottom: 1px solid var(--rule); }
.tabs button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 18px 10px; cursor: pointer;
  font-family: var(--f-display); font-weight: 700; font-size: 22px; text-transform: uppercase; color: var(--muted); }
.tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }

.layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; margin-top: 28px; align-items: start; }
@media (max-width: 1080px) { .layout { grid-template-columns: minmax(0, 1fr); } }

h1 { font-family: var(--f-display); font-weight: 800; font-size: clamp(40px, 5vw, 60px); line-height: 0.95; text-transform: uppercase; margin: 0; text-wrap: balance; }
h2 { font-family: var(--f-display); font-weight: 800; font-size: 32px; text-transform: uppercase; margin: 0; text-wrap: balance; }
.lede { color: var(--muted); font-size: 17px; max-width: 62ch; margin: 10px 0 0; }
.step { display: flex; flex-direction: column; gap: 10px; }
.steps { display: flex; flex-direction: column; gap: 26px; }

.opts { display: grid; gap: 8px; }
.opt { background: var(--card); border: 1px solid var(--ink); padding: 10px 12px; cursor: pointer; text-align: left;
  display: flex; flex-direction: column; gap: 2px; min-height: 56px; justify-content: center; }
.opt[aria-pressed="true"] { background: var(--sel); color: var(--on-sel); border-color: var(--sel); }
.opt[disabled], .opt.na { color: var(--off); border: 1px dashed var(--rule); background: transparent; cursor: not-allowed; }
.opt .t { font-family: var(--f-display); font-weight: 700; font-size: 21px; text-transform: uppercase; line-height: 1.05; }
.opt .s { font-size: 13px; opacity: 0.8; }
.opt .p { font-family: var(--f-mono); font-size: 13px; }
.mounts { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.mats { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.bores { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); }
.bores .opt { align-items: center; text-align: center; min-height: 58px; }
.brandbtns { display: flex; flex-wrap: wrap; gap: 8px; }
.brandbtns button { min-height: 48px; padding: 0 18px; background: var(--card); border: 1px solid var(--ink); cursor: pointer;
  font-family: var(--f-display); font-weight: 700; font-size: 20px; text-transform: uppercase; }
.brandbtns button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.brandbtns .all { font-family: var(--f-body); font-weight: 500; font-size: 15px; text-transform: none; border-style: dashed; }
.notice { background: var(--card); border: 1px dashed var(--ink); padding: 18px; font-size: 16px; max-width: 62ch; }
.fam-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px 24px; }
.fam-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.fam-brand { font-family: var(--f-display); font-weight: 800; font-size: 20px; text-transform: uppercase; border-bottom: 2px solid var(--ink); padding-bottom: 4px; }
.fam-list { display: flex; flex-direction: column; gap: 6px; }
.opt.fam { flex-direction: row; align-items: center; gap: 12px; min-height: 64px; }
.opt.fam svg { flex: none; }
.fam-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.opt.fam .t { font-size: 18px; }
.sil { fill: var(--rule-soft); stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.sil-line { fill: none; stroke: currentColor; stroke-width: 1.5; }
.sil-accent { fill: #B8862F; stroke: currentColor; stroke-width: 1.5; }
.sil-light { fill: var(--card); stroke: currentColor; stroke-width: 1.5; }
.sil-hole { fill: var(--paper); stroke: currentColor; stroke-width: 1.5; }
.bores .opt .t { font-family: var(--f-mono); font-weight: 500; font-size: 15px; text-transform: none; }
.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 560px) { .three, .two { grid-template-columns: minmax(0, 1fr); } }

.orifice-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; margin-top: 28px; }
@media (max-width: 820px) { .orifice-grid { grid-template-columns: minmax(0, 1fr); } }
.fig { background: var(--plate); border: 1px solid var(--rule); position: relative; display: flex; align-items: center; justify-content: center; min-height: 320px; padding: 36px 16px 16px; }
.fig img { max-width: 100%; height: auto; display: block; }
.fig .cap { position: absolute; top: 12px; left: 12px; font-family: var(--f-mono); font-size: 12px; color: #6B4D00; }
.fig .none { font-family: var(--f-mono); font-size: 13px; color: #6B6B72; text-align: center; max-width: 30ch; }
.fig.dark { background: #0A0A0A; border-color: #0A0A0A; flex-direction: column; gap: 10px; }
.fig.dark .cap { color: #C9A44C; }
.fig .render { width: min(100%, 360px); aspect-ratio: 1; object-fit: cover; }
.fig .note { font-family: var(--f-mono); font-size: 12px; color: #A0A0A8; text-align: center; max-width: 36ch; }
.figrow { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; margin-top: 14px; }
.photo { background: #0B0B0C; aspect-ratio: 300 / 247; max-width: 100%; overflow: hidden; }
.photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dims { display: flex; flex-direction: column; }
.dims div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--rule); padding-block: 6px; font-size: 15px; }
.dims span:first-child { color: var(--muted); }

.buybar { border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); padding-block: 18px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.buybar .what { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.art { font-family: var(--f-mono); font-size: 13px; color: var(--accent); }
.price { font-family: var(--f-display); font-weight: 800; font-size: 46px; line-height: 1; }
.pricebox { display: flex; flex-direction: column; align-items: flex-end; }
.small { font-size: 13px; color: var(--muted); }
.qty { display: flex; align-items: center; border: 2px solid var(--ink); background: var(--card); height: 52px; }
.qty button { width: 44px; height: 100%; border: 0; background: none; font-size: 22px; cursor: pointer; }
.qty input { width: 52px; height: 100%; border: 0; background: none; text-align: center; font-family: var(--f-mono); font-size: 17px; color: var(--ink); }
.cta { height: 52px; padding: 0 22px; border: 0; background: var(--accent); color: var(--on-accent); font-weight: 700; font-size: 17px; letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; }
.cta.ghost { background: transparent; color: var(--ink); border: 2px solid var(--ink); }

.tablewrap { overflow-x: auto; margin-top: 12px; }
table.matrix { border-collapse: collapse; width: 100%; min-width: 560px; }
.matrix th { text-align: left; font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--muted); font-weight: 400; padding: 8px 6px; border-bottom: 2px solid var(--ink); text-transform: uppercase; }
.matrix td { border-bottom: 1px solid var(--rule); padding: 3px 6px; font-variant-numeric: tabular-nums; }
.matrix td.b { font-family: var(--f-mono); font-size: 14px; white-space: nowrap; }
.matrix td.b span { color: var(--muted); margin-left: 6px; }
.matrix button { background: none; border: 0; padding: 6px 8px; cursor: pointer; font-family: var(--f-display); font-weight: 700; font-size: 19px; text-align: left; }
.matrix button.on { background: var(--accent); color: var(--on-accent); }
.matrix .dash { color: var(--off); padding-left: 8px; }

.len { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.lenbox { display: flex; align-items: center; border: 2px solid var(--ink); background: var(--card); height: 56px; }
.lenbox input { width: 130px; height: 100%; border: 0; background: none; padding: 0 12px; font-family: var(--f-mono); font-size: 22px; color: var(--ink); }
.lenbox span { padding-right: 12px; color: var(--muted); font-family: var(--f-mono); }
.chip { background: var(--card); border: 1px solid var(--ink); padding: 0 12px; min-height: 44px; cursor: pointer; font-family: var(--f-mono); font-size: 14px; }
.chip[aria-pressed="true"] { background: var(--sel); color: var(--on-sel); }
.check { display: flex; gap: 12px; align-items: flex-start; background: var(--card); border: 1px solid var(--ink); padding: 14px; cursor: pointer; }
.check input { width: 20px; height: 20px; accent-color: var(--accent); margin-top: 2px; flex: none; }
.tube { width: 100%; height: 44px; display: block; }
.tube .body { fill: var(--rule-soft); stroke: var(--ink); }
.tube .end { fill: var(--accent); stroke: var(--ink); }
.tube .tick { stroke: var(--ink); }
.specs div { display: flex; justify-content: space-between; gap: 12px; padding-block: 8px; border-top: 1px solid var(--rule); }
.specs span:first-child { color: var(--muted); }
.specs span:last-child { font-family: var(--f-mono); text-align: right; }

aside.cart { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); background: var(--card); border: 2px solid var(--ink); display: flex; flex-direction: column; }
@media (max-width: 1080px) { aside.cart { position: static; } }
.cart .head { background: var(--sel); color: var(--on-sel); padding: 12px 16px; display: flex; justify-content: space-between; }
.cart .lines { display: flex; flex-direction: column; max-height: 52vh; overflow: auto; }
.line { padding: 12px 16px; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
.line .n { font-weight: 600; font-size: 15px; }
.line .d { font-size: 13px; color: var(--muted); grid-column: 1 / -1; }
.line .ctl { display: flex; align-items: center; gap: 6px; }
.line .ctl button { width: 30px; height: 30px; border: 1px solid var(--ink); background: none; cursor: pointer; }
.line .ctl .x { border: 0; color: var(--muted); text-decoration: underline; width: auto; padding: 0 4px; font-size: 13px; }
.line .amt { font-family: var(--f-display); font-weight: 700; font-size: 20px; text-align: right; }
.empty { padding: 24px 16px; color: var(--muted); font-size: 15px; }
.totals { padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.totals div { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.totals .grand { font-family: var(--f-display); font-weight: 800; font-size: 30px; border-top: 2px solid var(--ink); padding-top: 8px; margin-top: 4px; }
.cart .foot { padding: 0 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.status { font-size: 13px; color: var(--muted); min-height: 1.2em; }
textarea.summary { width: 100%; min-height: 140px; font-family: var(--f-mono); font-size: 12px; background: var(--paper); color: var(--ink); border: 1px solid var(--rule); padding: 8px; }
@media (prefers-reduced-motion: no-preference) { .opt, .chip, .matrix button { transition: background-color .12s, color .12s; } }
/* focusing tubes: standard / ROCTEC switch */
.fset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
@media (max-width: 640px) { .fset { grid-template-columns: minmax(0, 1fr); } }
.fset-btn { text-align: left; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--rule); background: var(--card); color: var(--ink); cursor: pointer; font: inherit; }
.fset-btn b { font-size: 17px; } .fset-btn span { font-size: 13px; color: var(--muted); }
.fset-btn[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 2px var(--ink) inset; }
.fset-btn.rt b::after { content: "Premium"; margin-left: 8px; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--accent); color: var(--on-accent); vertical-align: 2px; }
.frtinfo { margin-top: 12px; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 16px; background: var(--card); border-left: 4px solid var(--accent); }
.frtinfo span { font-size: 14px; color: var(--muted); max-width: 75ch; }
/* focusing tubes: size finder + product page */
.fsize { margin-top: 20px; background: var(--sel); color: var(--on-sel); border-radius: 16px; padding: 18px; }
.fsize-top { display: flex; gap: 8px 18px; align-items: baseline; flex-wrap: wrap; justify-content: space-between; }
.fsize .label { color: var(--accent); }
.fsize-code { font: 700 clamp(24px, 3.6vw, 38px) var(--f-mono); display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; margin: 8px 0 14px; font-variant-numeric: tabular-nums; }
.fsize-code i { font-style: normal; opacity: .55; font-weight: 400; }
.fsize-read { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 700px) { .fsize-read { grid-template-columns: minmax(0, 1fr); } }
.fsize-read label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 14px; }
.fsize-read select { height: 48px; border-radius: 12px; border: 0; background: var(--card); color: var(--ink); padding: 0 12px; font: 500 16px var(--f-mono); }
.fsize-status { margin-top: 12px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 14px; }
.fsize-status .pill { font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--accent); color: var(--on-accent); }
.fsize-status .pill.ok { background: #2E9E63; color: #fff; } .fsize-status .pill.no { background: var(--on-sel); color: var(--sel); }
.fsize .lnk { background: none; border: 0; padding: 0; color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fprod { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 28px; margin-top: 28px; }
@media (max-width: 820px) { .fprod { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 821px) { .fprod-photo { position: sticky; top: calc(var(--headh, 0px) + 70px); align-self: start; } }
.fphoto { position: relative; background: #0A0A0A; border-radius: 16px; overflow: hidden; aspect-ratio: 1; max-width: 100%; display: grid; place-items: center; }
.fphoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fphoto svg { width: 30%; height: auto; } .fphoto .sil { fill: #3A3936; }
.fphoto .ex { position: absolute; left: 10px; bottom: 10px; font-size: 11px; color: #F2F0EA; background: rgba(255,255,255,.14); padding: 2px 8px; border-radius: 999px; }
.fprod-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.fprod-main h2 { margin: 4px 0 0; }
.ftypes { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.ftype { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; text-align: left; border: 1px solid var(--rule); background: var(--card); color: var(--ink); border-radius: 14px; padding: 7px 12px 7px 7px; cursor: pointer; font: inherit; }
.ftype .fphoto { border-radius: 9px; }
.ftype b { display: block; font-size: 15px; } .ftype .small { display: block; }
.ftype .from { font-size: 13px; color: var(--muted); white-space: nowrap; font-family: var(--f-mono); }
.ftype[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 2px var(--ink) inset; }
.ftype:hover { border-color: var(--ink); }
.fchips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.fchips button { border: 1px solid var(--rule); background: var(--card); color: var(--ink); border-radius: 999px; padding: 8px 14px; font: 600 14px var(--f-body); cursor: pointer; }
.fchips button small { font-weight: 400; opacity: .7; margin-left: 4px; }
.fchips button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.fchips button:disabled { opacity: .35; cursor: not-allowed; }
.fbuy { background: var(--card); border: 1px solid var(--rule); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.fbuy-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.fspec { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 18px; font-size: 14px; margin: 0; }
.fspec dt { color: var(--muted); } .fspec dd { margin: 0; font-family: var(--f-mono); }

/* ---- site shell (parts-manual style A) ---- */
/* skins: "orange" = direction A (rust orange), "yellow" = signal yellow (#FDC42D) with near-black, straight shapes only (user, 2026-10-01) */
:root { --accent-text: var(--accent); }
.art { color: var(--accent-text); }
:root[data-skin="yellow"] { --accent: #FDC42D; --on-accent: #161514; --accent-text: #7E5A00; --ink: #161514; --sel: #161514; }
@media (prefers-color-scheme: dark) { :root[data-skin="yellow"]:not([data-theme="light"]) { --accent: #FDC42D; --on-accent: #161514; --accent-text: #FDC42D; --ink: #EDEBE6; --sel: #EDEBE6; } }
:root[data-skin="yellow"][data-theme="dark"] { --accent: #FDC42D; --on-accent: #161514; --accent-text: #FDC42D; --ink: #EDEBE6; --sel: #EDEBE6; }
[data-skin="yellow"] .site-head { border-bottom: 5px solid var(--accent); }
[data-skin="yellow"] .nav button[aria-current="page"] { background: var(--accent); color: #161514; border-bottom-color: transparent; padding-inline: 14px; }
[data-skin="yellow"] .band:not(.accent-band) { border-left: 10px solid var(--accent); }
[data-skin="yellow"] .tile:hover { background: var(--accent); color: #161514; }
[data-skin="yellow"] .tile:hover .code, [data-skin="yellow"] .tile:hover .ct { color: #161514; }
.skin { display: flex; align-items: center; gap: 0; border: 1px dashed var(--rule); font: 12px var(--f-mono); }
.skin span { padding: 0 8px; color: var(--muted); }
.skin button { height: 32px; padding: 0 10px; border: 0; border-left: 1px solid var(--rule); background: none; cursor: pointer; font: 12px var(--f-mono); color: var(--muted); }
.skin button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.site-head { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: var(--paper); border-bottom: 2px solid var(--ink); }
.head-row { display: flex; align-items: center; gap: 20px; padding-block: 14px; flex-wrap: wrap; }
.head-row .brand { cursor: pointer; background: none; border: 0; padding: 0; }
.search { flex: 1 1 320px; display: flex; border: 2px solid var(--ink); background: var(--card); height: 48px; min-width: 0; }
.search input { flex: 1; min-width: 0; border: 0; background: none; padding: 0 14px; font-family: var(--f-mono); font-size: 15px; color: var(--ink); }
.search button { border: 0; background: var(--ink); color: var(--paper); padding: 0 18px; font-weight: 700; letter-spacing: .06em; cursor: pointer; }
.head-actions { display: flex; gap: 8px; }
.hbtn { height: 44px; padding: 0 14px; border: 2px solid var(--ink); background: var(--card); font-weight: 700; letter-spacing: .04em; cursor: pointer; text-transform: uppercase; font-size: 14px; }
.hbtn.cart { background: var(--ink); color: var(--paper); }
.nav { display: flex; gap: 4px; overflow-x: auto; padding-bottom: 8px; scrollbar-width: none; }
.nav button { flex: none; background: none; border: 0; border-bottom: 3px solid transparent; padding: 8px 10px; cursor: pointer;
  font-family: var(--f-display); font-weight: 700; font-size: 18px; text-transform: uppercase; color: var(--muted); }
.nav button[aria-current="page"] { color: var(--ink); border-bottom-color: var(--accent); }
main.view { padding-block: 28px 56px; min-height: 60vh; }
.crumbs { font-family: var(--f-mono); font-size: 13px; color: var(--muted); margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs button { background: none; border: 0; padding: 0; color: var(--muted); cursor: pointer; font: inherit; text-decoration: underline; }
.eyebrow { font-family: var(--f-mono); font-size: 13px; letter-spacing: .1em; color: var(--accent-text); text-transform: uppercase; }
.hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: end; padding-block: 24px 36px; border-bottom: 1px solid var(--rule); }
@media (max-width: 860px) { .hero { grid-template-columns: minmax(0, 1fr); } }
.hero h1 { font-size: clamp(48px, 8vw, 104px); }
.bigsearch { display: flex; border: 2px solid var(--ink); background: var(--card); height: 64px; }
.bigsearch input { flex: 1; min-width: 0; border: 0; background: none; padding: 0 16px; font-family: var(--f-mono); font-size: 18px; color: var(--ink); }
.bigsearch button { border: 0; background: var(--accent); color: var(--on-accent); padding: 0 22px; font-weight: 700; font-size: 16px; letter-spacing: .06em; cursor: pointer; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.chips button { background: var(--card); border: 1px solid var(--ink); padding: 6px 10px; cursor: pointer; font-size: 14px; }
.band { background: var(--ink); color: var(--paper); padding: 24px clamp(16px, 3vw, 28px); display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; margin-block: 28px; }
.band label { display: flex; flex-direction: column; gap: 6px; flex: 1 1 180px; font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; }
.band select { height: 50px; background: var(--paper); color: var(--ink); border: 0; padding: 0 10px; font: 500 16px var(--f-body); }
.band .cta { height: 50px; }
.band h2 { color: var(--paper); flex: 1 1 100%; font-size: 28px; }
.sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; border-bottom: 2px solid var(--ink); padding-bottom: 10px; margin-top: 44px; }
.linkbtn { background: none; border: 0; padding: 0; cursor: pointer; font-weight: 700; letter-spacing: .04em; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.hpgroup { margin-top: 14px; } .hpgl { display: block; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
.hptypes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.hptypes .ftype { grid-template-columns: 52px minmax(0, 1fr); } .hptypes .ftype .from { grid-column: 2; margin-top: -4px; }
.hpgrid { margin-top: 22px; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
@media (max-width: 820px) { .hpgrid { grid-template-columns: minmax(0, 1fr); } } .hpgrid .steps { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.hpcard { background: var(--card); border: 2px solid var(--ink); position: sticky; top: calc(env(safe-area-inset-top, 0px) + 70px); }
@media (max-width: 820px) { .hpcard { position: static; } }
.hphead { background: var(--sel); color: var(--on-sel); padding: 12px 16px; display: block; }
.exph { position: absolute; left: 12px; bottom: 12px; font-size: 12px; color: #F2F0EA; background: rgba(255,255,255,.16); padding: 3px 10px; border-radius: 999px; }
.hpcard .fphoto { border-radius: 12px; width: min(100%, 230px); margin-inline: auto; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); border-left: 1px solid var(--rule); border-top: 1px solid var(--rule); margin-top: 16px; }
.tile { text-align: left; background: var(--paper); border: 0; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 20px 22px; min-height: 140px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; gap: 10px; }
.tile:hover { background: var(--card); }
.tile .code { font-family: var(--f-mono); font-size: 13px; color: var(--accent-text); }
.tile .nm { font-family: var(--f-display); font-weight: 700; font-size: 26px; text-transform: uppercase; line-height: 1; }
.tile .ct { font-size: 14px; color: var(--muted); }
.ptable { width: 100%; border-collapse: collapse; margin-top: 4px; }
.ptable th { text-align: left; font: 400 12px var(--f-mono); letter-spacing: .1em; color: var(--muted); padding: 10px 8px; border-bottom: 2px solid var(--ink); text-transform: uppercase; }
.ptable td { padding: 10px 8px; border-bottom: 1px solid var(--rule); vertical-align: middle; font-variant-numeric: tabular-nums; }
.ptable .art { white-space: nowrap; }
.ptable .pn { font-weight: 600; font-size: 16px; cursor: pointer; background: none; border: 0; padding: 0; text-align: left; color: var(--ink); }
.ptable .pn:hover { color: var(--accent-text); }
.ptable .oem { font-family: var(--f-mono); font-size: 13px; }
.ptable .pr { font-family: var(--f-display); font-weight: 700; font-size: 22px; text-align: right; white-space: nowrap; }
.tag { display: inline-block; padding: 1px 7px; border: 1px solid var(--ink); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.tag.gen { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.addbtn { height: 40px; padding: 0 14px; border: 0; background: var(--ink); color: var(--paper); font-weight: 700; letter-spacing: .04em; cursor: pointer; white-space: nowrap; }
.list-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px; }
@media (max-width: 860px) { .list-layout { grid-template-columns: minmax(0, 1fr); } .hide-sm { display: none; } }
.filters { display: flex; flex-direction: column; gap: 22px; }
.filters fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.filters legend { font: 400 12px var(--f-mono); letter-spacing: .12em; text-transform: uppercase; border-bottom: 2px solid var(--ink); width: 100%; padding-bottom: 6px; margin-bottom: 6px; }
.filters label { display: flex; gap: 10px; align-items: center; min-height: 34px; border-bottom: 1px solid var(--rule-soft); cursor: pointer; font-size: 15px; }
.filters label span.c { margin-left: auto; font: 12px var(--f-mono); color: var(--muted); }
.filters input { accent-color: var(--accent); width: 18px; height: 18px; }
.filters select { height: 42px; border: 1px solid var(--ink); background: var(--card); color: var(--ink); padding: 0 8px; font: 15px var(--f-body); }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.toolbar select { height: 40px; border: 2px solid var(--ink); background: var(--card); color: var(--ink); padding: 0 8px; font: 15px var(--f-body); }
.match { border: 2px solid var(--ink); background: var(--card); margin-block: 16px 24px; }
.match .mh { background: var(--ink); color: var(--paper); padding: 8px 14px; font: 12px var(--f-mono); letter-spacing: .1em; }
.match .mb { padding: 16px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.pd { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 36px; }
@media (max-width: 860px) { .pd { grid-template-columns: minmax(0, 1fr); } }
.photo-ph { background: var(--card); border: 1px solid var(--rule); min-height: 380px; display: flex; align-items: center; justify-content: center; font: 13px var(--f-mono); color: var(--muted); letter-spacing: .1em; text-align: center; padding: 16px; }
.spec div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 12px; padding-block: 9px; border-top: 1px solid var(--rule); }
@media (max-width: 560px) { .spec div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
.spec span:first-child { color: var(--muted); }
.spec span:last-child { font-family: var(--f-mono); font-size: 14px; overflow-wrap: anywhere; }
.accbox { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; border: 1px solid var(--ink); background: var(--card); padding: 14px 16px; }
.form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
@media (max-width: 640px) { .form { grid-template-columns: minmax(0, 1fr); } }
.form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.form .full { grid-column: 1 / -1; }
.form input, .form select, .form textarea { height: 46px; border: 1px solid var(--ink); background: var(--card); color: var(--ink); padding: 0 12px; font: 16px var(--f-body); }
.form textarea { height: 110px; padding: 10px 12px; }
.form .hint { font-weight: 400; color: var(--muted); font-size: 13px; }
.steps-bar { display: flex; gap: 0; margin-bottom: 24px; border: 2px solid var(--ink); }
.steps-bar span { flex: 1; padding: 10px 12px; font: 13px var(--f-mono); letter-spacing: .06em; border-right: 1px solid var(--ink); text-transform: uppercase; }
.steps-bar span:last-child { border-right: 0; }
.steps-bar span.on { background: var(--ink); color: var(--paper); }
.steps-bar span.done { color: var(--muted); }
.co { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 36px; align-items: start; }
@media (max-width: 960px) { .co { grid-template-columns: minmax(0, 1fr); } }
.box { background: var(--card); border: 2px solid var(--ink); }
.box .bh { background: var(--ink); color: var(--paper); padding: 10px 14px; font: 12px var(--f-mono); letter-spacing: .1em; text-transform: uppercase; }
.box .bb { padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.row { display: flex; justify-content: space-between; gap: 12px; font-variant-numeric: tabular-nums; }
.pay { display: grid; gap: 8px; }
.pay label { display: flex; gap: 12px; align-items: center; border: 1px solid var(--ink); background: var(--card); padding: 12px 14px; cursor: pointer; min-height: 56px; }
.pay label.off { border-style: dashed; color: var(--off); cursor: not-allowed; }
.pay input { accent-color: var(--accent); width: 18px; height: 18px; }
.pill { display: inline-block; padding: 2px 8px; font: 12px var(--f-mono); letter-spacing: .06em; border: 1px solid currentColor; }
.pill.ok { color: #2F7D4F; } .pill.wait { color: #A15C07; }
.toast { position: fixed; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 20px); transform: translateX(-50%); background: var(--ink); color: var(--paper); padding: 12px 18px; font-weight: 600; z-index: 50; max-width: calc(100% - 32px); }
.site-foot { border-top: 2px solid var(--ink); padding-block: 28px; display: flex; flex-wrap: wrap; gap: 16px 28px; justify-content: space-between; font-size: 14px; color: var(--muted); }
.site-foot nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.prose { max-width: 68ch; display: flex; flex-direction: column; gap: 12px; font-size: 17px; }
.prose h2 { margin-top: 18px; font-size: 26px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.prose ol, .prose ul { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 6px; }
.prose li { padding-left: 4px; } .prose ol li::marker { font-family: var(--f-mono); font-size: 14px; }
.prose .tablewrap { font-size: 15px; } .prose .ptable td, .prose .ptable th { font-variant-numeric: normal; } .prose p { margin: 0; }
.two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 760px) { .two-col { grid-template-columns: minmax(0, 1fr); } }
.demo { border: 1px dashed var(--accent); padding: 10px 12px; font-size: 14px; color: var(--muted); }
.cfg h1 { font-size: clamp(38px, 5vw, 56px); }
/* hover = a frame around what you can pick; selected = filled (user, 2026-10-01) */
.matrix button:hover:not(.on) { outline: 2px solid var(--ink); outline-offset: -2px; background: var(--card); }
.matrix td { transition: none; }
.ptable tbody tr:hover { background: var(--card); }
.opt:hover:not([aria-pressed="true"]):not(.na):not([disabled]) { outline: 2px solid var(--ink); outline-offset: -1px; }
.fitbuy { margin-top: 18px; }
.cfg .orifice-grid { margin-top: 24px; }

/* machine page: one machine = one page (user, 2026-10-01) */
.machbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; background: var(--ink); color: var(--paper); padding: 12px 16px; margin-bottom: 22px; }
.machbar .label { color: var(--accent); }
.machbar select { font: 600 16px var(--f-body, inherit); padding: 6px 8px; background: var(--paper); color: var(--ink); border: 0; max-width: 100%; }
.machbar button { background: none; border: 0; color: var(--paper); text-decoration: underline; cursor: pointer; font: inherit; margin-left: auto; }
.machgrid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 28px; align-items: start; margin-top: 22px; }
.asmnav { display: flex; flex-direction: column; border-top: 2px solid var(--ink); position: sticky; top: 12px; }
.asmnav button { display: flex; justify-content: space-between; gap: 10px; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--rule); padding: 10px 8px; cursor: pointer; font: 600 16px/1.2 inherit; color: var(--ink); }
.asmnav button .ct { font-family: var(--f-mono); font-size: 13px; color: var(--muted); font-weight: 400; }
.asmnav button:hover { background: var(--rule-soft); }
.asmnav button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); }
.asmnav button[aria-pressed="true"] .ct { color: var(--on-accent); }
.asmnav .sub { font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; color: var(--muted); padding: 18px 8px 6px; text-transform: uppercase; }
.asmnav .sel { font-weight: 500; }
@media (max-width: 820px) {
  .machgrid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .asmnav { flex-direction: row; overflow-x: auto; position: static; border-top: 0; gap: 6px; padding-bottom: 6px; }
  .asmnav button { flex: 0 0 auto; border: 1px solid var(--ink); white-space: nowrap; }
  .asmnav .sub, .asmnav .sel { display: none; }
}

/* ==== Studio White (approved homepage B2 + logo 06 "The Kerf", 2026-10-01) ==== */
:root {
  --paper: #F6F5F2; --card: #FFFFFF; --ink: #121212; --muted: #6B6964; --rule: #DEDBD4; --rule-soft: #ECEAE5; --off: #A09D96;
  --accent: #FDC42D; --on-accent: #121212; --accent-text: #7E5A00; --sel: #121212; --on-sel: #FFFFFF;
  --black: #121212; --on-black: #F6F5F2; --black-muted: #A9A69F; --black-rule: #2E2D2B; --black-card: #1D1D1C; --ph: #ECEAE5; --ph-text: #A09D96;
  --f-display: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif; --f-body: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper: #131312; --card: #1C1C1B; --ink: #F2F0EA; --muted: #A9A69F; --rule: #34332F; --rule-soft: #262523; --off: #6B6964;
  --accent-text: #FDC42D; --sel: #F2F0EA; --on-sel: #121212; --black: #0A0A0A; --on-black: #F2F0EA; --black-rule: #2A2927; --black-card: #181817; --ph: #232321; --ph-text: #6B6964; color-scheme: dark } }
:root[data-theme="dark"] {
  --paper: #131312; --card: #1C1C1B; --ink: #F2F0EA; --muted: #A9A69F; --rule: #34332F; --rule-soft: #262523; --off: #6B6964;
  --accent-text: #FDC42D; --sel: #F2F0EA; --on-sel: #121212; --black: #0A0A0A; --on-black: #F2F0EA; --black-rule: #2A2927; --black-card: #181817; --ph: #232321; --ph-text: #6B6964; color-scheme: dark }
html, body { overflow-x: clip; }
body { background: var(--paper); }
.bleed { margin-inline: calc(50% - 50vw); padding-inline: calc(50vw - 50%); }
.dark { background: var(--black); color: var(--on-black); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
h1, h2, .hero h1 { font-family: var(--f-display); font-weight: 700; text-transform: none; letter-spacing: -0.035em; line-height: 1.02; }
h2 { font-size: 34px; }
.opt .t, .tile .nm, .brandbtns button, .nav button, .fam-brand, .tabs button { text-transform: none; letter-spacing: -0.01em; }
.opt .t { font-weight: 600; }
.tile .nm { font-weight: 700; font-size: 22px; line-height: 1.15; }
.ptable .pr, .price { font-family: var(--f-display); font-weight: 700; letter-spacing: -0.02em; }
.ptable th { border-bottom: 1px solid var(--ink); }
.opt { border-radius: 14px; border-color: var(--rule); }
.opt[aria-pressed="true"] { border-color: var(--sel); }
.opt:hover:not([aria-pressed="true"]):not(.na):not([disabled]) { outline: 2px solid var(--ink); outline-offset: -2px; }
.brandbtns button { border-radius: 999px; font-family: var(--f-body); font-weight: 700; font-size: 16px; border-color: var(--rule); min-height: 44px; }
.brandbtns button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chips button { border-radius: 999px; border-color: var(--rule); padding: 8px 14px; }
.cta, .addbtn, .hbtn { border-radius: 999px; text-transform: none; letter-spacing: 0; }
.cta { font-weight: 700; font-size: 16px; }
.cta.ghost { border-width: 1px; }
.qty { border-radius: 999px; border-width: 1px; overflow: hidden; }
.box, .match { border-radius: 20px; overflow: hidden; border-width: 1px; border-color: var(--rule); }
.notice, .accbox, .demo { border-radius: 14px; }
.photo-ph { border-radius: 20px; background: var(--ph); border: 0; color: var(--ph-text); }
.form input, .form select, .form textarea, .filters select, .toolbar select { border-radius: 12px; border: 1px solid var(--rule); }
.pay label { border-radius: 14px; border-color: var(--rule); }
.steps-bar { border-radius: 999px; overflow: hidden; border-width: 1px; }
.tag { border-radius: 999px; padding: 1px 9px; text-transform: none; letter-spacing: 0; }
.tiles { border: 0; gap: 12px; }
.tile { background: var(--card); border: 0; border-radius: 20px; }
.tile:hover { background: var(--card); outline: 2px solid var(--ink); outline-offset: -2px; }
.tile .code { color: var(--muted); }
.machbar { border-radius: 18px; background: var(--black); color: var(--on-black); padding: 14px 20px; }
.machbar select { border-radius: 10px; }
.machbar button { color: var(--on-black); }
.asmnav button { border-radius: 10px; border-bottom: 0; }
.asmnav { border-top: 0; gap: 2px; }
.asmnav button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.asmnav button[aria-pressed="true"] .ct { color: var(--paper); }
.eyebrow { color: var(--muted); }

/* header */
.site-head { border-bottom: 1px solid var(--rule); background: var(--card); }
.topbar { background: var(--black); color: var(--black-muted); font-size: 13px; }
.topbar .in { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 9px; }
.topbar button { background: none; border: 0; padding: 0; color: inherit; cursor: pointer; font: inherit; }
.topbar button:hover { color: var(--on-black); }
.topbar nav { display: flex; gap: 22px; }
.head-row { gap: 24px; padding-block: 16px 10px; }
.logo { display: flex; align-items: center; gap: 12px; background: none; border: 0; padding: 0; cursor: pointer; color: var(--ink); }
.logo svg { flex: none; }
.wm { display: flex; align-items: center; gap: 9px; font-size: 22px; letter-spacing: -0.04em; line-height: 1; white-space: nowrap; }
.wm b { font-weight: 800; }
.wm span { font-weight: 400; }
.wm i { width: 2px; height: 34px; background: #FDC42D; transform: translateY(5px); }
.ic-bg { fill: #FFFFFF; } .ic-fg { fill: #121212; } .ic-line { fill: #FDC42D; } .ic-edge { fill: none; stroke: var(--rule); stroke-width: 1; }
.ic-text { font-family: "Schibsted Grotesk", sans-serif; font-size: 18px; }
.search { border: 1px solid var(--rule); border-radius: 999px; overflow: hidden; height: 46px; background: var(--paper); }
.search input { font-family: var(--f-body); padding-left: 20px; }
.search button { border-radius: 999px; margin: 4px; padding: 0 18px; letter-spacing: 0; font-weight: 600; }
.hbtn { height: 42px; border: 1px solid var(--rule); background: var(--card); font-weight: 600; font-size: 15px; }
.hbtn.cart { border-color: var(--ink); }
.nav { gap: 6px; padding-bottom: 10px; }
.nav button { font-family: var(--f-body); font-weight: 500; font-size: 15px; color: var(--ink); border-bottom: 2px solid transparent; padding: 6px 10px; }
.nav button:hover { color: var(--muted); }
.nav button[aria-current="page"] { border-bottom-color: var(--accent); }
@media (max-width: 640px) { .wm { font-size: 18px; } .wm i { height: 28px; } }

/* home */
.h-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: clamp(32px, 5vw, 64px); align-items: center; padding-block: clamp(40px, 6vw, 80px) clamp(48px, 6vw, 88px); }
@media (max-width: 960px) { .h-hero { grid-template-columns: minmax(0, 1fr); } }
.h-left { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.h-title { font-size: clamp(46px, 6.4vw, 84px); line-height: 0.98; text-wrap: balance; }
.h-lede { margin: 0; font-size: 19px; color: var(--muted); max-width: 540px; line-height: 1.5; }
.pillsearch { display: flex; max-width: 640px; background: var(--card); border-radius: 999px; padding: 7px; box-shadow: 0 1px 2px rgba(18,18,18,.06), 0 12px 32px rgba(18,18,18,.08); }
.pillsearch input { flex: 1; min-width: 0; border: 0; background: none; font: 400 18px var(--f-body); padding: 12px 20px; color: var(--ink); outline: none; }
.pillsearch button { border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); padding: 0 28px; font-weight: 600; font-size: 16px; cursor: pointer; }
.popular { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--muted); }
.popular button { background: none; border: 0; padding: 0; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-size: 14px; }
.mcard { background: var(--black); color: var(--on-black); border-radius: 28px; padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 22px; box-shadow: 0 30px 60px rgba(18,18,18,.18); min-width: 0; }
.mcard h2 { color: var(--on-black); font-size: 26px; }
.mc-head { display: flex; justify-content: space-between; align-items: baseline; }
.mcard .label { color: var(--black-muted); }
.mc-step { display: flex; flex-direction: column; gap: 10px; }
.mc-brands { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 420px) { .mc-brands { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mc-brands button { border: 1px solid var(--black-rule); background: none; color: var(--on-black); border-radius: 999px; padding: 10px 4px; font-weight: 600; font-size: 14px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-brands button:hover { border-color: var(--on-black); }
.mc-brands button[aria-pressed="true"] { background: var(--accent); color: #121212; border-color: var(--accent); font-weight: 700; }
.mcard select { font: 500 16px var(--f-body); padding: 13px 14px; border: 1px solid var(--black-rule); border-radius: 14px; background: var(--black-card); color: var(--on-black); width: 100%; }
.mcard select:disabled { opacity: .5; }
.mc-go { background: var(--accent); color: #121212; border: 0; border-radius: 999px; padding: 17px; font-weight: 700; font-size: 17px; cursor: pointer; }
.mc-go:disabled { background: var(--black-card); color: var(--black-muted); cursor: default; }
.marquee { display: grid; grid-template-columns: 200px minmax(0, 1fr); align-items: center; gap: 16px; padding-block: 32px; }
@media (max-width: 760px) { .marquee { grid-template-columns: minmax(0, 1fr); } }
.marquee .label { color: var(--black-muted); line-height: 1.6; }
.mq { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.mq-track { display: flex; width: max-content; animation: mq 45s linear infinite; }
.mq:hover .mq-track, .mq:focus-within .mq-track { animation-play-state: paused; }
@keyframes mq { to { transform: translateX(-50%); } }
.mq-item { display: flex; flex-direction: column; gap: 4px; padding: 4px 44px 4px 22px; border: 0; border-left: 1px solid var(--black-rule); background: none; color: var(--on-black); cursor: pointer; text-align: left; }
.mq-item b { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; white-space: nowrap; }
.mq-item span { font-family: var(--f-mono); font-size: 12px; color: var(--black-muted); }
.mq-item:hover b { color: var(--accent); }
@media (prefers-reduced-motion: reduce) { .mq-track { animation: none; flex-wrap: wrap; width: auto; row-gap: 16px; } .mq-track .dup { display: none; } .mq { -webkit-mask-image: none; mask-image: none; } }
.h-sec { padding-block: clamp(56px, 7vw, 100px) 0; display: flex; flex-direction: column; gap: 28px; }
.h-sechead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.h-sechead > div { display: flex; flex-direction: column; gap: 10px; }
.h-sechead h2 { font-size: clamp(32px, 4vw, 48px); }
.asm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .asm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .asm-grid { grid-template-columns: minmax(0, 1fr); } }
.acard { background: var(--card); border: 0; border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; text-align: left; cursor: pointer; padding: 0; color: var(--ink); }
.acard:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.acard .ph { aspect-ratio: 16 / 9; background: var(--ph); display: flex; align-items: center; justify-content: center; font: 12px var(--f-mono); color: var(--ph-text); letter-spacing: .06em; }
.acard .meta { padding: 20px 24px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.acard .meta b { font-size: 21px; font-weight: 600; letter-spacing: -0.02em; }
.acard .meta span { font: 13px var(--f-mono); color: var(--muted); }
.acard.big { grid-row: span 2; background: var(--black); color: var(--on-black); }
@media (max-width: 900px) { .acard.big { grid-row: auto; grid-column: 1 / -1; } }
.acard.big .ph { flex: 1; aspect-ratio: auto; min-height: 300px; background: var(--black-card); color: #5E5C57; }
.acard.big:has(.studio) { background: #0A0A0A; }
.acard.big .ph.studio { padding: 0; overflow: hidden; background: #0A0A0A; }
.acard.big .ph.studio img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s; }
.acard.big:hover .ph.studio img { transform: scale(1.03); }
.acard.big .ph.img { padding: 24px; }
.acard.big .ph.img img { width: 100%; max-width: 440px; height: auto; filter: drop-shadow(0 26px 34px rgba(0,0,0,.55)); transition: transform .3s; }
.acard.big:hover .ph.img img { transform: translateY(-4px) rotate(-1deg); }
.acard.big .meta { flex-direction: column; gap: 6px; padding: 26px 28px; }
.acard.big .meta span { color: var(--accent); }
.acard.big .meta b { font-size: 30px; font-weight: 700; }
.acard.big .meta em { font-style: normal; color: var(--black-muted); }
.acard.big:hover { outline-color: var(--accent); }
.asm-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.asm-chips button { background: var(--card); border: 1px solid var(--rule); border-radius: 999px; padding: 10px 18px; font-size: 15px; cursor: pointer; color: var(--ink); }
.asm-chips button:hover { border-color: var(--ink); }
.selblock { background: var(--black); color: var(--on-black); border-radius: 28px; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
@media (max-width: 900px) { .selblock { grid-template-columns: minmax(0, 1fr); } }
.selblock .l { padding: clamp(28px, 5vw, 64px); display: flex; flex-direction: column; gap: 20px; }
.selblock h2 { color: var(--on-black); font-size: clamp(32px, 4vw, 52px); }
.selblock p { margin: 0; color: var(--black-muted); font-size: 18px; line-height: 1.5; max-width: 460px; }
.sel-list { display: flex; flex-direction: column; border-top: 1px solid var(--black-rule); margin-top: 8px; }
.sel-list button { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 20px 0; border: 0; border-bottom: 1px solid var(--black-rule); background: none; color: var(--on-black); text-align: left; cursor: pointer; }
.sel-list b { display: block; font-size: 21px; font-weight: 600; }
.sel-list span { color: var(--black-muted); font-size: 15px; }
.sel-list .ar { color: var(--accent); font-size: 22px; }
.sel-list button:hover b { color: var(--accent); }
.selblock .r { background: var(--black-card); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(20px, 3vw, 40px); gap: 12px; min-height: 420px; }
.selblock .r .ph { flex: 1; display: flex; align-items: center; justify-content: center; font: 12px var(--f-mono); color: #5E5C57; text-align: center; }
.selblock .r:has(.studio) { background: #030303; padding: 0 0 clamp(20px, 3vw, 40px); }
.selblock .r:has(.studio) .cobra { margin-inline: clamp(20px, 3vw, 40px); }
.cobraimg.studio { padding: 0; }
.cobraimg.studio img { max-width: none; filter: none; }
.acard .ph.photo { background: #0A0A0A; overflow: hidden; }
.acard .ph.photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.acard:hover .ph.photo img { transform: scale(1.04); }
.cobraimg { flex: 1; display: flex; align-items: center; justify-content: center; background: none; border: 0; padding: 8px; cursor: pointer; }
.cobraimg img { width: 100%; max-width: 520px; height: auto; filter: drop-shadow(0 30px 40px rgba(0,0,0,.5)); transition: transform .3s; }
.cobraimg:hover img { transform: translateY(-4px); }
.cobra { background: var(--black); border-radius: 18px; padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border: 0; color: var(--on-black); cursor: pointer; text-align: left; }
.cobra .label { color: var(--accent); display: block; margin-bottom: 4px; }
.cobra b { font-size: 20px; }
.cobra .p { color: var(--black-muted); }
.cobra .p b { color: var(--on-black); font-size: 22px; }
.pgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1000px) { .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .pgrid { grid-template-columns: minmax(0, 1fr); } }
.pcard { background: var(--card); border-radius: 22px; padding: 14px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.pcard .ph { aspect-ratio: 1; background: var(--ph); border-radius: 14px; display: flex; align-items: center; justify-content: center; font: 11px var(--f-mono); color: var(--ph-text); border: 0; cursor: pointer; }
.accthumb { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; background: #0A0A0A; flex: none; }
.pcard .ph.photo { background: #0A0A0A; overflow: hidden; padding: 0; }
.pcard .ph.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo-ph.photo { background: #0A0A0A; padding: 0; overflow: hidden; }
.photo-ph.photo img { width: 100%; height: 100%; object-fit: cover; }
.pcard .info { padding: 0 6px; display: flex; flex-direction: column; gap: 6px; }
.pcard .info .mono { font-size: 12px; color: var(--muted); }
.pcard .info button { background: none; border: 0; padding: 0; text-align: left; font-size: 17px; font-weight: 600; line-height: 1.3; cursor: pointer; color: var(--ink); }
.pcard .info button:hover { text-decoration: underline; }
.pcard .buy { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 0 6px 4px; margin-top: auto; }
.pcard .buy b { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.how { padding-block: clamp(56px, 7vw, 96px); display: flex; flex-direction: column; gap: 44px; margin-top: clamp(56px, 7vw, 100px); }
.how h2 { color: var(--on-black); font-size: clamp(32px, 4vw, 48px); }
.how .label { color: var(--accent); }
.how-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--black-rule); }
@media (max-width: 860px) { .how-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; } }
.how-grid > div { padding: 26px 26px 0; border-left: 1px solid var(--black-rule); display: flex; flex-direction: column; gap: 10px; }
.how-grid > div:first-child { border-left: 0; padding-left: 0; }
.how-grid .n { font-size: 44px; font-weight: 700; color: #3A3936; }
.how-grid b { font-size: 20px; }
.how-grid span { color: var(--black-muted); line-height: 1.5; }
.reqband { background: var(--accent); color: #121212; border-radius: 28px; padding: clamp(28px, 4vw, 56px) clamp(24px, 5vw, 64px); display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-block: clamp(56px, 7vw, 96px); }
.reqband h2 { color: #121212; font-size: clamp(30px, 3.5vw, 44px); }
.reqband p { margin: 8px 0 0; font-size: 18px; max-width: 560px; line-height: 1.5; }
.reqband button { background: #121212; color: #FFFFFF; border: 0; border-radius: 999px; padding: 18px 30px; font-weight: 700; font-size: 16px; cursor: pointer; }
/* footer */
.site-foot { display: block; border-top: 0; padding-block: 0; background: var(--black); color: var(--black-muted); margin-top: 0; }
.foot-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 36px; padding-block: 64px 36px; font-size: 15px; }
@media (max-width: 800px) { .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.foot-grid > div { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.foot-grid .label { color: #6B6964; }
.foot-grid button { background: none; border: 0; padding: 0; color: var(--black-muted); cursor: pointer; font: inherit; text-align: left; }
.foot-grid button:hover { color: var(--on-black); }
.site-foot .logo { color: var(--on-black); cursor: default; }
.site-foot .ic-edge { stroke: none; }
.foot-bottom { border-top: 1px solid var(--black-rule); padding-block: 22px 32px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #6B6964; }
main.view:has(.h-hero) { padding-bottom: 0; }

/* header H3: search first, black nav band with "Shop by machine" (user, 2026-10-01) */
.site-head { border-bottom: 0; }
.head-row { padding-block: 16px; gap: 28px; flex-wrap: nowrap; }
.head-row .search { flex: 1 1 auto; max-width: 640px; height: 52px; padding: 4px; }
.head-row .search input { font-size: 16px; }
/* focus ring follows the rounded search bar instead of a square box around the input (user, 2026-10-06) */
.search input:focus, .search input:focus-visible, .pillsearch input:focus-visible, .probfind input:focus-visible { outline: none; }
.search:focus-within, .pillsearch:focus-within, .probfind:focus-within { outline: 3px solid var(--accent); outline-offset: 2px; }
.head-row .search button { margin: 0; padding: 0 22px; }
.head-actions { margin-left: auto; gap: 10px; }
.navband { background: var(--black); display: flex; align-items: center; gap: 4px; padding-block: 8px; overflow-x: auto; }
.navband button { color: #D9D6CF; border-bottom: 0; padding: 8px 12px; border-radius: 999px; white-space: nowrap; }
.navband button:hover { color: #FFFFFF; }
.navband button[aria-current="page"] { color: #FFFFFF; box-shadow: inset 0 -2px 0 var(--accent); border-radius: 0; }
.navband .machine { background: var(--accent); color: #121212; font-weight: 700; padding: 8px 18px; margin-right: 12px; }
.navband .machine:hover, .navband .machine[aria-current="page"] { color: #121212; box-shadow: none; border-radius: 999px; background: #FFD45A; }
.navband .note { margin-left: auto; color: #8C8983; font-size: 13px; white-space: nowrap; padding-left: 16px; }
@media (max-width: 1100px) { .navband .note { display: none; } }
@media (max-width: 860px) { .head-row { flex-wrap: wrap; } .head-row .search { order: 3; flex-basis: 100%; max-width: none; } .head-actions .hbtn { padding: 0 12px; } }

/* Shop by machine landing (M1) */
.mc-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.mc-top > div { display: flex; flex-direction: column; gap: 10px; }
.mc-top h1 { font-size: clamp(40px, 5.5vw, 64px); }
.mc-top p { margin: 0; color: var(--muted); max-width: 340px; }
.bgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.bcard { background: var(--card); color: var(--ink); border: 0; border-radius: 20px; padding: 24px; min-height: 150px; display: flex; flex-direction: column; gap: 28px; text-align: left; cursor: pointer; }
.bcard b { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; }
.bcard .foot { display: flex; justify-content: space-between; align-items: flex-end; margin-top: auto; gap: 8px; }
.bcard .foot > span { display: flex; flex-direction: column; gap: 2px; }
.bcard .n { font: 12px var(--f-mono); color: var(--muted); text-transform: uppercase; }
.bcard .m { font-size: 14px; color: var(--muted); }
.bcard .ar { font-size: 22px; }
.bcard:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.bcard.first { background: var(--black); color: var(--on-black); }
.bcard.first .n, .bcard.first .ar { color: var(--accent); }
.bcard.first .m { color: var(--black-muted); }
.bcard.first:hover { outline-color: var(--accent); }
.notlisted { margin-top: 16px; background: var(--card); border-radius: 18px; padding: 18px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.notlisted span span { color: var(--muted); }
.notlisted button { background: var(--ink); color: var(--paper); border: 0; border-radius: 999px; padding: 12px 20px; font-weight: 600; cursor: pointer; }

.bcard b.sm { font-size: 24px; }
.bcard.ghost { background: transparent; border: 1px dashed var(--muted); }
.agrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.acard2 { background: var(--card); color: var(--ink); border: 0; border-radius: 16px; padding: 16px 18px; min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; }
.acard2 b { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; }
.acard2 .n { font: 12px var(--f-mono); color: var(--muted); text-transform: uppercase; }
.acard2:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.acard2[aria-pressed="true"] { background: var(--black); color: var(--on-black); }
.acard2[aria-pressed="true"] .n { color: var(--accent); }
.acard2.selc { background: transparent; border: 1px dashed var(--muted); }

/* standard image for products without a photo */
.ptable td.thumb { width: 64px; padding-right: 4px; }
.ptable td.thumb button { display: block; width: 56px; height: 56px; border: 0; padding: 0; border-radius: 10px; overflow: hidden; background: #0A0A0A; cursor: pointer; }
.ptable td.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.noimg { width: 100%; height: 100%; min-height: inherit; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  background: radial-gradient(ellipse at 50% 38%, #1F1F1E 0%, #0A0A0A 70%); color: #3A3936; text-align: center; padding: 16px; box-sizing: border-box; }
.noimg svg { width: 26%; max-width: 120px; min-width: 40px; height: auto; }
.noimg .t { font: 600 15px var(--f-body); color: #8C8983; letter-spacing: -0.01em; }
.noimg .c { font: 11px var(--f-mono); color: #5E5C57; letter-spacing: .1em; text-transform: uppercase; }
.noimg.sm { gap: 0; color: #5E5C57; padding: 8px; }
.noimg.sm svg { width: 60%; }
.photo-ph.photo { min-height: 380px; display: flex; }
/* AI diagnosis */
.nav button.ai { font-weight: 700; }
.nav-ai { display: inline-block; padding: 0 6px; margin-right: 2px; border-radius: 999px; font-size: 11px; line-height: 17px; color: #fff; background: linear-gradient(120deg, #F08A24, #8B5CF6); vertical-align: 1px; }
.dg-busy { font: 14px var(--f-mono); color: var(--muted); }
.dg-busy::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--accent); animation: dgpulse 1s infinite alternate; }
@keyframes dgpulse { from { opacity: .25; } to { opacity: 1; } }
.dg-result { margin-top: 28px; max-width: 1100px; }
.dg-summary { font-size: clamp(19px, 2.2vw, 24px); line-height: 1.4; max-width: 60ch; margin: 0 0 14px; }
.dg-safety { margin: 0 0 8px; }
.dg-h { font-size: 24px; margin: 28px 0 12px; }
.dg-causes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 12px; }
.dg-cause { background: var(--card); border: 1px solid var(--rule); border-radius: 14px; padding: 16px; }
.dg-cause p { margin: 8px 0 0; line-height: 1.45; }
.dg-ch { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.dg-ch .mono { color: var(--muted); font-size: 13px; }
.dg-ch b { flex: 1 1 auto; font-size: 17px; }
.dg-why, .dg-q { margin: 12px 0 0; padding-left: 20px; line-height: 1.6; }
.dg-why .mono { font-family: var(--f-mono); font-size: 13px; color: var(--muted); margin-right: 6px; }
.dg-note { margin-top: 18px; color: var(--muted); }
.probfind { max-width: 680px; border-radius: 22px; }
.probfind form { border: 1px solid var(--rule); box-shadow: 0 6px 22px rgba(22, 21, 20, .06); }
.tr-match { font-size: 12px; font-weight: 600; color: var(--muted); }
.probfind form { display: flex; align-items: center; gap: 8px; background: var(--card); border-radius: 20px; padding: 7px 7px 7px 16px; }
.probfind .spark { flex: none; width: 22px; height: 22px; color: #F08A24; }
.probfind input { flex: 1; min-width: 0; border: 0; background: none; font: 400 17px var(--f-body); padding: 10px 4px; color: var(--ink); outline: none; }
.probfind button[type=submit] { flex: none; border: 0; border-radius: 14px; background: var(--ink); color: var(--paper); padding: 11px 18px; font-weight: 600; font-size: 15px; cursor: pointer; }
.pf-label { display: flex; gap: 8px; align-items: center; font-size: 13px; font-weight: 600; color: var(--muted); margin: 18px 0 8px 2px; }
.ai-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px 2px 7px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .02em; color: #fff; background: linear-gradient(120deg, #F08A24, #8B5CF6); }
.ai-badge .spark { width: 12px; height: 12px; color: #fff; }
.spark.sm { width: 18px; height: 18px; color: #F08A24; vertical-align: -2px; }
.pf-sugg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; min-height: 30px; transition: opacity .15s; }
.pf-sugg.busy { opacity: .45; }
.pf-sugg button { border: 1px solid var(--rule); background: var(--card); color: var(--ink); border-radius: 999px; padding: 6px 12px; font-size: 13px; cursor: pointer; text-align: left; }
.pf-sugg button.top { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink) inset; font-weight: 600; }
.pf-sugg button:hover { border-color: var(--ink); }
.pf-sugg .spark { width: 12px; height: 12px; vertical-align: -1px; color: #F08A24; }
.pf-sugg .none { font-size: 13px; color: var(--muted); padding: 6px 2px; }
@media (max-width: 520px) { .probfind form { flex-wrap: wrap; } .probfind button[type=submit] { width: 100%; } }
.tr-ico { width: 18px; height: 18px; flex: none; }
.tr-area { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 600; color: var(--muted); }
.tr-top { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 6px; }
.tr-areas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 8px; }
.tr-areabtn { position: relative; text-align: left; display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; align-items: start; background: var(--card); color: var(--ink); border: 1px solid var(--rule); border-radius: 14px; padding: 12px 40px 12px 12px; cursor: pointer; font: inherit; }
.tr-areabtn .tr-ico { grid-row: span 2; width: 22px; height: 22px; color: #F08A24; margin-top: 2px; }
.tr-areabtn b { font-size: 14px; } .tr-areabtn span { font-size: 12px; color: var(--muted); }
.tr-areabtn em { position: absolute; right: 12px; top: 12px; font: 600 12px var(--f-mono); font-style: normal; color: var(--muted); }
.tr-areabtn[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink) inset; }
.tr-step { margin-top: 22px; background: var(--card); border: 1px solid var(--rule); border-radius: 16px; padding: 16px; }
.tr-stephead { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; margin-bottom: 10px; }
.tr-stephead b { font-size: 18px; }
.tr-num { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: var(--paper); font-weight: 700; font-size: 14px; }
.tr-q { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 10px 0; border-top: 1px solid var(--rule-soft); }
.tr-q > span { flex: 1 1 260px; font-weight: 600; }
.tr-opts { display: flex; flex-wrap: wrap; gap: 6px; }
.tr-opts button, .tr-act button:not(.linkbtn) { border: 1px solid var(--rule); background: var(--paper); color: var(--ink); border-radius: 999px; padding: 7px 14px; font: 600 13px var(--f-body); cursor: pointer; }
.tr-opts button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.tr-progress { height: 6px; border-radius: 99px; background: var(--rule-soft); overflow: hidden; margin-bottom: 12px; }
.tr-progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), #F08A24); transition: width .3s; }
.tr-found { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; margin-bottom: 12px; background: linear-gradient(120deg, rgba(253,196,45,.18), rgba(139,92,246,.12)); }
.tr-found .spark { width: 20px; height: 20px; color: #F08A24; flex: none; }
.tr-act { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.tr-act button[data-trst$=":found"][aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tr-act button[data-trst$=":ok"][aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.tr-cause.ok { opacity: .55; }
.tr-cause.found { border-color: #F08A24; box-shadow: 0 0 0 1px #F08A24 inset; }
.tr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 10px; }
.tr-card { text-align: left; background: var(--card); color: var(--ink); border: 1px solid var(--rule); border-radius: 14px; padding: 14px 16px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; font: inherit; }
.tr-card b { font-size: 16px; line-height: 1.3; }
.tr-card span { font-size: 13px; color: var(--muted); }
.tr-card:hover { border-color: var(--ink); }
.tr-machine { margin: 20px 0 6px; max-width: 900px; }
.tr-causes { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.tr-cause { background: var(--card); border: 1px solid var(--rule); border-radius: 14px; padding: 16px; }
.tr-cause > p { margin: 8px 0 0; line-height: 1.45; max-width: 75ch; }
.tr-parts { margin-top: 12px; }
.dym { margin-top: 14px; }
.aihint { margin-top: 18px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
@media (prefers-reduced-motion: reduce) { .dg-busy::before { animation: none; } }
/* back button travels with the page, just under the sticky header (user, 2026-10-05) */
#backbar { position: sticky; top: calc(var(--headh, 64px) + env(safe-area-inset-top, 0px) + 10px); z-index: 19; height: 0; overflow: visible; padding-top: 0; }
#backbar[hidden] { display: none; }
#backbtn { margin-top: 10px; max-width: min(100%, 520px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid var(--rule); border-radius: 999px; background: var(--card); color: var(--ink);
  padding: 8px 16px; font: 600 15px var(--f-body); cursor: pointer; box-shadow: 0 2px 6px rgba(18,18,18,.06), 0 10px 26px rgba(18,18,18,.10); }
#backbtn:hover { border-color: var(--ink); }
#backbar:not([hidden]) ~ .view, #backbar:not([hidden]) ~ #confwrap { padding-top: 56px; }
/* room between the last line of a selector page (e.g. focusing tube specs) and the footer: about two lines (user, 2026-10-05) */
#confwrap { padding-bottom: 56px; }

/* links that replace buttons (crawlable navigation, 2026-10-06) */
.nav a[data-go] { flex: none; background: none; border: 0; border-bottom: 2px solid transparent; padding: 6px 10px; cursor: pointer; font-family: var(--f-body); font-weight: 500; font-size: 15px; color: var(--ink); text-decoration: none; text-transform: none; letter-spacing: -0.01em; white-space: nowrap; }
.nav a[data-go]:hover { color: var(--muted); }
.nav a[data-go][aria-current="page"] { border-bottom-color: var(--accent); }
[data-skin="yellow"] .nav a[data-go][aria-current="page"] { background: var(--accent); color: #161514; border-bottom-color: transparent; padding-inline: 14px; }
.navband a[data-go] { color: #D9D6CF; border-bottom: 0; padding: 8px 12px; border-radius: 999px; }
.navband a[data-go]:hover { color: #FFFFFF; }
.navband a[data-go][aria-current="page"] { color: #FFFFFF; background: none; box-shadow: inset 0 -2px 0 var(--accent); border-radius: 0; padding-inline: 12px; }
.navband a.machine { background: var(--accent); color: #121212; font-weight: 700; padding: 8px 18px; margin-right: 12px; }
.navband a.machine:hover, .navband a.machine[aria-current="page"] { color: #121212; box-shadow: none; border-radius: 999px; background: #FFD45A; }
.nav a.ai { font-weight: 700; }
.foot-grid a[data-go] { color: var(--black-muted); text-decoration: none; }
.foot-grid a[data-go]:hover { color: var(--on-black); }
a.logo { text-decoration: none; }
a.pn { color: inherit; text-decoration: none; font-weight: 600; } a.pn:hover { text-decoration: underline; }
.info a[data-go] { color: inherit; text-decoration: none; font-weight: 600; } .info a[data-go]:hover { text-decoration: underline; }
td.thumb a, a.ph { display: block; }

/* prerendered pages (live shop, SEO): content shown before the shop script takes over */
.static-list { list-style: none; padding: 0; margin: 12px 0 24px; display: grid; gap: 8px; }
.static-list a { color: inherit; text-decoration: none; } .static-list a:hover b { text-decoration: underline; }
.static-list img { vertical-align: middle; border-radius: 8px; background: #0A0A0A; margin-right: 8px; }
.static-links { columns: 2 240px; padding-left: 18px; } .static-links a { color: inherit; }
.static-product > img { width: min(100%, 400px); height: auto; border-radius: 16px; background: #0A0A0A; }
.static-product .price { font-size: 24px; }
