.pf-mtb-hardware { padding-top:var(--header-height); color:var(--text-primary); background:var(--pf-black); }
.pf-mtb-hardware .mh-container { width:calc(100% - 48px); max-width:var(--container-max); margin:auto; }
.pf-mtb-hardware * { box-sizing:border-box; }
.pf-mtb-hardware figure,.pf-mtb-hardware dl { margin:0; }
.pf-mtb-hardware p { color:var(--text-secondary); line-height:1.7; margin:0 0 16px; }
.pf-mtb-hardware h2 { font-size:clamp(27px,2.7vw,36px); line-height:1.2; letter-spacing:-.025em; margin:0 0 20px; }
.pf-mtb-hardware h3 { font-size:19px; line-height:1.4; margin:0 0 10px; }
.pf-mtb-hardware a { color:var(--accent-light); text-underline-offset:4px; }
.pf-mtb-hardware .btn { color:var(--text-white); white-space:normal; text-align:center; line-height:1.45; font-size:14px; }
.pf-mtb-hardware a:focus-visible,.pf-mtb-hardware button:focus-visible,.pf-mtb-hardware summary:focus-visible,.pf-mtb-hardware [tabindex]:focus-visible { outline:2px solid var(--accent-light); outline-offset:5px; }
.pf-mtb-hardware img { display:block; max-width:100%; }
.pf-mtb-hardware .mh-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--text-secondary); padding-top:24px; }
.pf-mtb-hardware .mh-breadcrumb a { color:inherit; }
.pf-mtb-hardware .mh-eyebrow { color:var(--accent-light); font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; margin-bottom:17px; }
.pf-mtb-hardware .mh-hero { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:48px; padding:40px 0; }
.pf-mtb-hardware h1 { font-size:clamp(34px,3.6vw,50px); line-height:1.08; letter-spacing:-.035em; margin:0 0 25px; }
.pf-mtb-hardware h1 { hyphens:auto; overflow-wrap:anywhere; }
.pf-mtb-hardware .mh-lead { font-size:17px; }
.pf-mtb-hardware .mh-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; margin:26px 0 16px; }
.pf-mtb-hardware .mh-text-link { display:inline-block; font-size:14px; font-weight:500; padding-block:8px; }
.pf-mtb-hardware .mh-note { font-size:13px; line-height:1.65; margin-top:18px; }
.pf-mtb-hardware .mh-hero-display { border:1px solid var(--border-color); border-radius:var(--radius-panel); overflow:hidden; background:var(--pf-graphite); min-width:0; }
.pf-mtb-hardware .mh-hero-display a { display:block; color:var(--text-light); text-decoration:none; }
.pf-mtb-hardware .mh-hero-main { border-bottom:1px solid var(--border-color); padding:15px 22px 18px; }
.pf-mtb-hardware .mh-hero-main img { width:100%; height:240px; object-fit:contain; }
.pf-mtb-hardware .mh-hero-main > span { display:flex; align-items:center; gap:12px; font-size:16px; }
.pf-mtb-hardware .mh-hero-main > span > span { margin-left:auto; color:var(--accent-light); }
.pf-mtb-hardware .mh-hero-display b { color:var(--accent-light); font:400 12px Consolas,monospace; }
.pf-mtb-hardware .mh-hero-small { display:grid; grid-template-columns:1fr 1fr; }
.pf-mtb-hardware .mh-hero-small a { padding:8px 16px 16px; }
.pf-mtb-hardware .mh-hero-small a + a { border-left:1px solid var(--border-color); }
.pf-mtb-hardware .mh-hero-small img { width:100%; height:110px; object-fit:contain; }
.pf-mtb-hardware .mh-hero-small span { display:flex; align-items:center; gap:8px; font-size:13px; }
.pf-mtb-hardware .mh-hero-small span { overflow-wrap:anywhere; }
.pf-mtb-hardware .mh-hero-display > p { padding:12px 16px; margin:0; border-top:1px solid var(--border-color); font-size:11px; text-align:center; }
.pf-mtb-hardware .mh-hero-display a:hover { background:var(--pf-panel); }
.pf-mtb-hardware .mh-section-nav { display:flex; flex-wrap:wrap; gap:8px 28px; padding:12px 0; border-block:1px solid var(--border-color); }
.pf-mtb-hardware .mh-section-nav a { color:var(--text-light); padding-block:9px; font-size:14px; }
.pf-mtb-hardware .mh-section { padding:62px 0; border-bottom:1px solid var(--border-color); scroll-margin-top:calc(var(--header-height) + 18px); }
.pf-mtb-hardware .mh-section-heading { max-width:790px; margin-bottom:28px; }
.pf-mtb-hardware .mh-section-heading > p:last-child { margin-bottom:0; }
.pf-mtb-hardware .mh-coverage-visual { display:grid; grid-template-columns:3.4fr 1fr; gap:24px; align-items:start; }
.pf-mtb-hardware .mh-coverage-visual > *, .pf-mtb-hardware .mh-map-aside > *, .pf-mtb-hardware .mh-coverage-list a > span { min-width:0; overflow-wrap:anywhere; hyphens:auto; }
.pf-mtb-hardware .mh-frame-map { position:relative; }
.pf-mtb-hardware .mh-frame-map > img { width:100%; height:auto; border-radius:var(--radius-media); }
.pf-mtb-hardware figcaption { color:var(--text-secondary); font-size:12px; line-height:1.6; padding:13px 0; }
.pf-mtb-hardware .mh-pin { position:absolute; transform:translate(-50%,-50%); width:38px; height:38px; border-radius:50%; border:2px solid #fff; background:var(--pf-cobalt-strong); color:#fff; display:grid; place-items:center; font-size:12px; box-shadow:0 2px 8px #0008; text-decoration:none; }
.pf-mtb-hardware .mh-pin:hover { background:var(--pf-black); }
.pf-mtb-hardware .mh-pin--hanger { left:91%; top:43%; }
.pf-mtb-hardware .mh-pin--axle { left:84%; top:52%; }
.pf-mtb-hardware .mh-pin--seat { left:55%; top:17%; }
.pf-mtb-hardware .mh-pin--cable { left:74%; top:32%; }
.pf-mtb-hardware .mh-pin--motor { left:56%; top:75%; }
.pf-mtb-hardware .mh-map-aside { display:grid; grid-template-columns:1fr; gap:18px; }
.pf-mtb-hardware .mh-map-aside > div { border-bottom:1px solid var(--border-color); padding-bottom:14px; }
.pf-mtb-hardware .mh-small-label { display:block; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.05em; font-size:10px; line-height:1.5; }
.pf-mtb-hardware .mh-map-aside img { width:100%; height:120px; object-fit:contain; }
.pf-mtb-hardware .mh-map-aside a { display:block; font-size:13px; line-height:1.6; }
.pf-mtb-hardware .mh-map-aside p { font-size:11px; margin:6px 0 0; }
.pf-mtb-hardware .mh-coverage-list { list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.pf-mtb-hardware .mh-coverage-list a { display:flex; gap:11px; height:100%; padding-top:15px; border-top:1px solid var(--border-color); text-decoration:none; }
.pf-mtb-hardware .mh-coverage-list b { color:var(--accent-light); font:400 13px/1.8 Consolas,monospace; }
.pf-mtb-hardware .mh-coverage-list span { color:var(--text-secondary); font-size:12px; line-height:1.6; }
.pf-mtb-hardware .mh-coverage-list strong { display:block; color:var(--text-light); font-size:14px; font-weight:500; margin-bottom:7px; }
.pf-mtb-hardware .mh-coverage-list a:hover strong { color:var(--accent-light); }
.pf-mtb-hardware .mh-core { display:grid; grid-template-columns:1fr 1.07fr; gap:56px; align-items:center; }
.pf-mtb-hardware .mh-core-media { display:grid; grid-template-columns:1fr 1fr; gap:16px; min-width:0; }
.pf-mtb-hardware .mh-product-photo { background:var(--pf-graphite); border:1px solid var(--border-color); border-radius:var(--radius-panel); overflow:hidden; }
.pf-mtb-hardware .mh-product-photo img { width:100%; height:250px; object-fit:contain; padding:8px; }
.pf-mtb-hardware .mh-product-photo figcaption { padding:14px 16px; border-top:1px solid var(--border-color); }
.pf-mtb-hardware .mh-media-note { grid-column:1/-1; font-size:12px; margin:0; }
.pf-mtb-hardware .mh-inputs { display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; padding-block:20px; border-block:1px solid var(--border-color); margin:24px 0; }
.pf-mtb-hardware .mh-inputs dt { font-size:13px; font-weight:600; margin-bottom:6px; color:var(--text-light); }
.pf-mtb-hardware .mh-inputs dd { margin:0; font-size:12px; line-height:1.6; color:var(--text-secondary); }
.pf-mtb-hardware .mh-related { font-size:13px; line-height:1.7; margin-top:18px; }
.pf-mtb-hardware .mh-chainring-visual { background:var(--pf-graphite); border:1px solid var(--border-color); padding:24px; border-radius:var(--radius-panel); }
.pf-mtb-hardware .mh-chainring-visual img { width:100%; max-width:395px; height:auto; margin:auto; }
.pf-mtb-hardware .mh-chainring-visual figcaption { padding:0 0 22px; }
.pf-mtb-hardware .mh-stack-note { display:flex; flex-wrap:wrap; gap:8px; padding-top:20px; border-top:1px solid var(--border-color); }
.pf-mtb-hardware .mh-stack-note span { font-size:11px; padding:8px 10px; border-left:2px solid var(--accent); background:var(--pf-panel); }
.pf-mtb-hardware .mh-other-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.pf-mtb-hardware .mh-other-grid article { border-left:2px solid var(--border-color); padding-left:20px; }
.pf-mtb-hardware .mh-other-grid p,.pf-mtb-hardware .mh-architectures p { font-size:14px; margin-bottom:12px; }
.pf-mtb-hardware .mh-other-grid a,.pf-mtb-hardware .mh-architectures a { font-size:13px; }
.pf-mtb-hardware .mh-reference-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:36px; }
.pf-mtb-hardware .mh-reference-strip img { width:100%; height:200px; object-fit:contain; }
.pf-mtb-hardware .mh-reference-strip figure { background:var(--pf-graphite); }
.pf-mtb-hardware .mh-reference-strip figcaption,.pf-mtb-hardware .mh-document span { display:block; font-size:12px; line-height:1.6; padding:14px 16px; }
.pf-mtb-hardware .mh-document { background:var(--pf-panel); }
.pf-mtb-hardware .mh-document img { background:#fff; }
.pf-mtb-hardware .mh-architectures { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.pf-mtb-hardware .mh-architectures article { padding-top:23px; border-top:2px solid var(--accent); }
.pf-mtb-hardware .mh-bom { background:var(--pf-graphite); border:1px solid var(--border-color); border-top:3px solid var(--accent); padding:36px; margin-top:62px; border-radius:var(--radius-panel); }
.pf-mtb-hardware .mh-project-fields { padding:18px; background:var(--pf-panel); font-size:13px; color:var(--text-light); line-height:1.9; }
.pf-mtb-hardware .mh-table-scroll { width:100%; overflow-x:auto; margin:16px 0 28px; overscroll-behavior-x:contain; }
.pf-mtb-hardware table { width:100%; min-width:900px; border-collapse:collapse; text-align:left; font-size:12px; line-height:1.6; }
.pf-mtb-hardware th,.pf-mtb-hardware td { padding:13px 11px; border-bottom:1px solid var(--border-color); }
.pf-mtb-hardware thead th { background:var(--pf-panel); font-weight:500; color:var(--text-secondary); }
.pf-mtb-hardware tbody th { font:400 12px/1.6 Consolas,monospace; color:var(--accent-light); }
.pf-mtb-hardware td { color:var(--text-light); }
.pf-mtb-hardware .mh-scroll-hint { display:none; font-size:12px; color:var(--accent-light); margin-top:7px; }
.pf-mtb-hardware .mh-two-col { display:grid; grid-template-columns:1fr 1fr; gap:38px; }
.pf-mtb-hardware .mh-two-col p { font-size:14px; }
.pf-mtb-hardware .mh-manufacturing figure img { width:100%; height:auto; border-radius:var(--radius-media); }
.pf-mtb-hardware .mh-factory-secondary { display:grid; grid-template-columns:42% 1fr; gap:20px; align-items:center; margin-top:20px; }
.pf-mtb-hardware .mh-certificate { display:grid; grid-template-columns:150px 1fr; gap:32px; align-items:center; padding:28px; margin-top:32px; border:1px solid var(--border-color); border-radius:var(--radius-panel); }
.pf-mtb-hardware .mh-certificate img { width:150px; height:auto; }
.pf-mtb-hardware .mh-certificate a { font-size:12px; line-height:1.6; }
.pf-mtb-hardware .mh-certificate a span { display:block; margin-top:9px; }
.pf-mtb-hardware .mh-certificate p { font-size:14px; }
.pf-mtb-hardware .mh-certificate strong { font-weight:500; color:var(--text-light); }
.pf-mtb-hardware .mh-process { list-style:none; padding:0; margin:0 0 30px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; counter-reset:steps; }
.pf-mtb-hardware .mh-process li { counter-increment:steps; padding:0 0 0 30px; position:relative; }
.pf-mtb-hardware .mh-process li::before { content:counter(steps,decimal-leading-zero); position:absolute; left:0; color:var(--accent-light); font:12px/1.9 Consolas,monospace; }
.pf-mtb-hardware .mh-process strong { display:block; font-size:15px; line-height:1.5; font-weight:500; }
.pf-mtb-hardware .mh-process span { display:block; font-size:13px; line-height:1.7; color:var(--text-secondary); margin-top:9px; }
.pf-mtb-hardware .mh-label-example { padding:24px; border:1px dashed var(--pf-steel); border-radius:var(--radius-panel); }
.pf-mtb-hardware .mh-label-example > span { display:block; font:12px Consolas,monospace; color:var(--accent-light); margin-bottom:18px; }
.pf-mtb-hardware .mh-label-example dl > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 20px; padding-block:9px; border-top:1px solid var(--border-color); font-size:12px; line-height:1.6; }
.pf-mtb-hardware .mh-label-example dd { margin:0; color:var(--text-secondary); }
.pf-mtb-hardware .mh-faq details { border-bottom:1px solid var(--border-color); }
.pf-mtb-hardware .mh-faq summary { display:flex; justify-content:space-between; gap:18px; cursor:pointer; padding:21px 0; font-size:16px; font-weight:500; list-style:none; }
.pf-mtb-hardware .mh-faq summary::-webkit-details-marker { display:none; }
.pf-mtb-hardware .mh-faq summary::after { content:'+'; color:var(--accent-light); font-size:21px; flex-shrink:0; }
.pf-mtb-hardware .mh-faq details[open] summary::after { content:'−'; }
.pf-mtb-hardware .mh-faq details p { max-width:900px; font-size:14px; margin:0 0 22px; }
.pf-mtb-hardware .mh-rfq { display:grid; grid-template-columns:1.25fr 1fr; gap:60px; border-bottom:0; }
.pf-mtb-hardware .mh-rfq .btn { margin-top:16px; }
.pf-mtb-hardware .mh-rfq-options { padding:28px; background:var(--pf-panel); border-radius:var(--radius-panel); }
.pf-mtb-hardware .mh-rfq-options > a { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--border-color); font-size:14px; }
.pf-mtb-hardware .mh-rfq-options p { font-size:12px; margin:20px 0 0; }
.pf-mtb-hardware .mh-viewer { margin:auto; width:min(1050px,calc(100vw - 28px)); max-height:90dvh; background:var(--pf-panel); color:var(--text-primary); border:1px solid var(--border-color); border-radius:var(--radius-media); padding:20px; }
.pf-mtb-hardware .mh-viewer::backdrop { background:rgba(0,0,0,.82); }
.pf-mtb-hardware .mh-viewer-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:14px; }
.pf-mtb-hardware .mh-viewer h2 { font-size:18px; margin:0; }
.pf-mtb-hardware .mh-viewer button { background:var(--pf-panel-2); border:1px solid var(--border-color); color:var(--text-primary); padding:12px 16px; cursor:pointer; border-radius:var(--radius-button); }
.pf-mtb-hardware .mh-viewer img { width:100%; height:auto; max-height:65dvh; object-fit:contain; background:#fff; margin-bottom:16px; }
.pf-mtb-hardware .mh-viewer img[hidden] { display:none; }
.pf-mtb-hardware .mh-viewer > a { display:inline-block; padding-block:8px; font-size:14px; }
@media(max-width:1050px) {
  .pf-mtb-hardware .mh-hero { gap:28px; }
  .pf-mtb-hardware .mh-coverage-visual { grid-template-columns:3fr 1fr; gap:18px; }
  .pf-mtb-hardware .mh-map-aside img { height:85px; }
  .pf-mtb-hardware .mh-core { gap:30px; }
  .pf-mtb-hardware .mh-core-media { gap:12px; }
  .pf-mtb-hardware .mh-product-photo img { height:200px; }
  .pf-mtb-hardware .mh-scroll-hint { display:block; }
}
@media(max-width:800px) {
  .pf-mtb-hardware .mh-hero,.pf-mtb-hardware .mh-core,.pf-mtb-hardware .mh-rfq,.pf-mtb-hardware .mh-manufacturing { grid-template-columns:1fr; gap:30px; }
  .pf-mtb-hardware .mh-hero-display { width:100%; max-width:550px; margin:auto; }
  .pf-mtb-hardware .mh-coverage-visual { grid-template-columns:1fr; }
  .pf-mtb-hardware .mh-map-aside { grid-template-columns:1fr 1fr; gap:24px; }
  .pf-mtb-hardware .mh-map-aside img { height:130px; }
  .pf-mtb-hardware .mh-coverage-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pf-mtb-hardware .mh-core-media { max-width:600px; width:100%; margin:auto; }
  .pf-mtb-hardware .mh-product-photo img { height:220px; }
  .pf-mtb-hardware .mh-chainring-visual { max-width:600px; width:100%; margin:auto; }
  .pf-mtb-hardware .mh-other-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pf-mtb-hardware .mh-reference-strip { gap:16px; }
  .pf-mtb-hardware .mh-reference-strip img { height:140px; }
  .pf-mtb-hardware .mh-bom { padding:28px; }
  .pf-mtb-hardware .mh-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:540px) {
  .pf-mtb-hardware .mh-container { width:calc(100% - 36px); }
  .pf-mtb-hardware .mh-breadcrumb { font-size:11px; }
  .pf-mtb-hardware h1 { font-size:35px; }
  .pf-mtb-hardware .mh-lead { font-size:16px; }
  .pf-mtb-hardware .mh-hero { padding:30px 0; }
  .pf-mtb-hardware .mh-hero-main img { height:200px; }
  .pf-mtb-hardware .mh-hero-small img { height:100px; }
  .pf-mtb-hardware .mh-hero-small a { padding-inline:12px; }
  .pf-mtb-hardware .mh-hero-small span { font-size:12px; }
  .pf-mtb-hardware .mh-section-nav { gap:0 23px; }
  .pf-mtb-hardware .mh-section-nav a { font-size:12px; }
  .pf-mtb-hardware .mh-section { padding-block:42px; }
  .pf-mtb-hardware .mh-pin { display:none; }
  .pf-mtb-hardware .mh-map-aside img { height:100px; }
  .pf-mtb-hardware .mh-coverage-list { gap:18px 16px; }
  .pf-mtb-hardware .mh-coverage-list a { gap:8px; }
  .pf-mtb-hardware .mh-coverage-list strong { font-size:13px; }
  .pf-mtb-hardware .mh-coverage-list span { font-size:11px; }
  .pf-mtb-hardware .mh-product-photo img { height:160px; padding:5px; }
  .pf-mtb-hardware .mh-product-photo figcaption { padding:12px; font-size:11px; }
  .pf-mtb-hardware .mh-inputs { gap:16px; }
  .pf-mtb-hardware .mh-chainring-visual { padding:20px; }
  .pf-mtb-hardware .mh-other-grid,.pf-mtb-hardware .mh-architectures,.pf-mtb-hardware .mh-two-col { grid-template-columns:1fr; gap:24px; }
  .pf-mtb-hardware .mh-reference-strip { grid-template-columns:1fr 1fr; }
  .pf-mtb-hardware .mh-reference-strip figure { grid-column:1/-1; display:flex; align-items:center; }
  .pf-mtb-hardware .mh-reference-strip figure img { width:50%; }
  .pf-mtb-hardware .mh-reference-strip img { height:125px; }
  .pf-mtb-hardware .mh-document span { padding:12px; font-size:11px; }
  .pf-mtb-hardware .mh-bom { margin-top:42px; padding:24px 18px; }
  .pf-mtb-hardware .mh-certificate { grid-template-columns:1fr; padding:22px; gap:24px; }
  .pf-mtb-hardware .mh-certificate > a { display:flex; align-items:center; gap:22px; }
  .pf-mtb-hardware .mh-certificate img { width:110px; }
  .pf-mtb-hardware .mh-process { grid-template-columns:1fr; }
  .pf-mtb-hardware .mh-rfq-options { padding:22px; }
}
@media(prefers-reduced-motion:reduce) { .pf-mtb-hardware *, .pf-mtb-hardware *::before, .pf-mtb-hardware *::after { scroll-behavior:auto; transition:none; animation:none; } }
