/* ============================================================
   SHOP / ARCHIVE — product cards
   ============================================================ */
.woocommerce ul.products{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;gap:20px!important;
}
.woocommerce ul.products li.product{
  position:relative;background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius-lg);overflow:hidden;
  padding:0!important;margin:0!important;display:flex;flex-direction:column;
  transition:transform var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease),border-color var(--si-dur) var(--si-ease);
}
.woocommerce ul.products li.product::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--si-orange);
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--si-dur) var(--si-ease);
  pointer-events:none;
}
.woocommerce ul.products li.product:hover{transform:translateY(-5px);box-shadow:var(--si-shadow);border-color:var(--si-border-strong)}
.woocommerce ul.products li.product:hover::after{transform:scaleX(1)}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
  display:flex;flex-direction:column;flex:1;text-decoration:none;
}
.woocommerce ul.products li.product a img{
  margin:0;border-radius:0;width:100%;aspect-ratio:1/1;object-fit:cover;
  transition:transform .55s var(--si-ease-out);
  background:var(--si-paper);
}
.woocommerce ul.products li.product:hover a img{transform:scale(1.05)}
.woocommerce ul.products li.product .si-card-cat{
  position:absolute;top:12px;left:12px;z-index:2;
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border-radius:var(--si-radius-pill);padding:.3em .8em;
  font-family:var(--si-font-display);font-weight:600;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--si-ink);
}
.woocommerce ul.products li.product .si-card-cat::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--si-orange)}
/* Card body: flex column so the button anchors to the bottom (all cards in a
   row align, no dead space below short cards). Padding lives on the wrap; child
   elements use margins for vertical rhythm. */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  display:flex;flex-direction:column;flex:1 1 auto;min-height:0;
  padding:16px 20px 20px;text-align:left;
}
/* Astra category line → branded uppercase eyebrow with orange dot. */
.woocommerce ul.products li.product .ast-woo-product-category{
  order:-1;font-family:var(--si-font-display);font-weight:600;font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--si-grey-500);
  display:inline-flex;align-items:center;gap:6px;margin:0 0 9px;
}
.woocommerce ul.products li.product .ast-woo-product-category::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--si-orange);flex:none;
}
.woocommerce ul.products li.product .ast-woo-product-category a{color:inherit}
.woocommerce ul.products li.product .ast-loop-product__link{display:block;text-decoration:none}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--si-font-display);font-weight:600;font-size:1.05rem;padding:0;margin:0 0 10px;
  color:var(--si-ink);letter-spacing:-.01em;line-height:1.3;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title{color:var(--si-orange-dark)}
.woocommerce ul.products li.product .price{
  padding:0;margin:0 0 16px;color:var(--si-grey-700);font-size:.85rem;
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
}
.woocommerce ul.products li.product .price .amount{color:var(--si-orange-dark);font-weight:700;font-size:1.15rem;font-variant-numeric:tabular-nums}
.woocommerce ul.products li.product .price del{opacity:.5;margin-right:6px}
.woocommerce ul.products li.product .price .si-from{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--si-grey-500);font-weight:600;
}
.woocommerce ul.products li.product .button{
  margin:auto 0 0;align-self:flex-start;
  background:var(--si-ink);color:#fff;padding:.62em 1.2em;
  font-family:var(--si-font-display);font-weight:600;font-size:.85rem;line-height:1;
  border-radius:var(--si-radius-pill);border:0;
  display:inline-flex;align-items:center;gap:6px;
  transition:background var(--si-dur) var(--si-ease),color var(--si-dur) var(--si-ease),transform var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.woocommerce ul.products li.product .button::after{content:"→";display:inline;transition:transform var(--si-dur) var(--si-ease)}
.woocommerce ul.products li.product:hover .button{background:var(--si-orange);box-shadow:var(--si-shadow-orange)}
.woocommerce ul.products li.product .button:hover{transform:translateX(3px)}
.woocommerce ul.products li.product .button:hover::after{transform:translateX(3px)}

/* Archive header (page title + description) */
.woocommerce-products-header{padding:clamp(40px,6vw,72px) 0 clamp(20px,3vw,40px);text-align:center}
.woocommerce-products-header__title,.woocommerce-products-header h1{
  font-family:var(--si-font-display);font-size:clamp(2rem,4vw,3rem);
  letter-spacing:-.025em;margin:0 0 12px;
}
.woocommerce-products-header__title-page-title,.term-description{color:var(--si-grey-700);max-width:60ch;margin:0 auto}

/* ---- Archive toolbar: result count + sort select ---- */
.woocommerce .woocommerce-result-count{
  color:var(--si-grey-500);font-size:.85rem;font-weight:500;margin:0 0 14px;letter-spacing:.01em;
}
.woocommerce .woocommerce-ordering{margin:0 0 24px}
/* Brand the sort control. (The OPEN list is OS-native — only the closed
   control is styleable without a custom JS dropdown.) */
.woocommerce .woocommerce-ordering select.orderby{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  font-family:var(--si-font-display);font-weight:600;font-size:.9rem;color:var(--si-ink);
  background:#fff;border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-pill);
  padding:.62em 2.6em .62em 1.1em;cursor:pointer;line-height:1.2;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23232323' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1em center;
  transition:border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease),color var(--si-dur) var(--si-ease);
}
.woocommerce .woocommerce-ordering select.orderby:hover{border-color:var(--si-orange);color:var(--si-orange-dark)}
.woocommerce .woocommerce-ordering select.orderby:focus,
.woocommerce .woocommerce-ordering select.orderby:focus-visible{
  outline:0;border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint);
}

