
/* ---- announcement bar (parity with the theme) ---------------------------- */
.scmann{background:#111;color:#fff}
.scmann-in{max-width:1280px;margin:0 auto;padding:9px 20px;text-align:center;
  font-size:13px;letter-spacing:.02em;font-weight:600}

/* ---- main shop header ---------------------------------------------------- */
.scmshell{background:var(--page);border-bottom:1px solid var(--edge);position:relative;z-index:60}
.scmshell-in{max-width:1280px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:22px}
.scmshell-logo{flex:0 0 auto;display:block}
.scmshell-logo img{height:38px;width:auto;display:block}
/* The department row and the cross-store link sit side by side; the link is LAST so it reads
   as the way out of the store rather than another department in it. */
.scmshell-nav{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:18px}
.scmshell-utils{flex:0 0 auto;display:flex;gap:14px;align-items:center;margin-left:auto}
.scmshell-util{font-size:13px;color:var(--text);text-decoration:none;letter-spacing:.02em}
/* Contact is the one text utility, underlined, exactly as the theme header shows it. */
.scmshell-contact{text-decoration:underline;text-underline-offset:3px}
.scmshell-iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;
  background:none;padding:0;cursor:pointer;color:var(--text);position:relative}
.scmshell-iconbtn:hover{opacity:.65}
.scmshell-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.scmshell-cart .cart-n{position:absolute;top:-2px;right:-4px;font-size:11px;font-weight:700;
  min-width:16px;height:16px;border-radius:8px;display:grid;place-items:center;
  background:var(--accent);color:#fff}
.scmshell-cart.cart-empty .cart-n{display:none}
.scmshell-burger{display:none;flex-direction:column;gap:4px;background:none;border:0;padding:8px;cursor:pointer}
.scmshell-burger span{display:block;width:20px;height:2px;background:var(--text)}

.pn-list{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.pn-item{position:static}
.pn-top{font:inherit;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;background:none;border:0;padding:10px 12px;
  cursor:pointer;color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.pn-top:hover{text-decoration:underline;text-underline-offset:4px}
/*
 * CROSS-STORE LINK — deliberately NOT a department.
 *
 * Every difference from .pn-top here is doing a job: sentence case instead of uppercase,
 * underlined at rest instead of on hover, accent-coloured instead of body text, and no caret.
 * Rendered with .pn-top it was indistinguishable from Dirt Bikes and Riding Gear, so it read
 * as a section of this store instead of a link to the other one.
 */
.pn-crosslink{flex:0 0 auto;font-size:13px;letter-spacing:.01em;text-transform:none;
  color:var(--accent);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.pn-crosslink:hover{opacity:.75}
.pn-caret{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);opacity:.55}
.pn-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--page);
  border-top:1px solid var(--edge);box-shadow:0 12px 26px rgba(0,0,0,.09);padding:22px 20px 26px;z-index:70}
.pn-item.is-open .pn-panel{display:block}
/* The panel is full-bleed but its CONTENT lines up with the header container, so the first
   link sits under the logo rather than against the window edge. */
.pn-panel-in{max-width:1280px;margin:0 auto;padding:0 20px}
.pn-cols{display:flex;gap:56px;flex-wrap:wrap}
.pn-col{min-width:180px}
.pn-grouphead{margin:0 0 8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.55;font-weight:700}
.pn-sublist{list-style:none;margin:0;padding:0}
.pn-sublist a{display:block;padding:6px 0;font-size:14px;color:var(--text);text-decoration:none;line-height:1.35}
.pn-sublist a:hover{text-decoration:underline;text-underline-offset:3px}
.pn-blurb{display:block;font-size:12.5px;opacity:.6}
.pn-all{display:inline-block;margin-top:18px;font-size:13px;font-weight:700;color:var(--text)}

.scmshell-drawer{display:none;border-top:1px solid var(--edge);padding:8px 20px 18px}
.scmshell-drawer[hidden]{display:none}
.scmshell-drawer-utils{display:flex;gap:18px;padding:12px 12px 0;border-top:1px solid var(--edge);margin-top:10px}
.scmshell-drawer-utils a{font-size:14px;color:var(--text);text-decoration:none}

/* ---- compact parts sub-navigation ---------------------------------------- */
/* No "Search Parts" item: unified global search in the header owns that task, and a second
   search entry point next to it is the two-search-boxes problem in miniature. */
.scmsub{background:var(--hero);border-bottom:1px solid var(--edge)}
.scmsub-in{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;gap:18px;align-items:center}
.scmsub-links{display:flex;gap:4px;overflow-x:auto;min-width:0}
.scmsub-search{flex:0 0 320px;max-width:100%;position:relative;display:flex;align-items:center;margin-left:auto}
.scmsub-search-ico{position:absolute;left:11px;display:grid;place-items:center;opacity:.5;pointer-events:none}
.scmsub-search input{width:100%;font:inherit;font-size:13.5px;padding:8px 12px 8px 32px;
  border:1px solid var(--edge);border-radius:2px;background:var(--page);color:var(--text)}
.scmsub-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.scmsub-link{padding:11px 14px;font-size:13.5px;color:var(--text);text-decoration:none;white-space:nowrap;
  border-bottom:2px solid transparent}
.scmsub-link:hover{border-bottom-color:var(--edge)}
.scmsub-link.is-on{border-bottom-color:var(--accent);font-weight:600}

/* ---- footer -------------------------------------------------------------- */
.scmfoot{background:var(--hero);border-top:1px solid var(--edge);margin-top:56px}
.scmfoot-in{max-width:1280px;margin:0 auto;padding:38px 20px 30px}
.pf-cols{display:grid;gap:26px 40px;grid-template-columns:1fr}
.pf-col h2{margin:0 0 10px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.pf-col ul{list-style:none;margin:0;padding:0}
.pf-col li{margin-bottom:6px}
.pf-col a{font-size:14px;color:var(--text);opacity:.82;text-decoration:none}
.pf-col a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.pf-ext{margin-top:26px;padding-top:20px;border-top:1px solid var(--edge)}
.pf-extlink{font-size:15px;font-weight:700;color:var(--text);text-decoration:none}
.pf-extlink:hover{text-decoration:underline;text-underline-offset:3px}
.pf-ext p{margin:5px 0 0;font-size:13.5px;opacity:.65;max-width:520px}
.scmfoot-legal{margin-top:24px;padding-top:16px;border-top:1px solid var(--edge);
  display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;opacity:.65}
.scmfoot-legal a{color:var(--text);text-decoration:none}
.scmfoot-copy{margin-left:auto}

/* ---- the catalogue's own header is SUPPRESSED under the store shell ------- */
/* Two logos and two search boxes stacked is the "competing search boxes" the owner ruled
   out, and it makes a department read as a separate site. The shell above carries the
   search input and the cart counters using the same element ids the viewer binds to, so
   nothing is lost by hiding this. */
body.has-shell .hdr{display:none}

.scmshell-search{flex:1 1 auto;min-width:0;max-width:520px;position:relative;display:flex;align-items:center}
.scmshell-search-ico{position:absolute;left:12px;font-size:15px;opacity:.5;pointer-events:none}
.scmshell-search input{width:100%;font:inherit;font-size:14px;padding:9px 12px 9px 32px;
  border:1px solid var(--edge);border-radius:2px;background:var(--hero);color:var(--text)}
.scmshell-search input:focus{outline:none;border-color:var(--accent);background:var(--page);
  box-shadow:0 0 0 3px var(--accent-soft)}
.scmshell-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.scmshell-cart{display:inline-flex;align-items:center;gap:7px}
.scmshell-cart-lbl{font-size:13px}
.scmshell-cart .cart-n{font-size:12px;font-weight:700;min-width:17px;height:17px;border-radius:9px;
  display:inline-grid;place-items:center;background:var(--accent);color:#fff}
.scmshell-cart.cart-empty .cart-n,.scmshell-cart.cart-empty .cart-t{display:none}
.scmshell-cart .cart-t{font-size:13px;font-variant-numeric:tabular-nums}

/* ---- server-backed search results ---------------------------------------
 *
 * The shared client (services/shared/search/client.js) inserts .scm-ps__host as a SIBLING of the
 * search form. Road styles the same markup with its theme variables; this store has its own
 * palette, so the rules are written against the catalogue's variables rather than imported.
 *
 * It is anchored to the lane row and overlays the page. Left in normal flow it became a flex
 * item in .scmsub-in and rendered as a bare list beside the input, which is what it looked like
 * before these rules existed.
 */
.scmsub-in{position:relative}
.scm-ps__host{position:absolute;top:100%;right:0;width:min(560px,100%);z-index:80}
.scm-ps{background:var(--page);border:1px solid var(--edge);border-top:0;
  box-shadow:0 14px 30px rgba(0,0,0,.13);max-height:70vh;overflow-y:auto;padding:4px 0 8px}
.scm-ps__group + .scm-ps__group{border-top:1px solid var(--edge)}
.scm-ps__head{margin:0;padding:10px 14px 6px;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;opacity:.6}
.scm-ps__list{margin:0;padding:0;list-style:none}
.scm-ps__item{margin:0}
.scm-ps__link{display:flex;flex-direction:column;gap:3px;padding:9px 14px;
  text-decoration:none;color:var(--text)}
.scm-ps__item.is-active .scm-ps__link,.scm-ps__link:hover,.scm-ps__link:focus-visible{
  background:rgba(0,0,0,.05)}
.scm-ps__title{font-size:14px;line-height:1.3}
/* The meta row is a real row. Without a gap the part number, price and supply label ran
   together into one unreadable string. */
.scm-ps__meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:12px;opacity:.75}
.scm-ps__pn{font-variant-numeric:tabular-nums;letter-spacing:.03em}
.scm-ps__price{font-weight:600;opacity:.9}
.scm-ps__av{padding:1px 7px;border-radius:3px;font-size:11px;white-space:nowrap}
/* Only the first of these may imply the part is physically in the building. */
.scm-ps__av--stock{background:rgba(16,122,87,.14);color:#0b6b4b}
.scm-ps__av--avail{background:rgba(30,90,168,.12);color:#1b4f96}
.scm-ps__av--low{background:rgba(150,96,0,.14);color:#8a5300}
.scm-ps__av--out{background:rgba(0,0,0,.07);color:#555}
.scm-ps__corrected{margin:0;padding:9px 14px;font-size:12.5px;border-bottom:1px solid var(--edge)}
.scm-ps__empty{padding:12px 14px;font-size:13px}
.scm-ps__empty ul{margin:8px 0;padding-left:18px}
.scm-ps__empty a{color:var(--accent)}
.scm-ps__note{margin:6px 0 0;font-size:12px;opacity:.7}
@media (max-width:900px){ .scm-ps__host{width:100%} }

@media (min-width:750px){ .pf-cols{grid-template-columns:repeat(3,1fr)} }
@media (max-width:900px){
  .scmshell-nav{display:none}
  .scmshell-burger{display:flex;order:-1}
  /* Contact drops to the drawer below the tablet breakpoint so it cannot crowd the logo and
     the primary utilities — same hierarchy rule the theme header follows. */
  .scmshell-contact{display:none}
  .scmshell-in{gap:8px;padding:10px 12px;min-width:0}
  .scmshell-logo{min-width:0}
  .scmshell-logo img{height:30px;max-width:100%}
  .scmshell-utils{gap:2px;min-width:0}
  .scmshell-iconbtn{width:30px;height:30px}
  .scmshell-burger{padding:6px}
  .scmsub-in{flex-direction:column;align-items:stretch;gap:0;padding:0 12px}
  .scmsub-search{flex:1 1 auto;margin:0 0 10px;order:-1;padding-top:10px}
  /*
   * THREE LANES, NO TRUNCATION. A single scrolling row clipped "OEM Parts Diagrams" mid-word at
   * the viewport edge, which reads as a rendering fault and hides a destination behind a scroll
   * gesture nobody knows is there. An equal three-column grid fits all three at 320px, and each
   * cell keeps a 44px touch target. The desktop labels and accessible names are unchanged —
   * only the visual line-breaking differs.
   */
  .scmsub-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0;overflow:visible;
    padding-bottom:2px}
  .scmsub-link{padding:10px 6px;font-size:12px;line-height:1.25;text-align:center;
    white-space:normal;min-height:44px;display:flex;align-items:center;justify-content:center;
    hyphens:none}
  .scmshell-in{gap:14px}
  .scmshell-drawer:not([hidden]){display:block}
  .pn-list{flex-direction:column;gap:0}
  .pn-top{width:100%;justify-content:space-between;padding:13px 12px;font-size:15px;text-align:left}
  /* In the drawer the nav stacks, so the link becomes a full-width row — still visibly a link
     and not a department, separated by a rule rather than sitting in the same column flow. */
  .scmshell-drawer .scmshell-nav,
  .scmshell-drawer{display:block}
  .pn-crosslink{display:block;white-space:normal;padding:14px 12px;font-size:15px;
    border-top:1px solid var(--edge);margin-top:4px}
  .pn-panel{display:none;position:static;box-shadow:none;border-top:0;padding:0 12px 14px}
  .pn-item.is-open .pn-panel{display:block}
  .pn-cols{flex-direction:column;gap:14px}
  .pn-panel-in{padding:0}
  .scmfoot-copy{margin-left:0;width:100%}
}
