/* =====================================================================
   pf_base — shared storefront stylesheet (all stores)
   Loads after bootstrap.css + stylesheet.css. Colours/fonts come from the
   per-store tokens-*.css file; nothing brand-specific is hard-coded here.
   ===================================================================== */

/* ---------- base ---------- */
html { font-size: 14px; }
body { margin: 0; font-family: var(--pf-font-body); color: var(--pf-ink); background: var(--pf-page); line-height: 1.5; }
a { color: var(--pf-primary); text-decoration: none; }
a:hover { color: var(--pf-primary-dark); text-decoration: none; }
h1, h2, h3, h4, .pf-h { font-family: var(--pf-font-head); font-weight: var(--pf-head-weight); text-transform: var(--pf-head-transform); letter-spacing: var(--pf-head-tracking); color: var(--pf-ink-strong); line-height: 1.1; }
h1 { font-size: 30px; } h2 { font-size: 26px; } h3 { font-size: 20px; } h4 { font-size: 17px; }
img { max-width: 100%; height: auto; }
.pf-skip-link { position: absolute; left: -9999px; top: 0; background: #fff; padding: 8px 12px; z-index: 10000; }
.pf-skip-link:focus { left: 8px; top: 8px; }
.container { max-width: 1320px; }

/* ---------- buttons ---------- */
.btn { font-family: var(--pf-font-body); font-weight: 600; border-radius: var(--pf-radius-sm); }
.btn-primary, .btn-cart, .pf-btn-cta { background: var(--pf-cta); border-color: var(--pf-cta); color: var(--pf-cta-ink); }
.btn-primary:hover, .btn-cart:hover, .pf-btn-cta:hover, .btn-primary:focus { background: var(--pf-cta-hover); border-color: var(--pf-cta-hover); color: var(--pf-cta-ink); }
.pf-btn-accent { background: var(--pf-accent); color: var(--pf-accent-ink); border: 0; font-family: var(--pf-font-head); font-weight: 700; text-transform: var(--pf-head-transform); letter-spacing: var(--pf-head-tracking); font-size: 17px; padding: 10px 20px; border-radius: var(--pf-radius-sm); }
.pf-btn-accent:hover { color: var(--pf-accent-ink); filter: brightness(.95); }
.pf-btn-outline { background: #fff; color: var(--pf-cta); border: 2px solid var(--pf-cta); font-weight: 700; border-radius: var(--pf-radius-sm); padding: 8px 16px; }
.btn-light, .btn-default { background: var(--pf-field); border-color: var(--pf-line); color: var(--pf-ink); }
.btn-success { background: var(--pf-ok); border-color: var(--pf-ok); }
.btn-danger, .btn-outline-danger { border-color: var(--pf-sale); }
.btn-danger { background: var(--pf-sale); }
.btn-outline-danger { color: var(--pf-sale); }
.form-control, .form-select { border-color: var(--pf-line); border-radius: var(--pf-radius-sm); font-family: var(--pf-font-body); }
.form-control:focus, .form-select:focus { border-color: var(--pf-select-line); box-shadow: 0 0 0 3px var(--pf-select-bg); }

/* ---------- utility bar ---------- */
.pf-util { background: var(--pf-dark); color: var(--pf-dark-ink); font-size: 12px; }
.pf-util .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
.pf-util a { color: var(--pf-dark-ink); }
.pf-util a:hover { color: #fff; }
.pf-util-left { display: flex; gap: 22px; flex-wrap: wrap; }
.pf-util-right { display: flex; gap: 18px; }
.pf-util .pf-util-cta { color: var(--pf-accent); font-weight: 700; }
.pf-stripe { height: 8px; background: var(--pf-stripe, transparent); }

/* ---------- header ---------- */
.pf-header { background: var(--pf-surface); border-bottom: var(--pf-header-border); }
.pf-header .container { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; }
.pf-brand { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 0 1 auto; }
.pf-brand img { max-height: 48px; width: auto; }
.pf-brand-text { display: flex; flex-direction: column; gap: 3px; }
.pf-brand-name { font-family: var(--pf-font-head); font-weight: 700; font-size: 24px; text-transform: var(--pf-head-transform); line-height: 1; color: var(--pf-ink-strong); letter-spacing: .5px; }
.pf-brand-name span { color: var(--pf-primary); }
.pf-brand-tag { font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--pf-muted); font-weight: 600; }
.pf-search { flex: 1 1 240px; min-width: 180px; display: flex; margin: 0; }
.pf-search input { flex: 1; height: 44px; border: 1px solid var(--pf-line); border-right: 0; border-radius: var(--pf-radius-sm) 0 0 var(--pf-radius-sm); padding: 0 14px; font: inherit; font-size: 14px; }
.pf-search button { height: 44px; padding: 0 20px; background: var(--pf-primary); color: var(--pf-primary-ink); border: 0; border-radius: 0 var(--pf-radius-sm) var(--pf-radius-sm) 0; font-family: var(--pf-font-head); font-weight: 700; font-size: 17px; text-transform: var(--pf-head-transform); cursor: pointer; }
.pf-head-nav { display: flex; gap: 8px; align-items: center; font-size: 12px; font-weight: 600; flex: 0 0 auto; }
@media (min-width: 768px) { .pf-header .container { flex-wrap: nowrap; } }
.pf-head-nav > a, .pf-head-nav .dropdown > a { color: var(--pf-ink); padding: 8px 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); background: #fff; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.pf-head-nav .dropdown-menu { font-size: 13px; }

/* mini cart (contract: #cart, #cart-items/.cart-badge, #cart-total, .cart-content ul, .cart-products tr) */
#cart { position: relative; }
#cart > a.cart-heading { color: #fff; background: var(--pf-ok); padding: 9px 14px; border-radius: var(--pf-radius-sm); display: inline-flex; gap: 8px; align-items: center; font-weight: 700; white-space: nowrap; }
#cart > a.cart-heading:hover { filter: brightness(.95); }
#cart #cart-items { background: #fff; color: var(--pf-ok); border-radius: 999px; min-width: 20px; height: 20px; padding: 0 6px; font-size: 12px; display: inline-flex; align-items: center; justify-content: center; }
#cart #cart-items.count-zero { opacity: .6; }
#cart .cart-content { right: 0; left: auto; min-width: 380px; max-width: 94vw; padding: 10px; }
#cart .cart-content ul { list-style: none; margin: 0; padding: 0; }
#cart .cart-products .table { margin: 0; font-size: 12px; }
#cart .cart-products td { vertical-align: middle; padding: 6px 4px; }
#cart .cart-products .td-image img { width: 46px; height: 46px; object-fit: contain; }
#cart .cart-remove, #cart .cart-remove-form button { background: none; border: 0; color: var(--pf-sale); font-size: 16px; }
#cart .cart-totals .table { font-size: 13px; margin: 8px 0; }
#cart .cart-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
#cart .cart-buttons .btn { flex: 1; }
#cart .cart-empty { padding: 16px; margin: 0; color: var(--pf-muted); }

/* ---------- menu ---------- */
.pf-menu { background: var(--pf-menu-bg); }
.pf-mi { width: 1.25em; text-align: center; margin-right: .45em; opacity: .85; font-size: .95em; }
.pf-menu .nav-link .pf-mi { opacity: .75; }
.pf-menu .navbar-nav > .nav-item > .nav-link .pf-mi { display: inline-block; }   /* back on the bar 2026-10-19 (Dave) now the long labels are shortened (PPE, Footwear, Clothing, Tape & Masking) */
/* mega menus near the right edge open leftwards so they stay on the page */
.pf-menu .navbar-nav > .nav-item.dropdown.pf-flip > .dropdown-menu { left: auto; right: 0; }
.pf-mmenu-link .pf-mi { width: 1.4em; margin-right: .55em; opacity: .9; }
.pf-menu-all-list .dropdown-item .pf-mi { color: var(--pf-primary); opacity: 1; }
.pf-menu .container { display: flex; align-items: stretch; flex-wrap: wrap; padding: 0; position: relative; }
.pf-menu .navbar { padding: 0; width: 100%; }
.pf-menu .navbar-nav { flex-wrap: wrap; width: 100%; }
.pf-menu .nav-link, .pf-menu .pf-menu-link { color: var(--pf-menu-ink); padding: 12px 16px; font-family: var(--pf-font-head); font-weight: 600; font-size: 16px; text-transform: var(--pf-head-transform); letter-spacing: var(--pf-head-tracking); white-space: nowrap; }
.pf-menu .nav-link:hover, .pf-menu .nav-item.show > .nav-link { background: var(--pf-menu-active); color: var(--pf-menu-ink); }
.pf-menu .nav-link.dropdown-toggle::after { margin-left: 6px; }
.pf-menu .pf-menu-end { margin-left: auto; }
.pf-menu .pf-menu-end .nav-link { color: var(--pf-accent); }
.pf-menu .dropdown-menu { border-radius: 0 0 var(--pf-radius) var(--pf-radius); border: 1px solid var(--pf-line); box-shadow: var(--pf-shadow); padding: 14px 18px; margin-top: 0; }
.pf-menu .dropdown-inner { display: flex; gap: 24px; }
.pf-menu .dropdown-inner ul { margin: 0; padding: 0; list-style: none; min-width: 180px; }
.pf-menu .dropdown-item { padding: 5px 0; font-size: 13.5px; color: var(--pf-ink); white-space: normal; }
.pf-menu .dropdown-item:hover { background: none; color: var(--pf-primary); }
.pf-menu .pf-mm-child { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
.pf-menu .pf-mm-child img, .pf-menu .pf-mm-noimg { width: 32px; height: 32px; flex: 0 0 32px; object-fit: contain; background: #fff; border: 1px solid var(--pf-line-soft); border-radius: var(--pf-radius-sm); }
.pf-menu .pf-mm-child:hover img { border-color: var(--pf-primary); }
.pf-menu .dropdown-divider { margin: 8px 0; }
.pf-menu .navbar-toggler { color: var(--pf-menu-ink); border: 0; padding: 12px 16px; display: flex; align-items: center; gap: 8px; font-family: var(--pf-font-head); font-weight: 600; font-size: 16px; text-transform: var(--pf-head-transform); }
@media (max-width: 991.98px) {
  .pf-menu .navbar-nav { flex-direction: column; }
  .pf-menu .dropdown-menu { position: static; box-shadow: none; border: 0; border-radius: 0; background: rgba(255,255,255,.08); }
  .pf-menu .dropdown-item { color: var(--pf-menu-ink); }
  .pf-menu .dropdown-inner { flex-direction: column; gap: 0; }
  .pf-menu .pf-menu-end { margin-left: 0; }
}

/* ---------- page shell ---------- */
#main-content { min-height: 50vh; }
/* core OC4 templates (common/success, error pages ...) use a plain .container - they get the .pf-page rules via :is() */
/* OC4 core stylesheet pins footer{position:absolute;bottom:-1px} inside #container{position:absolute;margin-bottom:300px} - a sticky-footer
   hack sized for a 300px footer; ours is taller on phones and overlapped short pages (empty cart, logout). Normal flow + flex column instead. */
#container { position: static; min-height: 100vh; margin-bottom: 0; display: flex; flex-direction: column; }
#container > #main-content { flex: 1 0 auto; }
#container footer.pf-footer, footer.pf-footer { position: static; bottom: auto; border: 0; flex: 0 0 auto; }   /* not '>' : an unclosed tag in a product description can nest the footer deeper, and core stylesheet.css makes footer absolute */
:is(.pf-page, #main-content > .container) { padding-top: 20px; padding-bottom: 32px; }
body { overflow-x: hidden; }
.breadcrumb { font-size: 12px; margin: 0 0 12px; color: var(--pf-muted); }
.breadcrumb a { color: var(--pf-muted); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--pf-faint); }
.pf-page-title { margin: 0 0 14px; }
.pf-seo-sub { display: block; text-transform: none; letter-spacing: normal; border: 0; padding: 0; margin: 3px 0 0; line-height: 1.32; font-family: var(--pf-font-body); }
h2.pf-seo-sub { font-size: 15px; font-weight: 500; color: var(--pf-muted); }
h3.pf-seo-sub { font-size: 13px; font-weight: 400; color: var(--pf-faint); }
#column-left, #column-right { font-size: 13px; }

/* ---------- cards / panels ---------- */
.pf-panel { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); }
.pf-card { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); display: flex; flex-direction: column; overflow: hidden; height: 100%; transition: box-shadow .15s ease; }
.pf-card:hover { box-shadow: var(--pf-shadow); }
.pf-card-media { position: relative; background: var(--pf-panel); aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pf-card-media img { width: 100%; height: 100%; object-fit: contain; }
.pf-card-badge { position: absolute; left: 10px; top: 10px; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--pf-primary); color: var(--pf-primary-ink); }
.pf-card-badge.is-sale { background: var(--pf-ok); color: #fff; }
.pf-card-wish { position: absolute; right: 8px; top: 8px; width: 30px; height: 30px; border: 0; background: rgba(255,255,255,.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--pf-muted); cursor: pointer; }
.pf-card-wish:hover { color: var(--pf-sale); }
.pf-card-body { padding: 12px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pf-card-meta { display: flex; justify-content: space-between; font-size: 11px; color: var(--pf-muted); gap: 8px; }
.pf-card-meta a { font-weight: 600; }
.pf-card-name { margin: 0; font-family: var(--pf-font-body); font-size: 13px; font-weight: 500; line-height: 1.35; color: var(--pf-ink-strong); text-transform: none; letter-spacing: 0; min-height: 35px; }
.pf-card-name a { color: inherit; }
.pf-chips { display: flex; gap: 4px; flex-wrap: wrap; font-size: 10px; font-weight: 600; }
.pf-chip { padding: 2px 7px; border-radius: 10px; background: var(--pf-ok-bg); color: var(--pf-ok); }
.pf-chip.is-warn { background: var(--pf-warn-bg); color: var(--pf-warn); }
.pf-chip.is-neutral { background: var(--pf-field); color: var(--pf-muted); }
.pf-swatches { display: flex; gap: 5px; align-items: center; }
.pf-swatch { width: 20px; height: 20px; border: 1px solid var(--pf-line); border-radius: 5%; display: inline-block; }
.pf-card-price-row { margin-top: auto; padding-top: 6px; display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; }
.pf-price { font-size: 17px; font-weight: 600; color: var(--pf-ink-strong); }
.pf-price.is-sale { color: var(--pf-sale); }
.pf-price-old { font-size: 12px; color: var(--pf-faint); text-decoration: line-through; margin-left: 4px; }
.pf-price-ex { font-size: 11px; color: var(--pf-muted); }
.pf-price-break { font-size: 11px; color: var(--pf-primary); font-weight: 600; text-align: right; }
.pf-card-actions { display: flex; gap: 4px; align-items: center; }
.pf-card-actions .btn { height: 36px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; text-transform: uppercase; letter-spacing: .3px; padding: 0 10px; }
.pf-card-actions .pf-btn-cta { flex: 1; }
.pf-card-actions .pf-btn-outline { flex: 1; height: 36px; font-size: 11px; text-transform: uppercase; }

/* stepper — shared with pf-qty-stepper.js (.pf-qty-btn/.pf-qty-input) and the QPO cards */
.pf-qty, .pf-qty-wrap { display: inline-flex; align-items: center; gap: 4px; }
.pf-qty-btn, .qpo-btn-minus, .qpo-btn-plus { width: 30px; height: 36px; border: 1px solid var(--pf-line); background: var(--pf-field); border-radius: 6px; font: inherit; font-weight: 700; cursor: pointer; color: var(--pf-ink); display: inline-flex; align-items: center; justify-content: center; }
.pf-qty-btn:hover, .qpo-btn-minus:hover, .qpo-btn-plus:hover { background: var(--pf-line); }
.pf-qty-input, input.pf-qty-input, .qpo-quantity-input { width: 40px; height: 36px; border: 1px solid var(--pf-line); text-align: center; font: inherit; font-size: 13px; border-radius: 0; }

/* ---------- listing (category / search / special / brand) ---------- */
.pf-listing { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 16px; }
.pf-listing.no-rail { grid-template-columns: minmax(0, 1fr); }
.pf-rail { display: flex; flex-direction: column; gap: 12px; }
.pf-rail .pf-panel { padding: 14px; }
.pf-rail-title { font-family: var(--pf-font-head); font-weight: 700; font-size: 16px; text-transform: var(--pf-head-transform); color: var(--pf-ink-strong); margin: 0 0 8px; }
.pf-rail-list { display: flex; flex-direction: column; gap: 6px; font-size: 13px; margin: 0; padding: 0; list-style: none; }
.pf-rail-list a { color: var(--pf-ink); display: flex; justify-content: space-between; gap: 8px; }
.pf-rail-list a span.c { color: var(--pf-faint); }
.pf-rail-list a.is-active { color: var(--pf-primary); font-weight: 600; background: var(--pf-select-bg); margin: 0 -8px; padding: 3px 8px; border-radius: var(--pf-radius-sm); }
.pf-rail-list ul { list-style: none; padding-left: 12px; margin: 2px 0 0; display: flex; flex-direction: column; gap: 4px; }
/* rail facets (brand / stock / filter groups / price) */
.pf-facet { padding: 10px 0; border-top: 1px solid var(--pf-line-soft); }
.pf-facet:first-of-type { border-top: 0; padding-top: 0; }
.pf-facet-name { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--pf-muted); margin-bottom: 6px; }
.pf-facet-list { display: flex; flex-direction: column; gap: 4px; }
.pf-facet-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--pf-ink); text-decoration: none; padding: 2px 0; }
.pf-facet-item:hover { color: var(--pf-primary); }
.pf-facet-item .c { margin-left: auto; color: var(--pf-faint); font-size: 12px; }
.pf-facet-box { width: 15px; height: 15px; flex: 0 0 15px; border: 1.5px solid var(--pf-line); border-radius: 3px; background: #fff; position: relative; }
.pf-facet-item.is-on .pf-facet-box { background: var(--pf-primary); border-color: var(--pf-primary); }
.pf-facet-item.is-on .pf-facet-box::after { content: ""; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pf-facet-item.is-on { color: var(--pf-primary); font-weight: 600; }
.pf-facet.is-collapsible .pf-facet-list { max-height: 196px; overflow: hidden; }
.pf-facet.is-collapsible.is-open .pf-facet-list { max-height: none; }
.pf-facet-more { background: none; border: 0; padding: 4px 0 0; font-size: 12px; color: var(--pf-primary); cursor: pointer; }
.pf-facet-active { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.pf-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 3px 8px; background: var(--pf-select-bg); color: var(--pf-primary); border-radius: var(--pf-radius-pill); text-decoration: none; }
.pf-facet-clear { font-size: 12px; color: var(--pf-muted); text-decoration: underline; }
.pf-facet-price-row { display: flex; align-items: center; gap: 6px; }
.pf-facet-price-row input { width: 0; flex: 1 1 0; min-width: 0; height: 32px; padding: 0 8px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); font-size: 13px; }
.pf-facet-price-row .btn { height: 32px; padding: 0 10px; }
.pf-filter-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.pf-filter-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; color: var(--pf-muted); }
.pf-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.pf-pill { height: 30px; padding: 0 10px; background: #fff; border: 1px solid var(--pf-line); color: var(--pf-ink); border-radius: var(--pf-radius-pill); font: inherit; font-size: 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.pf-pill.is-active, .qpo-qty-pill.qpo-pill-active { background: var(--pf-select-bg); border-color: var(--pf-select-line); }
.pf-filter-check { display: flex; gap: 8px; align-items: center; font-size: 13px; cursor: pointer; }
.pf-filter-check span.c { color: var(--pf-faint); }
.pf-listing-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.pf-listing-bar .pf-active { display: flex; gap: 6px; align-items: center; font-size: 12px; flex-wrap: wrap; color: var(--pf-muted); }
.pf-listing-bar .form-select { height: 34px; padding: 4px 28px 4px 10px; font-size: 12px; width: auto; }
.pf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pf-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pf-grid.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pf-grid.cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pf-category-desc { margin-bottom: 14px; }
.pf-subcats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.pf-subcat { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 10px; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--pf-ink); text-align: center; }
.pf-subcat img { width: 72px; height: 72px; object-fit: contain; }
.pagination { margin: 16px 0 0; }
.page-link { color: var(--pf-primary); border-color: var(--pf-line); }
.page-item.active .page-link { background: var(--pf-primary); border-color: var(--pf-primary); color: var(--pf-primary-ink); }
@media (max-width: 1199.98px) { .pf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pf-subcats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .pf-listing { grid-template-columns: minmax(0, 1fr); } .pf-rail { order: 2; } .pf-rail-toggle { display: inline-flex; } }
@media (max-width: 767.98px) { .pf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .pf-subcats { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pf-card-name { font-size: 12px; } }

/* ---------- product page ---------- */
.pf-product { display: grid; grid-template-columns: 5fr 7fr; gap: 0; background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden; }
.pf-product-media { padding: 20px; border-right: 1px solid var(--pf-line-soft); }
.pf-product-gallery { display: grid; grid-template-columns: minmax(0, 1fr) 64px; gap: 12px; }
/* scoped to the product-page image box - .pf-product-main is also the text column in account/order_list (clash broke the order history rows) */
.main-image.pf-product-main { background: var(--pf-panel); border-radius: var(--pf-radius-sm); display: flex; align-items: center; justify-content: center; min-height: 320px; position: relative; }
.main-image.pf-product-main img { max-height: 520px; width: auto; max-width: 100%; }
.pf-product-thumbs { display: flex; flex-direction: column; gap: 8px; max-height: 520px; overflow: auto; }
.pf-product-thumbs a { display: block; border: 2px solid transparent; border-radius: 4px; background: var(--pf-panel); }
.pf-product-thumbs a.is-active, .pf-product-thumbs a:hover { border-color: var(--pf-primary); }
.pf-product-thumbs img { width: 100%; height: 60px; object-fit: contain; }
.pf-product-info { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.pf-product-title { margin: 0; font-family: var(--pf-font-body); font-size: 20px; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--pf-ink-strong); }
.pf-product-title small { color: var(--pf-faint); font-weight: 400; font-size: 14px; }
.pf-product-stats { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--pf-muted); margin: 0; padding: 0; list-style: none; }
.pf-product-stats b { font-weight: 600; color: var(--pf-ink); }
.pf-product-stats .product-manufacturer a { display: inline-flex; align-items: center; gap: 8px; }
.pf-brand-logo { height: 28px; width: auto; max-width: 90px; object-fit: contain; background: #fff; border: 1px solid var(--pf-line-soft); border-radius: var(--pf-radius-sm); padding: 2px 4px; }
.pf-product-stats #warehouses_stock { flex: 0 0 100%; width: auto; max-width: 420px; margin: 4px 0 0; }
.pf-wh-slot:empty { display: none; }
.pf-wh-slot #warehouses_stock { width: 100%; max-width: 420px; margin: 0 0 14px; }
.pf-wh-slot { margin-top: 4px; }   /* warehouses_front injects its stock table into the stats row; give it its own line so the meta items don't float beside a 150px-tall table */
.product-stock.in-stock span, .pf-stock-in { color: var(--pf-ok); font-weight: 600; }
.product-stock.out-of-stock span, .pf-stock-out { color: var(--pf-warn); font-weight: 600; }
.price-wrapper { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; }
.price-wrapper .product-price, .price-wrapper .product-price-new, .price-wrapper .product-price-pricelist { font-size: 24px; font-weight: 600; color: var(--pf-ink-strong); }
.price-wrapper .product-price-new { color: var(--pf-sale); }
.price-wrapper .product-price-old { font-size: 14px; color: var(--pf-faint); text-decoration: line-through; }
.price-wrapper .product-tax, .price-wrapper .product-points { font-size: 12px; color: var(--pf-muted); width: 100%; }
.price-wrapper .discounts { width: 100%; display: flex; gap: 6px; flex-wrap: wrap; }
.price-wrapper .product-discount { font-size: 12px; background: var(--pf-select-bg); border: 1px solid var(--pf-select-line); border-radius: var(--pf-radius-pill); padding: 2px 10px; color: var(--pf-ink); cursor: pointer; font-family: inherit; line-height: 1.5; transition: background .15s, border-color .15s; }
.price-wrapper .product-discount:hover { border-color: var(--pf-primary); }
.price-wrapper .product-discount.is-active { background: var(--pf-primary); border-color: var(--pf-primary); color: #fff; }
.rating-page { display: flex; gap: 10px; align-items: center; font-size: 13px; }
.rating-page .fa-star, .rating-page .fa-star-o, .pf-card-rating .fa-star { color: var(--pf-star, #f2b705); }   /* stars are always gold, whatever the skin accent (red on protradegroup looked like an error) */
.pf-logo-strip { border-left: 3px solid var(--pf-cta); background: var(--pf-panel); border-radius: 0 var(--pf-radius-sm) var(--pf-radius-sm) 0; padding: 12px 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.pf-logo-strip strong { font-size: 15px; color: var(--pf-ink-strong); }
.pf-logo-strip small { display: block; font-size: 12px; color: var(--pf-muted); }
.product-options { display: flex; flex-direction: column; gap: 12px; }
.product-options .options-title { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; color: var(--pf-muted); margin: 0; font-family: var(--pf-font-body); }
.product-options .form-group { display: flex; flex-direction: column; gap: 6px; }
.product-options .form-group.required .control-label::before { content: '* '; color: var(--pf-sale); }
.product-options .control-label { font-size: 12px; color: var(--pf-ink); font-weight: 600; }
.product-options .form-control { max-width: 420px; }
/* swatch tiles (radio/checkbox options with images or colour names) */
.product-options .product-option-radio #input-option-wrap, .product-options .pf-tiles { display: flex; gap: 8px; flex-wrap: wrap; }
.product-options .radio, .product-options .checkbox { display: inline-block; }
.product-options .radio label, .product-options .checkbox label { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 72px; padding: 6px; border: 1px solid var(--pf-line-soft); background: var(--pf-panel); border-radius: var(--pf-radius); font-size: 11px; cursor: pointer; text-align: center; }
.product-options .radio label:has(input:checked), .product-options .checkbox label:has(input:checked) { border: 2px solid var(--pf-select-line); background: var(--pf-select-bg); padding: 5px; }
.product-options .radio input, .product-options .checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.product-options .option-wrapper img { width: 52px; height: 30px; object-fit: cover; border-radius: 5%; display: block; margin: 0 auto 2px; }
/* pfport Option Switcher ("Recommended tapes" etc.) renders image + text rows, not swatch tiles */
.product-options .pf-sw-row { display: block; }
.product-options .pf-sw-row label { flex-direction: row !important; justify-content: flex-start; width: auto; max-width: 420px; text-align: left; font-size: 13px; padding: 8px 10px; gap: 10px !important; flex-wrap: nowrap !important; }
.product-options .pf-sw-row label:has(input:checked) { padding: 7px 9px; }
.product-options .pf-sw-row label img { width: 48px !important; height: 48px !important; flex: 0 0 48px; background: #fff; }
.product-options .pf-sw-row label span { flex: 1 1 auto; line-height: 1.3; }
.product-options .pf-sw-row label input { position: static; width: 14px; height: 14px; opacity: 1; margin: 0; }
.product-options .option-price { display: block; color: var(--pf-muted); font-size: 10px; }
.product-options .radio label.pf-tile-text, .product-options .checkbox label.pf-tile-text { width: auto; min-width: 52px; padding: 8px 12px; flex-direction: row; }
.pf-optdesc-link { font-size: 11px; color: var(--pf-primary); }
/* QPO option cards — restyle only, structure untouched (pfport template) */
.qpo-card { background: var(--pf-surface); border: 1px solid var(--pf-line-soft); border-radius: var(--pf-radius); }
.qpo-card-stock-chip { border-radius: 10px; font-size: 11px; font-weight: 600; }
.qpo-qty-pill { background: var(--pf-select-bg); border: 1px solid var(--pf-select-line); color: var(--pf-ink); border-radius: var(--pf-radius-pill); font-size: 13px; }
.qpo-card-add-btn { background: var(--pf-cta); color: var(--pf-cta-ink); border: 0; border-radius: var(--pf-radius-sm); font-weight: 600; text-transform: uppercase; font-size: 11px; }
.qpo-card-add-btn:hover { background: var(--pf-cta-hover); color: var(--pf-cta-ink); }
/* size-qty grid (QPO multi-size) */
.pf-size-grid { background: var(--pf-panel); border: 1px solid var(--pf-line-soft); border-radius: var(--pf-radius); padding: 14px; }
.pf-size-grid-title { font-weight: 600; font-size: 13px; margin-bottom: 10px; }
.pf-size-grid-cells { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.pf-size-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 600; text-align: center; }
.pf-size-grid input { height: 32px; border: 1px solid var(--pf-line); border-radius: 4px; text-align: center; font: inherit; font-size: 12px; width: 100%; }
/* buy row — contract: .button-group-page, #input-quantity (name=quantity), #button-cart */
.button-group-page { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding-top: 4px; }
.button-group-page .buttons-wrapper { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; width: 100%; }
.button-group-page .stepper-group { display: flex; gap: 6px; align-items: center; }
.button-group-page .stepper-group .control-label { position: absolute; left: -9999px; }
.button-group-page #input-quantity, .button-group-page input[name="quantity"] { width: 56px; height: 40px; }
.button-group-page .pf-qty-btn { height: 40px; width: 36px; }
#button-cart { height: 40px; padding: 0 18px; background: var(--pf-cta); color: var(--pf-cta-ink); border: 0; border-radius: var(--pf-radius-sm); font: inherit; font-weight: 600; font-size: 12px; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
#button-cart:hover { background: var(--pf-cta-hover); color: var(--pf-cta-ink); }
.button-group-page .btn-quote { height: 40px; background: #fff; color: var(--pf-sale); border: 1px solid var(--pf-sale); border-radius: var(--pf-radius-sm); font-weight: 600; font-size: 12px; text-transform: uppercase; padding: 0 14px; display: inline-flex; align-items: center; gap: 6px; }
.button-group-page .btn-ask { height: 40px; background: var(--pf-ok); color: #fff; border: 0; border-radius: var(--pf-radius-sm); font-weight: 600; font-size: 12px; text-transform: uppercase; padding: 0 14px; display: inline-flex; align-items: center; gap: 6px; }
.button-group-page .wishlist-compare { display: flex; gap: 10px; font-size: 12px; margin-left: auto; }
.button-group-page .wishlist-compare a { color: var(--pf-muted); }
.pf-minimum { font-size: 12px; color: var(--pf-muted); }
/* tabs */
.pf-product-tabs { margin-top: 20px; }
.pf-product-tabs .nav-tabs { border-bottom: 1px solid var(--pf-line); gap: 4px; }
.pf-product-tabs .nav-link { color: var(--pf-muted); font-weight: 600; border: 0; border-bottom: 3px solid transparent; padding: 10px 16px; font-family: var(--pf-font-body); }
.pf-product-tabs .nav-link.active { color: var(--pf-ink-strong); border-bottom-color: var(--pf-primary); background: none; }
.pf-product-tabs .tab-content { background: var(--pf-surface); border: 1px solid var(--pf-line); border-top: 0; border-radius: 0 0 var(--pf-radius) var(--pf-radius); padding: 20px; }
.pf-product-tabs .table { font-size: 13px; }
.pf-related { margin-top: 24px; }
.pf-section-title { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.pf-section-title h2 { margin: 0; font-size: 24px; }
@media (max-width: 991.98px) {
  .pf-product { grid-template-columns: minmax(0, 1fr); }
  .pf-product-media { border-right: 0; border-bottom: 1px solid var(--pf-line-soft); padding: 14px; }
  .pf-product-gallery { grid-template-columns: minmax(0, 1fr); }
  .pf-product-thumbs { flex-direction: row; max-height: none; overflow-x: auto; max-width: 100%; }
  .pf-product-media { max-width: 100%; overflow: hidden; }
  .pf-product-thumbs a { flex: 0 0 64px; }
  .pf-product-info { padding: 14px; }
}
@media (max-width: 575.98px) {
  .button-group-page .buttons-wrapper { gap: 8px; }
  /* PF 2026-10-11 (Dave): qty stepper and Add to cart on one line on phones; Add to quote full width under it */
  .button-group-page .stepper-group { flex-wrap: nowrap; width: 100%; }
  #button-cart { flex: 1 1 auto; min-width: 0; justify-content: center; height: 44px; font-size: 13px; padding: 0 10px; }
  .stepper-group #button-cart { margin-left: 4px; }
  .button-group-page .btn-quote, #button-quote { flex: 1 1 100%; }
  .button-group-page .btn-quote, .button-group-page .btn-ask { flex: 1; justify-content: center; }
}

/* ---------- home ---------- */
.pf-hero { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 20px 0 24px; }
.pf-hero-main { grid-column: span 2; background: var(--pf-dark); color: #fff; padding: 36px; border-radius: var(--pf-radius); display: flex; flex-direction: column; justify-content: flex-end; min-height: 250px; position: relative; overflow: hidden; }
.pf-hero-main::after { content: ''; position: absolute; right: -40px; top: -40px; width: 260px; height: 260px; border: 28px solid rgba(255,255,255,.06); border-radius: 50%; }
.pf-hero-kicker { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--pf-accent); font-weight: 600; }
.pf-hero-main h1 { color: #fff; font-size: 48px; line-height: .98; margin: 8px 0 10px; }
.pf-hero-main p { margin: 0 0 18px; max-width: 540px; font-size: 15px; color: var(--pf-dark-ink); }
.pf-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }
.pf-hero-ctas .pf-btn-white { background: #fff; color: var(--pf-dark); font-family: var(--pf-font-head); font-weight: 700; text-transform: var(--pf-head-transform); font-size: 17px; padding: 10px 20px; border-radius: var(--pf-radius-sm); }
.pf-hero-ctas .pf-btn-ghost { border: 2px solid #fff; color: #fff; font-family: var(--pf-font-head); font-weight: 700; text-transform: var(--pf-head-transform); font-size: 17px; padding: 8px 20px; border-radius: var(--pf-radius-sm); }
.pf-hero-side { display: flex; flex-direction: column; gap: 16px; }
.pf-hero-side .pf-panel { padding: 20px; flex: 1; }
.pf-hero-side .pf-panel h3 { margin: 0 0 6px; font-size: 20px; }
.pf-hero-side .pf-panel p { margin: 0 0 12px; font-size: 13px; color: var(--pf-muted); }
.pf-tiles-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 12px 0; }
.pf-tile { background: var(--pf-surface); border: 2px solid var(--pf-line); border-radius: var(--pf-radius); padding: 14px; color: var(--pf-ink-strong); font-family: var(--pf-font-head); font-weight: 600; font-size: 15px; text-transform: var(--pf-head-transform); display: flex; flex-direction: column; gap: 8px; }
.pf-tile:hover { border-color: var(--pf-primary); color: var(--pf-primary); }
.pf-home-section { margin: 24px 0; }
.pf-brands { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.pf-brands a { background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); padding: 8px 14px; display: flex; align-items: center; height: 56px; }
.pf-brands img { max-height: 36px; width: auto; }
.pf-info-blocks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pf-info-block { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 16px; display: flex; gap: 12px; align-items: flex-start; }
.pf-info-block i { font-size: 22px; color: var(--pf-primary); }
.pf-info-block strong { display: block; font-size: 14px; color: var(--pf-ink-strong); }
.pf-info-block span { font-size: 12px; color: var(--pf-muted); }
@media (max-width: 991.98px) { .pf-hero { grid-template-columns: minmax(0, 1fr); } .pf-hero-main { grid-column: auto; } .pf-tiles-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pf-info-blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-hero-main h1 { font-size: 36px; } }
@media (max-width: 575.98px) { .pf-tiles-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-info-blocks { grid-template-columns: minmax(0, 1fr); } .pf-hero-main { padding: 22px; } .pf-hero-main h1 { font-size: 30px; } }

/* ---------- footer ---------- */
.pf-footer { background: var(--pf-dark); color: var(--pf-dark-ink); padding: 32px 0 20px; font-size: 13px; margin-top: 32px; }
.pf-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pf-footer h5 { font-family: var(--pf-font-head); font-weight: 700; font-size: 17px; color: #fff; text-transform: var(--pf-head-transform); margin: 0 0 10px; }
.pf-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.pf-footer a { color: var(--pf-dark-ink); }
.pf-footer a:hover { color: #fff; }
.pf-footer-bar { border-top: 1px solid rgba(255,255,255,.12); margin-top: 24px; padding-top: 16px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--pf-faint); }
.pf-footer-bar a { color: var(--pf-faint); }
@media (max-width: 767.98px) { .pf-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- misc OC pages ---------- */
:is(.pf-page, #main-content > .container) .card { border-color: var(--pf-line); border-radius: var(--pf-radius); }
:is(.pf-page, #main-content > .container) .table > :not(caption) > * > * { border-color: var(--pf-line-soft); }
.alert { border-radius: var(--pf-radius-sm); }
.pf-preview-badge { position: fixed; bottom: 12px; right: 12px; z-index: 10000; background: #ff3b3b; color: #fff; font-size: 11px; font-weight: 700; padding: 6px 10px; border-radius: 999px; letter-spacing: .5px; }

/* ---------- overrides that need id-level specificity (core stylesheet.css) ---------- */
#top.pf-util { background: var(--pf-dark); color: var(--pf-dark-ink); padding: 0; margin: 0; border: 0; }
#top.pf-util .container { padding-top: 6px; padding-bottom: 6px; }
#menu.navbar { background: transparent; border: 0; border-radius: 0; }
#menu .nav > li > a { color: var(--pf-menu-ink); }
#menu .nav > li > a:hover, #menu .nav > li.show > a { background: var(--pf-menu-active); color: var(--pf-menu-ink); }
#menu .dropdown-menu a { color: var(--pf-ink); }
#menu .dropdown-menu a:hover { background: none; color: var(--pf-primary); }
#menu #category { display: none; }
header .pf-header { border-bottom: var(--pf-header-border); }
#logo img { max-height: 48px; }

/* ---------- POS search (markup from core common/search.twig + pf-pos-search.js) ---------- */
.pf-pos-search { position: relative; width: 100%; }
.pf-pos-search__field { position: relative; display: flex; align-items: center; margin: 0; }
.pf-pos-search__icon { position: absolute; left: 14px; color: var(--pf-faint); pointer-events: none; font-size: 15px; z-index: 2; }
.pf-pos-search__input, .pf-pos-search__input.form-control { width: 100%; height: 44px; font-size: 14px; padding: 0 44px 0 40px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); background: #fff; color: var(--pf-ink); box-shadow: none; }
.pf-pos-search__input:focus { border-color: var(--pf-select-line); box-shadow: 0 0 0 3px var(--pf-select-bg); outline: none; }
.pf-pos-search__kbd { position: absolute; right: 12px; font-size: 11px; color: var(--pf-faint); border: 1px solid var(--pf-line); border-radius: 4px; padding: 1px 6px; background: var(--pf-panel); font-family: var(--pf-font-body); }
.pf-pos-results { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 1050; background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); box-shadow: var(--pf-shadow); max-height: 60vh; overflow-y: auto; padding: 6px; }
.pf-pos-results[hidden] { display: none; }
.pf-pos-result { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: var(--pf-radius-sm); cursor: pointer; color: var(--pf-ink); }
.pf-pos-result:hover, .pf-pos-result[aria-selected="true"] { background: var(--pf-select-bg); }
.pf-pos-result__img { width: 44px; height: 44px; object-fit: contain; flex: 0 0 44px; }
.pf-pos-result__name { font-weight: 600; font-size: 13px; }
.pf-pos-result__meta { font-size: 11px; color: var(--pf-muted); }
.pf-pos-result__price { margin-left: auto; font-weight: 700; color: var(--pf-ink-strong); white-space: nowrap; }
.pf-pos-results__empty { padding: 20px; text-align: center; color: var(--pf-muted); font-size: 13px; }
@media (max-width: 767.98px) { .pf-header .container { gap: 10px; } .pf-brand { min-width: 0; } .pf-search { order: 3; flex: 1 1 100%; } .pf-head-nav { margin-left: auto; } }

/* pf_quote_basket injected controls (#button-quote after #button-cart, #pf-qb-note under the row, #pf-qb-tile in header) */
#button-quote.btn-cart { height: 40px; margin-left: 0 !important; background: #fff !important; color: var(--pf-sale) !important; box-shadow: inset 0 0 0 1px var(--pf-sale); border-radius: var(--pf-radius-sm); font-size: 12px; text-transform: uppercase; padding: 0 14px; display: inline-flex; align-items: center; }
#pf-qb-note { font-size: 12px; color: var(--pf-muted); }
#pf-qb-tile { border-radius: var(--pf-radius-sm); min-height: 38px; }
.pf-head-nav #pf-qb-tile { margin-left: 0; }

/* ---------- pf-qty-stepper.js (wraps any input[name=quantity]: .pf-qty-group > .pf-qty__btn--minus, input, .pf-qty__btn--plus) ---------- */
.pf-qty-group { display: inline-flex; align-items: center; gap: 0; }
.pf-qty__btn { width: 36px; height: 40px; border: 1px solid var(--pf-line); background: var(--pf-field); color: var(--pf-ink); font: inherit; font-size: 18px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.pf-qty__btn--minus { border-radius: 6px 0 0 6px; }
.pf-qty__btn--plus { border-radius: 0 6px 6px 0; }
.pf-qty__btn:hover { background: var(--pf-line); }
.pf-qty-group input[name="quantity"], .pf-qty-group .form-control { width: 56px; height: 40px; border-radius: 0; text-align: center; border-left: 0; border-right: 0; }
.pf-qty-group + #button-cart, .stepper-group #button-cart { margin-left: 8px; }
.pf-card-actions .pf-qty__btn { width: 30px; height: 36px; font-size: 15px; }
.pf-card-actions .pf-qty-group input { width: 40px; height: 36px; font-size: 13px; }

/* breadcrumb: plain text trail, no chevron blocks from core stylesheet */
#product-product .breadcrumb, :is(.pf-page, #main-content > .container) .breadcrumb, :is(.pf-page, #main-content > .container) > .breadcrumb { background: none; padding: 0; margin: 0 0 12px; border: 0; box-shadow: none; }
.breadcrumb-item, .breadcrumb li { background: none !important; padding: 0 !important; margin: 0 !important; float: none; }
.breadcrumb-item a, .breadcrumb li a { background: none !important; padding: 0 !important; color: var(--pf-muted); font-size: 12px; }
.breadcrumb-item a::before, .breadcrumb-item a::after, .breadcrumb li a::before, .breadcrumb li a::after { display: none !important; }
.breadcrumb-item + .breadcrumb-item::before { content: '›' !important; color: var(--pf-faint); padding: 0 6px !important; float: none; }

/* tags: plain inline list */
.tags { font-size: 12px; color: var(--pf-muted); }
/* PF 2026-10-19: product tags as chips (tag data cleaned the same day) */
.pf-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pf-tags .pf-tags-label { color: var(--pf-muted); margin-right: 2px; }
.pf-tags a.pf-tag { display: inline-block; padding: 3px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-pill, 14px); background: var(--pf-panel); color: var(--pf-ink); font-size: 12px; line-height: 1.4; text-decoration: none; }
.pf-tags a.pf-tag:hover { border-color: var(--pf-primary); color: var(--pf-primary); background: var(--pf-surface); }

/* QPO multi-size grid + "available options" title from product_v2.css */
.qpo-table, .qpo-mobile-mode { border: 1px solid var(--pf-line-soft); border-radius: var(--pf-radius); background: var(--pf-panel); }
.options-title.title::after { background: var(--pf-primary); }

/* tax toggle (pf_tax_toggle) sits in the header utility row, not over the cart */
#top.pf-util #pf-tax-toggle { position: static; margin: 0 0 0 8px; }
#top.pf-util .pf-util-right { margin: 0; display: flex; gap: 18px; align-items: center; }
#top.pf-util .pf-util-right li { list-style: none; display: inline-flex; align-items: center; }
#top.pf-util .pf-tt-trigger { background: rgba(255,255,255,.12); }

/* ---------- side columns (modules) ---------- */
.pf-column { display: flex; flex-direction: column; gap: 12px; }
.pf-column .pf-panel { padding: 14px; }
.pf-column > .card, .pf-column > div:not(.pf-panel):not(.pf-cat-tree) { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 14px; }
.pf-cat-tree .pf-rail-list > li > ul { margin-top: 4px; border-left: 2px solid var(--pf-line); padding-left: 10px; }
.breadcrumb li::after, .breadcrumb li::before, .breadcrumb-item::after { display: none !important; content: none !important; }
.breadcrumb-item + .breadcrumb-item::before { display: inline !important; content: '›' !important; }
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
/* page shells with side columns (account etc.) */
:is(.pf-page, #main-content > .container) > .row > #column-left, :is(.pf-page, #main-content > .container) > .row > #column-right { flex: 0 0 260px; max-width: 260px; }
@media (max-width: 767.98px) { :is(.pf-page, #main-content > .container) > .row > #column-left, :is(.pf-page, #main-content > .container) > .row > #column-right { flex: 1 1 100%; max-width: 100%; } }
/* core stylesheet.css id-level overrides on listings */
#product-list.pf-grid { display: grid; flex-wrap: nowrap; }
#product-list .product-thumb, .pf-grid .product-thumb { margin: 0; border-radius: var(--pf-radius); }
.product-thumb .pf-card-actions .btn, .product-thumb .pf-card-actions .pf-btn-outline { color: var(--pf-cta) !important; }
.product-thumb .pf-card-actions .pf-btn-cta { color: var(--pf-cta-ink) !important; }
.product-thumb .pf-card-name a, .product-thumb .pf-card-meta a { color: inherit; }
.product-thumb .image { border: 0; }
.product-thumb .content { padding: 12px; }

/* home additions */
.pf-hero-title { color: #fff; font-size: 48px; line-height: .98; margin: 8px 0 10px; }
.pf-tiles-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pf-tiles-grid .pf-tile { align-items: center; text-align: center; font-size: 13px; padding: 12px 8px; gap: 6px; }
.pf-tiles-grid .pf-tile img { width: 72px; height: 72px; object-fit: contain; }
.pf-home .pf-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 991.98px) { .pf-tiles-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pf-hero-title { font-size: 36px; } }
@media (max-width: 575.98px) { .pf-tiles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-hero-title { font-size: 30px; } }
.pf-hero-main .pf-btn-accent { background: var(--pf-hero-cta, var(--pf-accent)); color: var(--pf-hero-cta-ink, var(--pf-accent-ink)); }
.pf-menu .nav-link.dropdown-toggle::after { border-top-color: currentColor; opacity: .7; }

/* ---------- blog (core CMS, Journal blog ported) ---------- */
.pf-blog-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin: 4px 0 16px; }
.pf-blog-head .pf-hero-kicker { color: var(--pf-primary); }
.pf-blog-head .pf-page-title { margin: 4px 0 0; }
.pf-blog-intro { color: var(--pf-muted); max-width: 70ch; margin-top: 8px; }
.pf-blog-intro p:last-child { margin-bottom: 0; }
.pf-blog-search { display: flex; gap: 6px; flex: 0 0 320px; }
.pf-blog-search .form-control { height: 40px; border-radius: var(--pf-radius-pill); padding-left: 16px; }
.pf-blog-search .btn { width: 40px; height: 40px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.pf-blog-topics { margin: 0 0 16px; }
.pf-blog-topics .pf-pill { text-decoration: none; }
.pf-blog-topics .pf-pill:hover { border-color: var(--pf-primary); }
.pf-blog-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; font-size: 13px; color: var(--pf-muted); }
.pf-blog-sort { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.pf-blog-sort .form-select { width: auto; border-radius: var(--pf-radius-pill); }
.pf-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pf-post-card { padding: 0; }
.pf-post-card:hover { box-shadow: var(--pf-shadow); }
.pf-post-media { display: block; aspect-ratio: 16 / 10; background: var(--pf-field); overflow: hidden; }
.pf-post-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.pf-post-card:hover .pf-post-media img { transform: scale(1.03); }
.pf-post-media-empty { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 40px; color: var(--pf-faint); }
.pf-post-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pf-post-topic { font-size: 11px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--pf-primary); text-decoration: none; }
.pf-post-title { font-size: 18px; line-height: 1.25; margin: 0; }
.pf-post-title a { color: var(--pf-ink-strong); text-decoration: none; }
.pf-post-title a:hover { color: var(--pf-primary); }
.pf-post-excerpt { font-size: 14px; color: var(--pf-muted); margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pf-post-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--pf-muted); margin-top: auto; padding-top: 6px; align-items: center; }
.pf-post-meta i { margin-right: 3px; }
.pf-post-meta a { color: inherit; }
.pf-post-more { margin-left: auto; font-weight: 700; color: var(--pf-primary) !important; text-decoration: none; }
.pf-post-card.is-lead { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; }
.pf-post-card.is-lead .pf-post-media { aspect-ratio: auto; min-height: 320px; }
.pf-post-card.is-lead .pf-post-body { padding: 28px; justify-content: center; }
.pf-post-card.is-lead .pf-post-title { font-size: 28px; }
.pf-post-card.is-lead .pf-post-excerpt { -webkit-line-clamp: 5; font-size: 15px; }
.pf-blog-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; font-size: 13px; color: var(--pf-muted); }
.pf-blog-empty { padding: 32px; text-align: center; }

/* single post */
.pf-post { max-width: 860px; margin: 0 auto; }
.pf-post-head { text-align: center; margin: 8px 0 20px; }
.pf-post-head h1 { font-size: 34px; line-height: 1.15; margin: 6px 0 12px; }
.pf-post-head .pf-post-meta { justify-content: center; margin-top: 0; }
.pf-post-cover { margin: 0 0 24px; border-radius: var(--pf-radius); overflow: hidden; background: var(--pf-field); max-height: 460px; }
.pf-post-cover img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; display: block; }
.pf-prose { font-size: 16px; line-height: 1.7; color: var(--pf-ink); }
.pf-prose h1, .pf-prose h2, .pf-prose h3, .pf-prose h4 { margin: 1.4em 0 .5em; line-height: 1.25; }
.pf-prose h1 { font-size: 26px; } .pf-prose h2 { font-size: 23px; } .pf-prose h3 { font-size: 19px; }
.pf-prose h1:first-child, .pf-prose h2:first-child { margin-top: 0; }
.pf-prose p { margin: 0 0 1em; }
.pf-prose img { max-width: 100%; height: auto; border-radius: var(--pf-radius-sm); }
.pf-prose a { color: var(--pf-primary); }
.pf-prose ul, .pf-prose ol { padding-left: 1.4em; margin-bottom: 1em; }
.pf-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.2em; font-size: 14px; }
.pf-prose table td, .pf-prose table th { border: 1px solid var(--pf-line); padding: 8px 10px; }
.pf-prose blockquote { border-left: 4px solid var(--pf-accent); margin: 1em 0; padding: 6px 16px; color: var(--pf-muted); background: var(--pf-panel); }
.pf-prose iframe, .pf-prose video { max-width: 100%; }
.pf-prose span[style*="font-size"], .pf-prose span[style*="font-family"] { font-size: inherit !important; font-family: inherit !important; }
.pf-prose [style*="text-align: center"] { text-align: center; }
.pf-post-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 24px 0 0; font-size: 13px; color: var(--pf-muted); }
.pf-post-tags .pf-pill { height: 26px; font-size: 12px; text-decoration: none; }
.pf-blog-more { margin-top: 36px; }
.pf-blog-comments { padding: 20px; margin-top: 28px; }
.pf-post-back { margin-top: 28px; text-align: center; }
@media (max-width: 991.98px) {
  .pf-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-post-card.is-lead { grid-template-columns: 1fr; }
  .pf-post-card.is-lead .pf-post-media { min-height: 0; aspect-ratio: 16 / 9; }
  .pf-post-card.is-lead .pf-post-body { padding: 18px; }
  .pf-post-card.is-lead .pf-post-title { font-size: 22px; }
  .pf-blog-head { flex-direction: column; align-items: stretch; }
  .pf-blog-search { flex: 0 0 auto; }
}
@media (max-width: 575.98px) {
  .pf-blog-grid { grid-template-columns: 1fr; }
  .pf-post-head h1 { font-size: 26px; }
  .pf-prose { font-size: 15px; }
}

/* phone: no horizontal scroll — grid children may shrink, nested bootstrap rows stay inside their parent */
.pf-product > * { min-width: 0; }
@media (max-width: 767.98px) {
  #content > .row, .pf-related .row, .pf-product-tabs .row, #content form > .row { margin-left: 0; margin-right: 0; --bs-gutter-x: 12px; }
  .table-responsive { margin: 0; }
}
#shopping-cart .buttons.row { margin-left: 0; margin-right: 0; gap: 10px 0; }
@media (max-width: 575.98px) { #shopping-cart .buttons.row > .col { flex: 1 1 100%; } #shopping-cart .buttons.row .pf-cart-actions { justify-content: flex-start; } }

/* ---------- cart page: next-step accordion + buttons ---------- */
.cart-panels .title { font-size: 20px; margin: 20px 0 6px; }
.cart-panels > p { color: var(--pf-muted); margin-bottom: 12px; }
.cart-panels .accordion-item { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); margin-bottom: 8px; overflow: hidden; }
.cart-panels .accordion-header { margin: 0; font-size: 15px; }
.cart-panels .accordion-button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 12px 16px; border: 0; background: var(--pf-surface); color: var(--pf-ink-strong); font: 600 15px/1.3 var(--pf-font-body); text-align: left; cursor: pointer; box-shadow: none; }
.cart-panels .accordion-button::after { content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 12px; color: var(--pf-muted); transition: transform .2s; background: none; width: auto; height: auto; margin-left: 10px; }
.cart-panels .accordion-button:not(.collapsed) { background: var(--pf-panel); color: var(--pf-primary); }
.cart-panels .accordion-button:not(.collapsed)::after { transform: rotate(180deg); color: var(--pf-primary); }
.cart-panels .accordion-body { padding: 14px 16px 16px; border-top: 1px solid var(--pf-line-soft); }
.cart-panels .accordion-body .col-form-label { font-weight: 600; font-size: 14px; }
.btn-default, .btn-light { background: #fff; color: var(--pf-ink-strong); border: 1px solid var(--pf-line); font-weight: 600; border-radius: var(--pf-radius-sm); }
.btn-default:hover, .btn-light:hover { background: var(--pf-panel); color: var(--pf-ink-strong); border-color: var(--pf-muted); }
#shopping-cart .buttons .btn-default { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 44px; padding: 0 18px; }
#shopping-cart .buttons .btn-default::before { content: "\f060"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 8px; font-size: 12px; }
#shopping-cart .table th { font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--pf-muted); background: var(--pf-panel); }
#shopping-cart .table td { vertical-align: middle; }
#shopping-cart .btn-danger { width: var(--pf-step-size, 34px); height: var(--pf-step-size, 34px); display: inline-flex; align-items: center; justify-content: center; padding: 0; }
#shopping-cart .btn-danger::before { content: "\f2ed"; font-family: "Font Awesome 6 Free"; font-weight: 400; }
#shopping-cart .btn-danger i { display: none; }
@media (max-width: 575.98px) { #shopping-cart .table td, #shopping-cart .table th { padding: 8px 6px; font-size: 13px; } }
.accordion-collapse.collapse.show { display: block; }
#shopping-cart .buttons .btn-default { color: var(--pf-ink-strong) !important; text-transform: none !important; font-size: 14px !important; }

/* tax toggle slot in the header nav (pf_tax_toggle inserts #pf-tax-toggle after .desktop-search-wrapper) */
.pf-tt-slot { display: inline-block; width: 4px; height: 24px; }
.pf-head-nav .pf-tt-host { margin: 0 4px 0 -4px; }
.pf-head-nav .pf-tt-trigger { height: 38px; border-radius: var(--pf-radius-sm); padding: 0 12px; }
@media (max-width: 767.98px) { .pf-head-nav .pf-tt-trigger { width: 38px; height: 38px; padding: 0; } }
/* phone: one-line utility bar (trade CTA + phone only) */
@media (max-width: 767.98px) {
  .pf-util .container { flex-wrap: nowrap; justify-content: center; gap: 12px; }
  .pf-util-left { display: none; }
  .pf-util-right { gap: 14px; margin: 0; white-space: nowrap; }
  .pf-head-nav .pf-tt-host { margin: 0; }
}
/* defensive: beat any leftover Journal rules (Lightning critical CSS cached from the old theme) */
:is(.pf-page, #main-content > .container) > .row > #content, :is(.pf-page, #main-content > .container) > .row > #column-left, :is(.pf-page, #main-content > .container) > .row > #column-right { padding-top: 0; padding-bottom: 0; padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5); }
:is(.pf-page, #main-content > .container) > .row > #content > .row > div { padding-inline: calc(var(--bs-gutter-x, 1.5rem) * .5); }

/* ---------- home hero slider ---------- */
.pf-slider { padding: 0; justify-content: stretch; }
.pf-slider .carousel-inner, .pf-slider .carousel-item { height: 100%; }
.pf-slide { display: grid; grid-template-columns: 1.15fr 1fr; min-height: 380px; height: 100%; }
.pf-slide-text { padding: 36px 36px 54px; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 1; }
.pf-slide-text .pf-hero-title { color: #fff; font-size: 40px; line-height: 1.02; margin: 8px 0 12px; }
.pf-slide-text p { margin: 0 0 20px; font-size: 15px; color: var(--pf-dark-ink); max-width: 56ch; }
.pf-slide-media { position: relative; min-height: 240px; }
.pf-slide-media::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--pf-dark) 0%, rgba(0,0,0,0) 35%); z-index: 1; }
.pf-slide-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pf-slider::after { display: none; }
.pf-slider-dots { margin: 0; bottom: 14px; left: 36px; right: auto; justify-content: flex-start; gap: 6px; }
.pf-slider-dots button { width: 28px; height: 4px; border: 0; border-radius: 2px; background: rgba(255,255,255,.45); opacity: 1; margin: 0; }
.pf-slider-dots button.active { background: var(--pf-accent); }
.pf-slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(0,0,0,.35); color: #fff; display: inline-flex; align-items: center; justify-content: center; z-index: 2; cursor: pointer; opacity: 0; transition: opacity .2s; }
.pf-slider-arrow.prev { left: 12px; } .pf-slider-arrow.next { right: 12px; }
.pf-slider:hover .pf-slider-arrow, .pf-slider-arrow:focus-visible { opacity: 1; }
.pf-slider-arrow:hover { background: var(--pf-accent); color: var(--pf-accent-ink); }
.pf-seo-copy { background: var(--pf-surface); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 24px 28px; }
.pf-seo-copy h2 { font-size: 24px; margin: 0 0 10px; }
.pf-seo-copy p { margin: 0 0 10px; color: var(--pf-muted); font-size: 15px; max-width: 95ch; }
.pf-seo-copy p:last-child { margin-bottom: 0; }
.pf-seo-copy a { color: var(--pf-primary); font-weight: 600; }
@media (max-width: 991.98px) { .pf-slide { grid-template-columns: 1fr; } .pf-slide-media { display: none; } .pf-slide-text { padding: 24px 24px 44px; } .pf-slide-text .pf-hero-title { font-size: 32px; } .pf-slider-dots { left: 24px; } .pf-slider-arrow { display: none; } }
@media (max-width: 575.98px) { .pf-slide { min-height: 0; } .pf-slide-text { padding: 20px 20px 40px; } .pf-slide-text .pf-hero-title { font-size: 28px; } .pf-seo-copy { padding: 18px; } .pf-slider-dots { left: 20px; } }
.pf-slide-text .pf-hero-kicker { color: var(--pf-hero-cta, var(--pf-accent)); }
.pf-seo-copy a, .pf-hero-side a, .pf-home a { text-transform: none; }
.pf-hero-side .pf-panel { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.pf-hero-side .pf-panel .btn { align-self: flex-start; }
.pf-hero-ctas > a { display: inline-flex; align-items: center; width: auto; }
.pf-slide-text { padding-right: 20px; }
.pf-slide-text .pf-hero-ctas { gap: 10px; }
.pf-slide-text .pf-hero-ctas > a { padding-left: 16px; padding-right: 16px; }
.pf-post-card.is-lead .pf-post-media { max-height: 380px; }

/* ---------- phone header: one row (logo | $ account cart), search underneath, slim category bar ---------- */
@media (max-width: 767.98px) {
  .pf-header .container { padding-top: 8px; padding-bottom: 8px; gap: 8px 6px; justify-content: space-between; align-items: center; }
  .pf-brand { flex: 1 1 auto; min-width: 0; }
  .pf-brand img { max-height: 34px; }
  .pf-head-nav { gap: 6px; margin-left: 0; }
  .pf-head-nav > a, .pf-head-nav .dropdown > a { padding: 0 10px; height: 38px; }
  .pf-head-nav .pf-tt-trigger { width: 38px; height: 38px; padding: 0; }
  #cart > a.cart-heading { padding: 0 10px; height: 38px; gap: 6px; }
  #cart > a.cart-heading #cart-total { display: none; }
  .pf-search { order: 3; flex: 1 1 100%; margin-top: 2px; }
  .pf-pos-search__input, .pf-search input { height: 40px; }
  .pf-menu .navbar-toggler { padding: 10px 14px; font-size: 15px; width: 100%; text-align: left; }
  .pf-menu .container { min-height: 0; }
  .pf-util { font-size: 12px; }
  .pf-slide-text { padding: 18px 16px 36px; }
  .pf-slide-text .pf-hero-title { font-size: 26px; }
  .pf-slide-text p { font-size: 14px; margin-bottom: 14px; }
  .pf-hero { margin-top: 12px; gap: 10px; }
  :is(.pf-page, #main-content > .container) { padding-top: 12px; }
}

/* ---------- phone/tablet category menu (accordion) ---------- */
.pf-mmenu { margin: 0; padding: 6px 0 10px; background: var(--pf-menu-bg); }
.pf-mmenu-item { border-top: 1px solid rgba(255,255,255,.12); }
.pf-mmenu-row { display: flex; align-items: stretch; }
.pf-mmenu-link { flex: 1; padding: 12px 16px; color: var(--pf-menu-ink); font-family: var(--pf-font-head); font-weight: 600; font-size: 16px; text-transform: var(--pf-head-transform); letter-spacing: var(--pf-head-tracking); text-decoration: none; }
.pf-mmenu-blog { color: var(--pf-accent); }
.pf-mmenu-toggle { width: 52px; border: 0; border-left: 1px solid rgba(255,255,255,.12); background: transparent; color: var(--pf-menu-ink); display: inline-flex; align-items: center; justify-content: center; }
.pf-mmenu-toggle i { transition: transform .2s; font-size: 13px; }
.pf-mmenu-toggle:not(.collapsed) i { transform: rotate(180deg); }
.pf-mmenu-toggle:not(.collapsed), .pf-mmenu-item:has(.pf-mmenu-toggle:not(.collapsed)) .pf-mmenu-row { background: rgba(0,0,0,.18); }
.pf-mmenu-sub { margin: 0; padding: 6px 0; background: #fff; }
.pf-mmenu-sub li a { display: block; padding: 10px 16px 10px 24px; color: var(--pf-ink); font-size: 15px; text-decoration: none; border-bottom: 1px solid var(--pf-line-soft); }
.pf-mmenu-sub li:last-child a { border-bottom: 0; }
.pf-mmenu-all a { font-weight: 700; color: var(--pf-primary) !important; }
@media (max-width: 991.98px) { .pf-menu .navbar-collapse { max-height: 80vh; overflow-y: auto; } }

/* phone: product cards two-up everywhere (home included), stepper + Add stacked inside the card */
@media (max-width: 767.98px) {
  .pf-home .pf-grid, .pf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pf-card-actions { flex-wrap: wrap; gap: 6px; }
  .pf-card-actions .pf-qty, .pf-card-actions .stepper { flex: 1 1 100%; justify-content: center; }
  .pf-card-actions .pf-btn-cta, .pf-card-actions .btn-cart { flex: 1 1 100%; }
  .pf-card-name { font-size: 13px; }
  .pf-card-body { padding: 10px; }
}
@media (max-width: 400px) { .pf-grid { gap: 6px; } }

/* menu bar: no stray margins, tap target = bar height, even padding */
.pf-menu #menu, .pf-menu .navbar { margin: 0 !important; padding: 0; min-height: 0; }
.pf-menu .navbar-toggler { margin: 0; padding: 12px 14px; line-height: 1.2; border-radius: 0; }
@media (max-width: 991.98px) { .pf-mmenu { padding: 0; } .pf-mmenu-item:last-child { border-bottom: 1px solid rgba(255,255,255,.12); } }

/* sticky header: logo/search/cart row stays at the top; on phones the search slips away once scrolled */
.pf-header { position: sticky; top: 0; z-index: 1030; }
.pf-body.is-scrolled .pf-header { box-shadow: 0 4px 14px rgba(0,0,0,.12); }
@media (max-width: 767.98px) {
  .pf-body.is-scrolled .pf-search { display: none; }
  .pf-body.is-scrolled .pf-header .container { padding-top: 6px; padding-bottom: 6px; }
}
/* slider fills the hero row exactly (no gap under it when the side panels are taller) */
.pf-hero { align-items: stretch; }
.pf-slider { display: flex; flex-direction: column; height: 100%; }
.pf-slider .carousel-inner { flex: 1 1 auto; height: auto; display: flex; }
.pf-slider .carousel-item { height: auto; min-height: 100%; }
.pf-slider .carousel-item.active { display: flex; }
/* crossfade: every slide sits in the same grid cell, track height = tallest slide (JS sets min-height too) */
.pf-slider.carousel-fade .carousel-inner { display: grid; grid-template-rows: minmax(0, 1fr); }   /* PF 2026-10-19: the slide fills the panel height - no strip under the photo when the side column is taller (Dave: crop) */
.pf-slider.carousel-fade .carousel-item { grid-area: 1 / 1; display: flex; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.pf-slider.carousel-fade .carousel-item.active, .pf-slider.carousel-fade .carousel-item.carousel-item-next.carousel-item-start, .pf-slider.carousel-fade .carousel-item.carousel-item-prev.carousel-item-end { opacity: 1; pointer-events: auto; }
.pf-slider.carousel-fade .carousel-item.active.carousel-item-start, .pf-slider.carousel-fade .carousel-item.active.carousel-item-end { opacity: 0; }
.pf-slider.carousel-fade .carousel-item.pf-measure { position: static; visibility: hidden; opacity: 0; }
/* PF 2026-10-19: hero 25% shorter (Dave) - fixed 430px panel on desktop, tighter type; bootstrap's .carousel margin-bottom:50px was padding the grid row */
.pf-slider { margin-bottom: 0; }
@media (min-width: 992px) {
  .pf-hero-main.pf-slider { height: 430px; min-height: 0; }
  .pf-slider .carousel-inner { min-height: 0 !important; }
  .pf-slide { min-height: 0; }
  .pf-slide-text { padding: 24px 32px 44px; }
  .pf-slide-text .pf-hero-title { font-size: 34px; margin: 6px 0 10px; }
  .pf-slide-text p { margin: 0 0 16px; font-size: 14px; }
  .pf-slide-text .pf-hero-kicker { font-size: 11px; }
  .pf-hero-ctas .pf-btn-accent, .pf-hero-ctas .pf-btn-ghost { font-size: 15px; padding: 8px 16px; }
  .pf-slider-dots { bottom: 12px; }
  .pf-hero-side .pf-panel { padding: 16px 20px; }
}
.pf-slide { height: auto; flex: 1; width: 100%; }

/* pages that print their breadcrumb outside .container (cart, pfport account pages) */
.breadcrumbs { max-width: 1320px; margin: 0 auto; padding: 10px 12px 0; }
.breadcrumbs .breadcrumb { margin: 0; }
/* side-column account list (core account module in column_right) */
.pf-column .list-group { border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden; }
.pf-column .list-group-item { border: 0; border-bottom: 1px solid var(--pf-line-soft); padding: 9px 14px; font-size: 14px; color: var(--pf-ink); }
.pf-column .list-group-item:last-child { border-bottom: 0; }
.pf-column .list-group-item:hover, .pf-column .list-group-item.active { background: var(--pf-select-bg); color: var(--pf-primary); }
/* keep the category bar on one row on laptop-width desktops */
@media (min-width: 992px) and (max-width: 1699.98px) {
  .pf-menu .nav-link, .pf-menu .pf-menu-link { padding: 11px 11px; font-size: 14.5px; }
  .pf-menu .navbar-nav { flex-wrap: nowrap; }
  .pf-menu .nav-link.dropdown-toggle::after { margin-left: 4px; }
}
@media (min-width: 992px) and (max-width: 1399.98px) { .pf-menu .nav-link, .pf-menu .pf-menu-link { padding: 11px 8px; font-size: 13.5px; letter-spacing: 0; } }
@media (min-width: 992px) {
  .pf-menu .navbar-nav { flex-wrap: nowrap !important; }
  .pf-menu .nav-link, .pf-menu .pf-menu-link, #menu .nav > li > a { padding: 12px 10px !important; font-size: 14px !important; letter-spacing: 0; }
  .pf-menu .pf-menu-all .nav-link { padding-left: 0 !important; }
}
@media (min-width: 992px) and (max-width: 1299.98px) { .pf-menu .nav-link, .pf-menu .pf-menu-link, #menu .nav > li > a { padding: 12px 7px !important; font-size: 13px !important; } }

/* phone header icons: one 38px row, everything centred on the same baseline */
@media (max-width: 767.98px) {
  .pf-head-nav { height: 38px; align-items: center; }
  .pf-head-nav > *, .pf-head-nav .dropdown, #cart { margin: 0 !important; height: 38px; display: flex; align-items: center; }
  .pf-head-nav .dropdown > a, #cart > a.cart-heading, .pf-head-nav > a, .pf-head-nav .pf-tt-trigger { height: 38px; line-height: 1; box-sizing: border-box; }
  #cart > a.cart-heading { padding: 0 12px; }
}

/* phone hero: photo on top, short copy, two buttons side by side */
@media (max-width: 767.98px) {
  .pf-slide { display: flex; flex-direction: column; min-height: 0; }
  .pf-slide-media { display: block; order: -1; min-height: 0; height: 170px; }
  .pf-slide-media::before { background: linear-gradient(180deg, rgba(0,0,0,0) 55%, var(--pf-dark) 100%); }
  .pf-slide-text { padding: 12px 16px 34px; }
  .pf-slide-text .pf-hero-kicker { font-size: 11px; letter-spacing: 1px; }
  .pf-slide-text .pf-hero-title { font-size: 22px; line-height: 1.1; margin: 4px 0 8px; }
  .pf-slide-text p { font-size: 13.5px; line-height: 1.4; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .pf-slide-text .pf-hero-ctas { gap: 8px; flex-wrap: nowrap; }
  .pf-slide-text .pf-hero-ctas > a { flex: 1 1 0; justify-content: center; padding: 10px 8px; font-size: 14px; white-space: nowrap; text-align: center; }
  .pf-slider-dots { bottom: 10px; left: 16px; }
  .pf-hero-side .pf-panel { padding: 14px 16px; }
  .pf-hero-side .pf-panel h3 { font-size: 17px; }
}
@media (max-width: 767.98px) { .pf-slide-text { padding-bottom: 26px; } .pf-slider .carousel-item, .pf-slide { min-height: 0; flex: 0 0 auto; } .pf-slider { height: auto; } .pf-slider-dots { bottom: 8px; } }

/* ---------- light hero (replaces the dark navy block) ---------- */
:root { --pf-hero-bg: linear-gradient(135deg, #eaf2fb 0%, #ffffff 60%); --pf-hero-fade: #ffffff; --pf-hero-ink: var(--pf-ink-strong); --pf-hero-muted: var(--pf-muted); --pf-hero-title: var(--pf-primary); --pf-hero-kick: var(--pf-accent); }
.pf-skin-trade { --pf-hero-bg: #1c2b4a; --pf-hero-ink: #ffffff; --pf-hero-muted: #c9d1e0; --pf-hero-title: #ffffff; --pf-hero-kick: #ff5c7a; }   /* PF 2026-10-19: trade hero straight navy (matches the nav bar), no photo fade (Dave) */
.pf-skin-trade .pf-hero-main, .pf-skin-trade .pf-slider { border-color: #1c2b4a; }
.pf-skin-trade .pf-hero-ctas .pf-btn-ghost { border-color: #ffffff; color: #ffffff; }
.pf-skin-trade .pf-hero-ctas .pf-btn-ghost:hover { background: #ffffff; color: #1c2b4a; }
.pf-skin-trade .pf-slider-dots button { background: rgba(255,255,255,.35); }
.pf-skin-trade .pf-slider-dots button.active { background: #cc0032; }
.pf-skin-trade .pf-util .pf-util-cta { color: #ffffff; } /* red on the black utility bar was low contrast */
.pf-skin-emb { --pf-hero-bg: linear-gradient(135deg, #e9f0ec 0%, #ffffff 60%); --pf-hero-fade: #ffffff; }
.pf-hero-main, .pf-slider { background: var(--pf-hero-bg); color: var(--pf-hero-ink); border: 1px solid var(--pf-line); box-shadow: none; }
.pf-slide-text .pf-hero-kicker { color: var(--pf-hero-kick); }
.pf-slide-text .pf-hero-title { color: var(--pf-hero-title); }
.pf-slide-text p { color: var(--pf-hero-muted); }
.pf-slide-media::before { display: none; }   /* no fade between text block and photo (Dave 2026-10-12: "lose the shading") */
.pf-hero-ctas .pf-btn-ghost { border-color: var(--pf-primary); color: var(--pf-primary); }
.pf-hero-ctas .pf-btn-ghost:hover { background: var(--pf-primary); color: var(--pf-primary-ink); }
.pf-hero-main .pf-btn-accent { background: var(--pf-cta); color: var(--pf-cta-ink); }
.pf-hero-main .pf-btn-accent:hover { background: var(--pf-cta-hover); }
.pf-skin-trade .pf-hero-main .pf-btn-accent { background: var(--pf-accent); color: var(--pf-accent-ink); }
.pf-slider-dots button { background: rgba(0,0,0,.15); }
.pf-slider-dots button.active { background: var(--pf-primary); }
.pf-slider-arrow { background: rgba(0,0,0,.35); }
@media (max-width: 767.98px) { .pf-slide-media::before { display: none; } }   /* phone strip sits on white already - no fade needed (Dave 2026-10-12) */
.pf-post-media.is-contain { background: #fff; }
.pf-post-media.is-contain img { object-fit: contain; padding: 18px; }
.pf-post-card:hover .pf-post-media.is-contain img { transform: none; }

/* category description: tame editor artwork (huge square AI images, runs of <br>), collapse long copy */
.pf-category-desc img { max-width: 100%; height: auto; max-height: 320px; width: auto; object-fit: cover; border-radius: var(--pf-radius-sm); }
.pf-category-desc br + br, .pf-category-desc p:empty { display: none; }
.pf-category-desc h1, .pf-category-desc h2 { font-size: 20px; margin: 0 0 10px; }
.pf-category-desc.is-collapsible { position: relative; max-height: 230px; overflow: hidden; }
.pf-category-desc.is-collapsible::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 70px; background: linear-gradient(180deg, rgba(255,255,255,0), #fff); }
.pf-category-desc.is-collapsible.is-open { max-height: none !important; overflow: visible; }
.pf-category-desc.is-collapsible.is-open::after { display: none; }
.pf-desc-toggle { display: block; margin: 0 0 14px; background: none; border: 0; color: var(--pf-primary); font-weight: 700; padding: 0; cursor: pointer; }
@media (max-width: 767.98px) { .pf-category-desc img { max-height: 180px; width: 100%; } .pf-category-desc.is-collapsible { max-height: 150px; } }
@media (max-width: 767.98px) { .pf-search { transition: none; } .pf-body.is-scrolled .pf-search { display: none; } }

/* phone: compact search button in the header row; the full-width search box only appears when tapped (QS overlay preferred) */
@media (max-width: 767.98px) {
  .pf-head-nav .pf-head-search { width: 38px; height: 38px; padding: 0 !important; justify-content: center; font-size: 15px; }
  .pf-search { display: none; }
  .pf-body.is-search-open .pf-search { display: flex; }
  .pf-body.is-search-open.is-scrolled .pf-search { display: flex; }
}
@media (min-width: 768px) { .pf-head-search { display: none !important; } }

/* phone: search + cart live on the blue category bar (the theme JS moves them into #menu .pf-menu-tools under 768px);
   $ and account stay beside the logo; the category bar is the sticky one */
@media (max-width: 767.98px) {
  .pf-header { position: static; }
  .pf-header .container { padding-top: 6px; padding-bottom: 6px; }
  .pf-body.is-scrolled .pf-header { box-shadow: none; }
  .pf-menu { position: sticky; top: 0; z-index: 1030; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
  .pf-menu #menu { display: flex; flex-wrap: wrap; align-items: center; }
  .pf-menu .navbar-toggler { flex: 1 1 auto; width: auto; padding: 9px 12px; }
  .pf-menu #navbar-menu { flex: 0 0 100%; order: 5; }
  .pf-menu-tools { display: flex; align-items: center; gap: 6px; height: 36px; padding-right: 8px; margin-left: auto; }
  .pf-menu-tools #cart { margin: 0 !important; height: 34px; display: flex; align-items: center; }
  .pf-menu-tools .pf-head-search { height: 34px; padding: 0 12px; gap: 7px; display: inline-flex !important; align-items: center; justify-content: center; color: var(--pf-ink-soft, #667085); background: #fff; border: 1px solid rgba(255,255,255,.35); border-radius: var(--pf-radius-sm); font-size: 14px; text-decoration: none; min-width: 120px; }
  .pf-menu-tools .pf-head-search i { color: var(--pf-ink); font-size: 14px; }
  .pf-menu-tools .pf-head-search-label { font-weight: 500; }
  .pf-menu-tools #cart > a.cart-heading { height: 34px; padding: 0 10px; line-height: 1; box-sizing: border-box; }
}

/* Bootstrap-3 .pull-right floats (empty cart "Continue", account pages) escaped #content and sat under the footer */
:is(.pf-page, #main-content > .container) #content::after { content: ""; display: block; clear: both; }
:is(.pf-page, #main-content > .container) #content > .pull-right, :is(.pf-page, #main-content > .container) #content > .float-end { margin-bottom: 16px; }

/* phone cart: the 5-column table becomes stacked cards (image + name, qty row, price/total), totals as a clean 2-col list (Dave 2026-10-11) */
@media (max-width: 767.98px) {
  #shopping-cart .table-responsive { overflow: visible; }
  #shopping-cart .table { display: block; border: 0; }
  #shopping-cart .table thead { display: none; }
  #shopping-cart .table tbody { display: block; }
  #shopping-cart .table tbody tr { display: grid; grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "img name" "qty qty" "price price"; gap: 8px 12px; padding: 12px; margin-bottom: 10px; background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); }
  #shopping-cart .table tbody td { display: block; border: 0; padding: 0; }
  #shopping-cart .table tbody td.td-image { grid-area: img; display: block; }
  #shopping-cart .table tbody td.td-image img { width: 84px; height: 84px; object-fit: contain; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); }
  #shopping-cart .table tbody td.td-image .pfcv { width: 84px; }
  #shopping-cart .table tbody td.td-name { grid-area: name; font-size: 14px; line-height: 1.35; }
  #shopping-cart .table tbody td.td-name > a { font-weight: 600; color: var(--pf-ink-strong); }
  #shopping-cart .table tbody td.td-name ul { font-size: 12px; color: var(--pf-muted); margin-top: 4px; }
  #shopping-cart .table tbody td.td-qty { grid-area: qty; }
  #shopping-cart .table tbody td.td-qty .input-group { flex-wrap: nowrap; align-items: center; gap: 6px; }
  #shopping-cart .table tbody td.td-qty .input-group-btn { display: inline-flex; gap: 6px; margin-left: auto; }
  #shopping-cart .table tbody td.td-price, #shopping-cart .table tbody td.td-total { grid-area: price; display: inline-flex; justify-content: space-between; font-size: 14px; }
  #shopping-cart .table tbody td.td-price { display: none; }
  #shopping-cart .table tbody td.td-total::before { content: "Line total"; color: var(--pf-muted); font-size: 12px; }
  #shopping-cart .table tbody td.td-total { font-weight: 700; font-size: 16px; border-top: 1px dashed var(--pf-line); padding-top: 8px; }
  #shopping-cart .table tfoot { display: block; background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 6px 12px; }
  #shopping-cart .table tfoot tr { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--pf-line-soft); }
  #shopping-cart .table tfoot tr:last-child { border-bottom: 0; font-size: 17px; }
  #shopping-cart .table tfoot td { display: block; border: 0; padding: 0; white-space: nowrap; }
}

/* Journal-era product tabs (datasheets, videos, sizing guides) */
.pf-jtab iframe { max-width: 100%; }
.pf-jtab table { max-width: 100%; }
.pf-jtab big a { font-weight: 600; }
.pf-jnote { margin: 0 0 12px; padding: 10px 14px; background: var(--pf-warn-bg, #fff7e6); color: var(--pf-ink); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); font-size: 14px; }
.pf-jnote i { color: var(--pf-warn, #b45309); margin-right: 6px; }

/* product enquiry (ask a question / found it cheaper) */
.pf-enquiry-links { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; margin-top: 6px; width: 100%; }
.pf-enquiry-links a { color: var(--pf-primary); font-weight: 600; cursor: pointer; }
.pf-enquiry-links a i { margin-right: 4px; }
#pf-enquiry .modal-content { border-radius: var(--pf-radius); border: 0; }
#pf-enquiry .modal-header { background: var(--pf-primary); color: var(--pf-primary-ink); border: 0; }
#pf-enquiry .modal-header .btn-close { filter: invert(1); opacity: .9; }
#pf-enquiry .form-label { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
#pf-enquiry .pf-enquiry-product { margin: 0 0 10px; font-size: 14px; }
#pf-enquiry .modal-title { color: inherit; font-family: var(--pf-font-head); font-size: 18px; }

/* desktop header icon row: one 38px baseline (cart had a 10px core margin-bottom and sat high) */
.pf-head-nav #cart { margin: 0 !important; }
.pf-head-nav > a, .pf-head-nav .dropdown > a, #cart > a.cart-heading, .pf-head-nav .pf-tt-trigger { height: 38px; box-sizing: border-box; display: inline-flex; align-items: center; padding-top: 0; padding-bottom: 0; }

/* phone checkout "Your order": stacked cards (image beside name, stepper + line total underneath), same as the cart page (Dave 2026-10-11) */
@media (max-width: 767.98px) {
  #checkout-confirm .table-responsive { overflow: visible; }
  #checkout-confirm > .table-responsive > .table { display: block; border: 0; }
  #checkout-confirm .table thead { display: none; }
  #checkout-confirm .table tbody { display: block; }
  #checkout-confirm .table tbody tr[data-pf-cart] { display: grid; grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "img name" "tot tot"; gap: 8px 12px; padding: 12px; margin-bottom: 10px; background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); }
  #checkout-confirm .table tbody tr[data-pf-cart] > td { display: block; border: 0; padding: 0; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.pf-co-desk-cell, #checkout-confirm .table tbody tr:not([data-pf-cart]) > td.pf-co-desk-cell { display: none !important; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.pf-co-total { grid-area: tot; display: flex !important; justify-content: space-between; align-items: baseline; border-top: 1px dashed var(--pf-line); padding-top: 8px; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.pf-co-total::before { content: "Line total"; color: var(--pf-muted); font-size: 12px; font-weight: 400; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.td-image { grid-area: img; width: auto; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.td-image img { width: 84px; height: 84px; max-width: none; object-fit: contain; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); padding: 0; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.td-image .pfcv { width: 84px; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td:nth-child(2) { grid-area: name; font-size: 14px; line-height: 1.35; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td:nth-child(2) > .checkout-cart-item { display: flex; flex-direction: column; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td:nth-child(2) .checkout-cart-item > a, #checkout-confirm .table tbody tr[data-pf-cart] > td:nth-child(2) .checkout-cart-item > span > a { font-weight: 600; color: var(--pf-ink-strong); }
  #checkout-confirm .table tbody tr[data-pf-cart] > td:nth-child(2) small { font-size: 12px; color: var(--pf-muted); }
  /* the mobile stepper moves to its own row at the bottom of the card, with the line total on the right */
  #checkout-confirm .table tbody tr[data-pf-cart] .pf-co-mob-qty { order: 10; display: flex !important; align-items: center; margin-top: 10px; padding-top: 8px; border-top: 0; }
  #checkout-confirm .table tbody tr[data-pf-cart] > td.pf-co-total { font-weight: 700; font-size: 16px; padding-bottom: 2px; }
  #checkout-confirm .table tbody tr:not([data-pf-cart]) { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; }
  #checkout-confirm .table tbody tr:not([data-pf-cart]) > td { border: 0; padding: 0; }
  #checkout-confirm .table tfoot { display: block; background: #fff; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 6px 12px; }
  #checkout-confirm .table tfoot tr { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--pf-line-soft); }
  #checkout-confirm .table tfoot tr:last-child { border-bottom: 0; font-size: 17px; }
  #checkout-confirm .table tfoot td { display: block; border: 0; padding: 0; }
  #checkout-confirm .table tfoot td.pf-co-desk-cell { display: none; }
}
@media (max-width: 767.98px) { #checkout-confirm .table-hover > tbody > tr:hover > * { --bs-table-bg-state: transparent; background: transparent; } }

/* phone hero image: the wide sign collage shows whole (a touch taller box, contain on a matching background) */
@media (max-width: 767.98px) { .pf-slide-media.has-phone-image { height: 168px; background: #fff; } .pf-slide-media.has-phone-image img { object-fit: contain; } .pf-slide-media picture { display: block; height: 100%; } .pf-slide-media picture img { height: 100%; } }
.pf-slide-media picture { display: block; height: 100%; }

/* "can't find it?" product request box */
.pf-request { margin: 18px 0 8px; }
.pf-request-form { position: relative; background: var(--pf-surface, #fff); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); padding: 16px; }
.pf-request.is-empty .pf-request-form { border-color: var(--pf-primary); box-shadow: 0 0 0 3px var(--pf-select-bg, rgba(0,0,0,.04)); }
.pf-request-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 10px; }
.pf-request-head i { font-size: 22px; color: var(--pf-accent, #f2b705); margin-top: 2px; }
.pf-request-head strong { display: block; font-family: var(--pf-font-head); font-size: 17px; color: var(--pf-ink-strong); }
.pf-request-head span { font-size: 13px; color: var(--pf-muted); }
.pf-request-fields textarea { margin-bottom: 8px; font-size: 14px; }
.pf-request-row { display: flex; gap: 8px; flex-wrap: wrap; }
.pf-request-row input { flex: 1 1 220px; font-size: 14px; }
.pf-request-row .btn { white-space: nowrap; }
.pf-request-alert { margin: 10px 0 0; font-size: 14px; }
.pf-request.is-qs { text-align: left; margin: 14px auto 0; max-width: 560px; }
.pf-request.is-qs .pf-request-form { padding: 14px; }
@media (max-width: 575.98px) { .pf-request-row .btn { flex: 1 1 100%; } }

/* shop by industry */
.pf-industry-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.pf-industry { display: flex; flex-direction: column; background: var(--pf-surface, #fff); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); overflow: hidden; color: var(--pf-ink); text-decoration: none; transition: box-shadow .15s, transform .15s; }
.pf-industry:hover { box-shadow: var(--pf-shadow); transform: translateY(-2px); color: var(--pf-ink); }
.pf-industry img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; display: block; }
.pf-industry-name { font-family: var(--pf-font-head); font-weight: 700; font-size: 14px; padding: 10px 12px 2px; color: var(--pf-ink-strong); text-transform: var(--pf-head-transform); letter-spacing: var(--pf-head-tracking); }
.pf-industry-sub { font-size: 12px; color: var(--pf-muted); padding: 0 12px 12px; }
@media (max-width: 991.98px) { .pf-industry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .pf-industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .pf-industry-name { font-size: 14px; } }

/* add to cart with a required option missing: the option is scrolled to centre and flashed (Dave 2026-10-13) */
#product .form-group.has-error { border-radius: var(--pf-radius, 8px); }
#product .form-group.has-error .invalid-feedback.d-block { font-weight: 600; font-size: 14px; }
@keyframes pfNeedPick { 0%, 100% { box-shadow: 0 0 0 0 transparent; background: transparent; } 20%, 60% { box-shadow: 0 0 0 4px rgba(220, 53, 69, .35); background: rgba(220, 53, 69, .06); } }
#product .form-group.pf-need-pick { animation: pfNeedPick 1.6s ease-in-out 1; }
@media (prefers-reduced-motion: reduce) { #product .form-group.pf-need-pick { animation: none; box-shadow: 0 0 0 3px rgba(220, 53, 69, .35); } }

/* PF 2026-10-18: QPO option-card stepper - minus / qty / plus / ADD all the same height */
.qpo-card-stepper-row .qpo-input-group .btn.qpo-btn-minus, .qpo-card-stepper-row .qpo-input-group .btn.qpo-btn-plus, .qpo-card-stepper-row .qpo-input-group .qpo-quantity-input, .qpo-card-stepper-row .qpo-card-add-btn { height: 36px !important; min-height: 36px !important; }
.qpo-card-stepper-row .qpo-input-group { align-items: stretch; }