/* ---- JS-enhanced custom sort dropdown (branded open list) ---- */
.si-sortdd{position:relative;display:inline-block;min-width:200px}
.si-sortdd__native{position:absolute!important;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);opacity:0;pointer-events:none;border:0}
.si-sortdd__btn{
  display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  font-family:var(--si-font-display);font-weight:600;font-size:.9rem;color:var(--si-ink);
  background:#fff;border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-pill);
  padding:.62em 1.1em;cursor:pointer;line-height:1.2;text-align:left;
  transition:border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease),color var(--si-dur) var(--si-ease);
}
.si-sortdd__btn:hover{border-color:var(--si-orange);color:var(--si-orange-dark)}
.si-sortdd__btn:focus-visible{outline:0;border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint)}
.si-sortdd.is-open .si-sortdd__btn{border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint)}
.si-sortdd__caret{
  width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-1px,-1px);transition:transform var(--si-dur) var(--si-ease);flex:none;
}
.si-sortdd.is-open .si-sortdd__caret{transform:rotate(225deg) translate(-2px,-2px)}
.si-sortdd__list{
  position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;margin:0;padding:6px;list-style:none;
  background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius);box-shadow:var(--si-shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity var(--si-dur) var(--si-ease-out),transform var(--si-dur) var(--si-ease-out),visibility var(--si-dur);
  max-height:60vh;overflow-y:auto;outline:0;
}
.si-sortdd.is-open .si-sortdd__list{opacity:1;visibility:visible;transform:none}
.si-sortdd__opt{
  display:flex;align-items:center;gap:8px;padding:10px 12px 10px 32px;position:relative;
  font-family:var(--si-font-body);font-weight:500;font-size:.92rem;color:var(--si-grey-700);
  border-radius:var(--si-radius-sm);cursor:pointer;
  transition:background var(--si-dur-fast) var(--si-ease),color var(--si-dur-fast) var(--si-ease);
}
.si-sortdd__opt:hover,.si-sortdd__opt.is-active{background:var(--si-orange-tint);color:var(--si-orange-dark)}
.si-sortdd__opt.is-selected{color:var(--si-ink);font-weight:600}
.si-sortdd__opt.is-selected::before{
  content:"";position:absolute;left:12px;top:50%;width:6px;height:11px;margin-top:-7px;
  border-right:2px solid var(--si-orange);border-bottom:2px solid var(--si-orange);transform:rotate(45deg);
}

/* Guided picker — the picker now drives the REAL WooCommerce grid via URL
   params (server-side woocommerce_product_query), so the grid stays visible
   and shows the filtered matches. No grid-hide rule here on purpose. */

