/* Shared product presentation, with each storefront's own colours and type. */
.parts-store .product-card{border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);overflow:hidden;transition:border-color .18s,box-shadow .18s}
.parts-store .product-card:hover{border-color:var(--muted);box-shadow:0 5px 22px #17251c0a;transform:none}
.parts-store .product-image{background:#fff;aspect-ratio:1.15;border-bottom:1px solid var(--line);padding:36px 24px 22px;width:100%}
.parts-store .product-image img{mix-blend-mode:normal}
.parts-store .product-copy{border-bottom:0;padding:18px;gap:0}
.parts-store .product-copy h3{font-size:16px;line-height:1.45;letter-spacing:-.015em;margin:7px 0 10px;overflow-wrap:anywhere}
.parts-store .product-meta{font-size:10px;letter-spacing:.08em}
.parts-store .product-sku{font-size:11px;line-height:1.5;overflow-wrap:anywhere;color:var(--muted)}
.parts-store .product-copy .fitment-badge{border:0;border-radius:4px;background:var(--soft);padding:8px 10px;margin:12px 0;font-size:11px;min-height:0}
.parts-store .product-copy .fitment-badge.verified{background:#edf5ee;color:#255c3c}
.parts-store .product-copy .fitment-badge.matched{background:#edf2f5;color:#335264}
.parts-store .product-copy .fitment-badge.conflict{background:#fff0ed;color:#88362a}
.parts-store .product-copy .fitment-badge.unknown{background:#f4f3ed;color:#665c41}
.parts-store .product-copy .fitment-badge.gear{background:transparent;padding:5px 0;color:var(--muted)}
.parts-store .product-copy .price{font-size:23px;line-height:1.25;padding-top:8px;letter-spacing:-.03em}
.parts-store .product-copy .price>span{font-size:11px;letter-spacing:0}
.parts-store .product-copy .fulfilment-card{margin:12px 0 8px;min-height:38px;font-size:12px;padding:0}
.parts-store .product-copy .fulfilment-card strong{font-size:12px}
.parts-store .product-copy .fulfilment-card small{font-size:11px}
.parts-store .card-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;min-height:46px;padding:12px;border-radius:4px;margin-top:12px}
.parts-store .no-image{opacity:1;color:var(--muted);display:flex;flex-direction:column;justify-content:center;gap:10px;text-align:center;font-size:26px}
.parts-store .no-image small{font:11px 'DM Sans',sans-serif}
.parts-store #product-dialog{border-radius:10px;width:min(1120px,96vw)}
.parts-store #product-dialog .close-dialog{width:44px;height:44px;left:calc(100% - 58px);top:12px;margin-bottom:-44px;border-radius:50%;box-shadow:0 2px 12px #0000000a;display:grid;place-items:center}
.parts-store .detail-media{background:#fff;padding:26px;margin:60px 0 28px 24px;position:sticky;top:28px}
.parts-store .detail-media>img{height:360px}
.parts-store .detail-image-placeholder{display:grid;place-items:center;min-height:260px;color:var(--muted);font-size:14px;text-align:center}
.parts-store .thumbnails{overflow-x:auto;overscroll-behavior-x:contain;gap:10px;padding:6px 3px;margin-top:18px}
.parts-store .thumb{flex:0 0 62px;width:62px;height:62px;border:1px solid var(--line);border-radius:4px;padding:4px}
.parts-store .thumb[aria-pressed=true]{border:2px solid var(--accent);box-shadow:0 0 0 1px var(--accent)}
.parts-store .detail-copy{min-width:0;padding:62px 30px 28px}
.parts-store .detail-breadcrumb{font-size:12px;margin:0 0 20px}
.parts-store .detail-maker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.parts-store .detail-maker>span+span{border-left:1px solid var(--line);padding-left:8px}
.parts-store .detail-copy h2{font-size:34px;line-height:1.15;margin:12px 0 20px;overflow-wrap:anywhere}
.parts-store .detail-fitment{border:1px solid var(--line);border-left:3px solid #9c8a58;border-radius:5px;padding:14px 15px;margin:0 0 22px;background:var(--soft)}
.parts-store .detail-fitment.verified{border-left-color:#286448}.parts-store .detail-fitment.matched{border-left-color:#66869a}.parts-store .detail-fitment.conflict{border-left-color:#933c30}.parts-store .detail-fitment.gear{border-left-width:1px}
.parts-store .detail-fitment .fitment-badge{border:0;padding:0;margin:0;background:transparent;min-height:0;font-size:12px}
.parts-store .detail-fitment .fitment-badge small{font-size:13px;margin-top:7px;color:var(--ink)}
.parts-store .detail-fitment .fitment-detail{font-size:13px;line-height:1.65;margin:9px 0 0;color:var(--muted)}
.parts-store .fitment-ride-button{border:0;border-bottom:1px solid currentColor;padding:8px 0 4px;margin-top:5px;background:transparent;font-size:12px;font-weight:600;min-height:44px}
.parts-store .detail-price{font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1.3}
.parts-store .detail-identifiers{display:flex;flex-wrap:wrap;gap:4px 16px;margin:10px 0 20px}
.parts-store .detail-identifiers p{font-size:12px;line-height:1.5;margin:0;overflow-wrap:anywhere;color:var(--muted)}
.parts-store .variant-label{font-size:14px;font-weight:600;line-height:1.5;margin:20px 0}
.parts-store .option-count{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}
.parts-store .variant-label select{font-size:15px;min-height:50px;border-radius:4px;background:var(--card,#fff);padding:12px}
.parts-store .fulfilment-detail{margin:20px 0 14px}
.parts-store .fulfilment-detail>p{font-size:13px;line-height:1.6}
.parts-store .purchase-summary{font-size:12px;color:var(--muted)}
.parts-store .add-row{align-items:end}.parts-store .add-row label{font-size:12px}.parts-store .add-row input{font-size:16px;min-height:52px;border-radius:4px}.parts-store .add-row button{border-radius:4px;min-height:52px}
.parts-store #product-message:empty{display:none}.parts-store #product-message{font-size:13px;line-height:1.6}
.parts-store .description{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0 16px}
.parts-store .description summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;font-size:15px;min-height:56px}
.parts-store .description summary::-webkit-details-marker{display:none}.parts-store .description summary span{font-size:23px;font-weight:400}.parts-store .description[open] summary span{transform:rotate(45deg)}
.parts-store .product-description{font-size:14px;line-height:1.75;padding:0 0 18px;overflow-wrap:anywhere}
.parts-store .product-description p{font-size:14px;line-height:1.75;white-space:normal;max-height:none;overflow:visible;margin:0 0 14px}
.parts-store .product-description h3{font-family:inherit;font-size:15px;line-height:1.5;letter-spacing:0;margin:22px 0 10px}
.parts-store .product-description ul,.parts-store .product-description ol{padding-left:21px;margin:12px 0 18px}.parts-store .product-description li{padding-left:3px;margin:6px 0}
.parts-store .product-description a{text-decoration:underline;text-underline-offset:3px}
.parts-store .product-description .spec-table{overflow-x:auto;max-width:100%;margin:15px 0;overscroll-behavior-x:contain}
.parts-store .product-description table{border-collapse:collapse;width:100%;font-size:12px}.parts-store .product-description td,.parts-store .product-description th{padding:10px;text-align:left;border:1px solid var(--line);min-width:90px}.parts-store .product-description th{background:var(--soft)}
.parts-store .product-support{flex-wrap:wrap;gap:14px 22px}.parts-store .product-support a{min-height:44px;display:inline-flex;align-items:center;font-size:13px}
@media(max-width:760px){
 .parts-store .product-grid{gap:14px 10px}
 .parts-store .product-image{padding:30px 12px 14px;aspect-ratio:1.05}
 .parts-store .product-copy{padding:12px 10px}
 .parts-store .product-copy h3{font-size:14px;line-height:1.4;margin:7px 0 9px}
 .parts-store .product-meta{font-size:10px;letter-spacing:.03em}
 .parts-store .product-sku{font-size:10px}
 .parts-store .product-copy .fitment-badge{padding:7px;font-size:10px;margin:10px 0}
 .parts-store .product-copy .price{font-size:21px}
 .parts-store .product-copy .fulfilment-card strong{font-size:11px}
 .parts-store .card-cta{font-size:12px;padding:10px 8px}
 .parts-store #product-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;overscroll-behavior:contain}
 .parts-store .detail-media{position:static;margin:60px 16px 0;padding:18px}
 .parts-store .detail-media>img{height:230px;max-height:230px}
 .parts-store .thumbnails{margin-top:12px}
 .parts-store .detail-copy{padding:24px 20px calc(28px + env(safe-area-inset-bottom))}
 .parts-store .detail-copy h2{font-size:29px;line-height:1.2;margin:12px 0 20px}
 .parts-store .detail-breadcrumb{margin-bottom:16px;font-size:11px}
 .parts-store .detail-fitment{padding:13px;margin-bottom:20px}
 .parts-store .detail-fitment .fitment-detail{font-size:13px}
 .parts-store .variant-label select{font-size:16px}
 .parts-store .add-row{z-index:3;background:var(--paper);box-shadow:0 -8px 16px var(--paper);padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .parts-store .product-description{font-size:14px}
}
@media(max-width:360px){
 .parts-store .product-grid{grid-template-columns:1fr}
 .parts-store .product-image{aspect-ratio:1.55;padding:34px 20px 18px}
 .parts-store .product-copy{padding:16px}.parts-store .product-copy h3{font-size:17px}
 .parts-store .product-copy .fitment-badge{font-size:12px}.parts-store .product-copy .fulfilment-card strong{font-size:12px}.parts-store .product-sku{font-size:12px}
 .parts-store .detail-copy{padding-left:16px;padding-right:16px}
}
@media(prefers-reduced-motion:reduce){.parts-store .product-card{transition:none}}
.parts-store .add-row .add-cart-copy{font:inherit;line-height:1.3;text-align:left}
.parts-store #mobile-purchase-price{display:none}
@media(max-width:760px){.parts-store #mobile-purchase-price{display:block;font-size:11px;font-weight:400;margin-top:3px;line-height:1.25}.parts-store .add-row button{min-height:58px}.parts-store .add-row input{min-height:58px}}
.parts-store .cart-ride{font-size:12px;line-height:1.55;margin:8px 0;color:var(--muted);overflow-wrap:anywhere}.parts-store .cart-ride strong{font-weight:600;color:var(--ink)}
/* Keep kit costs visible before buying, without implying a complete bundle. */
.kit-card-note{font-size:12px;font-weight:650;color:#7d4915;margin:8px 0}
.kit-requirements{margin:16px 0;padding:16px;border:1px solid #d9c8a8;border-left:3px solid #ac7d36;border-radius:8px;background:#fffaf0;color:#41382b;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.kit-requirements ul{margin:8px 0;padding-left:19px}.kit-requirements li+li{margin-top:6px}.kit-requirements a{color:inherit;text-underline-offset:3px;font-weight:600}.kit-links{display:grid;gap:8px;margin:10px 0}.kit-links a{min-height:44px;display:flex;align-items:center}.kit-links span{font-size:13px}.kit-requirements.compact{padding:10px;font-size:12px;margin:10px 0}.kit-requirements.compact ul{margin-bottom:0}
@media(max-width:600px){.kit-requirements{padding:12px}.kit-requirements>a{display:flex;align-items:center;min-height:44px}}
.cart-fitment{font-size:12px;color:#6b5736;line-height:1.45;margin:5px 0}
/* Keep a compatible bike, the price and the buying action together. */
.parts-store .product-image,.parts-store .edit-image{position:relative}
.parts-store .fit-chip{position:absolute;z-index:1;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 20px);padding:5px 8px;border-radius:5px;background:#e9f6ed;color:#155135;font:700 11px/1.3 'DM Sans',Arial,sans-serif;text-align:left;box-shadow:0 0 0 1px #c5dfcb}
.parts-store .fit-tick{display:inline-grid;place-items:center;flex:none;width:16px;height:16px;border-radius:50%;background:#207548;color:white;font:800 12px/1 Arial,sans-serif}
.parts-store .fit-chip.fit-exclusion{background:#f8efeb;color:#783e31;box-shadow:none}
.parts-store .product-image:has(.fit-chip) .product-kind{top:auto;bottom:8px;left:auto;right:8px}
.parts-store .edit-image:has(.fit-chip) .edit-number{display:none}
.parts-store .product-fit-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--soft);color:var(--ink);font-size:13px}
.parts-store .product-fit-bar.positive{border-color:#b5d9bf;border-left:4px solid #24804b;background:#eff8f0;color:#13462d}
.parts-store .product-fit-bar.excluded{border-color:#ddc1b5;background:#faf1ea}
.parts-store .fit-bar-copy{display:flex;align-items:center;gap:9px;min-width:0}
.parts-store .fit-bar-copy strong,.parts-store .fit-bar-copy small{display:block;overflow-wrap:anywhere}
.parts-store .fit-bar-copy small{font-size:12px;line-height:1.45;margin-top:3px}
.parts-store .fit-bar-copy .fit-tick{width:23px;height:23px;font-size:16px}
.parts-store #detail-change-ride,.parts-store .compatible-models summary{background:none;border:0;color:inherit;min-height:44px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:600;font-size:12px}
.parts-store #detail-change-ride{padding:5px 0 5px 7px;flex:none}
.parts-store #detail-ride-form{display:grid;grid-template-columns:minmax(74px,.65fr) minmax(110px,1fr) auto;align-items:end;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:5px;margin-top:8px;padding:12px}
.parts-store #detail-ride-form label{display:grid;gap:4px;min-width:0;font-size:12px}
.parts-store #detail-ride-form select{width:100%;min-width:0;min-height:44px;padding:7px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:4px}
.parts-store #detail-ride-form button{padding:10px;min-height:44px}
.parts-store .compatible-models summary{display:flex;align-items:center;padding:0;list-style:none;color:var(--muted)}
.parts-store .compatible-models ul{margin:0 0 8px;padding-left:1.25rem;font-size:13px;line-height:1.6}
.parts-store .detail-copy h2{margin-bottom:14px}
.parts-store .purchase-intro{font-size:15px;line-height:1.55;color:var(--ink);margin:12px 0 14px;max-width:65ch}
.parts-store .detail-copy .detail-price{margin:10px 0}
.parts-store .fulfilment-line,.parts-store .fulfilment-card.slim{display:flex;align-items:center;gap:8px;margin:10px 0;padding:0;border:0;background:transparent;min-height:0;color:var(--muted);font-size:12px}
.parts-store .fulfilment-line{margin:10px 0 15px}
.parts-store .fulfilment-line strong,.parts-store .fulfilment-card.slim strong{font:600 12px/1.45 'DM Sans',Arial,sans-serif;color:inherit}
.parts-store .fulfilment-dot{display:block;width:7px;height:7px;background:#8b998f;border-radius:50%;flex:none}.parts-store :is(.warehouse,.available,.local,.stock)>.fulfilment-dot{background:#348656}
.parts-store .freight-link{display:inline-block;min-height:32px;font-size:13px;text-decoration:underline}
.parts-store .part-wordmark{display:flex;flex-flow:column;align-items:center;justify-content:center;text-align:center;gap:9px;height:100%;width:100%;min-height:130px;color:var(--ink);background:linear-gradient(125deg,var(--soft),#fff);border:1px solid var(--line);border-radius:4px}
.parts-store .part-wordmark span,.parts-store .part-wordmark small{font:650 10px/1.3 'DM Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.parts-store .part-wordmark strong{font:600 clamp(16px,2.4vw,32px)/1.1 var(--display)}
@media(max-width:760px){.parts-store .detail-media{margin:46px 16px 0;padding:10px}.parts-store .detail-media>img{height:clamp(140px,23dvh,210px);max-height:210px}.parts-store .detail-copy{padding-top:15px}.parts-store .detail-copy h2{font-size:25px;line-height:1.15;margin:8px 0 12px}.parts-store .detail-breadcrumb{margin-bottom:8px}.parts-store .fit-chip{font-size:10px;top:7px;left:7px}.parts-store .detail-copy .add-row{margin-top:10px}.parts-store .purchase-intro{font-size:14px}.parts-store #detail-ride-form{grid-template-columns:minmax(70px,.7fr) minmax(100px,1fr)}.parts-store #detail-ride-form button{grid-column:1/-1}.parts-store .fit-bar-copy{gap:6px}.parts-store .product-fit-bar{padding:6px 8px;gap:6px}}