/* ---- Catalogue pagination (branded — Astra/WC defaults were blue) ---- */
.woocommerce nav.woocommerce-pagination{margin:48px 0 8px;text-align:center}
.woocommerce nav.woocommerce-pagination ul{
  display:inline-flex;flex-wrap:wrap;justify-content:center;gap:8px;border:0;margin:0;padding:0;
}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li .page-numbers{
  display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;
  border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-pill);
  background:#fff;color:var(--si-ink);font-family:var(--si-font-display);font-weight:600;font-size:.92rem;
  line-height:1;text-decoration:none;
  transition:background var(--si-dur) var(--si-ease),color var(--si-dur) var(--si-ease),border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease),transform var(--si-dur) var(--si-ease);
}
/* Hover: orange fill, WHITE text (was orange-on-orange = invisible) */
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:focus-visible{
  background:var(--si-orange);color:#fff!important;border-color:var(--si-orange);
  box-shadow:var(--si-shadow-orange);transform:translateY(-1px);outline:0;
}
/* Current page: solid brand orange (was blue #046bd2) */
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li .page-numbers.current{
  background:var(--si-orange);color:#fff;border-color:var(--si-orange);
}
.woocommerce nav.woocommerce-pagination ul li .page-numbers.dots{
  border-color:transparent;background:transparent;color:var(--si-grey-500);min-width:auto;padding:0 4px;
}

/* ============================================================
   FILTER SIDEBAR (layered nav + price) — branded cards
   Each widget = its own card matching .cart_totals / .si-faq.
   Title uses the same eyebrow+bar pattern as .cart_totals h2 /
   .si-footer-col h3. Items get ink labels + count pill on the
   right, an orange radio dot, and a left orange bar when active.
   ============================================================ */
.widget-area.secondary{
  display:flex;flex-direction:column;gap:18px;font-family:var(--si-font-body);
}
.widget-area.secondary .ast-woo-sidebar-widget,
.widget-area.secondary .widget{
  background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius);
  padding:20px 22px 22px;box-shadow:var(--si-shadow-sm);
  transition:border-color var(--si-dur) var(--si-ease);
}
.widget-area.secondary .ast-woo-sidebar-widget:hover{border-color:var(--si-border-strong)}
.widget-area.secondary .ast-woo-sidebar-widget+.ast-woo-sidebar-widget{margin-top:0}

/* Widget title — eyebrow w/ orange bar (matches .cart_totals h2,
   .si-footer-col h3, single-product cart_titles) */
.widget-area.secondary .widget-title,
.widget-area.secondary .wp-block-heading.widget-title{
  font-family:var(--si-font-display);color:var(--si-ink);font-weight:700;
  font-size:1.02rem;letter-spacing:-.005em;
  margin:0 0 16px;padding:0;display:flex;align-items:center;gap:10px;
  background:transparent;border:0;
}
.widget-area.secondary .widget-title::before,
.widget-area.secondary .wp-block-heading.widget-title::before{
  content:"";width:5px;height:18px;background:var(--si-orange);
  border-radius:2px;flex:none;
}
.widget-area.secondary .widget-title::after,
.widget-area.secondary .wp-block-heading.widget-title::after{
  content:"";flex:1;height:1px;background:var(--si-orange-soft);margin-left:4px;
}

/* Filter list — clean rows, custom radio on the <li>, count chip on right.
   IMPORTANT: WC renders .count as a SIBLING of <a>, not inside it. So the
   flex row lives on the <li>, the <a> fills the space, and the radio dot
   sits on the <li> so it never overlaps the label. */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list,
.widget_product_categories ul.product-categories,
.widget-area.secondary .wc-block-components-filter-items{
  list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.woocommerce-widget-layered-nav-list__item,
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.wc-layered-nav-term,
.widget_product_categories ul li{
  position:relative;display:flex;align-items:center;gap:8px;
  padding:6px 10px 6px 30px !important;border-radius:var(--si-radius-sm);
  transition:background var(--si-dur-fast) var(--si-ease);
}
.widget_layered_nav ul li a,
.widget_product_categories ul li a{
  flex:1;color:var(--si-ink-2);
  font-size:.92rem;line-height:1.3;
  transition:color var(--si-dur-fast) var(--si-ease);
}
/* Radio dot on the <li> */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.woocommerce-widget-layered-nav-list__item::before,
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.wc-layered-nav-term::before,
.widget_product_categories ul li::before{
  content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;
  border:1.5px solid var(--si-border-strong);background:#fff;
  transition:border-color var(--si-dur-fast) var(--si-ease),background var(--si-dur-fast) var(--si-ease);
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.woocommerce-widget-layered-nav-list__item::after,
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.wc-layered-nav-term::after,
.widget_product_categories ul li::after{
  content:"";position:absolute;left:14px;top:50%;transform:translate(-50%,-50%) scale(0);
  width:6px;height:6px;border-radius:50%;background:var(--si-orange);
  transition:transform var(--si-dur-fast) var(--si-ease);
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li:hover,
.widget_product_categories ul li:hover{background:var(--si-orange-tint)}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li:hover a,
.widget_product_categories ul li:hover a{color:var(--si-orange-dark)}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li:hover::before,
.widget_product_categories ul li:hover::before{border-color:var(--si-orange)}

/* Active / chosen — left bar (matches .si-account nav) + filled radio */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen,
.widget_product_categories ul li.current-cat{
  background:var(--si-orange-tint);
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen a,
.widget_product_categories ul li.current-cat a{color:var(--si-orange-dark);font-weight:600}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen::before,
.widget_product_categories ul li.current-cat::before{
  border-color:var(--si-orange);background:var(--si-orange);
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen::after,
.widget_product_categories ul li.current-cat::after{
  transform:translate(-50%,-50%) scale(1);background:#fff;
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen,
.widget_product_categories ul li.current-cat{box-shadow:inset 3px 0 0 var(--si-orange)}

/* Hide WC's "\e013" × icon (rendered via ::before content). Our pill chip
   on the right is the only remove affordance we want. */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li a::before,
.widget_product_categories ul li a::before,
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li a::after,
.widget_product_categories ul li a::after{
  content:none !important;
}

/* Count chip — pill on the right */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li .count,
.widget_product_categories ul li .count{
  flex:none;min-width:24px;text-align:center;
  font-family:var(--si-font-mono);font-size:.7rem;font-weight:600;
  color:var(--si-grey-700);background:var(--si-paper);
  padding:2px 8px;border-radius:var(--si-radius-pill);
  transition:background var(--si-dur-fast) var(--si-ease),color var(--si-dur-fast) var(--si-ease);
}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li:hover .count,
.widget_product_categories ul li:hover .count{background:#fff;color:var(--si-orange-dark)}
.widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen .count,
.widget_product_categories ul li.current-cat .count{background:var(--si-orange);color:#fff}

/* Price slider — themed (matches form inputs). jQuery UI + WC styles
   hit .ui-slider-range / .ui-slider-handle directly with !important, so
   we mirror. */
.widget_price_filter .price_slider_wrapper{margin-top:6px}
.widget_price_filter .price_slider{
  margin:14px 0 22px;background:var(--si-border)!important;height:5px;border-radius:var(--si-radius-pill);
  border:0;
}
.widget_price_filter .ui-slider-range{background:var(--si-orange)!important;border-radius:var(--si-radius-pill)}
.widget_price_filter .ui-slider-handle{
  width:18px;height:18px;border-radius:50%!important;background:#fff!important;
  border:2px solid var(--si-orange)!important;top:-7px;cursor:grab;
  box-shadow:0 2px 6px rgba(20,20,20,.18);
  transition:transform var(--si-dur-fast) var(--si-ease),box-shadow var(--si-dur-fast) var(--si-ease);
}
.widget_price_filter .ui-slider-handle:hover,
.widget_price_filter .ui-slider-handle:focus{
  outline:0;transform:scale(1.1);box-shadow:0 0 0 4px var(--si-orange-glow);
}
.widget_price_filter .price_slider_amount{display:flex;flex-direction:column;gap:14px;align-items:stretch}
.widget_price_filter .price_label{
  font-family:var(--si-font-display);font-weight:600;color:var(--si-ink);
  font-size:.92rem;display:flex;justify-content:space-between;align-items:center;
  background:var(--si-paper);padding:10px 14px;border-radius:var(--si-radius-sm);
}
.widget_price_filter .price_label .from,.widget_price_filter .price_label .to{color:var(--si-orange-dark)}
.widget_price_filter .button{
  background:var(--si-orange);color:#fff;border:0;border-radius:var(--si-radius-pill);
  font-family:var(--si-font-display);font-weight:600;font-size:.9rem;
  padding:.75em 1.4em;cursor:pointer;align-self:flex-end;
  transition:background var(--si-dur) var(--si-ease),transform var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.widget_price_filter .button:hover{background:var(--si-orange-dark);box-shadow:var(--si-shadow-orange);transform:translateY(-1px)}

/* Block-based filter (active-filters chip strip) */
.widget-area.secondary .wc-block-active-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.widget-area.secondary .wc-block-active-filters .wc-block-active-filters__list-item{
  background:var(--si-orange-tint);color:var(--si-orange-dark);
  border:1px solid var(--si-orange-soft);border-radius:var(--si-radius-pill);
  padding:4px 10px 4px 12px;font-size:.78rem;font-weight:600;
  display:inline-flex;align-items:center;gap:6px;
}
.widget-area.secondary .wc-block-active-filters__list-item-remove{margin-left:0;color:var(--si-orange-dark)}
.widget-area.secondary .wc-block-active-filters__list-item-remove:hover{color:var(--si-error)}

/* Responsive */
@media(max-width:960px){
  .widget-area.secondary{padding:0}
  .widget-area.secondary .ast-woo-sidebar-widget{padding:18px 20px}
}
/* Phones: 2-up product grid (auto-fill drops to a single tall column < 480px,
   making the archive an endless scroll). Tighten card padding to suit. */
@media(max-width:600px){
  .woocommerce ul.products{grid-template-columns:1fr 1fr!important;gap:12px!important}
  .woocommerce ul.products li.product .astra-shop-summary-wrap{padding:12px 13px 14px}
  .woocommerce ul.products li.product .ast-woo-product-category{font-size:.6rem;letter-spacing:.1em;margin-bottom:7px}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:.95rem;margin-bottom:7px}
  .woocommerce ul.products li.product .price{margin-bottom:11px}
  .woocommerce ul.products li.product .price .amount{font-size:1.02rem}
  .woocommerce ul.products li.product .button{padding:.5em .9em;font-size:.8rem}
}

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.single-product div.product{font-family:var(--si-font-body)}
.single-product div.product .product_title{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.022em;margin:0 0 12px}
.single-product div.product .woocommerce-product-details__short-description{
  color:var(--si-grey-700);line-height:1.65;max-width:60ch;
}
.single-product div.product .price,.single-product div.product .price .amount{
  color:var(--si-orange-dark);font-weight:700;font-size:1.6rem;letter-spacing:-.012em;
}
.single-product div.product .price{margin:8px 0 16px}
.single-product div.product .price del{color:var(--si-grey-500);opacity:.6;margin-right:8px;font-size:1.15rem;font-weight:500}
.single-product div.product form.cart{margin:24px 0 0;display:flex;flex-direction:column;gap:14px}
.single-product div.product form.cart .quantity{margin:0}
.single-product div.product form.cart .quantity .qty{
  border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-sm);
  padding:.7em .8em;font-family:var(--si-font-body);font-size:1rem;width:90px;
  transition:border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.single-product div.product form.cart .quantity .qty:focus{
  border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint);outline:0;
}
.single-product div.product .single_add_to_cart_button{
  padding:.95em 1.8em;font-size:1rem;letter-spacing:.005em;
}

/* Sticky product image */
.single-product .si-product-top{display:flow-root}
@media(min-width:993px){
  .single-product .si-product-top .woocommerce-product-gallery{
    position:sticky!important;top:104px;align-self:flex-start;
    border-radius:var(--si-radius-lg);overflow:hidden;border:1px solid var(--si-border);background:#fff;
  }
}

/* Tabs — branded underline tabs. High specificity + resets to beat Astra/WC
   defaults (which forced 0 margins, wrong padding, and a stray top line). */
.single-product .woocommerce-tabs{margin-top:8px}
.single-product .woocommerce-tabs ul.tabs{
  display:flex;flex-wrap:nowrap;align-items:flex-end;gap:clamp(18px,5vw,34px);
  padding:0;margin:0 0 22px;border:0;border-bottom:1px solid var(--si-border);
  list-style:none;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after{content:none!important;display:none!important;border:0!important}
.single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none}
.single-product .woocommerce-tabs ul.tabs li{
  border:0!important;background:transparent!important;padding:0!important;margin:0!important;
  border-radius:0!important;white-space:nowrap;flex:none;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after{content:none!important;display:none!important}
.single-product .woocommerce-tabs ul.tabs li a{
  display:inline-block;padding:12px 2px!important;position:relative;text-decoration:none;
  font-family:var(--si-font-display);font-weight:600;font-size:1rem;color:var(--si-grey-500)!important;
  transition:color var(--si-dur) var(--si-ease);
}
.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover{color:var(--si-ink)!important}
.single-product .woocommerce-tabs ul.tabs li a::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;border-radius:2px;background:var(--si-orange);
  transform:scaleX(0);transform-origin:left;transition:transform var(--si-dur) var(--si-ease);
}
.single-product .woocommerce-tabs ul.tabs li.active a::after{transform:scaleX(1)}
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .wc-tab{
  border:1px solid var(--si-border);border-radius:var(--si-radius);background:#fff;
  padding:clamp(18px,4vw,28px);color:var(--si-grey-700);line-height:1.7;margin:0;
}
.single-product .woocommerce-tabs .panel > h2:first-child{font-size:1.25rem;margin:0 0 14px;color:var(--si-ink)}

.woocommerce-message,.woocommerce-info{
  border-top:3px solid var(--si-orange);background:var(--si-orange-tint);
  border-radius:var(--si-radius-sm);padding:14px 18px;
}
.woocommerce-message::before,.woocommerce-info::before{color:var(--si-orange)}

/* ============================================================
   FORMS (cart/checkout classic)
   ============================================================ */
.woocommerce form .form-row{margin:0 0 16px}
.woocommerce form .form-row label{font-family:var(--si-font-display);font-weight:600;font-size:.9rem;color:var(--si-ink);margin-bottom:6px;display:block}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container .select2-selection{
  border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-sm);
  padding:.78em .9em;font-family:var(--si-font-body);font-size:.98rem;background:#fff;color:var(--si-ink);
  transition:border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,.woocommerce form .form-row select:focus{
  border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint);outline:0;
}
.woocommerce form .form-row textarea{min-height:120px;resize:vertical}

/* Cart table */
.woocommerce table.shop_table{border-radius:var(--si-radius);overflow:hidden;border-color:var(--si-border);background:#fff}
.woocommerce table.shop_table th{font-family:var(--si-font-display);color:var(--si-ink);font-weight:700;border-bottom:1px solid var(--si-border)}
.woocommerce table.shop_table td{border-color:var(--si-border);padding:16px 12px;vertical-align:middle}
.woocommerce table.shop_table .product-name a{font-family:var(--si-font-display);font-weight:600;color:var(--si-ink)}
.woocommerce table.shop_table .product-name a:hover{color:var(--si-orange-dark)}

/* Cart totals + checkout summary cards */
.cart_totals,.woocommerce-checkout #order_review,.woocommerce-checkout-review-order{
  background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius);padding:24px;
  box-shadow:var(--si-shadow-sm);
}
.cart_totals h2,.woocommerce-checkout #order_review h3,.woocommerce-checkout-review-order h3{
  font-family:var(--si-font-display);font-size:1.18rem;letter-spacing:-.01em;margin:0 0 16px;
  display:flex;align-items:center;gap:10px;
}
.cart_totals h2::before,.woocommerce-checkout #order_review h3::before,.woocommerce-checkout-review-order h3::before{
  content:"";width:6px;height:18px;background:var(--si-orange);border-radius:2px;
}

/* Account/track/quote pages share .woocommerce styling */
.woocommerce-account .woocommerce-MyAccount-navigation{width:240px;flex:none;margin-right:32px}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;border:1px solid var(--si-border);border-radius:var(--si-radius);overflow:hidden;background:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  font-family:var(--si-font-display);font-weight:600;color:var(--si-grey-700);
  border-bottom:1px solid var(--si-border);
  transition:background var(--si-dur-fast) var(--si-ease),color var(--si-dur-fast) var(--si-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a{border-bottom:0}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  background:var(--si-orange-tint);color:var(--si-orange-dark);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{position:relative}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--si-orange);
}
.woocommerce-account .woocommerce-MyAccount-content{background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius);padding:24px;flex:1}
.woocommerce-account .woocommerce-MyAccount-content h2,.woocommerce-account .woocommerce-MyAccount-content h3{
  font-family:var(--si-font-display);letter-spacing:-.012em;
}
.woocommerce-account .woocommerce-MyAccount-content p a{font-weight:600}

/* ============================================================
   PLUGIN FORMS — Request-a-Quote / Track-Order / Contact
   ============================================================ */
.si-quote-form,.si-track-form,.si-contact-form{max-width:600px;margin:0 auto;background:#fff;border:1px solid var(--si-border);border-radius:var(--si-radius);padding:32px;box-shadow:var(--si-shadow-sm)}
.si-quote-form h2,.si-track-form h2,.si-contact-form h2{text-align:center;margin-top:0}
.si-quote-form input,.si-quote-form textarea,.si-quote-form select,
.si-track-form input,.si-track-form textarea,.si-track-form select,
.si-contact-form input,.si-contact-form textarea,.si-contact-form select{
  width:100%;border:1.5px solid var(--si-border-strong);border-radius:var(--si-radius-sm);
  padding:.78em .9em;font-family:var(--si-font-body);font-size:1rem;background:#fff;color:var(--si-ink);
  transition:border-color var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.si-quote-form input:focus,.si-quote-form textarea:focus,.si-quote-form select:focus,
.si-track-form input:focus,.si-track-form textarea:focus,
.si-contact-form input:focus,.si-contact-form textarea:focus{
  border-color:var(--si-orange);box-shadow:0 0 0 3px var(--si-orange-tint);outline:0;
}
.si-quote-form p,.si-track-form p,.si-contact-form p{margin:0 0 16px}
.si-quote-form button,.si-track-form button,.si-contact-form button{
  background:var(--si-orange);color:#fff;border:0;border-radius:var(--si-radius-pill);
  font-family:var(--si-font-display);font-weight:600;padding:.85em 1.8em;cursor:pointer;font-size:1rem;
  transition:background var(--si-dur) var(--si-ease),transform var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease);
}
.si-quote-form button:hover,.si-track-form button:hover,.si-contact-form button:hover{
  background:var(--si-orange-dark);transform:translateY(-1px);box-shadow:var(--si-shadow-orange);
}
.si-quote-form strong,.si-track-form strong{color:var(--si-orange-dark)}
.si-quote-form label,.si-track-form label,.si-contact-form label{
  display:block;font-family:var(--si-font-display);font-weight:600;font-size:.9rem;margin-bottom:6px;
}
.si-contact-form label .si-opt{font-weight:500;color:var(--si-grey-500);font-size:.82em}

/* ---- Contact page: info panel + form, side by side ---- */
.si-contact{
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:start;
  max-width:1040px;margin:8px auto 0;
}
.si-contact .si-contact-form{max-width:none;margin:0;width:100%}
.si-contact-info{padding:8px 0}
.si-contact-info .si-eyebrow{margin-bottom:14px}
.si-contact-info__title{margin:0 0 14px;font-size:clamp(1.6rem,3vw,2.1rem)}
.si-contact-info__lede{color:var(--si-grey-700);max-width:42ch;margin:0 0 28px;font-size:1.02rem}
.si-contact-info__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.si-contact-info__list li{display:flex;flex-direction:column;gap:3px}
.si-contact-info__k{
  font-family:var(--si-font-display);font-weight:700;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--si-grey-500);
}
.si-contact-info__list a{color:var(--si-ink);font-weight:600;font-size:1.08rem}
.si-contact-info__list a:hover{color:var(--si-orange-dark)}
.si-contact-info__list li>span:last-child{color:var(--si-ink-2);font-size:1rem;line-height:1.5}
.si-contact-sent{
  background:var(--si-orange-tint);border:1px solid var(--si-orange-soft);color:var(--si-orange-dark);
  border-radius:var(--si-radius);padding:14px 18px;margin:0 0 20px;
}
@media(max-width:780px){
  .si-contact{grid-template-columns:1fr;gap:28px;max-width:560px}
  .si-contact-info{padding:0}
}

/* ============================================================
   BLOCK CHECKOUT / CART (wp:woocommerce/* blocks)
   ============================================================ */
.wc-block-components-text-input input,.wc-block-components-text-input input:-webkit-autofill{
  border-radius:var(--si-radius-sm)!important;border:1.5px solid var(--si-border-strong)!important;
  font-family:var(--si-font-body)!important;
}
.wc-block-components-text-input input:focus,.wc-block-components-text-input.is-active input{
  border-color:var(--si-orange)!important;box-shadow:0 0 0 3px var(--si-orange-tint)!important
}
.wc-block-components-text-input.is-active label,.wc-block-checkout__form .is-active label{color:var(--si-orange-dark)!important}
.wc-block-checkout__form label,.wc-block-components-text-input label{font-family:var(--si-font-display);font-weight:600;color:var(--si-ink);font-size:.9rem}
.wp-block-woocommerce-checkout .wc-block-components-button.contained,
.wp-block-woocommerce-cart .wc-block-components-button.contained,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit .wc-block-components-button{
  background-color:var(--si-orange)!important;border-radius:var(--si-radius-pill)!important;
  font-family:var(--si-font-display)!important;font-weight:600!important;
  padding:.95em 1.8em!important;font-size:1rem!important;
  box-shadow:none!important;
  transition:background var(--si-dur) var(--si-ease),transform var(--si-dur) var(--si-ease),box-shadow var(--si-dur) var(--si-ease)!important;
}
.wp-block-woocommerce-checkout .wc-block-components-button.contained:hover,
.wp-block-woocommerce-cart .wc-block-components-button.contained:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit .wc-block-components-button:hover{
  background-color:var(--si-orange-dark)!important;transform:translateY(-1px);box-shadow:var(--si-shadow-orange)!important;
}
.wc-block-components-totals-item__value,.wc-block-components-product-price__value{color:var(--si-ink);font-weight:600}
.wc-block-components-product-name{font-family:var(--si-font-display);font-weight:600;color:var(--si-ink)}
.wc-block-components-order-summary,.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block{
  background:#fff!important;border:1px solid var(--si-border)!important;border-radius:var(--si-radius)!important;padding:22px!important;
  box-shadow:var(--si-shadow-sm);
}
.wc-block-components-checkout-step__title,.wc-block-components-title{
  font-family:var(--si-font-display);color:var(--si-ink);font-weight:700;letter-spacing:-.012em;
}
.wc-block-components-checkout-step__title::after{
  content:"";display:block;width:48px;height:2px;background:var(--si-orange);margin-top:8px;
}
.wc-block-components-notice-banner.is-info,.wc-block-components-notice-banner.is-success{
  border-left:3px solid var(--si-orange);background:var(--si-orange-tint);
}
.wc-block-components-notice-banner__content{color:var(--si-ink)}
.wc-block-checkout__payment-method .wc-block-components-radio-control,.wc-block-components-radio-control{
  border-color:var(--si-border);
}
.wc-block-checkout__payment-method .wc-block-components-radio-control:hover{border-color:var(--si-orange)}

/* Trust row in checkout */
.si-checkout-trust{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;
  margin:24px 0 0;padding:18px;border:1px solid var(--si-border);border-radius:var(--si-radius);
  background:#fff;
}
.si-checkout-trust__item{
  display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--si-grey-700);
}
.si-checkout-trust__item b{color:var(--si-ink);font-family:var(--si-font-display);font-weight:600;display:block;font-size:.92rem}
.si-checkout-trust svg{width:18px;height:18px;color:var(--si-orange);flex:none}

/* Mobile sticky add-to-cart */
@media(max-width:782px){
  .single-product form.cart{
    position:sticky;bottom:0;z-index:40;background:#fff;padding:14px 16px;margin:0 -16px;
    box-shadow:0 -6px 24px -10px rgba(20,20,20,.18);border-top:1px solid var(--si-border);
  }
  .single-product form.cart .button{width:100%}
  .woocommerce-account .woocommerce-MyAccount-navigation{width:100%;margin:0 0 20px}
  .woocommerce-account{display:flex;flex-direction:column}
}
