/*
Theme Name: SSU Soccer
Theme URI: https://soccershopusa.com/
Description: Light soccer-shop child theme for the SSU catalog clone. White surfaces,
             crest navy and USA red used as accents, tuned for kit and boot photography.
Author: SSU Tools
Template: storefront
Version: 21.2
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
WC requires at least: 8.0
WC tested up to: 11.0.1
*/

:root {
  --ssu-navy: #123a6d;
  --ssu-navy-dark: #0d2a50;
  --ssu-red: #d81f26;
  --ssu-red-dark: #b0161c;
  --ssu-pitch: #0b6b3a;
  --ssu-ink: #1b2430;
  --ssu-muted: #6b7787;
  --ssu-line: #e6eaf0;
  --ssu-bg: #fbfcfe;
}

body { background: var(--ssu-bg); color: var(--ssu-ink); }
a { color: var(--ssu-navy); }
a:hover { color: var(--ssu-red); }

/* ---------- header: white, with the flag stripe as the only strong colour ---------- */
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--ssu-line);
  box-shadow: 0 1px 3px rgba(18, 58, 109, .05);
  padding-top: .5em; padding-bottom: .5em;
  position: relative;
}
.site-header::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--ssu-navy) 0 34%, var(--ssu-red) 34% 68%, #dfe5ee 68% 100%);
}
.site-header .custom-logo-link img { max-height: 56px; width: auto; }
.site-header, .site-header a, .site-header .site-title a { color: var(--ssu-ink); }
.site-branding .site-description { color: var(--ssu-muted); }

/* ---------- navigation: light bar, navy type ---------- */
.storefront-primary-navigation, .main-navigation { background: #fff; }
.main-navigation ul li a, .site-header-cart .cart-contents {
  color: var(--ssu-navy); font-weight: 600; letter-spacing: .01em;
}
.main-navigation ul li a:hover, .site-header-cart .cart-contents:hover { color: var(--ssu-red); }
.main-navigation ul.menu > li.current-menu-item > a { box-shadow: inset 0 -3px 0 var(--ssu-red); }
.main-navigation ul.nav-menu ul.children, .main-navigation ul.nav-menu ul.sub-menu {
  background: #fff; border: 1px solid var(--ssu-line); box-shadow: 0 8px 24px rgba(18,58,109,.1);
}

/* ---------- buttons ---------- */
button, .button, input[type="submit"],
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button,
.woocommerce input.button {
  background: var(--ssu-navy); color: #fff; font-weight: 700; border-radius: 6px;
  text-transform: uppercase; letter-spacing: .03em; font-size: .9em;
}
button:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--ssu-navy-dark); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce #respond input#submit.alt { background: var(--ssu-red); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--ssu-red-dark); }

/* ---------- product grid ---------- */
.woocommerce ul.products li.product {
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 10px;
  padding: 12px 12px 16px; transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.woocommerce ul.products li.product:hover {
  border-color: #c9d5e6; box-shadow: 0 10px 24px rgba(18, 58, 109, .10); transform: translateY(-2px);
}
.woocommerce ul.products li.product img { border-radius: 8px; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: .95em; font-weight: 600; line-height: 1.35; color: var(--ssu-ink);
}
.woocommerce ul.products li.product .price { color: var(--ssu-navy); font-weight: 700; }
.woocommerce ul.products li.product .price del { color: var(--ssu-muted); font-weight: 400; }
.woocommerce ul.products li.product .price ins { color: var(--ssu-red); text-decoration: none; }

.woocommerce span.onsale {
  background: var(--ssu-red); color: #fff; border-radius: 999px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .06em; font-size: .72em; padding: .35em .9em;
  min-height: auto; min-width: auto; line-height: 1.6;
}

/* ---------- single product ---------- */
.woocommerce div.product { background: #fff; border: 1px solid var(--ssu-line);
  border-radius: 12px; padding: 22px; }
.woocommerce div.product .product_title { color: var(--ssu-navy); font-weight: 800; letter-spacing: -.01em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ssu-navy); font-weight: 800; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ssu-red); }
.woocommerce .quantity .qty { border-radius: 6px; border: 1px solid var(--ssu-line); }
.woocommerce .stock.in-stock { color: var(--ssu-pitch); font-weight: 600; }
.woocommerce .stock.out-of-stock { color: var(--ssu-red); font-weight: 600; }

/* ---------- category cards ---------- */
.woocommerce ul.products li.product-category a img { border-radius: 8px; }
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title {
  background: #fff; color: var(--ssu-navy); border: 1px solid var(--ssu-line);
  border-radius: 6px; font-size: .9em; padding: .6em; font-weight: 700;
}
.woocommerce ul.products li.product-category mark { background: transparent; color: var(--ssu-muted); }

/* ---------- sidebar / widgets ---------- */
.widget { background: #fff; border: 1px solid var(--ssu-line); border-radius: 10px; padding: 16px; }
.widget .widget-title { color: var(--ssu-navy); font-size: .95em; font-weight: 700; }

/* ---------- footer: light ---------- */
.site-footer {
  background: #fff; color: var(--ssu-muted);
  border-top: 1px solid var(--ssu-line);
  box-shadow: inset 0 3px 0 0 rgba(18,58,109,.06);
}
.site-footer a { color: var(--ssu-navy); }
.site-footer a:hover { color: var(--ssu-red); }
.site-footer .widget-title, .site-footer h2 { color: var(--ssu-ink); }

/* ---------- homepage hero: light, tinted, not a dark slab ---------- */
.ssu-hero {
  background:
    linear-gradient(115deg, #ffffff 0%, #f2f6fc 46%, #fdf1f2 100%),
    repeating-linear-gradient(90deg, rgba(18,58,109,.03) 0 92px, transparent 92px 184px);
  border: 1px solid var(--ssu-line);
  border-left: 5px solid var(--ssu-red);
  color: var(--ssu-ink);
  border-radius: 12px; padding: 28px 30px; margin-bottom: 28px;
}
.ssu-hero h2 { color: var(--ssu-navy); margin: 0 0 6px; font-weight: 800; letter-spacing: -.02em; }
.ssu-hero p { margin: 0; color: var(--ssu-muted); }
.ssu-hero .ssu-hero-tag {
  display: inline-block; margin-bottom: 10px; font-size: .72em; font-weight: 800;
  text-transform: uppercase; letter-spacing: .1em;
  background: #fff; color: var(--ssu-navy); border: 1px solid var(--ssu-line);
  border-radius: 999px; padding: 4px 12px;
}

/* ---------- focus rings ----------
   Storefront ships a purple outline. Keep a visible ring for keyboard users,
   but not on mouse clicks, and in the crest colours rather than purple. */
a, button, input, select, textarea, .button, [tabindex] { outline-color: var(--ssu-navy); }

a:focus, button:focus, input:focus, select:focus, textarea:focus,
.button:focus, [tabindex]:focus {
  outline: 2px solid var(--ssu-navy);
  outline-offset: 2px;
  box-shadow: none;
}

/* a click should not leave a ring behind */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
.button:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
input[type="submit"]:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

a:focus-visible, button:focus-visible, .button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--ssu-navy);
  outline-offset: 2px;
}

/* text fields read better with a soft ring than a hard outline */
input[type="text"]:focus, input[type="email"]:focus, input[type="search"]:focus,
input[type="number"]:focus, input[type="password"]:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--ssu-navy);
  box-shadow: 0 0 0 3px rgba(18, 58, 109, .14);
}

/* highlight and tap flash, both purple by default */
::selection { background: rgba(18, 58, 109, .18); color: var(--ssu-ink); }
::-moz-selection { background: rgba(18, 58, 109, .18); color: var(--ssu-ink); }
a, button, .button { -webkit-tap-highlight-color: rgba(18, 58, 109, .15); }

/* Storefront's own purple accents */
.woocommerce-message, .woocommerce-info { border-top-color: var(--ssu-navy); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--ssu-navy); }

/* ---------- mega menu ----------
   Top-level items open a full-width panel of grouped columns, in the style of
   the big soccer retailers: heading per column, links beneath, sticky header. */

.storefront-primary-navigation { position: sticky; top: 0; z-index: 90; background: #fff;
  border-bottom: 1px solid var(--ssu-line); box-shadow: 0 2px 6px rgba(18,58,109,.05); }

.main-navigation ul.menu, .main-navigation ul.nav-menu { position: relative; }
.main-navigation ul.menu > li.menu-item { position: static; }

.main-navigation ul.menu > li.menu-item > a {
  text-transform: uppercase; font-weight: 800; font-size: .82em; letter-spacing: .06em;
  padding: 1.1em .95em;
}
.main-navigation ul.menu > li.menu-item-has-children > a::after {
  content: '▾'; font-size: .7em; margin-left: .45em; opacity: .55;
}
.main-navigation ul.menu > li.menu-item:hover > a,
.main-navigation ul.menu > li.menu-item:focus-within > a {
  color: var(--ssu-red); box-shadow: inset 0 -3px 0 var(--ssu-red);
}

/* the panel itself */
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu {
  display: none;
  position: absolute; left: 0; right: 0; top: 100%; width: 100%;
  background: #fff; border: 1px solid var(--ssu-line); border-top: 3px solid var(--ssu-red);
  border-radius: 0 0 10px 10px; box-shadow: 0 18px 40px rgba(18, 58, 109, .16);
  padding: 26px 30px 30px; margin: 0; z-index: 95;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px 34px;
}
.main-navigation ul.menu > li.menu-item-has-children:hover > ul.sub-menu,
.main-navigation ul.menu > li.menu-item-has-children:focus-within > ul.sub-menu { display: grid; }

/* columns */
.main-navigation ul.menu > li > ul.sub-menu > li {
  position: static; float: none; width: auto; border: 0; background: none; padding: 0;
}
.main-navigation ul.menu > li > ul.sub-menu > li > a {
  display: block; padding: 0 0 8px; margin-bottom: 8px;
  font-size: .76em; font-weight: 800; text-transform: uppercase; letter-spacing: .09em;
  color: var(--ssu-navy); border-bottom: 1px solid var(--ssu-line);
  cursor: default;
}
.main-navigation ul.menu > li > ul.sub-menu > li.mega-col-title > a:hover { color: var(--ssu-navy); }

/* links inside a column */
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu {
  display: block; position: static; width: auto; background: none;
  border: 0; box-shadow: none; padding: 0; margin: 0; opacity: 1; visibility: visible;
}
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu li { border: 0; width: auto; }
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu li a {
  display: block; padding: 5px 0; font-size: .88em; font-weight: 500;
  text-transform: none; letter-spacing: 0; color: var(--ssu-ink);
}
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu li a:hover {
  color: var(--ssu-red); padding-left: 4px;
}

/* Storefront's mobile menu should stay a plain list */
@media (max-width: 767px) {
  .main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu {
    position: static; display: block; grid-template-columns: 1fr;
    border: 0; box-shadow: none; padding: 0 0 0 12px; border-radius: 0;
  }
  .storefront-primary-navigation { position: static; }
}
.mega-brand-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu li a {
  display: flex; align-items: center;
}

/* ---------- navigation gets its own full-width row under the header ---------- */
.storefront-primary-navigation {
  width: 100%;
  background: #fff;
  border-top: 1px solid var(--ssu-line);
  border-bottom: 1px solid var(--ssu-line);
  box-shadow: 0 2px 8px rgba(18, 58, 109, .06);
}
.storefront-primary-navigation .col-full { padding-top: 0; padding-bottom: 0; }

.main-navigation { float: none; width: auto; margin: 0; }
.main-navigation ul.menu, .main-navigation ul.nav-menu {
  display: flex; flex-wrap: wrap; align-items: center; margin: 0;
}
.main-navigation ul.menu > li.menu-item { float: none; }
.main-navigation ul.menu > li.menu-item > a { display: block; }

/* cart sits at the end of the same row rather than stacking */
.site-header-cart { float: none; margin: 0; }
.site-header-cart .cart-contents { padding: 1.1em .9em; font-size: .82em; font-weight: 800;
  text-transform: uppercase; letter-spacing: .06em; }

@media (max-width: 767px) {
  .storefront-primary-navigation .col-full { display: block; }
  .site-header .col-full { flex-wrap: wrap; }
}

/* belt and braces: hide the cart markup if the theme prints it anyway */
.site-header-cart,
.storefront-primary-navigation .site-header-cart,
.site-header .site-header-cart,
.handheld-header .site-header-cart { display: none !important; }

/* product search back in the header, sized to the theme */
.site-search { display: block !important; float: none; width: 100%; max-width: 420px; margin: 10px 0 0 auto; }
.site-search .widget_product_search form { position: relative; margin: 0; }
.site-search .widget_product_search input[type="search"] {
  width: 100%; padding: 10px 14px; border: 1px solid var(--ssu-line); border-radius: 999px;
  background: var(--ssu-bg); font-size: .9em;
}
.site-search .widget_product_search input[type="search"]:focus {
  background: #fff; border-color: var(--ssu-navy); box-shadow: 0 0 0 3px rgba(18,58,109,.12); outline: none;
}
.site-search .widget_product_search button[type="submit"] { display: none; }
@media (max-width: 767px) { .site-search { max-width: none; margin-left: 0; } }

/* ---------- header layout: let Storefront own it, we only add the nav row ---------- */
.site-header { overflow: visible; }
.site-header > .col-full .site-branding { float: none; width: auto; margin-bottom: .5em; }
.site-header .site-branding img { display: block; }

/* nav row: one clean line, cart and search gone */
.storefront-primary-navigation { clear: both; overflow: visible; }
.main-navigation { float: none; width: 100%; }
.main-navigation ul.menu { display: flex; flex-wrap: wrap; align-items: center; }
.site-header-cart, .storefront-handheld-footer-bar { display: none !important; }

/* the mega panel must sit above the page, and the header must not clip it */
.site-header, .storefront-primary-navigation, .main-navigation, .main-navigation ul.menu { overflow: visible; }
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu { z-index: 200; }
.storefront-primary-navigation { z-index: 100; }

/* ---------- wide layout ----------
   Storefront caps the container around 966px, which leaves huge margins on a
   desktop and squeezes the product grid. Widen it and let the grid breathe. */
.col-full {
  max-width: 1320px;
  padding-left: 28px;
  padding-right: 28px;
  box-sizing: border-box;
}

/* the page banner and hero follow the same width */
.storefront-primary-navigation .col-full,
.site-header .col-full,
.site-footer .col-full { max-width: 1320px; }

/* more products per row once there is room */
@media (min-width: 1280px) {
  .woocommerce ul.products.columns-4 li.product,
  .woocommerce-page ul.products.columns-4 li.product { width: 22.6%; margin-right: 3.2%; }
  .woocommerce ul.products.columns-4 li.product:nth-child(4n),
  .woocommerce-page ul.products.columns-4 li.product:nth-child(4n) { margin-right: 0; }
}


/* single product: use the width rather than a narrow column */
@media (min-width: 1280px) {
  .woocommerce div.product div.images { width: 46%; }
  .woocommerce div.product div.summary { width: 50%; }
}
@media (max-width: 1100px) {
}
@media (max-width: 767px) {
}

/* ---------- overflow fix + responsiveness ----------
   The panel's padding was adding to its width, so an 8-column grid pushed past
   the container edge. Border-box everywhere inside the menu, and column counts
   that step down with the viewport. */
.main-navigation ul.menu > li > ul.sub-menu,
.main-navigation ul.menu > li > ul.sub-menu * { box-sizing: border-box; }

.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu {
  max-width: 100%;
  overflow-x: hidden;
}
.main-navigation ul.menu > li > ul.sub-menu > li { min-width: 0; }      /* grid items may shrink */
.main-navigation ul.menu > li > ul.sub-menu ul.sub-menu li a { min-width: 0; word-break: break-word; }

/* brand tiles step down cleanly instead of squeezing */
@media (max-width: 1280px) {
}
@media (max-width: 980px) {
}

/* grouped panels: fewer columns as space runs out */
@media (max-width: 1100px) {
  .main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 6px 22px; padding: 20px 22px 24px;
  }
}

/* the top-level row scrolls rather than wrapping into two lines */
@media (max-width: 1100px) and (min-width: 768px) {
  .main-navigation ul.menu {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
  }
  .main-navigation ul.menu::-webkit-scrollbar { display: none; }
  .main-navigation ul.menu > li.menu-item > a { padding: 1.1em .7em; font-size: .76em; }
}

/* ---------- the rest of the page ---------- */
.col-full { width: 100%; }
img, .woocommerce ul.products li.product img, .pcard img { max-width: 100%; height: auto; }

/* Storefront gives .col-full its own side margins below 1064px and 568px
   (1.41575em / 2.617924em, on top of its own padding) to make room around a
   centred, narrower column. This theme instead runs .col-full edge-to-edge
   with its own padding at every width, so those margins were never zeroed —
   they just stacked on top of a box already sized to 100%, pushing everything
   right and clipping the far edge on any screen under ~1064px wide. */
@media (max-width: 1064px) {
  .col-full { margin-left: 0 !important; margin-right: 0 !important; }
}

@media (max-width: 1100px) {
  .ssu-hero { padding: 22px 20px; }
  .ssu-hero h2 { font-size: 1.4em; }
}
@media (max-width: 767px) {
  .col-full { padding-left: 16px; padding-right: 16px; }
  .site-header .custom-logo-link img { max-height: 60px; }
  .ssu-hero { padding: 18px 16px; border-radius: 10px; }
  .woocommerce ul.products li.product { padding: 8px 8px 12px; }
  .woocommerce div.product { padding: 14px; }
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary { width: 100%; float: none; }
}
@media (max-width: 480px) {
}

/* tables (orders, variations) scroll instead of forcing the page wide */
.woocommerce table.shop_table, .woocommerce table.shop_attributes { display: block; overflow-x: auto; max-width: 100%; }

/* ---------- top-level nav: louder text, evenly spread ---------- */
.main-navigation ul.menu, .main-navigation ul.nav-menu {
  display: flex; align-items: stretch; width: 100%;
}
/* each item takes an equal share of the row instead of hugging the left */
.main-navigation ul.menu > li.menu-item {
  flex: 1 1 0; min-width: 0; text-align: center;
}
.main-navigation ul.menu > li.menu-item > a {
  display: flex; align-items: center; justify-content: center; gap: .4em;
  width: 100%; height: 100%;
  padding: 1.15em .5em;
  font-size: .95em;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--ssu-navy);
  white-space: nowrap;
}
.main-navigation ul.menu > li.menu-item > a::after { opacity: .7; margin-left: 0; }

.main-navigation ul.menu > li.menu-item:hover > a,
.main-navigation ul.menu > li.menu-item:focus-within > a {
  color: var(--ssu-red);
  background: color-mix(in srgb, var(--ssu-red) 5%, #fff);
  box-shadow: inset 0 -3px 0 var(--ssu-red);
}
/* thin divider between items so the even spacing reads as deliberate */
.main-navigation ul.menu > li.menu-item + li.menu-item { border-left: 1px solid var(--ssu-line); }

@media (max-width: 1100px) and (min-width: 768px) {
  .main-navigation ul.menu { flex-wrap: nowrap; }
  .main-navigation ul.menu > li.menu-item > a { font-size: .84em; padding: 1.05em .35em; letter-spacing: .02em; }
}
@media (max-width: 767px) {
  .main-navigation ul.menu { display: block; }
  .main-navigation ul.menu > li.menu-item { text-align: left; border-left: 0; }
  .main-navigation ul.menu > li.menu-item > a { justify-content: flex-start; }
}

/* ---------- nav bar spans the viewport, items share it equally ----------
   The nav row was capped at the 1320px content container, so on a wide screen
   the items bunched in the middle. Let the bar go edge to edge. */
.storefront-primary-navigation .col-full {
  max-width: 1320px;      /* same container as the rest of the page */
  width: 100%;
  padding-left: 28px;
  padding-right: 28px;
}

.main-navigation { float: none !important; width: 100% !important; margin: 0 !important; }
.main-navigation ul.menu,
.main-navigation ul.nav-menu,
.main-navigation div.menu > ul {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: stretch;
  justify-content: space-between;
  list-style: none;
}
.main-navigation ul.menu > li.menu-item {
  flex: 1 1 0 !important;
  float: none !important;
  width: auto !important;
  min-width: 0;
  display: flex;
}
.main-navigation ul.menu > li.menu-item > a {
  width: 100%;
  justify-content: center;
}

/* the dropdown still aligns to the bar, which is now the full width */
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu {
  left: 0; right: 0; width: 100%;
}
@media (max-width: 767px) {
  .main-navigation ul.menu { display: block !important; }
  .main-navigation ul.menu > li.menu-item { display: block; }
}

/* ================= BRAND TILES (single source of truth) =================
   One block only — earlier iterations left several conflicting rules that
   fought each other. The mark is a background image, so it can never
   overflow its tile no matter how wide the logo is. */
.main-navigation ul.menu > li.mega-brands > ul.sub-menu {
  display: none;
  grid-template-columns: repeat(8, 1fr);
  gap: 10px;
  padding: 18px 24px 22px;
}
.main-navigation ul.menu > li.mega-brands:hover > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands:focus-within > ul.sub-menu { display: grid; }

.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li { margin: 0; padding: 0; border: 0; }

.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a {
  display: block;
  height: 58px;
  padding: 10px 12px;
  border: 1px solid var(--ssu-line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a:hover {
  border-color: var(--ssu-navy);
  box-shadow: 0 3px 10px rgba(18, 58, 109, .12);
}

/* the mark fills the tile, letterboxed, never cropped */
.main-navigation ul.menu > li.mega-brands .mega-brand-logo {
  display: block;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
.main-navigation ul.menu > li.mega-brands .mega-brand-name {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* small marks beside the names in the other panels' brand columns */
.main-navigation ul.menu > li:not(.mega-brands) .mega-brand-logo {
  display: inline-block; width: 22px; height: 18px; margin-right: 8px;
  vertical-align: middle;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}

@media (max-width: 1280px) { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 980px)  { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 767px)  { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(4, 1fr); padding: 10px; } }

/* ---------- sticky nav, with the crest sliding in once it sticks ---------- */
.storefront-primary-navigation {
  position: sticky; top: 0; z-index: 100;
  transition: box-shadow .18s ease, padding .18s ease;
}
.storefront-primary-navigation .col-full { position: relative; }
.storefront-primary-navigation.is-stuck { box-shadow: 0 4px 16px rgba(18, 58, 109, .12); }

.stuck-logo {
  position: absolute; left: 8px; top: 50%;
  width: 0; height: 34px; margin-top: -17px;
  background-repeat: no-repeat; background-position: left center; background-size: contain;
  opacity: 0; overflow: hidden;
  transition: width .18s ease, opacity .18s ease;
  pointer-events: none;
}
.storefront-primary-navigation.is-stuck .stuck-logo { width: 40px; opacity: 1; pointer-events: auto; }
/* the menu shifts over to make room for it */
.storefront-primary-navigation.is-stuck .main-navigation { padding-left: 52px; transition: padding .18s ease; }

@media (max-width: 767px) { .stuck-logo { display: none; } }

/* ---------- plain white content area ---------- */
:root { --ssu-bg: #ffffff; }
body, .site, #page, .site-content, .content-area, #primary, #content,
.woocommerce, .woocommerce-page { background: #fff; }

/* cards previously separated themselves by tint; give them a hairline instead */
.woocommerce ul.products li.product { background: #fff; border-color: #e9edf3; }
.widget { background: #fff; }
.ssu-hero {
  background: #fff;
  border: 1px solid #e9edf3;
  border-left: 5px solid var(--ssu-red);
}

/* ---------- header and content as one surface ----------
   No rules or shadows while the page sits at the top; the nav only announces
   itself once it sticks, where a boundary is genuinely needed. */
.site-header {
  background: #fff;
  border-bottom: 0;
  box-shadow: none;
}
.storefront-primary-navigation {
  background: #fff;
  border-top: 0;
  border-bottom: 0;
  box-shadow: none;
}
.storefront-primary-navigation.is-stuck {
  border-bottom: 1px solid #e9edf3;
  box-shadow: 0 6px 18px rgba(18, 58, 109, .10);
}

/* the flag stripe stays as the only ornament at the very top */
.site-header::before { height: 3px; }

/* dividers between menu items were adding visual noise against a white page */
.main-navigation ul.menu > li.menu-item + li.menu-item { border-left: 0; }

/* content starts flush under the nav */
.site-content { padding-top: 1.4em; }
#content, .site-content, .content-area { background: #fff; }
.ssu-hero { margin-top: 0; }

/* ---------- menu keeps a clear edge against the content ---------- */
.storefront-primary-navigation {
  border-bottom: 1px solid #e3e8ef;
  box-shadow: 0 10px 22px rgba(18, 58, 109, .12);
}
.storefront-primary-navigation.is-stuck { box-shadow: 0 6px 18px rgba(18, 58, 109, .12); }
.site-content { padding-top: 2em; }

/* ---------- home page ---------- */
.home-head {
  margin: 34px 0 16px; font-size: 1.3em; font-weight: 800; color: var(--ssu-navy);
  letter-spacing: -.01em; padding-bottom: 8px; border-bottom: 2px solid #eef1f6;
}
.home-cats {
  display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-top: 6px;
}
.home-cat {
  display: flex; align-items: center; gap: 12px; padding: 14px;
  border: 1px solid #e3e8ef; border-radius: 10px; text-decoration: none; background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.home-cat:hover { border-color: var(--ssu-navy); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(18,58,109,.10); }
.home-cat-img { width: 54px; height: 54px; flex: none; border-radius: 8px; background: #f4f7fb center/cover no-repeat; }
.home-cat-body { display: grid; gap: 2px; min-width: 0; }
.home-cat-body strong { font-size: 1.02em; color: var(--ssu-navy); }
.home-cat-body em { font-style: normal; font-size: .82em; color: var(--ssu-muted); }
.home-cat-count { font-size: .74em; text-transform: uppercase; letter-spacing: .06em; color: var(--ssu-red); font-weight: 700; }

.home-brands { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.home-brand {
  display: block; height: 66px; padding: 10px 14px;
  border: 1px solid #e3e8ef; border-radius: 8px; background: #fff;
}
.home-brand:hover { border-color: var(--ssu-navy); box-shadow: 0 4px 12px rgba(18,58,109,.10); }
.home-brand span {
  display: block; width: 100%; height: 100%;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}

/* ---------- make sticky actually stick ----------
   Storefront sets overflow-x:hidden on body and .hfeed, which turns them into
   scroll containers and silently disables position:sticky on the nav.
   overflow-x:clip stops sideways scrolling without that side effect. */
body, body.home, .hfeed, #page, .site {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

/* ---------- pinned navigation ---------- */
.storefront-primary-navigation { position: relative; z-index: 100; }
.storefront-primary-navigation.is-stuck {
  position: fixed; top: 0; left: 0; right: 0;
  background: #fff;
  border-bottom: 1px solid #e3e8ef;
  box-shadow: 0 6px 18px rgba(18, 58, 109, .12);
}
.nav-spacer { height: 0; }

/* the pinned crest, sized to read at a glance */
.stuck-logo { height: 42px !important; margin-top: -21px !important; background-position: center !important; }
.storefront-primary-navigation.is-stuck .stuck-logo { width: 42px !important; }
.storefront-primary-navigation.is-stuck .main-navigation { padding-left: 58px; }

/* pinned lockup: crest and wordmark together, sized by width not height */
.stuck-logo {
  height: 34px !important; margin-top: -17px !important;
  background-position: left center !important;
  background-size: contain !important;
}
.storefront-primary-navigation.is-stuck .stuck-logo { width: 150px !important; }
.storefront-primary-navigation.is-stuck .main-navigation { padding-left: 166px; }
@media (max-width: 1180px) {
  .storefront-primary-navigation.is-stuck .stuck-logo { width: 112px !important; height: 28px !important; margin-top: -14px !important; left: 6px !important; }
  .storefront-primary-navigation.is-stuck .main-navigation { padding-left: 124px; }
}

/* ---------- pinned bar: wider, with search and cart on the right ---------- */
.storefront-primary-navigation.is-stuck .col-full {
  max-width: 1560px;          /* wider than the page container so the menu breathes */
  padding-left: 24px; padding-right: 24px;
}
.storefront-primary-navigation.is-stuck .main-navigation { padding-right: 108px; }

.stuck-actions {
  position: absolute; right: 24px; top: 50%; transform: translateY(-50%);
  display: none; align-items: center; gap: 6px; z-index: 3;
}
.storefront-primary-navigation.is-stuck .stuck-actions { display: flex; }

.stuck-btn {
  display: inline-flex; align-items: center; justify-content: center; position: relative;
  width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid #e3e8ef; background: #fff; color: var(--ssu-navy);
  cursor: pointer; padding: 0; text-decoration: none;
}
.stuck-btn:hover { border-color: var(--ssu-navy); color: var(--ssu-red); background: #fff; }
.stuck-cart-count {
  position: absolute; top: -4px; right: -4px; min-width: 17px; height: 17px;
  border-radius: 999px; background: var(--ssu-red); color: #fff;
  font-size: 10px; font-weight: 800; line-height: 17px; text-align: center; padding: 0 4px;
}

/* the field the magnifier reveals */
.stuck-search {
  position: absolute; right: 68px; top: 50%; transform: translateY(-50%);
  width: 0; opacity: 0; overflow: hidden; transition: width .18s ease, opacity .18s ease;
  z-index: 3; margin: 0;
}
.storefront-primary-navigation.is-stuck .col-full.search-open .stuck-search { width: 300px; opacity: 1; }
.stuck-search input[type="search"] {
  width: 100%; padding: 8px 14px; font-size: .9em;
  border: 1px solid #e3e8ef; border-radius: 999px; background: #fff;
}
.stuck-search input[type="search"]:focus {
  outline: none; border-color: var(--ssu-navy); box-shadow: 0 0 0 3px rgba(18,58,109,.12);
}
.storefront-primary-navigation.is-stuck .col-full.search-open .main-navigation { opacity: .25; pointer-events: none; }

@media (max-width: 1180px) {
  .storefront-primary-navigation.is-stuck .col-full { max-width: 100%; }
  .storefront-primary-navigation.is-stuck .col-full.search-open .stuck-search { width: 200px; }
}
@media (max-width: 767px) { .stuck-actions, .stuck-search { display: none !important; } }

/* ---------- footer ---------- */
.site-footer { padding: 0; background: #fff; border-top: 0; }
.ssu-footer { background: #f7f9fc; border-top: 1px solid #e3e8ef; padding: 40px 0 0; margin-top: 48px; }
.ssu-footer-grid {
  display: grid; gap: 30px 36px;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr;
  padding-bottom: 32px;
}
@media (max-width: 1100px) { .ssu-footer-grid { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 640px)  { .ssu-footer-grid { grid-template-columns: 1fr; gap: 24px; } }

.ssu-foot-logo { max-width: 190px; height: auto; display: block; margin-bottom: 12px; }
.ssu-foot-brand p { font-size: .86em; color: var(--ssu-muted); line-height: 1.6; margin: 0 0 14px; max-width: 34ch; }

.ssu-social { display: flex; gap: 8px; }
.ssu-social a {
  width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid #e3e8ef; color: var(--ssu-navy);
  font-size: 11px; font-weight: 800; text-transform: uppercase; text-decoration: none; letter-spacing: .02em;
}
.ssu-social a:hover { background: var(--ssu-navy); border-color: var(--ssu-navy); color: #fff; }

.ssu-foot-col h3 {
  font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .09em;
  color: var(--ssu-navy); margin: 0 0 12px;
}
.ssu-foot-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.ssu-foot-col a { font-size: .88em; color: var(--ssu-ink); text-decoration: none; display: flex; justify-content: space-between; gap: 10px; }
.ssu-foot-col a:hover { color: var(--ssu-red); }
.ssu-foot-col a span { color: var(--ssu-muted); font-size: .82em; font-variant-numeric: tabular-nums; }

.ssu-foot-news p { font-size: .84em; color: var(--ssu-muted); margin: 0 0 10px; line-height: 1.55; }
.ssu-news-form { display: flex; gap: 6px; }
.ssu-news-form input {
  flex: 1; min-width: 0; padding: 9px 12px; font-size: .88em;
  border: 1px solid #dbe2ec; border-radius: 8px; background: #fff;
}
.ssu-news-form input:focus { outline: none; border-color: var(--ssu-navy); box-shadow: 0 0 0 3px rgba(18,58,109,.12); }
.ssu-news-form button {
  padding: 9px 18px; border: 0; border-radius: 8px; cursor: pointer;
  background: var(--ssu-red); color: #fff; font-weight: 800; font-size: .84em;
  text-transform: uppercase; letter-spacing: .04em;
}
.ssu-news-form button:hover { background: var(--ssu-red-dark); }
.ssu-foot-note { font-size: .72em !important; color: #98a3b3 !important; margin-top: 8px !important; }

.ssu-footer-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  border-top: 1px solid #e3e8ef; padding: 16px 0 22px;
  font-size: .8em; color: var(--ssu-muted);
}
.ssu-pay { display: flex; gap: 6px; }
.ssu-pay i {
  font-style: normal; font-size: 9.5px; font-weight: 800; letter-spacing: .06em;
  background: #fff; border: 1px solid #e3e8ef; border-radius: 4px; padding: 4px 7px; color: #5b6879;
}
.ssu-foot-links { display: flex; gap: 14px; }
.ssu-foot-links a { color: var(--ssu-muted); text-decoration: none; }
.ssu-foot-links a:hover { color: var(--ssu-navy); }

/* ---------- a clear divider between every menu item ---------- */
.main-navigation ul.menu > li.menu-item + li.menu-item {
  border-left: 1px solid #dde4ee;
}
.main-navigation ul.menu > li.menu-item:first-child { border-left: 1px solid #dde4ee; }
.main-navigation ul.menu > li.menu-item:last-child { border-right: 1px solid #dde4ee; }
/* dividers run the full height of the bar rather than floating mid-air */
.main-navigation ul.menu > li.menu-item { align-items: stretch; }
.main-navigation ul.menu > li.menu-item > a { padding-top: 1.15em; padding-bottom: 1.15em; }

/* ---------- footer band spans the viewport ----------
   The tinted band already ran edge to edge; its inner container was capped at
   the 1320px content width, which left the columns bunched in the middle. */
.ssu-footer { width: 100%; }
.ssu-footer > .col-full {
  max-width: 100%;
  padding-left: 40px;
  padding-right: 40px;
}
@media (min-width: 1700px) {
  .ssu-footer > .col-full { padding-left: 64px; padding-right: 64px; }
}
@media (max-width: 767px) {
  .ssu-footer > .col-full { padding-left: 16px; padding-right: 16px; }
}

/* Storefront wraps the footer hook inside its own .col-full, so the band was
   inheriting the 1320px cap. Release the wrapper, keep padding on the inner one. */
.site-footer > .col-full {
  max-width: 100% !important;
  width: 100%;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.site-footer { padding-bottom: 0; }
.ssu-footer { margin-left: 0; margin-right: 0; }

/* ---------- footer store locations ---------- */
.ssu-footer-grid { grid-template-columns: 1.3fr 2.4fr 1fr 1.3fr; }
@media (max-width: 1100px) { .ssu-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px)  { .ssu-footer-grid { grid-template-columns: 1fr; } }

.ssu-stores { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .ssu-stores { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ssu-stores { grid-template-columns: 1fr; } }

.ssu-store { display: grid; gap: 4px; align-content: start; }
.ssu-store strong {
  font-size: .84em; color: var(--ssu-navy); font-weight: 800;
  text-transform: uppercase; letter-spacing: .05em;
  padding-bottom: 5px; border-bottom: 2px solid var(--ssu-red);
  justify-self: start;
}
.ssu-store span { font-size: .84em; color: var(--ssu-ink); line-height: 1.55; }
.ssu-store-meta { color: var(--ssu-muted) !important; font-size: .78em !important; }

/* ---------- dividers run the full height of the bar ----------
   The list was shorter than its container, so the borders started partway down. */
.storefront-primary-navigation .col-full {
  display: flex; align-items: stretch;
  padding-top: 0 !important; padding-bottom: 0 !important;
}
.main-navigation { display: flex; align-items: stretch; margin: 0 !important; }
.main-navigation > div, .main-navigation .menu-primary-container { display: flex; align-items: stretch; width: 100%; }
.main-navigation ul.menu { align-items: stretch; min-height: 100%; margin: 0 !important; padding: 0 !important; }
.main-navigation ul.menu > li.menu-item { display: flex; align-items: stretch; }
.main-navigation ul.menu > li.menu-item > a { display: flex; align-items: center; height: auto; }

/* the flex wrapper needs to grow, or the list collapses to content width */
.main-navigation { flex: 1 1 auto; min-width: 0; }
.main-navigation > div,
.main-navigation .menu-primary-container { flex: 1 1 auto; min-width: 0; }
.main-navigation ul.menu { flex: 1 1 auto; width: 100% !important; }
.main-navigation ul.menu > li.menu-item { flex: 1 1 0 !important; min-width: 0; }
.main-navigation ul.menu > li.menu-item > a { width: 100%; justify-content: center; white-space: nowrap; }

/* ---------- keep the mobile menu out of the desktop row ----------
   A blanket `.main-navigation > div { display:flex }` had made Storefront's
   handheld nav visible, so it shared the row and halved the menu's width. */
@media (min-width: 768px) {
  .main-navigation .handheld-navigation { display: none !important; }
  .main-navigation > div.primary-navigation {
    display: flex !important; flex: 1 1 auto !important; min-width: 0; width: 100%;
  }
}
@media (max-width: 767px) {
  .main-navigation > div.primary-navigation { display: none !important; }
  .main-navigation .handheld-navigation { display: block !important; }
}

/* ---------- brands marquee ---------- */
.home-sub { margin: -8px 0 16px; color: var(--ssu-muted); font-size: .9em; }

.brand-marquee {
  position: relative; overflow: hidden; padding: 6px 0;
  border: 1px solid #e3e8ef; border-radius: 10px; background: #fff;
}
/* fade the edges so logos enter and leave rather than being chopped */
.brand-marquee::before, .brand-marquee::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 70px; z-index: 2; pointer-events: none;
}
.brand-marquee::before { left: 0; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); }
.brand-marquee::after { right: 0; background: linear-gradient(270deg, #fff, rgba(255,255,255,0)); }

.brand-track {
  display: flex; align-items: center; gap: 34px; width: max-content;
  animation: brand-scroll 104s linear infinite;
}
.brand-marquee:hover .brand-track { animation-play-state: paused; }

.brand-slide { display: block; flex: none; width: 128px; height: 62px; padding: 6px; }
.brand-slide span {
  display: block; width: 100%; height: 100%;
  background-repeat: no-repeat; background-position: center; background-size: contain;
  filter: grayscale(1); opacity: .62; transition: filter .2s ease, opacity .2s ease;
}
.brand-slide:hover span { filter: none; opacity: 1; }

@keyframes brand-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* exactly one copy of the doubled track */
}
@media (prefers-reduced-motion: reduce) {
  .brand-track { animation: none; }
  .brand-marquee { overflow-x: auto; }
}

/* ---------- no rule under the main content ---------- */
.site-content, #content, .content-area, #primary, .site-main {
  border-bottom: 0 !important; box-shadow: none !important;
}
.ssu-footer { border-top: 0; }

/* ---------- marquee: no frame ---------- */
.brand-marquee {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 10px 0 4px;
}
/* the edge fades still need to match the page behind them */
.brand-marquee::before { background: linear-gradient(90deg, #fff 25%, rgba(255,255,255,0)); }
.brand-marquee::after  { background: linear-gradient(270deg, #fff 25%, rgba(255,255,255,0)); }

/* ---------- marquee: larger marks ---------- */
.brand-slide { width: 190px; height: 92px; padding: 4px; }
.brand-track { gap: 46px; }
.brand-marquee { padding: 14px 0 6px; }
.brand-slide span { opacity: .7; }
.brand-slide:hover span { opacity: 1; }

/* previous/next product arrows on the single product page */
.storefront-product-pagination, .storefront-product-pagination a { display: none !important; }

/* no rule above the footer */
.site-footer, .ssu-footer { border-top: 0 !important; box-shadow: none !important; }
.site-footer::before, .ssu-footer::before { display: none; }

/* marquee: logos closer together */
.brand-track { gap: 14px; }
.brand-slide { width: 160px; height: 88px; padding: 2px; }

/* ---------- tighten the gap between content and footer ---------- */
.site-content { padding-bottom: .6em !important; }
#content, .content-area, .site-main { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.ssu-footer { margin-top: 20px; padding-top: 32px; }
.woocommerce .site-main, .woocommerce-page .site-main { margin-bottom: 0; }
/* WooCommerce leaves a large gap under the product grid and pagination */
.woocommerce ul.products, .woocommerce-page ul.products { margin-bottom: 1em; }
.woocommerce nav.woocommerce-pagination { margin-bottom: .5em; }
.storefront-full-width-content .site-main { padding-bottom: 0; }

/* ---------- the search button becomes a close button while open ---------- */
.stuck-search-toggle .ico-close { display: none; }
.col-full.search-open .stuck-search-toggle .ico-search { display: none; }
.col-full.search-open .stuck-search-toggle .ico-close { display: block; }
.col-full.search-open .stuck-search-toggle {
  background: var(--ssu-navy); border-color: var(--ssu-navy); color: #fff;
}
.col-full.search-open .stuck-search-toggle:hover { background: var(--ssu-navy-dark); color: #fff; }

/* ---------- close the gap under the brands marquee ---------- */
.brand-marquee { padding-bottom: 0; margin-bottom: 0; }
.brand-marquee + p, .brand-marquee + div { margin-top: 0; }
/* the marquee is the last thing on the home page, so the page ends with it */
.home .entry-content > *:last-child,
.page .entry-content > *:last-child { margin-bottom: 0 !important; }
.home .entry-content, .page .entry-content { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.home .site-main, .home #primary, .home .content-area { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.ssu-footer { margin-top: 8px; }

.ssu-store-tel a { font-size: .84em; color: var(--ssu-navy); font-weight: 600; text-decoration: none; }
.ssu-store-tel a:hover { color: var(--ssu-red); }
.ssu-store-meta { line-height: 1.5; }

/* ---------- the menu row needs a rule above it too ----------
   Only the bottom edge was drawn, so each item divider looked like it hung
   from nothing at the top of the bar. */
.storefront-primary-navigation { border-top: 1px solid #e3e8ef; }
.storefront-primary-navigation.is-stuck { border-top: 0; }

/* ---------- payment marks ---------- */
.ssu-pay { display: flex; align-items: center; gap: 7px; }
.ssu-pay-card {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 26px; padding: 3px 5px;
  background: #fff; border: 1px solid #e3e8ef; border-radius: 5px;
  box-shadow: 0 1px 2px rgba(18, 58, 109, .05);
}
.ssu-pay-card svg { width: 100%; height: 100%; display: block; }

/* ---------- header search modal ---------- */
.ssu-smodal[hidden] { display: none; }
.ssu-smodal { position: fixed; inset: 0; z-index: 9999; }
.ssu-smodal-back {
  position: absolute; inset: 0;
  background: rgba(10, 22, 40, .55);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  animation: ssu-smodal-fade .16s ease;
}
body.ssu-smodal-open { overflow: hidden; }

.ssu-smodal-card {
  position: relative;
  width: min(720px, 94vw);
  margin: 9vh auto 0;
  background: #fff; border-radius: 14px;
  box-shadow: 0 24px 60px rgba(9, 22, 42, .35);
  overflow: hidden;
  animation: ssu-smodal-rise .18s cubic-bezier(.2, .8, .3, 1);
}
@keyframes ssu-smodal-fade { from { opacity: 0 } to { opacity: 1 } }
@keyframes ssu-smodal-rise { from { opacity: 0; transform: translateY(-10px) } to { opacity: 1; transform: none } }

.ssu-smodal-top {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 16px 16px 18px;
  border-bottom: 1px solid #eef1f6;
  color: var(--ssu-navy);
}
.ssu-smodal-top svg { flex: 0 0 auto; opacity: .75; }
.ssu-smodal-top input[type=search] {
  flex: 1 1 auto; min-width: 0;
  border: 0; outline: 0; background: none; box-shadow: none;
  font-size: 1.05em; font-weight: 600; color: var(--ssu-navy); padding: 2px 0;
}
.ssu-smodal-top input[type=search]::placeholder { color: #9aa6b6; font-weight: 500; }
.ssu-smodal-top input[type=search]::-webkit-search-cancel-button { display: none; }
.ssu-smodal-x {
  flex: 0 0 auto; background: #f2f5fa; border: 1px solid #e3e8ef; color: #6b7787;
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 5px 9px; border-radius: 6px; cursor: pointer; line-height: 1;
}
.ssu-smodal-x:hover { background: #e9eef6; color: var(--ssu-navy); }

.ssu-smodal-body { max-height: min(58vh, 520px); overflow-y: auto; }
.ssu-smodal-body.is-loading { opacity: .45; }
.ssu-smodal-note { margin: 0; padding: 26px 20px; text-align: center; color: var(--ssu-muted); font-size: .9em; }

.ssu-sug {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 18px; text-decoration: none; color: inherit;
  border-bottom: 1px solid #f3f5f9;
}
.ssu-sug:last-of-type { border-bottom: 0; }
.ssu-sug:hover, .ssu-sug.is-on { background: #f5f8fd; }
.ssu-sug-img {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 8px;
  border: 1px solid #eef1f6; background: #fff; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.ssu-sug-img img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.ssu-sug-main { flex: 1 1 auto; min-width: 0; display: grid; gap: 3px; }
.ssu-sug-name {
  font-size: .92em; font-weight: 600; color: var(--ssu-navy); line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ssu-sug-name mark, .ssu-sug-sku mark { background: #ffeaa7; color: inherit; padding: 0 1px; border-radius: 2px; }
.ssu-sug-meta { display: flex; gap: 10px; font-size: .74em; color: var(--ssu-muted); }
.ssu-sug-sku { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }
.ssu-sug-brand { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.ssu-sug-right { flex: 0 0 auto; text-align: right; display: grid; gap: 3px; }
.ssu-sug-price { font-size: .86em; font-weight: 700; color: var(--ssu-navy); }
.ssu-sug-price del { color: var(--ssu-muted); font-weight: 500; margin-right: 4px; }
.ssu-sug-price ins { text-decoration: none; color: var(--ssu-red); }
.ssu-sug-oos { font-size: .68em; text-transform: uppercase; letter-spacing: .06em; color: #b0392f; }

.ssu-sug-all {
  display: block; padding: 13px 18px; text-align: center;
  background: #f7f9fc; border-top: 1px solid #eef1f6;
  font-size: .82em; font-weight: 700; color: var(--ssu-navy); text-decoration: none;
}
.ssu-sug-all:hover, .ssu-sug-all.is-on { background: var(--ssu-navy); color: #fff; }

.ssu-smodal-foot {
  display: flex; gap: 18px; justify-content: center;
  padding: 10px 16px; border-top: 1px solid #eef1f6; background: #fbfcfe;
  font-size: .72em; color: var(--ssu-muted);
}
.ssu-smodal-foot kbd {
  display: inline-block; min-width: 18px; text-align: center;
  border: 1px solid #dfe5ee; border-bottom-width: 2px; border-radius: 4px;
  background: #fff; padding: 1px 5px; margin-right: 3px;
  font-family: inherit; font-size: 11px; color: #6b7787;
}
@media (max-width: 600px) {
  .ssu-smodal-card { margin-top: 0; width: 100vw; height: 100%; border-radius: 0; }
  .ssu-smodal-body { max-height: calc(100% - 118px); }
  .ssu-smodal-foot { display: none; }
}

/* the old inline slide-out field is replaced by the modal */
.stuck-search { display: none !important; }

/* ---------- header search sits bare, no pill container ---------- */
.site-search .widget_product_search input[type="search"] {
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  padding: 8px 2px 8px 26px !important;
  font-weight: 600; color: var(--ssu-navy);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23123a6d' stroke-width='2.1' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: 17px 17px !important;
}
.site-search .widget_product_search input[type="search"]::placeholder {
  color: var(--ssu-muted); font-weight: 500;
}
.site-search .widget_product_search input[type="search"]:focus {
  background-color: transparent !important; box-shadow: none !important;
  border-bottom: 1px solid var(--ssu-line) !important;
}
.site-search { max-width: 260px; }

/* ---------- the header search field needs no card around it ----------
   The product-search widget was inheriting the sidebar widget card. */
.site-search .widget_product_search {
  background: none !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; margin: 0 !important; box-shadow: none !important;
}
.site-search .widget_product_search form::before { display: none !important; }
.site-search { margin-top: 18px; }

/* ---------- socials live under the newsletter now ---------- */
.ssu-foot-news .ssu-social { margin-top: 14px; }
.ssu-social a { width: 32px; height: 32px; transition: transform .14s ease, background .14s ease, color .14s ease; }
.ssu-social a:hover { transform: translateY(-2px); }
.ssu-social svg { display: block; }

/* ---------- the gap under the marquee was Storefront's .hentry margin ----------
   It collapsed out of .site-main and, because #primary floats, was contained
   there as 67.8px of empty column below the last row. */
.home article.hentry, .home .site-main > article { margin-bottom: 0 !important; }
.home .ssu-footer { margin-top: 0; }

/* ---------- store lines carry an icon ---------- */
.ssu-store span { display: flex; align-items: flex-start; gap: 8px; }
.ssu-store .ssu-ico { flex: 0 0 auto; margin-top: 3px; color: var(--ssu-red); }
.ssu-store-tel { align-items: center !important; }
.ssu-store-tel .ssu-ico { margin-top: 0; }
.ssu-store-meta .ssu-ico { color: var(--ssu-muted); }

/* ---------- search modal: quieter chrome ---------- */
.ssu-smodal-x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; padding: 0; border-radius: 50%;
  background: #f2f5fa; border: 1px solid #e3e8ef; color: #6b7787; cursor: pointer;
}
.ssu-smodal-x:hover { background: var(--ssu-navy); border-color: var(--ssu-navy); color: #fff; }
.ssu-smodal-empty {
  display: flex; align-items: center; justify-content: center;
  padding: 44px 0 48px; color: #d9e0ea;
}
.ssu-smodal-body { min-height: 0; }

/* ---------- social icons inherit the footer link layout, undo it ----------
   Moving them under the newsletter put them inside .ssu-foot-col, whose links
   are flex with space-between, so each glyph was pinned to the left edge. */
.ssu-social a {
  justify-content: center !important;
  align-items: center !important;
  display: inline-flex !important;
  padding: 0 !important;
  gap: 0 !important;
  font-size: inherit !important;
}
.ssu-social a svg { display: block; margin: 0 auto; }

/* ---------- marquee: bigger marks again ---------- */
.brand-slide { width: 216px; height: 118px; padding: 2px; }
.brand-track { gap: 20px; }
.brand-marquee { padding: 18px 0 10px; }
@media (max-width: 900px) {
  .brand-slide { width: 168px; height: 92px; }
}

/* ---------- breathing room over the footer ---------- */
.home .ssu-footer { margin-top: 0; }
.home .site-content { padding-bottom: 46px !important; }

/* ---------- brand strip: stepped slide, not a drift ---------- */
.brand-track { animation: none !important; will-change: transform; }
.brand-marquee:hover .brand-track { animation-play-state: running; }

/* ---------- the Locations page ---------- */
.ssu-locations { max-width: 100%; }
.ssu-loc-intro { font-size: 1.02em; color: var(--ssu-ink); max-width: 640px; margin: 0 0 30px; }
.ssu-loc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 980px) { .ssu-loc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .ssu-loc-grid { grid-template-columns: 1fr; } }

.ssu-loc-card {
  display: flex; flex-direction: column;
  border: 1px solid #e3e8ef; border-radius: 12px; background: #fff;
  padding: 24px 24px 20px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ssu-loc-card:hover { border-color: #cfdaea; box-shadow: 0 10px 26px rgba(18, 58, 109, .08); }
.ssu-loc-name {
  font-size: 1.15em !important; font-weight: 800; color: var(--ssu-navy);
  margin: 0 0 4px !important; padding-bottom: 12px;
  border-bottom: 2px solid var(--ssu-red); align-self: flex-start;
}
.ssu-loc-line {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 16px 0 0 !important; font-size: .94em; line-height: 1.55; color: var(--ssu-ink);
}
.ssu-loc-line .ssu-ico { flex: 0 0 auto; margin-top: 3px; color: var(--ssu-red); }
.ssu-loc-line a { color: var(--ssu-navy); font-weight: 700; text-decoration: none; }
.ssu-loc-line a:hover { color: var(--ssu-red); }

.ssu-loc-hours { margin-top: 18px; border-top: 1px solid #eef1f6; padding-top: 14px; }
.ssu-loc-hourhead {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  font-size: .74em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ssu-muted);
}
.ssu-loc-hourhead .ssu-ico { color: var(--ssu-muted); }
.ssu-loc-hourrow {
  display: flex; justify-content: space-between; gap: 14px;
  font-size: .88em; color: var(--ssu-ink); padding: 3px 0;
}
.ssu-loc-hourrow span:first-child { color: var(--ssu-muted); }

.ssu-loc-dir {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  margin-top: auto; padding-top: 18px;
  font-size: .84em; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  color: var(--ssu-navy); text-decoration: none;
}
.ssu-loc-dir:hover { color: var(--ssu-red); }
.ssu-loc-dir svg { transition: transform .15s ease; }
.ssu-loc-dir:hover svg { transform: translateX(3px); }

.ssu-loc-foot { margin-top: 30px !important; font-size: .92em; color: var(--ssu-muted); }
.ssu-loc-foot a { color: var(--ssu-navy); font-weight: 700; text-decoration: none; }
.ssu-loc-foot a:hover { color: var(--ssu-red); }

/* the footer heading and store names now link through to that page */
.ssu-foot-stores h3 a { color: inherit; text-decoration: none; }
.ssu-foot-stores h3 a:hover { color: var(--ssu-red); }
.ssu-store strong a { color: inherit; text-decoration: none; }
.ssu-store strong a:hover { color: var(--ssu-red); }

/* content links are underlined by Storefront; the location cards read better without */
.ssu-locations a { text-decoration: none !important; }
.ssu-locations a:hover { text-decoration: none !important; }
/* heading link keeps the navy */

/* the Locations heading is a link now, so it needs the heading colour back */
.ssu-foot-stores h3 a { color: var(--ssu-navy) !important; font-weight: 800; }
.ssu-foot-stores h3 a:hover { color: var(--ssu-red) !important; }

/* ---------- addresses open a map in a new tab ---------- */
.ssu-loc-addr, .ssu-store-addr { color: inherit; text-decoration: none; }
.ssu-loc-addr:hover, .ssu-store-addr:hover { color: var(--ssu-red) !important; }
.ssu-store-addr { display: inline-block; }

/* ---------- the contact row spans the stores column ---------- */
.ssu-stores-mail {
  display: flex; align-items: center; gap: 9px;
  margin-top: 16px; padding-top: 14px;
  border-top: 1px solid #e4e9f1;
  font-size: .88em;
}
.ssu-stores-mail .ssu-ico { flex: 0 0 auto; color: var(--ssu-red); }
.ssu-stores-mail a { color: var(--ssu-navy); font-weight: 600; text-decoration: none; }
.ssu-stores-mail a:hover { color: var(--ssu-red); }

/* ---------- locations own the middle of the footer ----------
   Help sits under the brand blurb as a two-column link list, which frees the
   whole centre of the row for the three store cards. */
.ssu-footer-grid { grid-template-columns: 1.25fr 2.7fr 1.1fr !important; }
@media (max-width: 1150px) { .ssu-footer-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 700px)  { .ssu-footer-grid { grid-template-columns: 1fr !important; } }

.ssu-foot-help { margin-top: 22px; }
.ssu-foot-help h3 {
  font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .09em;
  color: var(--ssu-navy); margin: 0 0 12px;
}
.ssu-foot-help ul {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px;
}
.ssu-foot-help a { font-size: .86em; color: var(--ssu-ink); text-decoration: none; }
.ssu-foot-help a:hover { color: var(--ssu-red); }

/* ---------- store photos on the Locations page ---------- */
.ssu-loc-photo {
  display: block; margin: -24px -24px 18px; height: 190px; overflow: hidden;
  border-radius: 12px 12px 0 0; background: #eef2f8;
}
.ssu-loc-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ssu-loc-photo:hover img { transform: scale(1.04); }
.ssu-loc-photo.is-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  background: linear-gradient(135deg, #eef2f8, #dfe7f2);
  color: var(--ssu-muted); font-size: .8em; letter-spacing: .08em; text-transform: uppercase; font-weight: 700;
}
.ssu-loc-photo.is-empty .ssu-ico { width: 22px; height: 22px; color: var(--ssu-red); }

/* ---------- the store photo shows whole, no crop and no zoom ---------- */
.ssu-loc-photo { height: 210px; background: #f4f7fb; border-bottom: 1px solid #eef1f6; }
.ssu-loc-photo img { object-fit: contain !important; padding: 10px; transition: none !important; }
.ssu-loc-photo:hover img { transform: none !important; }

/* ---------- header row: logo, search, actions ---------- */
.site-header > .col-full {
  display: flex; align-items: center; flex-wrap: wrap; gap: 20px 28px;
  padding-top: 12px; padding-bottom: 12px;
}
.site-header > .col-full .site-branding { flex: 0 0 auto; margin: 0 !important; padding: 0 !important; width: auto; float: none; text-align: center; }
.site-header > .col-full .site-branding img.custom-logo { max-width: 210px; height: auto; display: block; }

/* the search takes the middle of the row */
.site-header > .col-full .site-search {
  order: 2; flex: 1 1 320px; min-width: 0;
  max-width: none !important; margin: 0 !important; float: none;
}
.site-search .widget_product_search input[type="search"] {
  width: 100%; padding: 11px 4px 11px 30px !important;
  border-bottom: 1px solid #e3e8ef !important; border-radius: 0 !important;
  font-size: 1em; background-size: 19px 19px !important;
}
.site-search .widget_product_search input[type="search"]:focus {
  border-bottom-color: var(--ssu-navy) !important;
}

/* account and cart, on the right */
.ssu-head-actions { order: 3; flex: 0 0 auto; display: flex; align-items: center; gap: 6px; margin-left: auto; }
.ssu-head-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  color: var(--ssu-navy); text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.ssu-head-btn:hover { background: #f2f5fa; color: var(--ssu-red); }
.ssu-head-count {
  position: absolute; top: 4px; right: 3px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px; background: var(--ssu-red); color: #fff;
  font-size: 10px; font-weight: 800; line-height: 17px; text-align: center;
}

/* the text version of the same two links is redundant now */
.site-header > .col-full .secondary-navigation { display: none !important; }

@media (max-width: 720px) {
  .site-header > .col-full .site-search { order: 4; flex: 1 1 100%; }
  .site-header > .col-full .site-branding img.custom-logo { max-width: 160px; }
}

/* DOM order puts the actions before the search; flex order fixes the row */
.site-header > .col-full .site-branding { order: 1; }
.site-header > .col-full .site-search { order: 2 !important; }
.site-header .ssu-head-actions { order: 3 !important; }

/* ---------- slimmer menu bar ----------
   The links carried 1.15em of padding top and bottom, making the row 59.5px.
   0.7em brings it to about 46px while the dividers still run full height. */
.main-navigation ul.menu > li.menu-item > a {
  padding-top: .7em !important;
  padding-bottom: .7em !important;
}
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a {
  padding-top: .62em !important;
  padding-bottom: .62em !important;
}

/* ---------- hover: a red bar grows along the top of the item ----------
   The old state was an inset box-shadow under the current item; the bar now
   sits at the top and expands from the centre on hover, focus and for the
   page you are on. */
.main-navigation ul.menu > li.current-menu-item > a { box-shadow: none !important; }
.main-navigation ul.menu > li.menu-item > a { position: relative; overflow: hidden; }
.main-navigation ul.menu > li.menu-item > a::before {
  content: ''; display: block !important; position: absolute; top: 0; left: 50%; width: 0; height: 3px;
  background: var(--ssu-red); border-radius: 0 0 2px 2px;
  transition: width .26s cubic-bezier(.4, 0, .2, 1), left .26s cubic-bezier(.4, 0, .2, 1);
}
.main-navigation ul.menu > li.menu-item:hover > a::before,
.main-navigation ul.menu > li.menu-item:focus-within > a::before,
.main-navigation ul.menu > li.current-menu-item > a::before,
.main-navigation ul.menu > li.current-menu-ancestor > a::before,
.main-navigation ul.menu > li.current-menu-parent > a::before { left: 0; width: 100%; }

/* the page you are on reads in red rather than navy */
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current-menu-ancestor > a,
.main-navigation ul.menu > li.current-menu-parent > a { color: var(--ssu-red) !important; }
.main-navigation ul.menu > li.menu-item:hover > a { color: var(--ssu-red); }
@media (prefers-reduced-motion: reduce) {
  .main-navigation ul.menu > li.menu-item > a::before { transition: none; }
}

/* ---------- panels slide down instead of snapping open ----------
   display:none cannot be animated, so the panel is always laid out (it is
   absolutely positioned, so it costs no space) and hidden with opacity plus
   visibility. visibility is delayed on the way out so the slide can finish. */
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands > ul.sub-menu {
  display: grid !important;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(-12px);
  transition: opacity .2s ease, transform .28s cubic-bezier(.2, .8, .3, 1), visibility 0s linear .28s;
}
.main-navigation ul.menu > li.menu-item-has-children:hover > ul.sub-menu,
.main-navigation ul.menu > li.menu-item-has-children:focus-within > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands:hover > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands:focus-within > ul.sub-menu {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0);
  transition: opacity .2s ease, transform .28s cubic-bezier(.2, .8, .3, 1), visibility 0s;
}
@media (prefers-reduced-motion: reduce) {
  .main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu,
  .main-navigation ul.menu > li.mega-brands > ul.sub-menu { transition: none; transform: none; }
}

/* ---------- the pinned bar sits a little taller ---------- */
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a {
  padding-top: .95em !important;
  padding-bottom: .95em !important;
}

/* ---------- only the top bar marks the item ----------
   The open panel carried a 3px red border along its top edge, which read as a
   red line under the whole menu row. The indicator lives on top of the item now,
   so the panel just needs a quiet edge. */
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands > ul.sub-menu {
  border-top: 1px solid var(--ssu-line) !important;
}
.main-navigation ul.menu > li.menu-item > a,
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current-menu-ancestor > a {
  box-shadow: none !important;
  border-bottom: 0 !important;
}
.main-navigation ul.menu > li.menu-item > a::after { bottom: auto; }

/* ---------- brand tiles are square ----------
   The tiles were 58px tall and as wide as an eighth of the bar, so every mark
   floated in a letterbox. A square tile with the mark contained inside reads
   as a proper logo grid. */
.main-navigation ul.menu > li.mega-brands > ul.sub-menu {
  grid-template-columns: repeat(8, 1fr) !important;
  gap: 12px !important;
  padding: 22px 24px 24px !important;
}
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a {
  height: auto !important;
  aspect-ratio: 1 / 1;
  padding: 14px !important;
  display: flex !important; align-items: center; justify-content: center;
  border-radius: 10px !important;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a:hover { transform: translateY(-2px); }
.main-navigation ul.menu > li.mega-brands .mega-brand-logo { width: 100%; height: 100%; }

@media (max-width: 1280px) { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(6, 1fr) !important; } }
@media (max-width: 980px)  { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(5, 1fr) !important; } }
@media (max-width: 767px)  { .main-navigation ul.menu > li.mega-brands > ul.sub-menu { grid-template-columns: repeat(4, 1fr) !important; padding: 12px !important; } }

/* ---------- the mark is an <img>, not a background ----------
   The old block set background-size: contain on an element that carries no
   background image, so the 320x120 file was stretched to fill a 170x170 tile
   (object-fit defaulted to `fill`) and the wide wordmarks ran past their tile.
*/
.main-navigation ul.menu > li.mega-brands .mega-brand-logo,
.main-navigation ul.menu > li:not(.mega-brands) .mega-brand-logo {
  object-fit: contain !important;
  max-width: 100%; max-height: 100%;
}
.main-navigation ul.menu > li.mega-brands .mega-brand-logo { width: 100% !important; height: 100% !important; }

/* ---------- the tile is exactly one grid column wide ----------
   height:100% on the mark inside an auto-height tile left the height
   indeterminate, so the tile sized itself from the image (200px) while its grid
   column was 141px — that is what made the tiles overlap. */
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  padding: 10px !important;
}
.main-navigation ul.menu > li.mega-brands .mega-brand-logo {
  width: auto !important; height: auto !important;
  max-width: 100%; max-height: 100%;
  object-fit: contain !important;
}

/* ---------- the name rides over the mark on hover ----------
   The label was screen-reader-only; on hover it becomes a navy scrim across
   the tile with the brand name centred on it. */
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a { position: relative; }
.main-navigation ul.menu > li.mega-brands .mega-brand-name {
  position: absolute !important; inset: 0 !important;
  width: auto !important; height: auto !important;
  clip: auto !important; clip-path: none !important; overflow: visible !important;
  white-space: normal !important;
  display: flex; align-items: center; justify-content: center;
  padding: 10px; text-align: center; line-height: 1.25;
  background: rgba(12, 40, 78, .58);
  color: #fff; font-size: 17px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  border-radius: 9px;
  opacity: 0; transition: opacity .18s ease;
}
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a:hover .mega-brand-name,
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a:focus-visible .mega-brand-name { opacity: 1; }
.main-navigation ul.menu > li.mega-brands > ul.sub-menu > li > a:hover .mega-brand-logo { filter: grayscale(1) opacity(.55); }
@media (prefers-reduced-motion: reduce) {
  .main-navigation ul.menu > li.mega-brands .mega-brand-name { transition: none; }
}

/* ---------- the header search reads as a field again ---------- */
.site-header > .col-full .site-search { position: relative; }
.site-search .widget_product_search input[type="search"] {
  padding: 12px 16px 12px 42px !important;
  border: 1px solid #dde4ee !important;
  border-radius: 10px !important;
  background-color: #f7f9fc !important;
  background-position: 15px center !important;
  background-size: 18px 18px !important;
  font-size: .95em; font-weight: 500; color: var(--ssu-navy);
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.site-search .widget_product_search input[type="search"]:focus {
  background-color: #fff !important;
  border-color: var(--ssu-navy) !important;
  box-shadow: 0 0 0 3px rgba(18, 58, 109, .1) !important;
}

/* suggestions under the header field */
.ssu-hsug {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 300;
  background: #fff; border: 1px solid #e3e8ef; border-radius: 12px;
  box-shadow: 0 20px 44px rgba(9, 22, 42, .18);
  max-height: min(64vh, 520px); overflow-y: auto;
}
.ssu-hsug[hidden] { display: none; }
.ssu-hsug .ssu-sug { padding: 9px 14px; }
.ssu-hsug .ssu-sug-img { width: 46px; height: 46px; }

/* ---------- account and cart: icon over label ---------- */
.ssu-head-btn {
  flex-direction: column; gap: 3px;
  width: auto !important; height: auto !important;
  min-width: 62px; padding: 6px 10px 5px; border-radius: 10px;
}
.ssu-head-label {
  font-size: 10.5px; font-weight: 800; letter-spacing: .07em;
  text-transform: uppercase; line-height: 1; color: inherit;
}
.ssu-head-count { top: 0; right: 6px; }
.ssu-head-actions { gap: 2px; }
@media (max-width: 480px) { .ssu-head-label { display: none; } }

/* ---------- the search runs from the logo to the icons ---------- */
.site-header > .col-full { gap: 16px 18px !important; }
.site-header > .col-full .site-branding { margin-right: 0 !important; }
.site-header > .col-full .site-branding img.custom-logo { max-width: 190px; }
.site-header > .col-full .site-search { flex: 1 1 auto !important; }

/* a field you cannot miss: deeper border, submit button on the right */
.site-search .widget_product_search form { position: relative; }
.site-search .widget_product_search input[type="search"] {
  padding: 13px 58px 13px 44px !important;
  border: 1.5px solid #cfdaea !important;
  background-color: #fff !important;
  box-shadow: inset 0 1px 2px rgba(18, 58, 109, .05);
}
.site-search .widget_product_search input[type="search"]::placeholder { color: #8996a8; font-weight: 500; }
.site-search .widget_product_search button[type="submit"] {
  display: block !important;
  position: absolute; top: 5px; right: 5px; bottom: 5px; width: 44px;
  padding: 0 !important; border: 0; border-radius: 8px;
  background-color: var(--ssu-navy);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 19px 19px;
  color: transparent; font-size: 0; line-height: 0; overflow: hidden;
  cursor: pointer; transition: background-color .15s ease;
}
.site-search .widget_product_search button[type="submit"]:hover { background-color: var(--ssu-red); }

/* ---------- a divider between Account and Cart ---------- */
.ssu-head-actions { gap: 0; }
.ssu-head-actions .ssu-head-btn + .ssu-head-btn {
  border-left: 1px solid #e3e8ef;
  border-radius: 0 10px 10px 0;
  margin-left: 0;
}
.ssu-head-actions .ssu-head-btn { padding-left: 14px; padding-right: 14px; }

/* ---------- the submit button is screen-reader-hidden by WooCommerce ----------
   clip + 1px height, so setting display and width alone left a 1x1 box. */
.site-search .widget_product_search button[type="submit"] {
  width: 44px !important; height: auto !important;
  clip: auto !important; clip-path: none !important; overflow: hidden !important;
  position: absolute !important; top: 5px !important; right: 5px !important; bottom: 5px !important; left: auto !important;
  margin: 0 !important;
}

/* ---------- account and cart: bigger, no hover fill ---------- */
.ssu-head-btn { padding: 6px 18px 5px !important; }
.ssu-head-btn svg { width: 30px !important; height: 30px !important; stroke-width: 1.7; }
.ssu-head-label { font-size: 10.5px !important; letter-spacing: .08em; opacity: .9; }
.ssu-head-btn:hover { background: none !important; color: var(--ssu-red); }
.ssu-head-count { top: 2px; right: 12px; }

/* ---------- nothing may sit over the pinned bar ----------
   Defensive: the bar sat at z-index 100, within reach of banners, product
   cards and plugin overlays, and a hidden modal must never eat clicks. */
.storefront-primary-navigation.is-stuck { z-index: 1000 !important; pointer-events: auto !important; }
.storefront-primary-navigation.is-stuck .col-full,
.storefront-primary-navigation.is-stuck .main-navigation,
.storefront-primary-navigation.is-stuck .stuck-actions,
.storefront-primary-navigation.is-stuck .stuck-logo { pointer-events: auto !important; }
.ssu-smodal[hidden] { display: none !important; }

/* ---------- quick links column, where the newsletter used to be ---------- */
.ssu-footer-grid { grid-template-columns: 1.2fr 2.6fr 1.1fr !important; }
@media (max-width: 1150px) { .ssu-footer-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 700px)  { .ssu-footer-grid { grid-template-columns: 1fr !important; } }

.ssu-foot-quick ul { display: grid; gap: 9px; margin: 0 0 4px; padding: 0; list-style: none; }
.ssu-foot-quick a { font-size: .88em; color: var(--ssu-ink); text-decoration: none; display: inline-block; }
.ssu-foot-quick a:hover { color: var(--ssu-red); }
.ssu-foot-quick .ssu-foot-follow { margin-top: 26px; }
.ssu-foot-quick .ssu-social { margin-top: 0; }

/* ---------- quick links, tightened ---------- */
.ssu-foot-quick h3 { margin-bottom: 9px; }
.ssu-foot-quick ul { gap: 5px; margin-bottom: 0; }
.ssu-foot-quick a { font-size: .84em; line-height: 1.35; }
.ssu-foot-quick .ssu-foot-follow { margin-top: 16px; margin-bottom: 8px; }
.ssu-foot-quick .ssu-social { gap: 6px; }
.ssu-foot-quick .ssu-social a { width: 28px; height: 28px; }
.ssu-foot-quick .ssu-social svg { width: 14px; height: 14px; }

/* ---------- footer headings carry an icon, content lines up past it ---------- */
.ssu-foot-col h3 { display: flex; align-items: center; gap: 8px; }
.ssu-foot-col h3 .ssu-h3-ico { flex: 0 0 auto; color: var(--ssu-red); }
.ssu-foot-stores .ssu-stores,
.ssu-foot-stores .ssu-stores-mail,
.ssu-foot-quick ul,
.ssu-foot-quick .ssu-social { padding-left: 23px; }
.ssu-foot-stores .ssu-stores-mail { margin-left: 0; }
@media (max-width: 700px) {
  .ssu-foot-stores .ssu-stores,
  .ssu-foot-stores .ssu-stores-mail,
  .ssu-foot-quick ul,
  .ssu-foot-quick .ssu-social { padding-left: 0; }
}

/* ---------- the locations heading sits between two rules ---------- */
.ssu-foot-stores h3 { justify-content: center; gap: 10px; margin-bottom: 16px; }
.ssu-foot-stores h3::before,
.ssu-foot-stores h3::after {
  content: ''; flex: 1 1 auto; height: 1px; background: #dfe5ee;
}
/* the heading now spans the column, so its content is no longer indented */
.ssu-foot-stores .ssu-stores,
.ssu-foot-stores .ssu-stores-mail { padding-left: 0; }
.ssu-foot-stores .ssu-stores-mail { justify-content: center; }

/* ---------- quick links, tighter still ---------- */
.ssu-foot-quick h3 { margin-bottom: 7px !important; }
.ssu-foot-quick ul { gap: 1px !important; }
.ssu-foot-quick li { line-height: 1.25; }
.ssu-foot-quick a { font-size: .8em !important; padding: 2px 0; }
.ssu-foot-quick .ssu-foot-follow { margin-top: 14px !important; margin-bottom: 6px !important; }
.ssu-foot-quick .ssu-social a { width: 26px; height: 26px; }
.ssu-foot-quick .ssu-social svg { width: 13px; height: 13px; }

/* ---------- the email sits with the blurb now ---------- */
.ssu-foot-brand .ssu-stores-mail {
  justify-content: flex-start;
  border-top: 0; margin-top: 4px; padding-top: 0;
  font-size: .86em;
}

/* ---------- a shimmer sweeps across the logo every few seconds ---------- */
.site-header .custom-logo-link { position: relative; overflow: hidden; isolation: isolate; }
/* the pinned crest is already absolutely positioned; only clip it, never
   re-position it, or it drops out of its slot in the bar */
.stuck-logo { overflow: hidden; isolation: isolate; }
.site-header .custom-logo-link { display: inline-block; }

.site-header .custom-logo-link::after,
.stuck-logo::after {
  content: '';
  position: absolute; top: -30%; bottom: -30%; left: 0; width: 38%;
  background: linear-gradient(100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, .6) 45%,
    rgba(255, 255, 255, .78) 55%,
    rgba(255, 255, 255, 0) 100%);
  transform: translateX(-260%) skewX(-18deg);
  animation: ssu-logo-shimmer 20s ease-in-out infinite;
  pointer-events: none;
  z-index: 2;
}
/* the pinned bar's crest is smaller, so it gets its own timing offset */
.stuck-logo::after { animation-duration: 24s; animation-delay: 4s; }

@keyframes ssu-logo-shimmer {
  0%   { transform: translateX(-260%) skewX(-18deg); }
  12%  { transform: translateX(330%)  skewX(-18deg); }   /* ~2.4s to cross */
  100% { transform: translateX(330%)  skewX(-18deg); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .custom-logo-link::after,
  .stuck-logo::after { animation: none; opacity: 0; }
}

/* ---------- the brand wall on Shop by Brands ---------- */
.ssu-brandwall {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 16px; margin: 6px 0 10px;
}
.ssu-brandwall-item {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 18px 14px 16px; text-decoration: none !important;
  border: 1px solid var(--ssu-line); border-radius: 12px; background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ssu-brandwall-item:hover {
  border-color: #c9d6e8; box-shadow: 0 10px 24px rgba(18, 58, 109, .1); transform: translateY(-2px);
}
.ssu-brandwall-mark {
  display: flex; align-items: center; justify-content: center;
  width: 100%; aspect-ratio: 1 / 1; max-width: 128px;
}
.ssu-brandwall-mark img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ssu-brandwall-initial {
  font-size: 2.4em; font-weight: 800; color: #c9d6e8;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
}
.ssu-brandwall-name {
  font-size: .92em; font-weight: 700; color: var(--ssu-navy); text-align: center; line-height: 1.25;
}
.ssu-brandwall-count { font-size: .74em; color: var(--ssu-muted); letter-spacing: .04em; }
@media (max-width: 600px) { .ssu-brandwall { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; } }

/* ---------- catalog cards cross-fade to the second photo ---------- */
.ssu-thumbswap { position: relative; display: block; }
.ssu-thumbswap img { display: block; width: 100%; height: auto; }
.ssu-thumbswap .ssu-thumb-alt {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; opacity: 0; transform: scale(1.015);
  transition: opacity .55s cubic-bezier(.4, 0, .2, 1), transform .6s cubic-bezier(.4, 0, .2, 1);
  will-change: opacity;
  pointer-events: none;
}
.woocommerce ul.products li.product:hover .ssu-thumbswap .ssu-thumb-alt,
.woocommerce ul.products li.product:focus-within .ssu-thumbswap .ssu-thumb-alt { opacity: 1; transform: scale(1); }
.woocommerce ul.products li.product .ssu-thumbswap img:first-child {
  transition: transform .6s cubic-bezier(.4, 0, .2, 1);
}
.woocommerce ul.products li.product:hover .ssu-thumbswap img:first-child { transform: scale(1.015); }
@media (prefers-reduced-motion: reduce) {
  .ssu-thumbswap .ssu-thumb-alt,
  .ssu-thumbswap img:first-child { transition: none; }
}

/* ---------- catalog: filter rail beside the grid ---------- */
.ssu-shop { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 34px; align-items: start; }
@media (max-width: 900px) { .ssu-shop { grid-template-columns: 1fr; gap: 20px; } }
.ssu-shopmain { min-width: 0; }

.ssu-shopfilters {
  position: sticky; top: 70px;
  border: 1px solid var(--ssu-line); border-radius: 12px; background: #fff;
  padding: 16px 16px 14px;
}
.ssu-filter-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.ssu-filter-head h2 {
  margin: 0; font-size: .82em; font-weight: 800; text-transform: uppercase;
  letter-spacing: .1em; color: var(--ssu-navy);
}
.ssu-filter-head-actions { display: flex; align-items: center; gap: 12px; }
.ssu-filter-clear {
  background: none; border: 0; padding: 0; cursor: pointer;
  font-size: .76em; font-weight: 700; color: var(--ssu-muted); text-transform: uppercase; letter-spacing: .06em;
}
.ssu-filter-clear:hover { color: var(--ssu-red); }

.ssu-filter-collapse {
  display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0; margin: 0;
  border: 1px solid var(--ssu-line); border-radius: 50%; background: #fff;
  color: var(--ssu-navy); cursor: pointer; flex: 0 0 auto;
  transition: background .15s ease, color .15s ease, transform .2s ease;
}
.ssu-filter-collapse:hover { background: var(--ssu-navy); color: #fff; }

.ssu-filter-group { border-top: 1px solid #eef1f6; padding: 12px 0 4px; }
.ssu-filter-group h3 {
  margin: 0 0 9px; font-size: .74em; font-weight: 800; text-transform: uppercase;
  letter-spacing: .09em; color: var(--ssu-navy);
}
.ssu-filter-group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.ssu-filter-group label {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  font-size: .85em; color: var(--ssu-ink); line-height: 1.3;
}
.ssu-filter-group label span { flex: 1 1 auto; min-width: 0; }
.ssu-filter-group label em { font-style: normal; font-size: .82em; color: var(--ssu-muted); }
.ssu-filter-group input[type=checkbox] { flex: 0 0 auto; margin: 0; accent-color: var(--ssu-navy); }

.ssu-filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ssu-chip {
  border: 1px solid var(--ssu-line); background: #fff; border-radius: 7px;
  padding: 5px 9px; font-size: .78em; font-weight: 600; color: var(--ssu-ink); cursor: pointer;
  transition: border-color .14s ease, background .14s ease, color .14s ease;
}
.ssu-chip:hover { border-color: var(--ssu-navy); background: var(--ssu-navy); color: #fff; }

.ssu-filter-price { display: flex; align-items: center; gap: 8px; }
.ssu-filter-price input {
  width: 100%; min-width: 0; padding: 7px 9px; font-size: .84em;
  border: 1px solid var(--ssu-line); border-radius: 7px; background: #fff;
}
.ssu-filter-price span { color: var(--ssu-muted); }

.ssu-filter-note {
  margin: 14px 0 0; padding-top: 10px; border-top: 1px solid #eef1f6;
  font-size: .72em; color: var(--ssu-muted); font-style: italic; line-height: 1.4;
}

/* the grid is narrower now, so three to a row reads better than four */
@media (min-width: 901px) {
  .ssu-shopmain .woocommerce ul.products, .ssu-shopmain ul.products { }
}

/* ---------- paging loads as you scroll ---------- */
.ssu-lazy-on nav.woocommerce-pagination { display: none !important; }
.ssu-lazyfoot {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 18px 0 26px; min-height: 46px;
}
.ssu-lazymore {
  border: 1px solid var(--ssu-line); background: #fff; color: var(--ssu-navy);
  border-radius: 999px; padding: 11px 26px; cursor: pointer;
  font-size: .8em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ssu-lazymore:hover { background: var(--ssu-navy); border-color: var(--ssu-navy); color: #fff; }
.ssu-lazyfoot.is-busy .ssu-lazymore { opacity: .5; pointer-events: none; }
.ssu-lazystatus { font-size: .78em; color: var(--ssu-muted); letter-spacing: .03em; }

/* newly appended cards fade up rather than snapping in */
.woocommerce ul.products li.product { transition: opacity .45s ease, transform .45s ease; }
.woocommerce ul.products li.product.ssu-lazy-in { opacity: 0; transform: translateY(10px); }
@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product { transition: none; }
}

/* ---------- cards lead with the brand, and read left ---------- */
.woocommerce ul.products li.product { text-align: left; }
.woocommerce ul.products li.product .ssu-card-brand {
  display: block; margin: 12px 0 2px;
  font-size: .68em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ssu-muted);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  text-align: left; font-size: .92em; line-height: 1.35; color: var(--ssu-navy);
  padding-top: 0 !important; margin-bottom: 6px;
}
.woocommerce ul.products li.product .price { text-align: left; display: block; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { margin-left: 0; margin-right: auto; }
.woocommerce ul.products li.product .star-rating { margin-left: 0; }

/* ---------- roomier cards, and a clear sale price ---------- */
.woocommerce ul.products li.product {
  padding: 14px 14px 18px !important;
  border-radius: 12px;
}
.woocommerce ul.products li.product .ssu-card-brand {
  font-size: .76em; letter-spacing: .13em; margin: 16px 0 4px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.04em; line-height: 1.38; font-weight: 700; margin-bottom: 8px;
}
.woocommerce ul.products li.product .price {
  font-size: 1.12em; font-weight: 800; color: var(--ssu-navy);
}
/* on sale: the old price is struck through, the new one carries the accent */
.woocommerce ul.products li.product .price del,
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  opacity: 1; color: var(--ssu-muted); font-weight: 500;
  text-decoration: line-through; text-decoration-thickness: 1.5px;
  margin-right: 8px; font-size: .88em;
}
.woocommerce ul.products li.product .price ins,
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  text-decoration: none; background: none; color: var(--ssu-red); font-weight: 800;
}
.woocommerce ul.products li.product .price .from,
.woocommerce ul.products li.product .price small { font-size: .72em; color: var(--ssu-muted); font-weight: 600; }

/* the sale flash reads as a tag in the corner of the picture */
.woocommerce ul.products li.product .onsale {
  position: absolute !important;   /* Storefront prints it inline under the price */
  top: 12px; left: 12px; right: auto; bottom: auto; margin: 0; z-index: 3;
  width: auto; height: auto; display: inline-block;
  background: var(--ssu-red); color: #fff; border-radius: 6px;
  font-size: .68em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 9px; min-height: 0; min-width: 0; line-height: 1;
}

/* ---------- cards share a row height, four to a row ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px;
  margin: 0 0 10px !important;
}
@media (max-width: 1180px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px)  { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px)  { .woocommerce ul.products { grid-template-columns: 1fr; } }

.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; clear: none !important;
  display: flex; flex-direction: column;
}
.woocommerce ul.products li.product .woocommerce-loop-product__link {
  display: flex; flex-direction: column; flex: 1 1 auto;
}
/* the picture keeps a square slot, so titles start at the same line */
.woocommerce ul.products li.product .ssu-thumbswap,
.woocommerce ul.products li.product > a > img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
  aspect-ratio: 1 / 1; width: 100%; object-fit: contain;
}
.woocommerce ul.products li.product .ssu-thumbswap img { height: 100%; object-fit: contain; }
.woocommerce ul.products li.product .price { margin-top: auto; padding-top: 4px; }

/* ---------- nothing left in any size ---------- */
.woocommerce ul.products li.product { position: relative; }
.ssu-oos-flag {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  background: #6b7787; color: #fff; border-radius: 6px;
  font-size: .66em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 9px; line-height: 1;
}
.woocommerce ul.products li.product.outofstock { background: #fafbfd; }
.woocommerce ul.products li.product.outofstock .ssu-thumbswap,
.woocommerce ul.products li.product.outofstock > a > img { filter: grayscale(1); opacity: .55; }
.woocommerce ul.products li.product.outofstock .woocommerce-loop-product__title,
.woocommerce ul.products li.product.outofstock .price { color: var(--ssu-muted); }
.woocommerce ul.products li.product.outofstock .price ins { color: var(--ssu-muted); }
.woocommerce ul.products li.product.outofstock:hover .ssu-thumb-alt { opacity: 0; }

/* ---------- catalogue toolbar ---------- */
.ssu-toolbar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 0 0 14px; margin-bottom: 14px; border-bottom: 1px solid #eef1f6;
}
.ssu-filter-toggle {
  display: inline-flex; align-items: center; gap: 9px;
  border: 1px solid var(--ssu-line); background: #fff; color: var(--ssu-navy);
  border-radius: 8px; padding: 9px 15px; cursor: pointer;
  font-size: .8em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.ssu-filter-toggle:hover { border-color: var(--ssu-navy); background: var(--ssu-navy); color: #fff; }
.ssu-filter-toggle svg { flex: 0 0 auto; }

.ssu-toolbar-count { flex: 1 1 auto; min-width: 0; }
.ssu-toolbar-count .woocommerce-result-count {
  margin: 0 !important; padding: 0 !important; font-size: .84em; color: var(--ssu-muted);
}

.ssu-toolbar-sort { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ssu-sort-label {
  font-size: .78em; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--ssu-navy);
}
.ssu-toolbar-sort .woocommerce-ordering { margin: 0 !important; }
.ssu-toolbar-sort select {
  border: 1px solid var(--ssu-line); border-radius: 8px; background: #fff;
  padding: 8px 34px 8px 12px; font-size: .84em; color: var(--ssu-navy); font-weight: 600;
  cursor: pointer; appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23123a6d' stroke-width='2.4' stroke-linecap='round'%3E%3Cpolyline points='6,9 12,15 18,9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 14px 14px;
}
.ssu-toolbar-sort select:focus { border-color: var(--ssu-navy); outline: none; box-shadow: 0 0 0 3px rgba(18,58,109,.1); }

/* the rail folds away and the grid takes the room */
.ssu-shop.is-railoff { grid-template-columns: minmax(0, 1fr); }
.ssu-shop.is-railoff .ssu-shopfilters { display: none; }

@media (max-width: 700px) {
  .ssu-toolbar { gap: 10px; }
  .ssu-toolbar-count { order: 3; flex: 1 1 100%; }
  .ssu-toolbar-sort { margin-left: 0; }
}

/* ---------- the grid must not inherit float-era clearfixes ----------
   WooCommerce puts ::before/::after on ul.products for the old float layout;
   inside a grid each becomes an item, which left the first cell empty. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { content: none !important; display: none !important; }

/* the toolbar spans the whole width, above the rail and the grid */
.ssu-toolbar { margin-top: 2px; }
.woocommerce .ssu-toolbar + .ssu-shop { margin-top: 0; }

/* ---------- brands page header, in the category house style ---------- */
.ssu-brandwall-head { margin: 0 0 26px; }
.ssu-brandwall-head h1 {
  margin: 0; color: var(--ssu-navy);
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: clamp(2.1em, 4vw, 3.4em); font-weight: 700; letter-spacing: .02em;
  line-height: 1.02; text-transform: uppercase;
}
.ssu-brandwall-head p { margin: 9px 0 0; font-size: 1.02em; line-height: 1.5; color: var(--ssu-muted); }
.page-id-17018 .entry-header, .page-id-17018 .entry-title { display: none; }

/* ---------- brand mark on the card ---------- */
.woocommerce ul.products li.product .ssu-card-brand {
  display: flex; align-items: center; gap: 6px;
}
.woocommerce ul.products li.product .ssu-card-brand img.ssu-card-brandlogo,
.ssu-card-brandlogo {
  flex: 0 0 auto;
  height: 16px !important; width: auto !important; max-width: 46px !important;
  aspect-ratio: auto !important;
  object-fit: contain; object-position: left center;
  display: inline-block; margin: 0; opacity: .8;
}
.woocommerce ul.products li.product:hover .ssu-card-brandlogo { opacity: 1; }
.woocommerce ul.products li.product.outofstock .ssu-card-brandlogo { filter: grayscale(1); opacity: .45; }

/* ---------- the branded placeholder tile ---------- */
.woocommerce ul.products li.product img.ssu-placeholder,
.woocommerce div.product img.ssu-placeholder {
  background: #fff; object-fit: contain;
}

/* ---------- the discount badge ---------- */
.woocommerce ul.products li.product .onsale,
.woocommerce div.product .onsale {
  position: absolute !important;
  top: 16px; right: 14px; left: auto; bottom: auto; margin: 0; z-index: 4;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 0; height: auto; padding: 9px 15px 8px;
  /* an inked rubber stamp: outlined, tilted, sitting on the picture */
  background: rgba(255, 255, 255, .72);
  color: var(--ssu-red);
  border: 2.5px solid var(--ssu-red);
  border-radius: 7px;
  box-shadow: inset 0 0 0 1.5px rgba(216, 31, 38, .35);
  font-size: 1.02em; font-weight: 900; letter-spacing: .2em; line-height: 1;
  text-indent: .2em;                 /* balances the tracking on the last letter */
  text-transform: uppercase;
  transform: rotate(11deg);
  transition: transform .18s ease;
}
.woocommerce ul.products li.product:hover .onsale { transform: rotate(11deg) scale(1.06); }

.woocommerce div.product .onsale { top: 20px; right: 20px; left: auto; font-size: 1.15em; padding: 11px 18px 10px; }

/* ---------- card details, scaled up ---------- */
.woocommerce ul.products li.product { padding: 16px 16px 20px !important; }
.woocommerce ul.products li.product .ssu-card-brand {
  font-size: .84em !important; letter-spacing: .12em; margin: 18px 0 6px !important;
  color: #7b8798;
}
.woocommerce ul.products li.product .ssu-card-brand img.ssu-card-brandlogo,
.ssu-card-brandlogo { height: 18px !important; max-width: 54px !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.16em !important; line-height: 1.35; font-weight: 700; margin-bottom: 10px;
  color: var(--ssu-navy);
}
.woocommerce ul.products li.product .price {
  font-size: 1.3em !important; font-weight: 800; padding-top: 6px;
}
.woocommerce ul.products li.product .price del { font-size: .74em; margin-right: 9px; }
.ssu-oos-flag { font-size: .72em; padding: 6px 11px; }

/* ---------- card polish: tighter brand, clamped title, clearer price ---------- */
.woocommerce ul.products li.product .ssu-card-brand { margin: 18px 0 1px !important; }

/* two lines, then an ellipsis, with the second line fading out */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin-top: 0 !important; margin-bottom: 8px !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis;
  min-height: calc(1.35em * 2 * 1.16);          /* keeps one and two line cards level */
  -webkit-mask-image: linear-gradient(180deg, #000 42%, rgba(0, 0, 0, .28) 100%);
  mask-image: linear-gradient(180deg, #000 42%, rgba(0, 0, 0, .28) 100%);
}

/* price: what you pay first and large, what it was beside it */
.woocommerce ul.products li.product .price {
  display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap;
  padding-top: 8px; font-size: 1.32em !important; letter-spacing: -.01em;
}
.woocommerce ul.products li.product .price ins {
  order: 1; color: var(--ssu-red); font-weight: 800; text-decoration: none;
}
.woocommerce ul.products li.product .price del {
  order: 2; margin: 0 !important; font-size: .68em; color: #9aa6b6; font-weight: 600;
  text-decoration: line-through; text-decoration-thickness: 1.5px;
}
.woocommerce ul.products li.product .price .woocommerce-Price-amount { font-weight: inherit; }

/* ---------- the page you are on is tinted, not just coloured ---------- */
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current-menu-ancestor > a,
.main-navigation ul.menu > li.current-menu-parent > a {
  background: rgba(216, 31, 38, .07);
}
.main-navigation ul.menu > li.menu-item:hover > a { background: rgba(216, 31, 38, .04); }

/* ---------- hard two-line cut on card titles ----------
   The clamp was losing to an earlier display rule, so a third line showed
   through the fade. Pin display, clamp and height together. */
.woocommerce ul.products li.product a .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  overflow: hidden !important;
  max-height: calc(1.35em * 2) !important;
  min-height: calc(1.35em * 2) !important;
}

/* ---------- footer artwork: a ball and a pitch, ghosted into the band ---------- */
.ssu-footer { position: relative; overflow: hidden; }
.ssu-footer > .col-full { position: relative; z-index: 2; }

.ssu-footer::before,
.ssu-footer::after {
  content: ''; position: absolute; z-index: 1; pointer-events: none;
  background-repeat: no-repeat; background-size: contain;
}
/* the ball sits half off the right edge */
.ssu-footer::before {
  right: -70px; bottom: -60px; width: 300px; height: 300px;
  background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'> <g fill='none' stroke='%23123a6d' stroke-width='3'> <circle cx='100' cy='100' r='88'/> <path d='M100 34 L152 72 L132 133 L68 133 L48 72 Z' fill='%23123a6d' fill-opacity='.5'/> <path d='M100 34 L100 8'/><path d='M152 72 L177 63'/><path d='M132 133 L148 155'/> <path d='M68 133 L52 155'/><path d='M48 72 L23 63'/> <path d='M22 118 L48 72'/><path d='M100 192 L68 133'/><path d='M100 192 L132 133'/> <path d='M178 118 L152 72'/><path d='M60 22 L100 34'/><path d='M140 22 L100 34'/> </g></svg>");
  opacity: .05;
  transform: rotate(-8deg);
}
/* half a pitch bleeds off the left */
.ssu-footer::after {
  left: -120px; top: -40px; width: 420px; height: 420px;
  background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'> <g fill='none' stroke='%23123a6d' stroke-width='3'> <circle cx='150' cy='150' r='96'/><circle cx='150' cy='150' r='8' fill='%23123a6d'/> <path d='M0 24 H300'/><path d='M0 276 H300'/><path d='M150 24 V54'/><path d='M150 246 V276'/> <path d='M60 24 h180 v46 h-180 z'/><path d='M60 230 h180 v46 h-180 z'/> </g></svg>");
  opacity: .04;
}
/* a marker cone tucked behind the newsletter column */
.ssu-foot-quick { position: relative; }
.ssu-foot-quick::before {
  content: ''; position: absolute; right: -6px; top: -18px;
  width: 74px; height: 74px; z-index: -1; pointer-events: none;
  background: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'> <g fill='%23d81f26'> <path d='M60 12 L84 96 H36 Z'/><rect x='24' y='96' width='72' height='12' rx='4'/> </g></svg>") no-repeat center / contain;
  opacity: .06; transform: rotate(9deg);
}
@media (max-width: 900px) {
  .ssu-footer::after { display: none; }
  .ssu-footer::before { width: 200px; height: 200px; right: -50px; }
}

/* ---------- the sale word sits beside the brand, above the title ---------- */
.woocommerce ul.products li.product .ssu-card-top {
  display: flex; align-items: center; gap: 10px;
  margin: 18px 0 1px;
}
.woocommerce ul.products li.product .ssu-card-brand { margin: 0 !important; }
.woocommerce ul.products li.product .ssu-card-top .onsale,
.woocommerce ul.products li.product .onsale {
  position: static !important;
  margin: 0 0 0 auto !important;
  transform: none !important;
  display: inline-flex; align-items: center;
  height: 21px; padding: 0 10px;
  background: var(--ssu-red); color: #fff;
  border: 0; border-radius: 999px; box-shadow: none;
  font-size: .68em; font-weight: 800; letter-spacing: .1em; line-height: 1;
  text-transform: uppercase; text-indent: 0;
}
.woocommerce ul.products li.product:hover .onsale { transform: none !important; }

/* ---------- single product: brand row, no boxed container ---------- */
.ssu-single-top {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: 0 0 2px;
}
/* the title is the one line in here with no natural break point of its own,
   so as a flex item it was refusing to shrink or wrap at all — its full,
   one-line width became the minimum width of the row, which is what was
   pulling the whole two-column grid out wide on any narrow screen. */
.ssu-single-top .product_title { min-width: 0; flex: 1 1 auto; }
.ssu-single-top .ssu-single-brand { min-width: 0; flex: 0 1 auto; }
.woocommerce div.product .product_title { margin-top: 0 !important; padding-top: 0 !important; line-height: 1.12; }
.ssu-single-brand {
  display: inline-flex; align-items: center; gap: 9px;
  text-decoration: none !important;
  font-size: .82em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: #7b8798;
}
.ssu-single-brand:hover { color: var(--ssu-red); }
.ssu-single-brandlogo {
  height: 22px !important; width: auto !important; max-width: 68px !important;
  object-fit: contain; opacity: .85;
}
.woocommerce div.product .ssu-single-top .onsale {
  position: static !important; transform: none !important; margin: 0 0 0 auto !important;
  display: inline-flex; align-items: center; height: 23px; padding: 0 11px;
  background: var(--ssu-red); color: #fff; border: 0; border-radius: 999px; box-shadow: none;
  font-size: .7em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; text-indent: 0;
}

/* the summary sat inside a bordered card; let it breathe on the page */
.woocommerce div.product,
.woocommerce div.product .summary,
.woocommerce #content div.product {
  border: 0 !important; box-shadow: none !important; background: transparent !important;
  padding: 0 !important;
}
.woocommerce div.product .product_title { margin-top: 0; }

/* no house glyph in the breadcrumb, now that Home is gone */
.woocommerce-breadcrumb::before,
.woocommerce-breadcrumb .home::before,
nav.woocommerce-breadcrumb > a:first-child::before { content: none !important; display: none !important; }

/* ---------- single product: the gallery leads the page ---------- */
.woocommerce div.product {
  display: grid !important;
  grid-template-columns: 60fr 40fr;
  gap: 46px;
  align-items: start;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  width: auto !important; float: none !important; margin: 0 !important; clear: none !important;
}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .up-sells,
.woocommerce div.product .ssu-single-foot { grid-column: 1 / -1; }
@media (max-width: 860px) {
  /* a bare 1fr still lets the track's automatic minimum size follow the
     content inside it; minmax(0, 1fr) is the part that actually pins the
     floor at zero regardless of what refuses to shrink in there */
  .woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 26px; }

  /* .ssu-acc is moved to just after div.summary in the DOM at this width
     (see the script below) so it lands after the buying decision — the
     price, the size, add to cart — rather than between the pictures and it.
     That is a plain sibling move, not a grid placement, so nothing here
     needs to say where it goes. */
}

/* thumbnails run down the side of the main picture, each in its own frame.
   flexslider measures the wrapper itself, so the gallery keeps its normal
   block layout and the thumb strip is placed into a gutter instead. */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery { position: relative; padding-left: 102px; }
.woocommerce-product-gallery .flex-control-thumbs {
  position: absolute; left: 0; top: 0; width: 88px;
  display: grid !important; grid-template-columns: 1fr; gap: 10px;
  margin: 0 !important; padding: 0 !important; list-style: none;
  max-height: 100%; overflow-y: auto;
}
.woocommerce-product-gallery .flex-control-thumbs li {
  width: 100% !important; margin: 0 !important; float: none !important; list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
  background: #fff; padding: 5px;
  border: 1px solid var(--ssu-line); border-radius: 9px;
  opacity: 1 !important; cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: #c9d6e8; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li.flex-active img {
  border-color: var(--ssu-navy); box-shadow: 0 0 0 2px rgba(18, 58, 109, .12);
}
.woocommerce-product-gallery__image img { border-radius: 10px; }
@media (max-width: 640px) {
  .woocommerce-product-gallery { padding-left: 0; }
  /* a fixed 5-column grid left a shorter last row exactly as wide as one
     thumbnail, with the rest of the row sitting empty beside it. Flexible
     wrapping items close that gap instead of reserving it. */
  .woocommerce-product-gallery .flex-control-thumbs {
    position: static; width: auto; display: flex !important; flex-wrap: wrap;
    gap: 10px; margin-top: 12px !important;
  }
  .woocommerce-product-gallery .flex-control-thumbs li {
    /* the base rule sets this li to width:100% !important for the desktop
       single-column strip; only an equally-important rule displaces it */
    width: calc((100% - 40px) / 5) !important; min-width: 0; flex: 0 0 auto;
  }
  .woocommerce-product-gallery .flex-control-thumbs img { min-width: 0; }
}


/* ---------- the product clearfix cannot be a grid item ----------
   Same trap as the shop loop: WooCommerce puts a table-display ::before on
   div.product, which took the first cell and pushed the gallery sideways. */
.woocommerce div.product::before,
.woocommerce div.product::after,
.woocommerce #content div.product::before,
.woocommerce #content div.product::after { content: none !important; display: none !important; }

/* ---------- place the two halves explicitly ----------
   Storefront renders the gallery as .woocommerce-product-gallery with no
   .images wrapper, and auto-placement was dropping it into the narrow column. */
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product > div.images { grid-column: 1 !important; grid-row: 1 !important; width: auto !important; float: none !important; }
.woocommerce div.product > div.summary { grid-column: 2 !important; grid-row: 1 !important; width: auto !important; float: none !important; }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells,
.woocommerce div.product > nav { grid-column: 1 / -1 !important; }
@media (max-width: 860px) {
  .woocommerce div.product > .woocommerce-product-gallery,
  .woocommerce div.product > div.summary { grid-column: 1 !important; grid-row: auto !important; }
}

/* ---------- the main picture fills its column ----------
   flexslider writes its own widths on the wrapper, the viewport and each
   slide; overriding those stopped the thumbnails from switching the image,
   so only the <img> inside a slide is sized here. */
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery__wrapper img {
  width: 100% !important; height: auto !important; max-width: 100% !important;
  object-fit: contain;
}

/* ---------- the breadcrumb sits close to the product ---------- */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
  margin: 0 0 16px !important; padding: 0 !important; font-size: .92em;
}
.single-product .site-content { padding-top: 18px !important; }
.woocommerce div.product { margin-top: 0 !important; }
.single-product .site-main > .product:first-child { margin-top: 0 !important; }

/* ---------- the breadcrumb wrapper carries the gap, not the list ----------
   Storefront wraps it in .storefront-breadcrumb, which sits outside
   .site-content and holds ~5em of margin underneath. */
.storefront-breadcrumb {
  margin-bottom: 0 !important; padding-bottom: 0 !important; padding-top: 14px !important;
}
.storefront-breadcrumb .col-full { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.single-product .site-content,
.woocommerce-page .site-content { padding-top: 14px !important; }

/* ---------- the lightbox over a pale, blurred page ---------- */
.woocommerce-product-gallery__trigger { display: none !important; }
.woocommerce div.product .woocommerce-product-gallery__image a { cursor: zoom-in; }

.pswp__bg {
  background: rgba(244, 247, 251, .82) !important;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  opacity: 1 !important;
}
.pswp__scroll-wrap { color: var(--ssu-navy); }
.pswp__caption__center { color: var(--ssu-navy); text-align: center; font-size: .9em; }
.pswp__counter { color: var(--ssu-navy); opacity: .7; font-weight: 700; }
.pswp__button { filter: invert(1) brightness(.35); }
.pswp__button--arrow--left::before,
.pswp__button--arrow--right::before { background-color: rgba(255, 255, 255, .8); border-radius: 8px; }
.pswp__img { border-radius: 10px; box-shadow: 0 18px 50px rgba(9, 22, 42, .18); background: #fff; }
.pswp--animated-in .pswp__bg { transition: opacity .2s ease; }

/* ---------- the gallery reacts to a drag ---------- */
.woocommerce div.product .woocommerce-product-gallery__wrapper {
  touch-action: pan-y;
  -webkit-user-select: none; user-select: none;
}
.woocommerce div.product .woocommerce-product-gallery__wrapper img { -webkit-user-drag: none; user-drag: none; }

/* ---------- the brand mark stands alone ---------- */
.woocommerce ul.products li.product .ssu-card-brand img.ssu-card-brandlogo,
.ssu-card-brandlogo { height: 17px !important; max-width: 48px !important; }
.ssu-single-brandlogo { height: 26px !important; max-width: 84px !important; }
.ssu-card-brand .screen-reader-text,
.ssu-single-brand .screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ---------- the mark sits beside the name above the title ---------- */
.ssu-single-brandlogo { display: inline-block !important; }
.ssu-single-brandname { font-size: 1em; letter-spacing: .13em; }

/* ---------- wordmark logos stand alone ---------- */
.woocommerce ul.products li.product .ssu-card-brand img.ssu-card-brandlogo,
.ssu-card-brandlogo { height: 18px !important; max-width: 88px !important; }
.ssu-single-brandlogo { height: 28px !important; max-width: 130px !important; }

/* ---------- size boxes instead of a dropdown ---------- */
.ssu-sizes {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 2px;
}
.woocommerce div.product form.cart .variations select.ssu-size-select { display: none !important; }

.ssu-size {
  /* every box the same size, whatever the label */
  min-width: 52px; height: 46px; padding: 0 10px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--ssu-line); border-radius: 9px; background: #fff;
  color: var(--ssu-navy); font-size: .92em; font-weight: 700; line-height: 1;
  cursor: pointer; transition: border-color .14s ease, background .14s ease, color .14s ease, box-shadow .14s ease;
}
.ssu-size:hover:not(:disabled) { border-color: var(--ssu-navy); }
.ssu-size.is-active {
  border-color: var(--ssu-navy); background: var(--ssu-navy); color: #fff;
  box-shadow: 0 3px 10px rgba(18, 58, 109, .18);
}
.ssu-size.is-out {
  color: #b6c0cd; border-color: #eef1f6; cursor: not-allowed;
  background: repeating-linear-gradient(135deg, #fff 0 6px, #f6f8fb 6px 12px);
  text-decoration: line-through;
}
.woocommerce div.product form.cart .variations { margin-bottom: 10px; }
.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations label {
  font-size: .78em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ssu-navy);
}
.woocommerce div.product form.cart .reset_variations { font-size: .78em; }

/* ---------- header crest, larger ---------- */
.site-header > .col-full .site-branding img.custom-logo { max-width: 260px; }
@media (max-width: 900px) { .site-header > .col-full .site-branding img.custom-logo { max-width: 200px; } }
@media (max-width: 720px) { .site-header > .col-full .site-branding img.custom-logo { max-width: 170px; } }


/* ---------- thumbnail rail: no scrollbar, chevrons, fades ---------- */
.woocommerce-product-gallery .ssu-thumbrail {
  position: absolute; left: 0; top: 0; width: 88px; height: 100%;
}
.woocommerce-product-gallery .ssu-thumbrail .flex-control-thumbs {
  position: static !important; width: 100% !important; height: 100%;
  max-height: 100%; overflow-y: auto;
  scrollbar-width: none; -ms-overflow-style: none;
  scroll-behavior: smooth;
}
.woocommerce-product-gallery .ssu-thumbrail .flex-control-thumbs::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* the fades only appear when there is something beyond the edge */
.ssu-thumbrail::before,
.ssu-thumbrail::after {
  content: ''; position: absolute; left: 0; right: 0; height: 46px; z-index: 2;
  pointer-events: none; opacity: 0; transition: opacity .18s ease;
}
.ssu-thumbrail::before { top: 0; background: linear-gradient(180deg, #fff 15%, rgba(255, 255, 255, 0)); }
.ssu-thumbrail::after  { bottom: 0; background: linear-gradient(0deg, #fff 15%, rgba(255, 255, 255, 0)); }
.ssu-thumbrail.can-up::before,
.ssu-thumbrail.can-down::after { opacity: 1; }

.ssu-thumbnav {
  position: absolute; left: 50%; transform: translateX(-50%); z-index: 3;
  width: 30px; height: 30px; padding: 0;
  display: none; align-items: center; justify-content: center;
  border: 1px solid var(--ssu-line); border-radius: 50%;
  background: #fff; color: var(--ssu-navy); cursor: pointer;
  box-shadow: 0 3px 10px rgba(18, 58, 109, .14);
  transition: background .14s ease, color .14s ease, border-color .14s ease;
}
.ssu-thumbnav:hover { background: var(--ssu-navy); border-color: var(--ssu-navy); color: #fff; }
.ssu-thumbnav-up { top: 2px; }
.ssu-thumbnav-down { bottom: 2px; }
.ssu-thumbrail.can-up .ssu-thumbnav-up,
.ssu-thumbrail.can-down .ssu-thumbnav-down { display: inline-flex; }

@media (max-width: 640px) {
  .woocommerce-product-gallery .ssu-thumbrail { position: static; width: auto; height: auto; margin-top: 12px; }
  .woocommerce-product-gallery .ssu-thumbrail .flex-control-thumbs { height: auto; }
  .ssu-thumbnav { display: none !important; }
  .ssu-thumbrail::before, .ssu-thumbrail::after { display: none; }
}

/* the size dropdown is hidden from the first paint, before the script runs */
.woocommerce div.product form.cart .variations select[data-ssu-size] { display: none !important; }

/* ---------- scrollable panes should not draw a focus ring ----------
   Chrome makes any scroll container keyboard-focusable, so clicking the
   gallery and then pressing an arrow key outlined the whole area. Real
   controls keep their outline. */
.woocommerce div.product .woocommerce-product-gallery:focus,
.woocommerce div.product .woocommerce-product-gallery__wrapper:focus,
.woocommerce div.product .flex-viewport:focus,
.woocommerce div.product .flex-control-thumbs:focus,
.woocommerce div.product .ssu-thumbrail:focus,
.woocommerce div.product div:focus,
.woocommerce div.product figure:focus,
.woocommerce div.product ol:focus,
.woocommerce div.product li:focus {
  outline: none !important; box-shadow: none !important;
}
.woocommerce div.product a:focus-visible,
.woocommerce div.product button:focus-visible,
.woocommerce div.product input:focus-visible,
.woocommerce div.product select:focus-visible {
  outline: 2px solid var(--ssu-navy); outline-offset: 2px;
}

/* ---------- no ring on any layout container ----------
   Chrome focuses scroll containers on click and rings them on the next key
   press. Layout wrappers never need a ring; controls still get one. */
div:focus, div:focus-visible,
figure:focus, figure:focus-visible,
section:focus, section:focus-visible,
ol:focus, ol:focus-visible,
ul:focus, ul:focus-visible,
li:focus, li:focus-visible,
main:focus, main:focus-visible,
article:focus, article:focus-visible,
nav:focus, nav:focus-visible {
  outline: none !important; box-shadow: none !important;
}
a:focus-visible, button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[role="button"]:focus-visible {
  outline: 2px solid var(--ssu-navy) !important; outline-offset: 2px;
}

/* ---------- thumbs pack to the top, evenly spaced ----------
   With a full-height grid the rows were free to spread out when a product had
   only two or three pictures. */
.woocommerce-product-gallery .ssu-thumbrail .flex-control-thumbs {
  align-content: start !important;
  justify-content: start !important;
  grid-auto-rows: max-content !important;
  gap: 10px !important;
}
.woocommerce-product-gallery .ssu-thumbrail .flex-control-thumbs li { height: auto !important; }

/* ---------- variation type, larger ---------- */
.ssu-size {
  font-size: 1.06em !important;
  min-width: 58px !important; height: 50px !important; padding: 0 13px !important;
}
.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations label {
  font-size: 1.02em !important; letter-spacing: .06em;
}
.woocommerce div.product form.cart .reset_variations { font-size: .84em !important; }

/* ---------- the variation label reads clearly, choices sit under it ---------- */
.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations label {
  font-size: 1.14em !important; font-weight: 800 !important;
  letter-spacing: .04em; text-transform: none !important;
  color: var(--ssu-navy) !important;
  display: block; margin-bottom: 10px !important;
}
.woocommerce div.product form.cart .ssu-sizes { padding-left: 20px; }
.woocommerce div.product form.cart .reset_variations { margin-left: 20px; }

/* ---------- the chosen size is outlined, not filled ---------- */
.ssu-size.is-active {
  background: rgba(18, 58, 109, .05) !important;
  color: var(--ssu-navy) !important;
  border: 2px solid var(--ssu-navy) !important;
  box-shadow: 0 0 0 3px rgba(18, 58, 109, .13) !important;
  font-weight: 800;
}
.ssu-size.is-active::after {
  content: ''; position: absolute; right: 5px; top: 5px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--ssu-navy);
}
.ssu-size { position: relative; }

/* ---------- the chosen size, quietly marked ---------- */
.ssu-size.is-active {
  background: rgba(18, 58, 109, .04) !important;
  color: var(--ssu-navy) !important;
  border: 2px solid var(--ssu-navy) !important;
  box-shadow: none !important;
}
.ssu-size.is-active::after { content: none !important; }

/* the boxes toggle, so the reset link is redundant */
.woocommerce div.product form.cart .reset_variations { display: none !important; }

/* ---------- the price leads the summary ---------- */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px;
  margin: 14px 0 18px !important;
  font-size: 2.15em !important; font-weight: 800; line-height: 1.05;
  color: var(--ssu-navy);
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  order: 1; text-decoration: none; background: none;
  color: var(--ssu-red); font-weight: 800;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  order: 2; opacity: 1; margin: 0 !important;
  font-size: .5em; font-weight: 600; color: #9aa6b6;
  text-decoration: line-through; text-decoration-thickness: 2px;
}
.woocommerce div.product p.price .woocommerce-Price-amount { font-weight: inherit; }
.woocommerce div.product p.price small.woocommerce-price-suffix { font-size: .38em; color: var(--ssu-muted); }
@media (max-width: 700px) {
  .woocommerce div.product p.price { font-size: 1.8em !important; }
}

/* ---------- the quantity and the cart button share a row ---------- */
.woocommerce div.product form.cart,
.woocommerce div.product .woocommerce-variation-add-to-cart {
  display: flex !important; align-items: stretch; gap: 12px; flex-wrap: wrap;
}
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .woocommerce-variation,
.woocommerce div.product form.cart .woocommerce-variation-description,
.woocommerce div.product form.cart .woocommerce-variation-price,
.woocommerce div.product form.cart .woocommerce-variation-availability { flex: 1 1 100%; }

.ssu-qty {
  flex: 0 0 20%; min-width: 130px;
  display: flex; align-items: stretch;
  border: 1.5px solid var(--ssu-line); border-radius: 10px; overflow: hidden; background: #fff;
}
.ssu-qty .quantity { flex: 1 1 auto; margin: 0 !important; display: flex; }
.ssu-qty input.qty {
  width: 100% !important; height: auto; min-height: 50px;
  border: 0 !important; border-radius: 0 !important; background: none !important;
  text-align: center; font-size: 1.02em; font-weight: 700; color: var(--ssu-navy);
  box-shadow: none !important; padding: 0 2px !important;
  -moz-appearance: textfield;
}
.ssu-qty input.qty::-webkit-outer-spin-button,
.ssu-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ssu-qty-btn {
  flex: 0 0 38px; display: inline-flex; align-items: center; justify-content: center;
  border: 0; background: #f6f8fb; color: var(--ssu-navy); cursor: pointer; padding: 0;
  transition: background .14s ease, color .14s ease;
}
.ssu-qty-btn:hover { background: var(--ssu-navy); color: #fff; }

.woocommerce div.product form.cart .single_add_to_cart_button {
  flex: 1 1 auto; min-height: 50px; border-radius: 10px;
  font-size: .92em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
@media (max-width: 520px) {
  .ssu-qty { flex: 0 0 40%; }
}

/* ---------- wishlist row, under the cart row ---------- */
.ssu-wishlist {
  flex: 1 1 100%; order: 99;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 18px; margin-top: 2px;
  border: 1.5px solid var(--ssu-line); border-radius: 10px; background: #fff;
  color: var(--ssu-navy); cursor: pointer;
  font-size: .86em; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ssu-wishlist:hover { border-color: var(--ssu-red); color: var(--ssu-red); }
.ssu-wishlist.is-on { border-color: var(--ssu-red); color: var(--ssu-red); background: rgba(216, 31, 38, .05); }
.ssu-wishlist .ssu-wish-icon { flex: 0 0 auto; }

/* ---------- a rule under the price ---------- */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  padding-bottom: 18px !important;
  border-bottom: 1px solid #e8ecf3;
  margin-bottom: 20px !important;
}
/* not on the cards or inside the variation block, only the summary */
.woocommerce ul.products li.product .price,
.woocommerce div.product .woocommerce-variation-price .price {
  padding-bottom: 0 !important; border-bottom: 0 !important;
}

/* ---------- the wishlist button keeps its white face ----------
   Storefront paints every <button> on hover; only the outline and the text
   should change here. */
.ssu-wishlist,
.ssu-wishlist:hover,
.ssu-wishlist:focus,
.ssu-wishlist:active,
.ssu-wishlist.is-on,
.ssu-wishlist.is-on:hover { background: #fff !important; }
.ssu-wishlist:hover { border-color: var(--ssu-red) !important; color: var(--ssu-red) !important; }
.ssu-wishlist.is-on { border-color: var(--ssu-red) !important; color: var(--ssu-red) !important; }

/* ---------- wishlist page ---------- */
.ssu-wishpage-empty { color: var(--ssu-muted); font-size: 1em; padding: 26px 0; }
.ssu-wishpage ul.products li.product { position: relative; }
.ssu-wishremove {
  position: absolute; top: 10px; right: 10px; z-index: 5;
  width: 28px; height: 28px; padding: 0; line-height: 1;
  border: 1px solid var(--ssu-line); border-radius: 50%; background: #fff !important;
  color: var(--ssu-muted); font-size: 17px; cursor: pointer;
}
.ssu-wishremove:hover { border-color: var(--ssu-red); color: var(--ssu-red); }
.ssu-head-wish .ssu-wish-count { top: 2px; right: 14px; }

/* ---------- shared page header, same as the category banner text ---------- */
.ssu-pagehead { margin: 0 0 26px; }
.ssu-pagehead h1 {
  margin: 0; color: var(--ssu-navy);
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: clamp(2.1em, 4vw, 3.4em); font-weight: 700; letter-spacing: .02em;
  line-height: 1.02; text-transform: uppercase;
}
.ssu-pagehead p { margin: 9px 0 0; font-size: 1.02em; line-height: 1.5; color: var(--ssu-muted); }
.page-id-17766 .entry-header, .page-id-17766 .entry-title { display: none; }

/* ---------- empty wishlist ---------- */
.ssu-wishempty {
  background: #fff;
  padding: 76px 20px 84px;
  text-align: center;
}
.ssu-wishempty-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 92px; height: 92px; margin-bottom: 26px;
  border: 2px solid var(--ssu-navy); border-radius: 50%;
  color: var(--ssu-navy); background: transparent;
}
.ssu-wishempty h2 {
  margin: 0 0 12px; color: var(--ssu-navy);
  font-size: 1.55em; font-weight: 800; letter-spacing: -.01em;
}
.ssu-wishempty p { margin: 0 0 30px; color: #5b6879; font-size: 1.02em; }
.ssu-wishempty-cta {
  display: inline-block; padding: 16px 32px;
  background: var(--ssu-red); color: #fff !important; text-decoration: none !important;
  border-radius: 6px;
  font-size: .92em; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  transition: background .15s ease, transform .15s ease;
}
.ssu-wishempty-cta:hover { background: #b81a20; transform: translateY(-1px); }
@media (max-width: 600px) { .ssu-wishempty { padding: 54px 16px 60px; } }

/* ---------- the title eases off, the price takes over ---------- */
.woocommerce div.product .product_title {
  font-size: clamp(1.45em, 2.3vw, 1.95em) !important;
  line-height: 1.15; margin-bottom: 4px !important;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-size: 2.5em !important; letter-spacing: -.015em;
  padding-bottom: 6px !important; border-bottom: 0 !important; margin-bottom: 4px !important;
}
.woocommerce div.product p.price del { font-size: .44em; }


/* ---------- the price sits right under the title, with a rule below ---------- */
.woocommerce div.product p.price { padding-bottom: 16px !important; border-bottom: 1px solid #e8ecf3 !important; margin-bottom: 18px !important; }
.woocommerce div.product .product_title { margin-bottom: 0 !important; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { margin-top: 2px !important; padding-top: 0 !important; }

/* ---------- every price wears the same red ----------
   A product with no sale price was navy while a discounted one was red; the
   current price should read the same either way. */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce div.product p.price ins,
.woocommerce div.product .woocommerce-variation-price .price { color: var(--ssu-red) !important; }
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { color: #9aa6b6 !important; }

.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price ins { color: var(--ssu-red) !important; }
.woocommerce ul.products li.product .price del { color: #9aa6b6 !important; }

/* ---------- stock reads beside the label ---------- */
.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations .label {
  display: flex !important; align-items: baseline; justify-content: space-between; gap: 16px;
}
.ssu-stock {
  font-size: .62em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: #2f8f4e; white-space: nowrap;
}
.ssu-stock.is-out { color: var(--ssu-red); }
/* the block version underneath is redundant now */
.woocommerce div.product .woocommerce-variation-availability { display: none !important; }

/* ---------- sku line ---------- */
.ssu-sku {
  display: flex; align-items: baseline; gap: 8px;
  margin: 0 0 18px !important;
  font-size: .82em; color: var(--ssu-muted);
}
.ssu-sku-label { font-weight: 800; letter-spacing: .1em; text-transform: uppercase; font-size: .9em; }
.ssu-sku-value {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .02em; color: var(--ssu-ink);
}

/* ---------- stock carries a mark ---------- */
.ssu-stock { display: inline-flex; align-items: center; gap: 7px; }
.ssu-stock::before {
  content: ''; width: 9px; height: 9px; border-radius: 50%;
  background: currentColor; flex: 0 0 auto;
  box-shadow: 0 0 0 3px rgba(47, 143, 78, .14);
}
.ssu-stock.is-in { color: #2f8f4e; }
.ssu-stock.is-low { color: #b8791b; }
.ssu-stock.is-low::before { box-shadow: 0 0 0 3px rgba(184, 121, 27, .16); }
.ssu-stock.is-out { color: var(--ssu-red); }
.ssu-stock.is-out::before {
  border-radius: 0; background: none; width: 10px; height: 10px; box-shadow: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d81f26' stroke-width='3.4' stroke-linecap='round'%3E%3Cline x1='5' y1='5' x2='19' y2='19'/%3E%3Cline x1='19' y1='5' x2='5' y2='19'/%3E%3C/svg%3E");
  background-size: contain; background-repeat: no-repeat;
}

/* ---------- choices sit close under their label ---------- */
.woocommerce div.product form.cart .variations th.label,
.woocommerce div.product form.cart .variations label {
  margin-bottom: 6px !important; padding-bottom: 0 !important;
}
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations td,
.woocommerce div.product form.cart table.variations th { border-spacing: 0; }
.woocommerce div.product form.cart table.variations td.value,
.woocommerce div.product form.cart table.variations .value {
  padding-top: 0 !important; padding-bottom: 0 !important;
}
.woocommerce div.product form.cart .ssu-sizes { margin-top: 0 !important; margin-bottom: 0 !important; }
.woocommerce div.product form.cart table.variations tr + tr th.label { padding-top: 14px !important; }



/* ---------- sku, said quietly ---------- */
.ssu-sku {
  display: block !important; margin: 0 0 18px !important;
  font-size: .82em; color: var(--ssu-muted); letter-spacing: .01em;
}
.ssu-sku-text { color: var(--ssu-ink); }

/* ---------- the sku line carries the stock for products without sizes ---------- */
.ssu-sku {
  display: flex !important; align-items: center; justify-content: space-between; gap: 16px;
}
.ssu-sku-code { flex: 0 1 auto; }
.ssu-sku .ssu-stock { flex: 0 0 auto; font-size: .78em; }

/* ---------- the chosen size stands out from the rest ----------
   Rather than filling it in, the unchosen boxes step back and the chosen one
   gains contrast: heavier rule, deeper tint, a little lift. */
.ssu-size {
  border: 1.5px solid #c2cee0 !important;
  color: #3f5169 !important;
  background: #fff !important;
  font-weight: 700;
}
.ssu-size:hover:not(:disabled):not(.is-active) {
  border-color: #c9d6e8 !important; color: var(--ssu-navy) !important;
}
.ssu-size.is-active {
  background: rgba(18, 58, 109, .1) !important;
  border: 2px solid var(--ssu-navy) !important;
  color: var(--ssu-navy) !important;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(18, 58, 109, .14) !important;
  transform: translateY(-1px);
}

/* ---------- size boxes keep their own background on hover ----------
   Storefront paints every <button> dark on hover, which left navy text on a
   navy face. The box stays white; only the rule and the text change. */
.ssu-size,
.ssu-size:hover,
.ssu-size:focus,
.ssu-size:active { background: #fff !important; }
.ssu-size:hover:not(:disabled):not(.is-active) {
  border-color: var(--ssu-navy) !important; color: var(--ssu-navy) !important;
}
.ssu-size.is-active,
.ssu-size.is-active:hover,
.ssu-size.is-active:focus { background: rgba(18, 58, 109, .1) !important; color: var(--ssu-navy) !important; }
.ssu-size.is-out,
.ssu-size.is-out:hover {
  background: repeating-linear-gradient(135deg, #fff 0 6px, #f6f8fb 6px 12px) !important;
  color: #b6c0cd !important; border-color: #eef1f6 !important;
}

/* ---------- the header row shares the crest's height ----------
   The logo is 260px wide at 1174x288, so it stands 64px tall; the field and
   the three buttons match it and the row reads as one band. */
:root { --ssu-headh: 64px; }

.site-header > .col-full .site-search .widget_product_search form { height: var(--ssu-headh); }
.site-search .widget_product_search input[type="search"] {
  height: var(--ssu-headh) !important; padding-top: 0 !important; padding-bottom: 0 !important;
}
.site-search .widget_product_search button[type="submit"] {
  top: 7px !important; bottom: 7px !important; width: 50px !important;
}

.site-header > .col-full .ssu-head-actions { align-items: stretch; }
.ssu-head-btn {
  height: var(--ssu-headh) !important;
  justify-content: center; gap: 4px;
}
.site-header > .col-full .site-branding img.custom-logo { display: block; }

@media (max-width: 900px) { :root { --ssu-headh: 52px; } }
@media (max-width: 720px) { :root { --ssu-headh: 46px; } }

/* ---------- the search field text scales with the field ---------- */
.site-header > .col-full .site-search .widget_product_search input[type="search"] {
  font-size: 1.06em !important; font-weight: 500;
  padding-left: 52px !important;
  background-size: 22px 22px !important; background-position: 18px center !important;
}
.site-header > .col-full .site-search .widget_product_search input[type="search"]::placeholder {
  font-size: 1em; color: #94a1b2;
}

/* ---------- share row under the gallery ---------- */
.woocommerce div.product > .ssu-gal-col { grid-column: 1 !important; grid-row: 1 !important; min-width: 0; }
@media (max-width: 860px) { .woocommerce div.product > .ssu-gal-col { grid-column: 1 !important; grid-row: auto !important; } }
.ssu-share {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin: 2px 0 0; padding-left: 102px;       /* centred under the main picture */
}
/* flexslider leaves a gutter under the viewport for controls we don't use */
.woocommerce div.product div.images .flex-viewport,
.woocommerce-product-gallery .flex-viewport { margin-bottom: 0 !important; }
.woocommerce-product-gallery__wrapper { margin-bottom: 0 !important; }
@media (max-width: 640px) { .ssu-share { padding-left: 0; } }

.ssu-share-label {
  font-size: .74em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: #9aa6b6; margin-right: 2px;
}
.ssu-share-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0;
  border: 1px solid var(--ssu-line) !important; border-radius: 50%;
  background: #fff !important; color: #6b7787 !important; cursor: pointer;
  text-decoration: none !important;
  transition: border-color .15s ease, color .15s ease, transform .15s ease;
}
.ssu-share-btn:hover { transform: translateY(-2px); border-color: currentColor !important; }
.ssu-share-facebook:hover { color: #1877f2 !important; }
.ssu-share-x:hover { color: #111 !important; }
.ssu-share-pinterest:hover { color: #e60023 !important; }
.ssu-share-whatsapp:hover { color: #25d366 !important; }
.ssu-share-copy:hover { color: var(--ssu-navy) !important; }
.ssu-share-copy.is-copied {
  color: #2f8f4e !important; border-color: #2f8f4e !important; background: rgba(47, 143, 78, .08) !important;
}

/* ---------- accordion in place of the tab strip ---------- */
.woocommerce div.product .woocommerce-tabs { display: none !important; }

/* an empty grid row sat between the two halves and the panels, and the row gap
   counted twice across it */
.woocommerce div.product { row-gap: 14px !important; }
.woocommerce div.product .ssu-acc {
  margin: 20px 0 0;
  border-top: 1px solid var(--ssu-line);
}
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells { margin-top: 6px !important; }
.ssu-acc-item { border-bottom: 1px solid var(--ssu-line); }
.ssu-acc-h { margin: 0 !important; padding: 0 !important; font-size: 1em !important; }
.ssu-acc-head {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  width: 100%; padding: 10px 2px !important; margin: 0;
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; cursor: pointer; text-align: left;
  color: var(--ssu-navy) !important;
  transition: color .15s ease;
}
.ssu-acc-head:hover,
.ssu-acc-head:focus { background: transparent !important; color: var(--ssu-red) !important; }
.ssu-acc-title {
  font-size: .88em; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
}
.ssu-acc-chev { flex: 0 0 auto; width: 15px; height: 15px; color: #9aa6b6; transition: transform .25s ease, color .15s ease; }
.ssu-acc-head:hover .ssu-acc-chev { color: var(--ssu-red); }
.ssu-acc-item.is-open .ssu-acc-chev { transform: rotate(180deg); color: var(--ssu-navy); }

.ssu-acc-panel { overflow: hidden; height: auto; transition: height .28s ease; }
.ssu-acc-panel[hidden] { display: block; height: 0; }
.ssu-acc-inner { padding: 0 2px 14px; max-width: 82ch; font-size: .94em; line-height: 1.5; }
.ssu-acc-inner > h2:first-child { display: none; }          /* the panel already says it */
.ssu-acc-inner > *:first-child { margin-top: 0 !important; }
.ssu-acc-inner > *:last-child { margin-bottom: 0 !important; }
.ssu-acc-inner p { margin: 0 0 8px; }
.ssu-acc-inner ul { margin: 0 0 8px 16px; }
.ssu-acc-inner li { margin: 0 0 2px; }

/* the attributes table reads as a plain list of pairs */
.ssu-acc-inner table.shop_attributes { border: 0 !important; margin: 0 !important; width: 100%; }
.ssu-acc-inner table.shop_attributes th,
.ssu-acc-inner table.shop_attributes td {
  border: 0 !important; border-bottom: 1px solid #f0f3f8 !important;
  padding: 6px 0 !important; font-style: normal !important; background: none !important;
}
.ssu-acc-inner table.shop_attributes th { width: 210px; color: var(--ssu-navy); font-weight: 700; }
.ssu-acc-inner table.shop_attributes td p { margin: 0 !important; padding: 0 !important; }

@media (max-width: 640px) {
  .ssu-acc-head { padding: 14px 2px !important; }
  .ssu-acc-title { font-size: .95em; }
  .ssu-acc-inner table.shop_attributes th { width: 130px; }
}

/* ---------- the panels sat in more room than their words needed ---------- */
.ssu-acc-inner h2, .ssu-acc-inner h3 { font-size: 1em !important; margin: 10px 0 6px !important; }
.ssu-acc-inner .woocommerce-Reviews { margin: 0; }
.ssu-acc-inner #reviews #comments { margin: 0 0 10px; }
.ssu-acc-inner .woocommerce-noreviews { margin: 0 0 10px; }
.ssu-acc-inner #review_form_wrapper .comment-form { margin: 0; }
.ssu-acc-inner .comment-form p { margin: 0 0 10px; }

/* ---------- the panels ride in the gallery column ---------- */
/* A flex or grid item will not shrink past its content's own natural size by
   default. .ssu-gal-col is a grid item of .product, and everything between it
   and the actual <img> is itself a flex item of something above it, so the
   refusal to shrink was happening again at each layer — the fix at the grid
   level alone did not reach the flex ones underneath it. */
.ssu-gal-col,
.ssu-gal-col > *,
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image { min-width: 0; }
.ssu-gal-col { display: flex; flex-direction: column; }
.ssu-gal-col .ssu-acc { width: 100%; }
@media (max-width: 860px) { .woocommerce div.product > .ssu-gal-col { grid-row: auto !important; } }

/* ---------- the square catalogue shots carry a lot of white ----------
   The photos are 1:1 with the product floating in the middle, which left a
   deep empty band under the picture. Showing them in a 4:3 frame trims that
   band off the top and bottom without touching the stored files. */
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img,
.woocommerce div.product div.images img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  width: 100%;
  height: auto;
}
.woocommerce-product-gallery .flex-control-thumbs img { aspect-ratio: 1 / 1; object-fit: contain; }

/* ---------- the buy panel follows you down the page ----------
   An ancestor with a clipped overflow turns into the sticky scroll box, so the
   product wrapper has to stay visible for the summary to stick to the window. */
.woocommerce div.product,
.woocommerce #content div.product { overflow: visible !important; }
.woocommerce div.product > .ssu-buy-col {
  grid-column: 2 !important; grid-row: 1 !important;
  align-self: stretch !important; height: 100%; min-width: 0;
}
@media (min-width: 861px) {
  .woocommerce div.product > .ssu-buy-col > div.summary {
    position: sticky;
    top: 84px;                       /* clears the pinned menu */
    width: auto !important;
  }
}
@media (max-width: 860px) {
  .woocommerce div.product > .ssu-buy-col { grid-column: 1 !important; grid-row: auto !important; }
}

/* ---------- the picture keeps a margin instead of running edge to edge ---------- */
.woocommerce div.product .woocommerce-product-gallery { padding-right: 92px; }
@media (max-width: 860px) { .woocommerce div.product .woocommerce-product-gallery { padding-right: 40px; } }
@media (max-width: 640px) { .woocommerce div.product .woocommerce-product-gallery { padding-right: 0; } }

/* ---------- related products: a divider, then a quieter row of cards ---------- */
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.products { margin-top: 34px !important; }

.woocommerce div.product .related > h2,
.woocommerce div.product .up-sells > h2 {
  display: flex; align-items: center; gap: 22px;
  margin: 0 0 24px !important; padding: 0 !important;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 1.7em !important; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ssu-navy) !important; text-align: center;
  white-space: nowrap;
}
@media (max-width: 700px) {
  .woocommerce div.product .related > h2 { font-size: 1.25em !important; white-space: normal; }
}
.woocommerce div.product .related > h2::before,
.woocommerce div.product .related > h2::after,
.woocommerce div.product .up-sells > h2::before,
.woocommerce div.product .up-sells > h2::after {
  content: ''; flex: 1 1 auto; height: 1.35em;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.4 18.1 19.2H5.9z' fill='%23e8632a'/><rect x='8.15' y='11.4' width='7.7' height='2.5' fill='%23ffffff'/><rect x='3.4' y='19.2' width='17.2' height='2.6' rx='1.2' fill='%23c8511d'/></svg>"), linear-gradient(var(--ssu-line), var(--ssu-line));
  background-repeat: no-repeat, no-repeat;
  background-size: 1.15em 1.15em, calc(100% - 1.7em) 1px;
}
.woocommerce div.product .related > h2::before,
.woocommerce div.product .up-sells > h2::before {
  background-position: right center, left center;
}
.woocommerce div.product .related > h2::after,
.woocommerce div.product .up-sells > h2::after {
  background-position: left center, right center;
}

.woocommerce div.product .related ul.products,
.woocommerce div.product .up-sells ul.products {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 14px !important;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 4px;
  cursor: grab;
}
.woocommerce div.product .related ul.products::-webkit-scrollbar,
.woocommerce div.product .up-sells ul.products::-webkit-scrollbar { display: none; }
.woocommerce div.product .related ul.products.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.woocommerce div.product .related ul.products.is-dragging * { pointer-events: none; }
.woocommerce div.product .related ul.products > li.product,
.woocommerce div.product .up-sells ul.products > li.product {
  flex: 0 0 calc((100% - 70px) / 6);
  max-width: calc((100% - 70px) / 6);
  scroll-snap-align: start;
  margin: 0 !important;
}

/* the rail and its arrows */
.ssu-rail { position: relative; }
.ssu-rail-arrow {
  position: absolute; top: 34%; transform: translateY(-50%); z-index: 4;
  width: 38px; height: 38px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--ssu-line) !important; border-radius: 50%;
  background: #fff !important; color: var(--ssu-navy) !important;
  box-shadow: 0 6px 18px rgba(15, 42, 77, .12); cursor: pointer;
  transition: opacity .15s ease, transform .15s ease, color .15s ease;
}
.ssu-rail-arrow:hover { color: var(--ssu-red) !important; transform: translateY(-50%) scale(1.06); }
.ssu-rail-arrow.is-prev { left: -14px; }
.ssu-rail-arrow.is-next { right: -14px; }
.ssu-rail-arrow.is-off { opacity: 0; pointer-events: none; }
.ssu-rail.is-static .ssu-rail-arrow { display: none; }
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product { font-size: .88em; }
.woocommerce div.product .related ul.products li.product .pcard-media,
.woocommerce div.product .related ul.products li.product img { border-radius: 8px; }
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .up-sells ul.products li.product .woocommerce-loop-product__title {
  font-size: .95em !important; line-height: 1.3;
}
.woocommerce div.product .related ul.products li.product .price,
.woocommerce div.product .up-sells ul.products li.product .price { font-size: 1em !important; }
.woocommerce div.product .related ul.products li.product .ssu-card-brandlogo { height: 14px !important; }
.woocommerce div.product .related ul.products li.product .onsale { transform: scale(.85); }

@media (max-width: 1240px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc((100% - 56px) / 5); max-width: calc((100% - 56px) / 5);
  }
}
@media (max-width: 980px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc((100% - 28px) / 3); max-width: calc((100% - 28px) / 3);
  }
}
@media (max-width: 700px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc((100% - 14px) / 2); max-width: calc((100% - 14px) / 2);
  }
  .woocommerce div.product .related > h2 { gap: 10px; }
  .ssu-rail-arrow { display: none; }
}

/* ---------- shorter cards: the picture shrinks, the words do not ---------- */
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product { font-size: .92em; }
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .up-sells ul.products li.product .woocommerce-loop-product__title {
  font-size: 1em !important;
}
.woocommerce div.product .related ul.products li.product .ssu-card-brandlogo { height: 13px !important; }
.woocommerce div.product .related ul.products li.product a img,
.woocommerce div.product .up-sells ul.products li.product a img {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  max-width: 150px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  background: #fff;
}

/* ---------- the brand mark is not a product picture ---------- */
.woocommerce div.product .related ul.products li.product .ssu-card-brandlogo,
.woocommerce div.product .up-sells ul.products li.product .ssu-card-brandlogo {
  aspect-ratio: auto !important;
  width: auto !important;
  height: 13px !important;
  object-fit: contain !important;
}

/* ---------- no card outline; a hairline between them instead ---------- */
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 14px !important;
  border-right: 1px solid var(--ssu-line) !important;
}
.woocommerce div.product .related ul.products li.product:last-child,
.woocommerce div.product .up-sells ul.products li.product:last-child { border-right: 0 !important; }
.woocommerce div.product .related ul.products li.product:hover,
.woocommerce div.product .up-sells ul.products li.product:hover {
  transform: none !important; box-shadow: none !important; background: transparent !important;
}
.woocommerce div.product .related ul.products,
.woocommerce div.product .up-sells ul.products { gap: 0 !important; }
.woocommerce div.product .related ul.products > li.product,
.woocommerce div.product .up-sells ul.products > li.product {
  flex: 0 0 calc(100% / 5) !important;
  max-width: calc(100% / 5) !important;
}
@media (max-width: 1240px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc(100% / 4) !important; max-width: calc(100% / 4) !important;
  }
}
@media (max-width: 980px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc(100% / 3) !important; max-width: calc(100% / 3) !important;
  }
}
@media (max-width: 700px) {
  .woocommerce div.product .related ul.products > li.product {
    flex: 0 0 calc(100% / 2) !important; max-width: calc(100% / 2) !important;
  }
}

/* ---------- the card brand mark keeps its own size ---------- */
.woocommerce div.product .related ul.products li.product .ssu-card-brandlogo,
.woocommerce div.product .up-sells ul.products li.product .ssu-card-brandlogo {
  aspect-ratio: auto !important;
  width: auto !important;
  height: 13px !important;
  max-width: 58px !important;
  object-fit: contain !important;
}

/* ---------- the rail ends with a way into the whole shop ---------- */
.ssu-rel-all {
  flex: 0 0 calc(100% / 5) !important;
  max-width: calc(100% / 5) !important;
  display: flex; align-items: center; justify-content: center;
  padding: 0 14px !important;
  scroll-snap-align: start;
}
.ssu-rel-all a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  width: 100%; height: 100%; min-height: 0; padding: 22px 12px;
  border: 1px dashed var(--ssu-line); border-radius: 12px;
  text-decoration: none !important; color: var(--ssu-navy) !important;
  font-size: .84em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  text-align: center; line-height: 1.35;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ssu-rel-all a:hover { border-color: var(--ssu-red); color: var(--ssu-red) !important; background: rgba(224, 26, 43, .04); }
.ssu-rel-all .ssu-rel-all-mark {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  border: 1.5px solid currentColor;
}
@media (max-width: 1240px) { .ssu-rel-all { flex: 0 0 calc(100% / 4) !important; max-width: calc(100% / 4) !important; } }
@media (max-width: 980px)  { .ssu-rel-all { flex: 0 0 calc(100% / 3) !important; max-width: calc(100% / 3) !important; } }
@media (max-width: 700px)  { .ssu-rel-all { flex: 0 0 calc(100% / 2) !important; max-width: calc(100% / 2) !important; } }

/* ---------- the rail reads in rows: picture, brand, title, price ----------
   Each part gets the same room in every card, so the four lines run straight
   across the carousel however long a product name happens to be. */
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product { display: flex; }
.woocommerce div.product .related ul.products li.product > a.woocommerce-LoopProduct-link,
.woocommerce div.product .up-sells ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important; flex-direction: column; width: 100%;
}
.woocommerce div.product .related ul.products li.product .ssu-thumbswap,
.woocommerce div.product .up-sells ul.products li.product .ssu-thumbswap {
  aspect-ratio: 1 / 1; height: auto; max-height: 132px; display: block; margin-bottom: 2px;
}
.woocommerce div.product .related ul.products li.product .ssu-thumbswap img,
.woocommerce div.product .up-sells ul.products li.product .ssu-thumbswap img {
  aspect-ratio: 1 / 1 !important; height: 100% !important;
  width: 100% !important; max-width: 100% !important;
  object-fit: contain !important;
}
.woocommerce div.product .related ul.products li.product .ssu-card-top,
.woocommerce div.product .up-sells ul.products li.product .ssu-card-top {
  display: flex; align-items: center; min-height: 18px; margin: 0 0 5px;
}
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .up-sells ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box !important;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis;
  min-height: 2.6em; max-height: 2.6em;
  margin: 0 0 6px !important; padding: 0 !important;
  line-height: 1.3;
}
.woocommerce div.product .related ul.products li.product .price,
.woocommerce div.product .up-sells ul.products li.product .price {
  margin: auto 0 0 !important; padding: 0 !important; display: block;
}
.woocommerce div.product .related ul.products li.product .woocommerce-loop-product__title::after,
.woocommerce div.product .up-sells ul.products li.product .woocommerce-loop-product__title::after {
  content: none !important;                    /* the loop's own fade is not needed here */
}

/* ---------- the view-all tile stands the same height as a card ---------- */
.woocommerce div.product .related ul.products li.ssu-rel-all,
.woocommerce div.product .up-sells ul.products li.ssu-rel-all {
  align-self: stretch;
  padding: 0 14px !important;
  border-right: 0 !important;
}
.woocommerce div.product .related ul.products li.ssu-rel-all a { align-self: stretch; }

/* ---------- the brand line holds its place even when there is no brand ---------- */
.ssu-card-top { min-height: 18px; }
.woocommerce ul.products li.product .ssu-card-top:empty { display: block; }

/* ---------- a beating shop mark stands in until the picture lands ---------- */
@keyframes ssu-beat {
  0%, 100% { opacity: .10; transform: translate(-50%, -50%) scale(1); }
  50%      { opacity: .26; transform: translate(-50%, -50%) scale(1.07); }
}
.ssu-thumbswap,
.woocommerce-product-gallery__image,
.woocommerce-product-gallery .flex-control-thumbs li { position: relative; }
.ssu-thumbswap::after,
.woocommerce-product-gallery__image::after,
.woocommerce-product-gallery .flex-control-thumbs li::after {
  content: '';
  position: absolute; left: 50%; top: 50%;
  width: 52%; height: 52%;
  transform: translate(-50%, -50%);
  background-image: var(--ssu-loader, none);
  background-repeat: no-repeat; background-position: center; background-size: contain;
  animation: ssu-beat 1.25s ease-in-out infinite;
  pointer-events: none;
}
.ssu-thumbswap.is-ready::after,
.woocommerce-product-gallery__image.is-ready::after,
.woocommerce-product-gallery .flex-control-thumbs li.is-ready::after {
  opacity: 0 !important; animation: none; transition: opacity .3s ease;
}
.woocommerce-product-gallery__image::after { width: 34%; height: 34%; }

/* ---------- lightbox: the picture and nothing else ----------
   No filename caption, no toolbar bars; just the arrows and a close mark over
   the pale backdrop. */
.pswp__caption,
.pswp__caption--empty,
.pswp__caption__center,
.pswp__counter,
.pswp__button--share,
.pswp__button--fs,
.pswp__button--zoom,
.pswp__share-modal,
.pswp__share-tooltip { display: none !important; }

.pswp__top-bar,
.pswp__caption,
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption { background: none !important; box-shadow: none !important; }

.pswp__ui .pswp__button--close,
.pswp__ui--idle .pswp__button--close,
.pswp__ui--hidden .pswp__button--close,
.pswp__ui--fit .pswp__button--close {
  display: block !important;
  filter: none !important;
  opacity: 1 !important;
  width: 44px !important;
  height: 44px !important;
  margin: 12px 14px 0 0 !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0NCcgaGVpZ2h0PSc0NCcgdmlld0JveD0nMCAwIDQ0IDQ0Jz48Y2lyY2xlIGN4PScyMicgY3k9JzIyJyByPScyMScgZmlsbD0nI2ZmZmZmZicgc3Ryb2tlPScjZDVkZmVlJyBzdHJva2Utd2lkdGg9JzEuNScvPjxwYXRoIGQ9J00xNSAxNUwyOSAyOScgc3Ryb2tlPScjMTIzYTZkJyBzdHJva2Utd2lkdGg9JzIuNicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJy8+PHBhdGggZD0nTTI5IDE1TDE1IDI5JyBzdHJva2U9JyMxMjNhNmQnIHN0cm9rZS13aWR0aD0nMi42JyBzdHJva2UtbGluZWNhcD0ncm91bmQnLz48L3N2Zz4=") !important;
  background-position: center center !important;
  background-size: 38px 38px !important;
  background-repeat: no-repeat !important;
  box-shadow: none !important;
  transition: transform .15s ease;
}
.pswp__button--close::before,
.pswp__button--close::after { content: none !important; }
.pswp__button--close:hover { transform: scale(1.08); }

/* ---------- a size you have not picked still has to read clearly ---------- */
.ssu-sizes .ssu-size {
  border: 1.5px solid #c2cee0 !important;
  color: #3f5169 !important;
  background: #fff !important;
  font-weight: 700;
}
.ssu-sizes .ssu-size:hover {
  border-color: var(--ssu-navy) !important;
  color: var(--ssu-navy) !important;
  background: #f4f8ff !important;
}
.ssu-sizes .ssu-size.is-selected,
.ssu-sizes .ssu-size[aria-pressed="true"] {
  border-color: var(--ssu-navy) !important;
  color: var(--ssu-navy) !important;
  background: #eef4ff !important;
  box-shadow: 0 0 0 2px rgba(18, 58, 109, .14) !important;
}
.ssu-sizes .ssu-size.is-out,
.ssu-sizes .ssu-size:disabled {
  border-color: #e6ebf3 !important;
  color: #a9b4c4 !important;
  background: #fbfcfe !important;
}

/* ---------- nothing left in the archive header, so it keeps no room ---------- */
.woocommerce-products-header,
.woocommerce-products-header:empty {
  margin: 0 !important; padding: 0 !important; min-height: 0 !important;
}
.woocommerce-products-header:empty { display: none !important; }
.woocommerce-notices-wrapper:empty { display: none !important; margin: 0 !important; }
.ssu-shopmain #primary,
.ssu-shopmain .site-main { margin: 0 !important; padding: 0 !important; }
.ssu-shopmain > #primary:has(> main > header:empty) { min-height: 0; }

/* ---------- front page section headers all read the same ----------
   Matched to the club rail: display face, hairline running out to the right,
   quiet line of copy underneath. */
.home-head {
  display: flex; align-items: center; gap: 22px;
  margin: 6px 0 6px !important; padding: 0 !important;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 1.7em !important; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ssu-navy) !important;
  white-space: nowrap;
}
.home-head::after { content: ''; flex: 1 1 auto; height: 1px; background: var(--ssu-line); }
.home-sub {
  margin: 0 0 18px !important;
  color: var(--ssu-muted); font-size: .95em;
}
.home-head + .brand-marquee,
.home-head + .home-cats,
.home-head + ul.products { margin-top: 14px; }
@media (max-width: 700px) {
  .home-head { font-size: 1.25em !important; white-space: normal; gap: 12px; }
}

/* ---------- front page product cards run compact ----------
   The home page is a shop window, not the catalogue: smaller pictures, tighter
   type, so New Arrivals and On Sale Now take a fraction of the scroll. */
body.home .woocommerce ul.products,
body.home ul.products { gap: 14px !important; }

body.home ul.products li.product { font-size: .9em; }
body.home ul.products li.product .ssu-thumbswap { height: 150px; margin-bottom: 4px; }
body.home ul.products li.product .ssu-thumbswap img {
  aspect-ratio: 1 / 1 !important; height: 150px !important;
  width: 100% !important; object-fit: contain !important;
}
body.home ul.products li.product .ssu-card-top { min-height: 16px; margin-bottom: 4px; }
body.home ul.products li.product .ssu-card-brandlogo { height: 12px !important; }
body.home ul.products li.product .woocommerce-loop-product__title {
  font-size: .95em !important; line-height: 1.25;
  min-height: 2.5em; max-height: 2.5em;
  -webkit-line-clamp: 2; margin-bottom: 4px !important;
}
body.home ul.products li.product .price { font-size: 1em !important; margin: 0 !important; }
body.home ul.products li.product .onsale { transform: scale(.86); }
body.home ul.products li.product > a { padding: 0 !important; }

@media (max-width: 700px) {
  body.home ul.products li.product .ssu-thumbswap,
  body.home ul.products li.product .ssu-thumbswap img { height: 128px !important; }
}

/* ---------- front page: mini product cards ----------
   Six to a row, small square shots, one tight block of type. The home page is
   a glance, the catalogue is the browse. */
body.home .woocommerce ul.products,
body.home ul.products {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 13px !important;
}
body.home ul.products li.product {
  font-size: .82em;
  border-radius: 10px !important;
}
body.home ul.products li.product .ssu-thumbswap,
body.home ul.products li.product .ssu-thumbswap img { height: 130px !important; }
body.home ul.products li.product .ssu-card-top { min-height: 14px; margin-bottom: 3px; }
body.home ul.products li.product .ssu-card-brandlogo { height: 11px !important; }
body.home ul.products li.product .ssu-card-brand span { font-size: .92em; }
body.home ul.products li.product .woocommerce-loop-product__title {
  font-size: .92em !important; line-height: 1.22;
  min-height: 2.44em; max-height: 2.44em; margin-bottom: 3px !important;
}
body.home ul.products li.product .price { font-size: .98em !important; }
body.home ul.products li.product del { font-size: .82em; }
body.home ul.products li.product .onsale { transform: scale(.74); }

@media (max-width: 1240px) {
  body.home ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (max-width: 1024px) {
  body.home ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (max-width: 760px) {
  body.home ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  body.home ul.products li.product .ssu-thumbswap,
  body.home ul.products li.product .ssu-thumbswap img { height: 100px !important; }
}
@media (max-width: 480px) {
  body.home ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ---------- the picture fades up over the waiting mark ---------- */
.ssu-fade .ssu-thumbswap img:not(.ssu-thumb-alt),
.ssu-fade .woocommerce-product-gallery__image img,
.ssu-fade .ssu-sug-img img {
  opacity: 0;
  transition: opacity .32s ease;
}
.ssu-fade .ssu-thumbswap.is-ready img:not(.ssu-thumb-alt),
.ssu-fade .woocommerce-product-gallery__image.is-ready img,
.ssu-fade .ssu-sug-img.is-ready img { opacity: 1; }

/* a picture already in cache must not flash: the script marks those ready
   before paint, and this keeps anything without the script visible */
.no-js .ssu-thumbswap img,
.no-js .woocommerce-product-gallery__image img { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .ssu-thumbswap img:not(.ssu-thumb-alt),
  .woocommerce-product-gallery__image img { transition: none; }
}

/* ---------- lightbox: pictures cross-fade as you move through them ----------
   Only opacity is animated. PhotoSwipe drives the transforms itself, and
   transitioning those would fight the drag. */
.pswp__img {
  transition: opacity .26s ease;
  backface-visibility: hidden;
}
.pswp__img--placeholder { transition: opacity .26s ease; }
.pswp--ssu .pswp__zoom-wrap { will-change: transform; }
.pswp--ssu .pswp__item { transition: opacity .2s ease; }

/* the arrows should feel like part of the picture, not a control panel */
.pswp__button--arrow--left,
.pswp__button--arrow--right { transition: opacity .2s ease, transform .2s ease; }
.pswp__button--arrow--left:hover { transform: translateX(-3px); }
.pswp__button--arrow--right:hover { transform: translateX(3px); }

@media (prefers-reduced-motion: reduce) {
  .pswp__img, .pswp__item, .pswp__img--placeholder { transition: none; }
}



/* ---------- brand marks in the dropdown ---------- */
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; gap: 9px;
}
.ssu-menu-brandlogo {
  width: 22px; height: 16px; object-fit: contain; flex: 0 0 auto;
  opacity: .85; transition: opacity .15s ease;
}
.main-navigation ul.menu ul.sub-menu li a:hover .ssu-menu-brandlogo { opacity: 1; }

/* ---------- brand links line up behind their marks ---------- */
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; justify-content: flex-start !important; gap: 10px;
}
.ssu-menu-brandlogo { width: 24px; height: 15px; }


/* ---------- footwear dropdown ----------------------------------------------
   Five short columns on one row: no stacked half-empty column, no dead space
   underneath. Headings sit on a rule, links read as a list, and the whole panel
   is only as tall as its longest column. */
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr 1.15fr .8fr .95fr;
  grid-auto-rows: min-content;
  align-items: start;
  gap: 0 !important;
  padding: 20px 26px 22px !important;
  border-radius: 0 0 12px 12px;
}
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li {
  width: auto !important; padding: 2px 22px !important; margin: 0 !important;
  border-right: 1px solid #eef2f8;
}
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li:first-child { padding-left: 4px !important; }
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li:last-child { border-right: 0; padding-right: 4px !important; }

/* headings */
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a {
  display: block !important; pointer-events: none;
  margin: 0 0 10px !important; padding: 0 0 7px !important;
  font-size: .64em; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
  color: #8695a9 !important;
  border-bottom: 1px solid #e6ecf5;
}
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a::after,
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a::before { content: none !important; }

/* links */
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu {
  display: block !important; position: static !important; min-width: 0 !important;
  padding: 0 !important; margin: 0 !important; background: none !important;
  border: 0 !important; box-shadow: none !important;
}
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li { margin: 0 !important; }
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li a {
  display: flex !important; align-items: center; gap: 9px;
  padding: 5px 0 !important; border: 0 !important;
  font-size: .88em !important; font-weight: 600; line-height: 1.3;
  letter-spacing: 0; text-transform: none;
  color: #3f5169 !important;
  background: none !important;
  transition: color .14s ease, transform .14s ease;
}
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li a:hover {
  color: var(--ssu-red) !important; transform: translateX(3px);
}

/* the first link of each column is the way in to the whole section */
.main-navigation ul.menu > li.mega-footwear ul.sub-menu ul.sub-menu li:first-child a {
  font-weight: 800; color: var(--ssu-navy) !important;
}

/* brand marks */
.ssu-menu-brandlogo {
  width: 26px; height: 16px; object-fit: contain; flex: 0 0 auto;
  opacity: .9; transition: opacity .15s ease;
}
.main-navigation ul.menu ul.sub-menu li a:hover .ssu-menu-brandlogo { opacity: 1; }

@media (max-width: 1180px) {
  .main-navigation ul.menu > li.mega-footwear > ul.sub-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 0 !important;
  }
  .main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li:nth-child(3n) { border-right: 0; }
}

/* ---------- my account ------------------------------------------------------
   The signed-out page is a single card; the signed-in page keeps the shop's
   two-column shape with the person named at the top of the menu. */
.woocommerce-account .woocommerce { max-width: 1100px; margin: 0 auto; }

.ssu-acct-head { text-align: center; margin: 6px 0 26px; }
.ssu-acct-head h1 {
  margin: 0 0 6px !important;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 2em; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: var(--ssu-navy);
}
.ssu-acct-head p { margin: 0; color: var(--ssu-muted); font-size: .96em; }

.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce-account .customer-login-form,
.woocommerce-account #customer_login {
  max-width: 460px; margin: 0 auto;
}
.woocommerce-account form.woocommerce-form-login {
  border: 1px solid var(--ssu-line) !important;
  border-radius: 14px;
  padding: 26px 26px 22px !important;
  margin: 0 !important;
  box-shadow: 0 8px 24px rgba(15, 42, 77, .06);
  background: #fff;
}
.woocommerce-account form.woocommerce-form-login h2 { display: none; }
.woocommerce-account .woocommerce-form-login label { font-size: .84em; font-weight: 700; color: var(--ssu-navy); }
.woocommerce-account .woocommerce-form-login input[type="text"],
.woocommerce-account .woocommerce-form-login input[type="password"] {
  width: 100%; padding: 12px 14px; border: 1.5px solid #d9e2ef; border-radius: 9px;
  background: #fff; font-size: .96em;
}
.woocommerce-account .woocommerce-form-login input:focus { border-color: var(--ssu-navy); outline: none; }
.woocommerce-account .woocommerce-form-login .button {
  width: 100%; padding: 13px 18px !important; border-radius: 9px !important;
  background: var(--ssu-red) !important; color: #fff !important;
  font-weight: 800; letter-spacing: .1em; text-transform: uppercase; font-size: .84em;
}
.woocommerce-account .woocommerce-form-login .button:hover { background: #c3121f !important; }
.woocommerce-account .woocommerce-LostPassword {
  margin: 14px 0 0 !important; text-align: center; font-size: .88em;
}

/* signed in */
.ssu-acct-who {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 0 0 16px; margin: 0 0 14px; border-bottom: 1px solid var(--ssu-line);
}
.ssu-acct-avatar {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-bottom: 8px; border-radius: 50%;
  background: var(--ssu-navy); color: #fff;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif; font-size: 1.2rem; font-weight: 700;
}
.ssu-acct-name { font-weight: 800; color: var(--ssu-navy); font-size: 1.02em; }
.ssu-acct-role {
  font-size: .66em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #9aa6b6;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block; padding: 9px 12px; border-radius: 8px;
  font-size: .92em; font-weight: 600; color: #42546b !important;
  transition: background .14s ease, color .14s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #f3f7fd; color: var(--ssu-navy) !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background: #eef4ff; color: var(--ssu-navy) !important; font-weight: 800;
}

/* the header button when an administrator is signed in */
.ssu-head-link.is-admin { color: var(--ssu-navy); }
.ssu-head-link.is-admin .ssu-head-label { font-weight: 800; }

/* ---------- the sign-in page keeps one heading, ours ---------- */
.woocommerce-account .entry-header,
.woocommerce-account .page-title,
.woocommerce-account .entry-title,
.woocommerce-account #customer_login > h2,
.woocommerce-account .customer-login-form > h2,
.woocommerce-account .woocommerce-breadcrumb,
.woocommerce-account .storefront-breadcrumb { display: none !important; }

.woocommerce-account #customer_login,
.woocommerce-account .customer-login-form {
  float: none !important; width: 100% !important; max-width: 440px; margin: 0 auto !important;
}
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
  float: none !important; width: 100% !important; padding: 0 !important;
}
.woocommerce-account .woocommerce-form-login__rememberme { font-size: .88em; color: var(--ssu-muted); }
.woocommerce-account .woocommerce-form-login .form-row { margin-bottom: 14px !important; }



/* ---------- store admin console --------------------------------------------
   Full width and flush: navigation down the left, the section on the right,
   nothing between it and the header or the footer. */
body.ssu-admin-page #content,
body.ssu-admin-page .site-content,
body.ssu-admin-page #primary,
body.ssu-admin-page .content-area,
body.ssu-admin-page .site-main {
  padding: 0 !important; margin: 0 !important;
}
body.ssu-admin-page .site-header { margin-bottom: 0 !important; padding-bottom: 0 !important; }
body.ssu-admin-page .site-footer { margin-top: 0 !important; }
body.ssu-admin-page .storefront-breadcrumb,
body.ssu-admin-page .woocommerce-breadcrumb { display: none !important; }

.ssu-admin {
  width: 100vw; margin-left: calc(50% - 50vw);
  background: #f7fafd;
  border-top: 1px solid var(--ssu-line);
  border-bottom: 1px solid var(--ssu-line);
}
.ssu-admin-shell {
  display: grid; grid-template-columns: 250px minmax(0, 1fr);
  min-height: 0; max-width: 1560px; margin: 0 auto;
}

/* the sidebar */
.ssu-admin-side {
  padding: 26px 20px 24px; background: #fff;
  border-right: 1px solid var(--ssu-line);
  display: flex; flex-direction: column; gap: 22px;
}
.ssu-admin-me { display: flex; flex-direction: column; gap: 2px; }
.ssu-admin-avatar {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-bottom: 10px; border-radius: 50%;
  background: var(--ssu-navy); color: #fff;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif; font-size: 1.2rem; font-weight: 700;
}
.ssu-admin-mename { font-weight: 800; color: var(--ssu-navy); }
.ssu-admin-merole {
  font-size: .62em; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: #9aa6b6;
}

.ssu-admin-nav { display: flex; flex-direction: column; gap: 2px; }
.ssu-admin-nav a {
  display: block; padding: 10px 12px; border-radius: 8px;
  font-size: .9em; font-weight: 600; color: #42546b !important; text-decoration: none !important;
  transition: background .14s ease, color .14s ease;
}
.ssu-admin-nav a:hover { background: #f3f7fd; color: var(--ssu-navy) !important; }
.ssu-admin-nav a.is-current {
  background: #eef4ff; color: var(--ssu-navy) !important; font-weight: 800;
  box-shadow: inset 3px 0 0 var(--ssu-red);
}

.ssu-admin-sidefoot {
  margin-top: auto; display: flex; flex-direction: column; gap: 8px;
  padding-top: 18px; border-top: 1px solid var(--ssu-line);
}
.ssu-admin-sidefoot a {
  font-size: .74em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  color: var(--ssu-navy) !important; text-decoration: none !important;
}
.ssu-admin-sidefoot a:hover { color: var(--ssu-red) !important; }
.ssu-admin-sidefoot .ssu-admin-out { color: #9aa6b6 !important; }

/* the work area */
.ssu-admin-main { padding: 30px 32px 34px; min-width: 0; }
.ssu-admin-section { display: block; }
.ssu-admin-section h1 {
  margin: 0 0 8px !important;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 2em; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
  color: var(--ssu-navy);
}
.ssu-admin-placeholder { margin: 0; color: #9aa6b6; font-size: .9em; }

@media (max-width: 900px) {
  .ssu-admin-shell { grid-template-columns: 1fr; min-height: 0; }
  .ssu-admin-side { border-right: 0; border-bottom: 1px solid var(--ssu-line); }
  .ssu-admin-nav { flex-direction: row; flex-wrap: wrap; }
  .ssu-admin-main { padding: 22px 20px 26px; }
}

/* ---------- the admin menu, with some weight to it ---------- */
.ssu-admin-side { background: #fbfcfe; }
.ssu-admin-nav { gap: 4px; }
.ssu-admin-nav a {
  padding: 11px 13px !important;
  font-size: .92em !important; font-weight: 700 !important;
  color: #23364d !important;
  border: 1px solid transparent;
}
.ssu-admin-nav a:hover {
  background: #eaf1fb !important; border-color: #dbe6f5;
  color: var(--ssu-navy) !important;
}
.ssu-admin-nav a.is-current {
  background: var(--ssu-navy) !important; color: #fff !important;
  border-color: var(--ssu-navy);
  box-shadow: inset 3px 0 0 var(--ssu-red);
}
.ssu-admin-nav a.is-current:hover { background: #0f2f5c !important; color: #fff !important; }
.ssu-admin-mename { font-size: 1.06em; }
.ssu-admin-merole { color: #7c8ca1; }
.ssu-admin-sidefoot a { color: #23364d !important; }

/* ---------- the sidebar is just the menu now ---------- */
.ssu-admin-side { padding-top: 22px; }
.ssu-admin-me { display: none; }
.ssu-admin-nav { gap: 4px; }

/* the console is only as tall as it needs to be: an empty panel under a short
   section read as a gap above the footer */
.ssu-admin-shell { min-height: 0 !important; }
.ssu-admin-side { padding-bottom: 18px; }
.ssu-admin-main { padding-bottom: 24px; }

/* ---------- the settings group opens in place ---------- */
.ssu-admin-group { border: 0; margin: 0; }
.ssu-admin-group > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  cursor: pointer; list-style: none;
}
.ssu-admin-group > summary::-webkit-details-marker { display: none; }
.ssu-admin-caret { flex: 0 0 auto; opacity: .55; transition: transform .18s ease; }
.ssu-admin-group[open] > summary .ssu-admin-caret { transform: rotate(180deg); }
.ssu-admin-sub { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 4px 12px; padding-left: 10px;
  border-left: 1px solid #e2e9f4; }
.ssu-admin-sublink {
  display: block; padding: 8px 11px; border-radius: 7px;
  font-size: .86em; font-weight: 600; color: #4a5c72 !important; text-decoration: none !important;
  transition: background .14s ease, color .14s ease;
}
.ssu-admin-sublink:hover { background: #eef4fd; color: var(--ssu-navy) !important; }
.ssu-admin-sublink.is-current {
  background: #eef4ff; color: var(--ssu-navy) !important; font-weight: 800;
  box-shadow: inset 2px 0 0 var(--ssu-red);
}

/* ---------- console: flush into the footer, and Settings matches the rest ---
   The footer carries its own 40px of top air, which reads as a gap once the
   console above it is tinted. */
body.ssu-admin-page .ssu-footer { margin-top: 0 !important; padding-top: 16px !important; }
body.ssu-admin-page .site-footer { border-top: 0 !important; }

/* the group header is a <summary>, so it needs the link styling too */
.ssu-admin-nav summary.ssu-admin-navlink {
  padding: 11px 13px !important;
  border-radius: 8px;
  font-size: .92em !important; font-weight: 700 !important;
  color: #23364d !important;
  border: 1px solid transparent;
  transition: background .14s ease, color .14s ease;
}
.ssu-admin-nav summary.ssu-admin-navlink:hover {
  background: #eaf1fb; border-color: #dbe6f5; color: var(--ssu-navy) !important;
}
.ssu-admin-nav summary.ssu-admin-navlink.is-current {
  background: var(--ssu-navy); color: #fff !important; border-color: var(--ssu-navy);
  box-shadow: inset 3px 0 0 var(--ssu-red);
}
.ssu-admin-group[open] > summary.ssu-admin-navlink:not(.is-current) { color: var(--ssu-navy) !important; }

/* ---------- the console stands alone ----------
   No shop footer behind the tools; the panel runs to the bottom of the window
   so there is nothing between it and the edge. */
body.ssu-admin-page .site-footer { display: none !important; }
body.ssu-admin-page .ssu-admin { border-bottom: 0; min-height: calc(100vh - 170px); }
body.ssu-admin-page .ssu-admin-shell { min-height: calc(100vh - 170px) !important; }

/* belt and braces: if the toolbar is printed anyway, it stays out of sight and
   takes its 32px offset with it */
body.ssu-admin-page #wpadminbar { display: none !important; }
html.ssu-admin-html { margin-top: 0 !important; }
body.ssu-admin-page { margin-top: 0 !important; }

/* ---------- console: section header, buttons ---------- */
.ssu-admin-sectionhead {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  margin: 0 0 6px;
}
.ssu-admin-sectionhead h1 { margin: 0 !important; }
.ssu-admin-lede { margin: 0 0 18px; color: var(--ssu-muted); font-size: .9em; }

.ssu-admin-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 18px; border: 1px solid var(--ssu-line); border-radius: 8px;
  background: #fff; color: var(--ssu-navy) !important; cursor: pointer;
  font-size: .78em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  text-decoration: none !important;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.ssu-admin-btn:hover { border-color: var(--ssu-navy); transform: translateY(-1px); }
.ssu-admin-btn.is-primary {
  background: var(--ssu-red) !important; border-color: var(--ssu-red);
  color: #fff !important;
}
.ssu-admin-btn.is-primary:hover { background: #c3121f !important; border-color: #c3121f; }
.ssu-admin-btn.is-small { padding: 7px 13px; font-size: .7em; }
.ssu-admin-btn[disabled] { opacity: .5; cursor: default; transform: none; }

/* ---------- the watch list ---------- */
.ssu-inv-empty {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  padding: 44px 20px; border: 1px dashed #cbd6e6; border-radius: 14px; background: #fff;
  text-align: center;
}
.ssu-inv-empty p { margin: 0; color: var(--ssu-muted); font-size: .92em; }

.ssu-inv-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 14px; overflow: hidden;
  font-size: .9em;
}
.ssu-inv-table > thead > tr > th {
  padding: 11px 14px; text-align: left; background: #f7fafd;
  border-bottom: 1px solid var(--ssu-line);
  font-size: .74em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8695a9;
}
.ssu-inv-table > tbody > tr > td { padding: 11px 14px; border-bottom: 1px solid #f0f4f9; vertical-align: middle; }
.ssu-inv-table > tbody > tr:last-child > td { border-bottom: 0; }
.ssu-inv-thumb { width: 62px; }
.ssu-inv-thumb img {
  width: 46px; height: 46px; object-fit: contain; display: block;
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 8px; padding: 3px;
}
.ssu-inv-name a { font-weight: 700; color: var(--ssu-navy) !important; text-decoration: none !important; }
.ssu-inv-name a:hover { color: var(--ssu-red) !important; }
.ssu-inv-brand {
  display: block; font-size: .74em; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-sku { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .86em; color: #5b6b80; }
.ssu-inv-price .amount { font-weight: 800; color: var(--ssu-red); }
.ssu-inv-price del .amount { font-weight: 600; color: #9aa6b6; }
.ssu-inv-price .screen-reader-text { display: none; }
.ssu-inv-rowaction { width: 96px; text-align: right; }
.ssu-inv-drop {
  border: 0; background: none; cursor: pointer; padding: 4px 2px;
  font-size: .74em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-drop:hover { color: var(--ssu-red); }

/* ---------- the picker ---------- */
body.ssu-modal-on { overflow: hidden; }
.ssu-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: flex-start; justify-content: center; }
.ssu-modal[hidden] { display: none; }
.ssu-modal-veil { position: absolute; inset: 0; background: rgba(10, 24, 45, .45); backdrop-filter: blur(2px); }
.ssu-modal-box {
  position: relative; width: min(620px, calc(100vw - 32px)); margin-top: 9vh;
  background: #fff; border-radius: 16px; box-shadow: 0 30px 70px rgba(9, 22, 42, .3);
  display: flex; flex-direction: column; max-height: 76vh; overflow: hidden;
}
.ssu-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px 14px; border-bottom: 1px solid var(--ssu-line);
}
.ssu-modal-head h2 {
  margin: 0 !important;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 1.2em; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ssu-navy);
}
.ssu-modal-x {
  border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: #9aa6b6;
}
.ssu-modal-x:hover { color: var(--ssu-red); }

.ssu-modal-search {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 20px; border-bottom: 1px solid var(--ssu-line); color: #8695a9;
}
.ssu-modal-search input {
  flex: 1 1 auto; border: 0; padding: 8px 0; font-size: 1em; background: none;
}
.ssu-modal-search input:focus { outline: none; }

.ssu-modal-results { overflow-y: auto; padding: 8px 12px 14px; }
.ssu-modal-hint { margin: 16px 8px; color: #9aa6b6; font-size: .9em; }
.ssu-modal-row {
  display: flex; align-items: center; gap: 12px;
  padding: 9px 8px; border-radius: 10px;
}
.ssu-modal-row:hover { background: #f5f9fe; }
.ssu-modal-pic { flex: 0 0 auto; }
.ssu-modal-pic img {
  width: 44px; height: 44px; object-fit: contain; display: block;
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 8px; padding: 3px;
}
.ssu-modal-meta { flex: 1 1 auto; min-width: 0; }
.ssu-modal-name {
  display: block; font-size: .92em; font-weight: 700; color: var(--ssu-navy);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ssu-modal-sub {
  display: block; font-size: .74em; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: #9aa6b6;
}
.ssu-modal-price { flex: 0 0 auto; font-size: .86em; font-weight: 800; color: var(--ssu-red); white-space: nowrap; }
.ssu-modal-price del { color: #b8c2d0; font-weight: 600; margin-right: 4px; }
.ssu-modal-price .screen-reader-text { display: none; }
.ssu-modal-add { flex: 0 0 auto; }

@media (max-width: 700px) {
  .ssu-modal-box { margin-top: 4vh; max-height: 88vh; }
  .ssu-inv-table { font-size: .84em; }
  .ssu-inv-sku { display: none; }
}

/* ---------- the editable cells ---------- */
.ssu-inv-input {
  width: 100%; max-width: 130px; padding: 7px 9px;
  border: 1.5px solid #dde5f0; border-radius: 7px; background: #fff;
  font-size: .9em; color: var(--ssu-navy);
}
.ssu-inv-input:focus { border-color: var(--ssu-navy); outline: none; }
.ssu-inv-input:disabled { background: #f6f8fc; color: #9aa6b6; }
.ssu-inv-money .ssu-inv-input,
.ssu-inv-stock .ssu-inv-input { max-width: 92px; text-align: right; font-variant-numeric: tabular-nums; }
.ssu-inv-sku .ssu-inv-input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82em; }

.ssu-inv-rowaction { width: 210px; text-align: right; white-space: nowrap; }
.ssu-inv-rowaction .ssu-admin-btn { margin-left: 6px; }
.ssu-inv-state {
  font-size: .7em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-state.is-working { color: #8695a9; }
.ssu-inv-state.is-good { color: #2f8f4e; }
.ssu-inv-state.is-bad { color: var(--ssu-red); text-transform: none; letter-spacing: 0; font-weight: 700; }
.ssu-inv-table tr.is-variable .ssu-inv-name a::after {
  content: 'variable'; margin-left: 8px; padding: 2px 7px; border-radius: 999px;
  background: #f1f5fa; color: #8695a9;
  font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}

/* the empty state is a flex box, which was beating the hidden attribute */
.ssu-inv-empty[hidden],
.ssu-inv-table[hidden] { display: none !important; }

/* ---------- per-size stock ---------- */
.ssu-inv-sizes { background: #f8fafd; }
.ssu-inv-sizes td { padding: 0 14px 14px !important; }
.ssu-inv-sizegrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 8px;
  padding: 12px 0 2px;
}





.ssu-inv-sizehint {
  margin: 0 0 2px; font-size: .74em; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-expand {
  border: 0; background: none; cursor: pointer; padding: 6px 2px;
  font-size: .78em; font-weight: 700; color: var(--ssu-navy);
  display: inline-flex; align-items: center; gap: 6px;
}
.ssu-inv-expand:hover { color: var(--ssu-red); }
.ssu-inv-expand svg { transition: transform .18s ease; }
.ssu-inv-expand[aria-expanded="true"] svg { transform: rotate(180deg); }

/* ---------- brand marks, and the picture preview ---------- */
.ssu-inv-brand { display: inline-flex; align-items: center; gap: 6px; }
.ssu-inv-brand img { width: 18px; height: 12px; object-fit: contain; }
.ssu-modal-brandmark { width: 16px; height: 11px; object-fit: contain; margin-right: 5px; vertical-align: -1px; }

.ssu-inv-peek {
  position: absolute; z-index: 10000; pointer-events: none;
  padding: 8px; background: #fff; border: 1px solid var(--ssu-line); border-radius: 12px;
  box-shadow: 0 18px 40px rgba(9, 22, 42, .22);
}
.ssu-inv-peek[hidden] { display: none; }
.ssu-inv-peek img { display: block; width: 220px; height: 220px; object-fit: contain; }

/* ---------- the SKU lock ---------- */
.ssu-inv-lockwrap { display: inline-flex; align-items: center; gap: 6px; }
.ssu-inv-lock {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0; cursor: pointer;
  border: 1px solid var(--ssu-line); border-radius: 7px; background: #fff; color: #8695a9;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.ssu-inv-lock:hover { color: var(--ssu-navy); border-color: #cdd9e8; }
.ssu-inv-lock[aria-pressed="false"] { color: var(--ssu-red); border-color: #f3c9cd; background: #fff6f7; }
.ssu-inv-lock[aria-pressed="false"] .ssu-lock-shackle { transform: translate(2px, -2px) rotate(12deg); }
.ssu-lock-shackle { transform-origin: 12px 10px; transition: transform .18s ease; }

/* ---------- the product cell: brand line, then the title ---------- */
.ssu-inv-name .ssu-inv-brand {
  display: flex; align-items: center; gap: 6px; margin: 0 0 2px;
  font-size: .7em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-name a { display: inline-block; }
.ssu-inv-name a::after {
  content: '↗'; margin-left: 6px; font-size: .8em; color: #b6c1d0; vertical-align: 1px;
}
.ssu-inv-name a:hover::after { color: var(--ssu-red); }

/* ---------- console: tabs and cards ---------- */
.ssu-tabs { display: flex; gap: 4px; margin: 0 0 20px; border-bottom: 1px solid var(--ssu-line); }
.ssu-tab {
  padding: 9px 16px; border: 1px solid transparent; border-bottom: 0; border-radius: 9px 9px 0 0;
  font-size: .84em; font-weight: 700; color: #5b6b80 !important; text-decoration: none !important;
  margin-bottom: -1px;
}
.ssu-tab:hover { color: var(--ssu-navy) !important; background: #f3f7fd; }
.ssu-tab.is-current {
  background: #fff; border-color: var(--ssu-line); color: var(--ssu-navy) !important; font-weight: 800;
  box-shadow: inset 0 3px 0 var(--ssu-red);
}

.ssu-card {
  padding: 20px 22px; margin: 0 0 16px;
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 14px;
}
.ssu-card h2 {
  margin: 0 0 8px !important; font-size: 1em !important; font-weight: 800; color: var(--ssu-navy);
}
.ssu-card p { margin: 0 0 10px; font-size: .88em; line-height: 1.55; color: #5b6b80; }
.ssu-card p:last-child { margin-bottom: 0; }
.ssu-card code {
  padding: 2px 6px; border-radius: 5px; background: #f2f6fb; color: var(--ssu-navy);
  font-size: .88em;
}

.ssu-keylist { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 6px 16px; margin: 0 0 16px; }
.ssu-keylist dt { font-size: .74em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #9aa6b6; }
.ssu-keylist dd { margin: 0; font-size: .88em; color: var(--ssu-navy); }
.ssu-secret {
  display: inline-block; max-width: 100%; overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8em;
}
.ssu-keyform { display: flex; gap: 10px; }

.ssu-note {
  margin: 0 0 16px; padding: 10px 14px; border-radius: 10px;
  background: #f2f6fb; color: #42546b; font-size: .88em;
}
.ssu-note.is-good { background: rgba(47, 143, 78, .1); color: #256b3b; }
.ssu-note.is-bad { background: rgba(224, 26, 43, .08); color: #a3121d; }

.ssu-api-result { margin-left: 12px; font-size: .84em; color: #8695a9; }
.ssu-api-result.is-good { color: #2f8f4e; }
.ssu-api-result.is-bad { color: var(--ssu-red); }
.ssu-inv-loading { font-size: .78em; color: #9aa6b6; }

/* ---------- dragging sizes into order ---------- */



.ssu-inv-grip { display: inline-flex; color: #c2ccda; margin-right: 2px; }




/* ---------- a size holds stock and both prices ---------- */
.ssu-inv-sizegrid { grid-template-columns: repeat(auto-fill, minmax(224px, 1fr)); }

.ssu-inv-sizetop { display: flex; align-items: center; gap: 6px; }
.ssu-inv-sizetop label {
  font-size: .78em; font-weight: 800; letter-spacing: .04em; color: var(--ssu-navy);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ssu-inv-sizefields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ssu-inv-sizefield { display: flex; flex-direction: column; gap: 2px; }
.ssu-inv-sizefield em {
  font-style: normal; font-size: .58em; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #9aa6b6;
}
.ssu-inv-sizefield input {
  width: 100%; padding: 5px 6px; text-align: right;
  border: 1.5px solid #dde5f0; border-radius: 6px; font-size: .82em;
  font-variant-numeric: tabular-nums; color: var(--ssu-navy); background: #fff;
}
.ssu-inv-sizefield input:focus { border-color: var(--ssu-navy); outline: none; }

/* ---------- links inside the console -------------------------------------
   Storefront paints links on hover with its own background and colour, which
   looked wrong over the console's cards. Everything here hovers red on nothing. */
body.ssu-admin-page .ssu-admin a,
body.ssu-admin-page .ssu-admin a:hover,
body.ssu-admin-page .ssu-admin a:focus {
  background: transparent;
  box-shadow: none;
  text-decoration: none;
}
body.ssu-admin-page .ssu-admin a:hover { color: var(--ssu-red); }
body.ssu-admin-page .ssu-admin a:focus-visible {
  outline: 2px solid rgba(18, 58, 109, .35); outline-offset: 2px; border-radius: 4px;
}

/* the ones that carry their own look keep it */
body.ssu-admin-page .ssu-admin-nav a:hover { background: #eaf1fb; color: var(--ssu-navy); }
body.ssu-admin-page .ssu-admin-nav a.is-current,
body.ssu-admin-page .ssu-admin-nav a.is-current:hover { background: var(--ssu-navy); color: #fff; }
body.ssu-admin-page .ssu-admin-sublink:hover { background: #eef4fd; color: var(--ssu-navy); }
body.ssu-admin-page .ssu-tab:hover { background: #f3f7fd; color: var(--ssu-navy); }
body.ssu-admin-page .ssu-tab.is-current,
body.ssu-admin-page .ssu-tab.is-current:hover { background: #fff; color: var(--ssu-navy); }
body.ssu-admin-page .ssu-admin-btn.is-primary,
body.ssu-admin-page .ssu-admin-btn.is-primary:hover { color: #fff; }
body.ssu-admin-page .ssu-admin-btn:hover { background: #f7fafd; color: var(--ssu-navy); }
body.ssu-admin-page .ssu-inv-name a:hover { color: var(--ssu-red); }

/* ---------- variations as a table ---------- */
.ssu-var-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: #fff; border: 1px solid var(--ssu-line); border-radius: 10px; overflow: hidden;
  font-size: .92em;
}
.ssu-var-table th {
  padding: 8px 12px; text-align: left; background: #f4f8fd;
  border-bottom: 1px solid var(--ssu-line);
  font-size: .66em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8695a9;
}
.ssu-var-table td { padding: 6px 12px; border-bottom: 1px solid #f2f5fa; vertical-align: middle; }
.ssu-var-table tbody tr:last-child td { border-bottom: 0; }
.ssu-var-table tbody tr { cursor: grab; }
.ssu-var-table tbody tr:hover { background: #fbfcfe; }
.ssu-var-table tbody tr.is-dragging { opacity: .45; }
.ssu-var-table tbody tr.is-over td { box-shadow: inset 0 2px 0 var(--ssu-red); }
.ssu-var-grip { width: 30px; color: #c2ccda; }
.ssu-var-table tbody tr:hover .ssu-var-grip { color: #8695a9; }
.ssu-var-label { font-weight: 800; color: var(--ssu-navy); white-space: nowrap; }
.ssu-var-out {
  margin-left: 8px; padding: 2px 7px; border-radius: 999px; background: #fdeced; color: var(--ssu-red);
  font-size: .62em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.ssu-var-sku {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78em; color: #7d8ca0;
  white-space: nowrap;
}
.ssu-var-table input {
  width: 92px; padding: 6px 8px; text-align: right;
  border: 1.5px solid #dde5f0; border-radius: 6px; background: #fff;
  font-size: .86em; font-variant-numeric: tabular-nums; color: var(--ssu-navy); cursor: text;
}
.ssu-var-table input:focus { border-color: var(--ssu-navy); outline: none; }
.ssu-inv-sizes td { padding: 4px 14px 16px !important; }

/* ---------- a variable product's price cell ---------- */
.ssu-inv-range {
  display: inline-block; font-size: .84em; font-weight: 700; color: var(--ssu-navy);
  font-variant-numeric: tabular-nums;
}
.ssu-inv-range.is-quiet {
  font-size: .72em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #9aa6b6;
}

/* ---------- the variation table sits inside the main table, so it has to be
   told not to inherit any of its parent's cell rules ---------- */
.ssu-inv-table .ssu-inv-sizes > td {
  padding: 4px 14px 16px !important; background: #f8fafd; border-bottom: 1px solid #f0f4f9;
}
.ssu-var-table,
.ssu-var-table thead,
.ssu-var-table tbody,
.ssu-var-table tr,
.ssu-var-table th,
.ssu-var-table td { box-sizing: border-box; }
.ssu-var-table { table-layout: fixed; margin: 0; }
.ssu-var-table col.grip { width: 34px; }
.ssu-var-table th:nth-child(1), .ssu-var-table td:nth-child(1) { width: 34px; padding-left: 10px; padding-right: 0; }
.ssu-var-table th:nth-child(2), .ssu-var-table td:nth-child(2) { width: 22%; }
.ssu-var-table th:nth-child(3), .ssu-var-table td:nth-child(3) { width: 26%; }
.ssu-var-table th:nth-child(4), .ssu-var-table td:nth-child(4),
.ssu-var-table th:nth-child(5), .ssu-var-table td:nth-child(5),
.ssu-var-table th:nth-child(6), .ssu-var-table td:nth-child(6) { width: 16%; }
.ssu-var-table th:nth-child(7), .ssu-var-table td:nth-child(7) { width: 46px; padding-left: 0; }
.ssu-var-table td:nth-child(4) input,
.ssu-var-table td:nth-child(5) input,
.ssu-var-table td:nth-child(6) input { width: 100%; max-width: 110px; }
.ssu-var-table .ssu-var-sku { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssu-var-table th { line-height: 1.2; }

/* ---------- removing takes two taps ---------- */
.ssu-inv-drop.is-armed {
  color: #fff !important; background: var(--ssu-red); border-radius: 6px;
  padding: 5px 9px; letter-spacing: .04em;
}
.ssu-inv-drop.is-armed:hover { background: #c3121f; }

/* ---------- the nested variation table answers only to its own rules ------ */
.ssu-var-table { width: 100%; }
.ssu-var-table > thead > tr > th {
  padding: 8px 12px !important; background: #f4f8fd !important;
  border-bottom: 1px solid var(--ssu-line) !important;
  font-size: .64em !important; line-height: 1.2; vertical-align: middle;
}
.ssu-var-table > tbody > tr > td {
  padding: 7px 12px !important; border-bottom: 1px solid #f2f5fa !important;
  vertical-align: middle !important; background: none !important;
}
.ssu-var-table > tbody > tr:last-child > td { border-bottom: 0 !important; }
.ssu-var-table input {
  width: 100% !important; max-width: 110px; padding: 6px 8px !important; margin: 0 !important;
  height: auto !important; line-height: 1.3 !important;
}
.ssu-var-table .ssu-var-grip { width: 32px !important; padding-right: 0 !important; }
.ssu-var-table .ssu-var-label { white-space: nowrap; }
.ssu-inv-sizes > td { background: #f8fafd !important; }

/* ---------- the variation rows are table rows, whatever came before ------- */
.ssu-var-table tr.ssu-inv-size {
  display: table-row !important;
  flex-direction: initial !important;
  padding: 0 !important; margin: 0 !important;
  border: 0 !important; border-radius: 0 !important; background: none !important;
  gap: 0 !important; align-items: initial !important;
}
.ssu-var-table tr.ssu-inv-size > td { display: table-cell !important; }
.ssu-var-table tr.ssu-inv-size.is-out > td { background: none !important; }
.ssu-var-table tr.ssu-inv-size input {
  width: 100% !important; max-width: 110px; text-align: right; cursor: text;
}

/* ---------- settings fields ---------- */
.ssu-field { margin: 0 0 16px; }
.ssu-field label {
  display: block; margin: 0 0 5px;
  font-size: .72em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8695a9;
}
.ssu-field input {
  width: 100%; max-width: 520px; padding: 10px 12px;
  border: 1.5px solid #dde5f0; border-radius: 8px; background: #fff;
  font-size: .92em; color: var(--ssu-navy);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ssu-field input:focus { border-color: var(--ssu-navy); outline: none; }
.ssu-hint { margin: 6px 0 0 !important; font-size: .78em !important; color: #9aa6b6 !important; }
.ssu-formrow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* ---------- the SKU inside a variation row ---------- */
.ssu-var-table .ssu-inv-lockwrap { display: inline-flex; align-items: center; gap: 6px; width: 100%; }
.ssu-var-table input[data-vfield="sku"] {
  flex: 1 1 auto; max-width: none !important; text-align: left !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78em !important;
}
.ssu-var-table input[data-vfield="sku"]:disabled { background: #f6f8fc; color: #7d8ca0; }
.ssu-inv-lock.is-small { width: 22px; height: 22px; flex: 0 0 auto; }

/* ---------- console hover states, stated plainly --------------------------
   Storefront hovers links by painting a dark background and white text, which
   is unreadable over these cards. Every hoverable thing in the console gets its
   colours set here, with weight, so nothing inherits that. */
body.ssu-admin-page .ssu-admin a,
body.ssu-admin-page .ssu-admin a:link,
body.ssu-admin-page .ssu-admin a:visited { background: none !important; }

body.ssu-admin-page .ssu-admin a:hover,
body.ssu-admin-page .ssu-admin a:focus,
body.ssu-admin-page .ssu-admin a:active {
  background: none !important;
  color: var(--ssu-red) !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

/* the menu keeps its own tints */
body.ssu-admin-page .ssu-admin-nav a:hover,
body.ssu-admin-page .ssu-admin-nav a:focus {
  background: #e8f0fb !important; color: #0f2f5c !important;
}
body.ssu-admin-page .ssu-admin-nav a.is-current,
body.ssu-admin-page .ssu-admin-nav a.is-current:hover,
body.ssu-admin-page .ssu-admin-nav a.is-current:focus {
  background: var(--ssu-navy) !important; color: #fff !important;
}
body.ssu-admin-page .ssu-admin-sublink:hover,
body.ssu-admin-page .ssu-admin-sublink:focus { background: #eef4fd !important; color: #0f2f5c !important; }
body.ssu-admin-page .ssu-admin-sublink.is-current,
body.ssu-admin-page .ssu-admin-sublink.is-current:hover { background: #e4edfb !important; color: #0f2f5c !important; }

body.ssu-admin-page .ssu-tab:hover, body.ssu-admin-page .ssu-tab:focus {
  background: #eef4fd !important; color: #0f2f5c !important;
}
body.ssu-admin-page .ssu-tab.is-current,
body.ssu-admin-page .ssu-tab.is-current:hover { background: #fff !important; color: var(--ssu-navy) !important; }

/* buttons say what they are on hover */
body.ssu-admin-page .ssu-admin-btn:hover,
body.ssu-admin-page .ssu-admin-btn:focus {
  background: #eef4fd !important; color: #0f2f5c !important; border-color: #c9d8ee !important;
}
body.ssu-admin-page .ssu-admin-btn.is-primary,
body.ssu-admin-page .ssu-admin-btn.is-primary:hover,
body.ssu-admin-page .ssu-admin-btn.is-primary:focus {
  background: var(--ssu-red) !important; color: #fff !important; border-color: var(--ssu-red) !important;
}
body.ssu-admin-page .ssu-admin-btn.is-primary:hover { background: #c3121f !important; border-color: #c3121f !important; }

/* the product link in a row */
body.ssu-admin-page .ssu-inv-name a { color: var(--ssu-navy) !important; }
body.ssu-admin-page .ssu-inv-name a:hover { color: var(--ssu-red) !important; }

/* ---------- remove, as a button ---------- */
.ssu-admin-btn.is-danger {
  border-color: #f0cdd1 !important; color: #a3121d !important; background: #fff7f8 !important;
}
.ssu-admin-btn.is-danger:hover,
body.ssu-admin-page .ssu-admin-btn.is-danger:hover {
  background: var(--ssu-red) !important; border-color: var(--ssu-red) !important; color: #fff !important;
}
.ssu-admin-btn.is-danger.is-armed,
body.ssu-admin-page .ssu-admin-btn.is-danger.is-armed {
  background: var(--ssu-red) !important; border-color: var(--ssu-red) !important; color: #fff !important;
}
.ssu-x { font-size: 1.05em; line-height: 1; }

/* ---------- "set per size" is a way in ---------- */
.ssu-inv-persize {
  border: 0; background: none; cursor: pointer; padding: 4px 0;
  font-size: .72em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: #8695a9; border-bottom: 1px dashed #cbd6e6;
}
.ssu-inv-persize:hover { color: var(--ssu-red); border-bottom-color: var(--ssu-red); }

/* ---------- the two controls in a variable row --------------------------
   Both open the sizes, so both should look like something you can press —
   grey-on-white was too faint to read as one. */
body.ssu-admin-page .ssu-inv-expand,
.ssu-inv-expand {
  color: #16305a !important; font-weight: 800 !important; font-size: .8em !important;
  letter-spacing: .02em;
}
body.ssu-admin-page .ssu-inv-expand:hover,
body.ssu-admin-page .ssu-inv-expand:focus,
.ssu-inv-expand:hover { color: var(--ssu-red) !important; }

body.ssu-admin-page .ssu-inv-persize,
.ssu-inv-persize {
  color: #16305a !important; font-weight: 800 !important;
  border-bottom: 1px solid #9fb4d4 !important;
}
body.ssu-admin-page .ssu-inv-persize:hover,
body.ssu-admin-page .ssu-inv-persize:focus,
.ssu-inv-persize:hover {
  color: var(--ssu-red) !important; border-bottom-color: var(--ssu-red) !important;
}

/* ---------- a price that does not hold ---------- */
.ssu-admin input.is-invalid,
.ssu-var-table input.is-invalid {
  border-color: #e01c2b !important; background: #fff6f7 !important; color: #a3121d !important;
}
.ssu-inv-warn {
  display: block; margin-top: 3px;
  font-size: .68em; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  color: #c3121f; white-space: nowrap;
}

/* ---------- the two size controls, hovered ------------------------------
   Storefront styles every <button>, and its `button:hover` (0,1,1) outranks a
   single class — so on hover these got its grey fill and white text back. Both
   halves are named here, in every state, so nothing is left to inherit. */
body.ssu-admin-page .ssu-inv-expand,
body.ssu-admin-page .ssu-inv-expand:hover,
body.ssu-admin-page .ssu-inv-expand:focus,
body.ssu-admin-page .ssu-inv-expand:active,
body.ssu-admin-page .ssu-inv-persize,
body.ssu-admin-page .ssu-inv-persize:hover,
body.ssu-admin-page .ssu-inv-persize:focus,
body.ssu-admin-page .ssu-inv-persize:active {
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  border-radius: 0 !important;
  opacity: 1 !important;
}
body.ssu-admin-page .ssu-inv-expand,
body.ssu-admin-page .ssu-inv-persize { color: #16305a !important; }
body.ssu-admin-page .ssu-inv-expand:hover,
body.ssu-admin-page .ssu-inv-expand:focus,
body.ssu-admin-page .ssu-inv-persize:hover,
body.ssu-admin-page .ssu-inv-persize:focus { color: #c3121f !important; }
body.ssu-admin-page .ssu-inv-persize:hover,
body.ssu-admin-page .ssu-inv-persize:focus { border-bottom-color: #c3121f !important; }

/* and the padlocks, which are plain buttons too */
body.ssu-admin-page .ssu-inv-lock,
body.ssu-admin-page .ssu-inv-lock:hover,
body.ssu-admin-page .ssu-inv-lock:focus {
  background: #f2f5fa !important; color: #16305a !important; box-shadow: none !important; opacity: 1 !important;
}
body.ssu-admin-page .ssu-inv-lock:hover { background: #e3ebf7 !important; }
body.ssu-admin-page .ssu-inv-lock[aria-pressed="false"],
body.ssu-admin-page .ssu-inv-lock[aria-pressed="false"]:hover {
  background: #fff3d6 !important; color: #8a5a00 !important;
}

/* ---------- the list holds its shape while a size is dragged -------------
   With the default auto layout the outer table re-measures every time a size
   row moves, and the product title rewrapped mid-drag. Fixed widths keep the
   columns still; the product column takes whatever is left. */
.ssu-inv-table { table-layout: fixed; }
.ssu-inv-table > thead > tr > th:nth-child(1) { width: 62px; }
.ssu-inv-table > thead > tr > th:nth-child(3) { width: 16%; }
.ssu-inv-table > thead > tr > th:nth-child(4),
.ssu-inv-table > thead > tr > th:nth-child(5) { width: 11%; }
.ssu-inv-table > thead > tr > th:nth-child(6) { width: 9%; }
.ssu-inv-table > thead > tr > th:nth-child(7) { width: 212px; }
.ssu-inv-table > tbody > tr > td { word-break: normal; overflow-wrap: anywhere; }

/* ---------- the variation price is folded into the one at the top ---------- */
.woocommerce div.product form.cart .woocommerce-variation-price,
.woocommerce div.product .woocommerce-variation-price { display: none !important; }

/* the price that remains keeps a steady footprint as it swaps range for size */
.woocommerce div.product .summary p.price { min-height: 1.15em; }

/* ---------- the swapped-in variation price keeps the original size --------
   WooCommerce hands the variation price over wrapped in its own <span class=
   "price">, and the em-based rule on p.price applied a second time — 40px of
   range became 100px of chosen size. The wrapper carries no size of its own. */
.woocommerce div.product .summary p.price span.price,
.woocommerce div.product .summary p.price > span.price {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  /* no box of its own: the sale and the old price stay flex items of p.price,
     so they keep their order — sale first, the struck-through one after it */
  display: contents !important;
}

/* ---------- the short description reads tighter ---------- */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description p,
.woocommerce div.product .woocommerce-product-details__short-description li {
  line-height: 1.42;
}
.woocommerce div.product .woocommerce-product-details__short-description p { margin-bottom: 8px; }
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* ---------- the sku keeps its distance from the description above ----------
   Tightening the short description pulled the sku up against it; the gap the
   line spacing used to provide is now stated on the sku itself. */
.woocommerce div.product .summary .ssu-sku { margin-top: 18px !important; }
.woocommerce div.product .woocommerce-product-details__short-description { margin-bottom: 0; }

/* ---------- the short description steps back --------------------------
   It is supporting copy, not the headline. The imported text is peppered with
   <strong> runs that shouted over the title and price; they now read as light
   emphasis in the same colour rather than a second heading. */
.woocommerce div.product .summary .woocommerce-product-details__short-description {
  font-size: .93em;
  color: #6f7c8d;
}
.woocommerce div.product .summary .woocommerce-product-details__short-description strong,
.woocommerce div.product .summary .woocommerce-product-details__short-description b {
  font-weight: 600;
  color: #5c6a7c;
}
.woocommerce div.product .summary .woocommerce-product-details__short-description a { color: var(--ssu-navy); }

/* ---------- the shared watch list, shown read-only ---------- */
.ssu-inv-table.ssu-watch-table { table-layout: auto; }
.ssu-inv-table.ssu-watch-table > thead > tr > th { width: auto !important; }
.ssu-inv-table.ssu-watch-table > thead > tr > th:first-child { width: 62px !important; }
.ssu-watch-sku {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .82em; color: #6f7c8d;
}
.ssu-watch-price { font-weight: 700; color: var(--ssu-navy); font-variant-numeric: tabular-nums; }
.ssu-watch-stock { font-weight: 800; color: #16305a; font-variant-numeric: tabular-nums; }
.ssu-watch-stock.is-word { font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.ssu-watch-stock.is-out { color: #c3121f; }
.ssu-watch-tag {
  display: inline-block; padding: 2px 8px; border-radius: 999px;
  background: #eef2f8; color: #5c6a7c;
  font-size: .68em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.ssu-watch-tag.is-variable { background: #e7f0fb; color: #1a3f74; }
.ssu-watch-count {
  margin: 14px 2px 0 !important; color: #8695a9;
  font-size: .74em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.ssu-watch-empty {
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
  padding: 28px; border: 1px dashed #d8e2ee; border-radius: 14px; background: #fbfcfe;
}
.ssu-watch-empty[hidden] { display: none !important; }
.ssu-watch-empty p { margin: 0; color: var(--ssu-muted); }

/* ---------- a second action, told apart from the red one ----------------
   It is an <a>, and the console's link rules (which include :link, adding a
   pseudo-class to the count) outrank a plain .is-navy — hence a.ssu-admin-btn
   here, which carries more weight than any of them. */
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:link,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:visited {
  background: #fff !important;
  border: 1.5px solid var(--ssu-navy) !important;
  color: var(--ssu-navy) !important;
}
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:hover,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:focus {
  background: var(--ssu-navy) !important;
  border-color: var(--ssu-navy) !important;
  color: #fff !important;
}

/* ---------- adding a size ---------- */
.ssu-var-new {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 12px 0 2px; padding-top: 12px; border-top: 1px dashed #e2e9f3;
}
.ssu-var-newlabel {
  font-size: .7em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8695a9;
}
.ssu-var-pick {
  padding: 7px 10px; border: 1.5px solid #dde5f0; border-radius: 8px; background: #fff;
  color: var(--ssu-navy); font-size: .82em; font-weight: 700; min-width: 120px;
}
.ssu-var-pick:disabled { background: #f6f8fc; color: #9aa6b6; }
.ssu-var-newstate { font-size: .72em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8695a9; }
.ssu-var-newstate.is-good { color: #1c7c4a; }
.ssu-var-newstate.is-bad { color: #c3121f; }

/* ---------- marketplaces ---------- */
.ssu-inv-table.ssu-market-table { table-layout: auto; margin-bottom: 22px; }
.ssu-inv-table.ssu-market-table > thead > tr > th { width: auto !important; }
.ssu-market-name { font-weight: 800; color: var(--ssu-navy); }
.ssu-market-note { color: #6f7c8d; font-size: .92em; }
.ssu-market-when { color: #8695a9; font-size: .82em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ssu-market-table .ssu-inv-rowaction form { margin: 0; }
.ssu-market-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 18px; }
.ssu-market-add h2 { margin-top: 0; }
.ssu-market-archive { margin-top: 26px; }
.ssu-market-archive > summary {
  cursor: pointer; list-style: none;
  font-size: .74em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8695a9;
}
.ssu-market-archive > summary::-webkit-details-marker { display: none; }
.ssu-market-archive > summary::before { content: "▸ "; }
.ssu-market-archive[open] > summary::before { content: "▾ "; }
.ssu-market-archive > summary:hover { color: var(--ssu-navy); }
.ssu-market-table.is-archived { margin-top: 14px; opacity: .82; }
.ssu-market-table.is-archived .ssu-market-name { color: #6f7c8d; }

.ssu-var-newname {
  padding: 7px 10px; border: 1.5px solid #dde5f0; border-radius: 8px; background: #fff;
  color: var(--ssu-navy); font-size: .82em; font-weight: 700; width: 150px;
}
.ssu-var-newname[hidden] { display: none !important; }
.ssu-var-newname:focus { border-color: var(--ssu-navy); outline: none; }

/* ---------- an active marketplace is edited where it sits ---------- */
.ssu-market-form { display: none; }
.ssu-market-table td input[type="text"],
.ssu-market-table td input[type="url"] {
  width: 100%; max-width: 100%; padding: 7px 10px;
  border: 1.5px solid #e4ebf4; border-radius: 8px; background: #fff;
  font-size: .88em; color: var(--ssu-navy);
}
.ssu-market-table td input:focus { border-color: var(--ssu-navy); outline: none; background: #fff; }
.ssu-market-table .ssu-market-name input { font-weight: 800; }
.ssu-market-table .ssu-market-note input { font-weight: 500; color: #5c6a7c; }
.ssu-market-table td:nth-child(2) { display: table-cell; }
.ssu-market-table .ssu-market-urlbox { flex: 1 1 auto; min-width: 0; }
.ssu-market-table td:nth-child(2) { white-space: nowrap; }
.ssu-market-table td:nth-child(2) .ssu-market-urlbox { width: calc(100% - 30px); }
.ssu-market-visit {
  display: inline-block; width: 20px; text-align: center; margin-left: 4px;
  color: #8695a9 !important; text-decoration: none !important; font-weight: 800;
}
.ssu-market-visit:hover { color: var(--ssu-red) !important; }
.ssu-market-table .ssu-inv-rowaction { white-space: nowrap; }
.ssu-market-table .ssu-inv-rowaction .ssu-admin-btn + .ssu-admin-btn { margin-left: 6px; }


/* ---------- which marketplace a screen is about -------------------------
   Read as tabs: they sit on a rule that runs the width of the panel, and the
   one you are on breaks that rule and joins the content below it. */
.ssu-tabs.ssu-market-tabs {
  display: flex; align-items: flex-end; gap: 4px; flex-wrap: wrap;
  margin: 4px 0 0; padding: 0;
  border-bottom: 2px solid #dbe4ef;
}
.ssu-tabs.ssu-market-tabs .ssu-tab {
  position: relative; bottom: -2px;
  padding: 11px 20px 12px;
  border: 2px solid transparent; border-bottom: 0;
  border-radius: 10px 10px 0 0;
  background: transparent !important;
  color: #7d8ca0 !important;
  font-size: .76em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none !important;
}
.ssu-tabs.ssu-market-tabs .ssu-tab:hover,
.ssu-tabs.ssu-market-tabs .ssu-tab:focus {
  background: #edf3fa !important; color: var(--ssu-navy) !important;
}
.ssu-tabs.ssu-market-tabs .ssu-tab.is-current,
.ssu-tabs.ssu-market-tabs .ssu-tab.is-current:hover {
  background: #fff !important;
  border-color: #dbe4ef;
  color: var(--ssu-navy) !important;
  box-shadow: 0 -3px 0 var(--ssu-red) inset;
}
/* the panel the current tab belongs to */
.ssu-admin-panel {
  background: #fff;
  border: 2px solid #dbe4ef; border-top: 0; border-radius: 0 0 14px 14px;
  padding: 22px 24px 26px;
  margin-bottom: 26px;
}
.ssu-admin-panel > .ssu-admin-lede:first-child { margin-top: 0; }
.ssu-admin-panel .ssu-inv-table { box-shadow: none; }

/* ---------- buttons that happen to be links -----------------------------
   Same story as the navy one: the console's a:link rules outweigh a lone
   modifier class, so every button-shaped <a> is spelled out here. */
body.ssu-admin-page .ssu-admin a.ssu-admin-btn,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn:link,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn:visited {
  background: #fff !important; color: var(--ssu-navy) !important;
}
body.ssu-admin-page .ssu-admin a.ssu-admin-btn:hover,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn:focus {
  background: #eef4fd !important; color: #0f2f5c !important;
}
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-primary,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-primary:link,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-primary:visited {
  background: var(--ssu-red) !important; border-color: var(--ssu-red) !important; color: #fff !important;
}
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-primary:hover,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-primary:focus {
  background: #c3121f !important; border-color: #c3121f !important; color: #fff !important;
}

/* the outlined second action, restated so it keeps the last word */
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:link,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:visited {
  background: #fff !important; border: 1.5px solid var(--ssu-navy) !important; color: var(--ssu-navy) !important;
}
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:hover,
body.ssu-admin-page .ssu-admin a.ssu-admin-btn.is-navy:focus {
  background: var(--ssu-navy) !important; border-color: var(--ssu-navy) !important; color: #fff !important;
}

/* ---------- deleting one size ---------- */
.ssu-var-bin { text-align: center; }
.ssu-var-del {
  border: 0; background: none; cursor: pointer; padding: 4px 6px; border-radius: 6px;
  color: #b9c4d2; font-size: .9em; line-height: 1;
}
.ssu-var-del:hover, .ssu-var-del:focus {
  background: #fdeaec !important; color: #c3121f !important;
}
.ssu-var-del[disabled] { opacity: .4; cursor: default; }

/* ---------- the yes/no dialog ---------- */
.ssu-modal-box.is-narrow { max-width: 460px; }
.ssu-confirm-body { margin: 0 0 20px !important; color: #5c6a7c; font-size: .95em; line-height: 1.5; }
.ssu-confirm-actions { display: flex; justify-content: flex-end; gap: 10px; }

/* ---------- the console tables, at a readable size ----------------------
   Everything here was sized down from the page's base for density, which had
   gone too far to read comfortably. One step up across the board, headers
   included, with the sizes table lifted to match the list it sits inside. */
body.ssu-admin-page .ssu-inv-table { font-size: 1.02em; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th {
  font-size: .8em; letter-spacing: .09em; color: #75839a;
}
body.ssu-admin-page .ssu-inv-name a { font-size: 1.02em; }
body.ssu-admin-page .ssu-inv-brand { font-size: .78em; }
body.ssu-admin-page .ssu-inv-sku .ssu-inv-input,
body.ssu-admin-page .ssu-watch-sku { font-size: .92em; }
body.ssu-admin-page .ssu-inv-input { font-size: .98em; }
body.ssu-admin-page .ssu-inv-range { font-size: .95em; }
body.ssu-admin-page .ssu-inv-expand { font-size: .88em !important; }
body.ssu-admin-page .ssu-inv-persize { font-size: .8em; }
body.ssu-admin-page .ssu-inv-state { font-size: .78em; }

/* the sizes table inside a row */
body.ssu-admin-page .ssu-var-table { font-size: 1em; }
body.ssu-admin-page .ssu-var-table th { font-size: .78em; letter-spacing: .08em; color: #75839a; }
body.ssu-admin-page .ssu-var-table td { font-size: .95em; }
body.ssu-admin-page .ssu-var-table input { font-size: .95em !important; }
body.ssu-admin-page .ssu-var-table input[data-vfield="sku"] { font-size: .88em !important; }
body.ssu-admin-page .ssu-var-label { font-size: 1.02em; font-weight: 800; }
body.ssu-admin-page .ssu-inv-sizehint { font-size: .76em; }
body.ssu-admin-page .ssu-var-del { font-size: 1.05em; }

/* and the read-only list on the other two screens */
body.ssu-admin-page .ssu-watch-price,
body.ssu-admin-page .ssu-watch-stock { font-size: .98em; }
body.ssu-admin-page .ssu-watch-tag { font-size: .72em; }

@media (max-width: 1100px) {
  body.ssu-admin-page .ssu-inv-table { font-size: .94em; }
}

/* ---------- room for the larger type ----------
   At the old widths the price columns were tight enough to break a heading and
   a range across two lines. */
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(3) { width: 15% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(4) { width: 13.5% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(5) { width: 12% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(6) { width: 10.5% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(7) { width: 196px !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th { white-space: nowrap; }
body.ssu-admin-page .ssu-inv-range { white-space: nowrap; }

/* ---------- the sizes table breathes ----------
   Row after row of inputs at 6px of padding read as one block; at 13px each
   size is its own line, and the eye can follow one across the columns. */
body.ssu-admin-page .ssu-var-table > tbody > tr > td { padding: 13px 12px; }
body.ssu-admin-page .ssu-var-table > thead > tr > th { padding: 10px 12px; }
body.ssu-admin-page .ssu-var-table > tbody > tr > td { border-bottom: 1px solid #eef2f8; }
body.ssu-admin-page .ssu-var-table > tbody > tr:last-child > td { border-bottom: 0; }
body.ssu-admin-page .ssu-var-table input { padding-top: 8px; padding-bottom: 8px; }
body.ssu-admin-page .ssu-inv-sizehint { margin-bottom: 10px; }
body.ssu-admin-page .ssu-inv-table .ssu-inv-sizes > td { padding-top: 16px; padding-bottom: 18px; }

/* ---------- the yes/no dialog, properly dressed -------------------------
   The picker's chrome was built for a tall search panel; a question needs a
   small card, centred, with the two answers where the eye ends up. */
body.ssu-modal-open { overflow: hidden; }

.ssu-modal.ssu-confirm { align-items: center; }
.ssu-modal.ssu-confirm .ssu-modal-veil { background: rgba(10, 24, 45, .55); }
.ssu-modal.ssu-confirm .ssu-modal-box {
  width: min(430px, calc(100vw - 32px));
  margin: 0; padding: 24px 24px 20px;
  max-height: none; overflow: visible; border-radius: 16px;
  box-shadow: 0 24px 60px rgba(9, 22, 42, .32);
}
.ssu-confirm-top { display: flex; align-items: flex-start; gap: 14px; }
.ssu-confirm-mark {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  background: #fdeaec; color: var(--ssu-red);
}
.ssu-confirm-words { min-width: 0; }
.ssu-modal.ssu-confirm h2 {
  margin: 2px 0 6px !important;
  font-family: inherit !important;
  font-size: 1.12em !important; font-weight: 800 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  color: var(--ssu-navy);
}
.ssu-confirm-body {
  margin: 0 !important; color: #6f7c8d; font-size: .95em; line-height: 1.5;
}
.ssu-confirm-actions {
  display: flex; justify-content: flex-end; gap: 10px;
  margin-top: 22px; padding-top: 16px; border-top: 1px solid #eef2f8;
}
.ssu-modal.ssu-confirm .ssu-admin-btn { padding: 9px 16px; }
@media (max-width: 480px) {
  .ssu-confirm-actions { flex-direction: column-reverse; }
  .ssu-confirm-actions .ssu-admin-btn { width: 100%; justify-content: center; }
}

/* ---------- an open sizes panel is plainly a drawer ---------------------
   It shares the list's borders, so where one product's sizes ended and the
   next product began was a guess. The panel now sits on its own tinted band,
   inset from the row, closed off with a rule the width of the table. */
body.ssu-admin-page .ssu-inv-table .ssu-inv-sizes > td {
  background: #eef3f9 !important;
  border-bottom: 3px solid #d7e2ef !important;
  border-top: 1px solid #d7e2ef !important;
  padding: 18px 16px 22px !important;
}
body.ssu-admin-page .ssu-var-table {
  background: #fff;
  border: 1px solid #dde6f1;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(20, 45, 82, .05);
}
body.ssu-admin-page .ssu-var-table > thead > tr > th { background: #f7fafd; }

/* the row a drawer belongs to keeps hold of it */
body.ssu-admin-page .ssu-inv-table > tbody > tr.is-open > td { border-bottom-color: #d7e2ef; }
body.ssu-admin-page .ssu-inv-sizehint { color: #6f7c8d; }
body.ssu-admin-page .ssu-var-new { border-top: 1px dashed #cfdcec; }

/* ---------- a SKU is shown whole -----------------------------------------
   Real SKUs here run to twenty-odd characters (SP0227-095-S-ALADS-GB); at the
   old column width the end of one simply disappeared into the box. */
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(3) { width: 21% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(4) { width: 12.5% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(5) { width: 11% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(6) { width: 9.5% !important; }
body.ssu-admin-page .ssu-inv-table > thead > tr > th:nth-child(7) { width: 190px !important; }

body.ssu-admin-page .ssu-inv-sku .ssu-inv-lockwrap { display: flex; width: 100%; }
body.ssu-admin-page .ssu-inv-sku .ssu-inv-input {
  flex: 1 1 auto; min-width: 0; width: 100%; max-width: none;
  font-size: .86em; letter-spacing: -.01em; padding-left: 9px; padding-right: 9px;
}
body.ssu-admin-page .ssu-inv-lock { flex: 0 0 auto; }

/* and in the sizes drawer, where the column is wider still */
body.ssu-admin-page .ssu-var-table input[data-vfield="sku"] { font-size: .86em !important; }
body.ssu-admin-page .ssu-var-table th:nth-child(3),
body.ssu-admin-page .ssu-var-table td:nth-child(3) { width: 30%; }
body.ssu-admin-page .ssu-var-table th:nth-child(2),
body.ssu-admin-page .ssu-var-table td:nth-child(2) { width: 16%; }

/* ---------- the name opens the sizes, the picture opens the shop ---------- */
body.ssu-admin-page .ssu-inv-pic { display: inline-block; background: none !important; }
body.ssu-admin-page .ssu-inv-pic:hover img { transform: scale(1.04); }
body.ssu-admin-page .ssu-inv-thumb img { transition: transform .15s ease; }

body.ssu-admin-page .ssu-inv-title {
  display: inline-block; border: 0; background: none !important; padding: 0; cursor: pointer;
  text-align: left; font: inherit; font-weight: 700;
  color: var(--ssu-navy) !important; letter-spacing: -.005em;
}
body.ssu-admin-page .ssu-inv-title:hover,
body.ssu-admin-page .ssu-inv-title:focus { color: var(--ssu-red) !important; }
body.ssu-admin-page tr.is-variable .ssu-inv-title::after {
  content: '⌄'; margin-left: 7px; font-size: .9em; color: #b6c1d0; vertical-align: 1px;
  display: inline-block; transition: transform .15s ease;
}
body.ssu-admin-page tr.is-variable .ssu-inv-title[aria-expanded="true"]::after { transform: rotate(180deg); }
body.ssu-admin-page tr.is-variable .ssu-inv-name .ssu-inv-brand { cursor: pointer; }

/* the sale column, matching the regular one */
body.ssu-admin-page .ssu-inv-salerange {
  font-size: .95em; font-weight: 700; letter-spacing: 0; text-transform: none;
  border-bottom: 1px solid #9fb4d4 !important; font-variant-numeric: tabular-nums;
}
body.ssu-admin-page .ssu-inv-salerange.is-quiet {
  font-size: .78em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #9aa6b6 !important;
  border-bottom-color: #dbe3ee !important;
}

/* ---------- editing a product's words ---------- */
body.ssu-admin-page .ssu-watch-editor > td {
  background: #eef3f9 !important;
  border-top: 1px solid #d7e2ef !important;
  border-bottom: 3px solid #d7e2ef !important;
  padding: 20px 16px 22px !important;
}
.ssu-edit { display: flex; flex-direction: column; gap: 16px; }
.ssu-edit-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.ssu-edit-field { display: flex; flex-direction: column; min-width: 0; }
.ssu-edit-field > label {
  margin-bottom: 6px;
  font-size: .72em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #75839a;
}
.ssu-edit-field input[type="text"],
.ssu-edit-field input[type="search"],
.ssu-edit-field textarea {
  width: 100%; padding: 10px 12px;
  border: 1.5px solid #dde5f0; border-radius: 9px; background: #fff;
  font-size: .92em; color: var(--ssu-navy); font-family: inherit; line-height: 1.5;
}
.ssu-edit-field textarea { resize: vertical; min-height: 96px; }
.ssu-edit-field input:focus, .ssu-edit-field textarea:focus { border-color: var(--ssu-navy); outline: none; }
.ssu-edit-title { font-weight: 700; }
.ssu-edit-hint { margin: 6px 0 0 !important; font-size: .74em !important; color: #8695a9 !important; }
.ssu-edit-catfind { margin-bottom: 8px; }
.ssu-edit-cats {
  max-height: 168px; overflow-y: auto;
  border: 1.5px solid #dde5f0; border-radius: 9px; background: #fff; padding: 8px 10px;
}
.ssu-edit-check {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 2px; font-size: .88em; color: #42546b; cursor: pointer;
}
.ssu-edit-check:hover { color: var(--ssu-navy); }
.ssu-edit-check[hidden] { display: none !important; }
.ssu-edit-check input { accent-color: var(--ssu-navy); }
.ssu-edit-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.ssu-edit-state { margin-right: auto; }
.ssu-inv-loading.is-bad { color: #c3121f; }

/* ---------- the category tree ---------- */
.ssu-edit-cats { padding: 8px 10px 10px; }
.ssu-edit-check { align-items: flex-start; gap: 7px; line-height: 1.35; }
.ssu-edit-check[data-depth="0"] { padding-left: 2px; font-weight: 700; color: var(--ssu-navy); }
.ssu-edit-check[data-depth="1"] { padding-left: 20px; }
.ssu-edit-check[data-depth="2"] { padding-left: 38px; }
.ssu-edit-check[data-depth="3"] { padding-left: 56px; }
.ssu-edit-check[data-depth="4"] { padding-left: 74px; }
.ssu-edit-check[data-depth]:not([data-depth="0"]) > span { position: relative; }
.ssu-edit-check[data-depth]:not([data-depth="0"]) > span::before {
  content: '';
  position: absolute; left: -13px; top: .62em;
  width: 7px; height: 1px; background: #c3d0e0;
}
.ssu-edit-check input:checked + span { font-weight: 800; color: var(--ssu-navy); }

/* ---------- the console menu follows you down ----------
   The lists get long; the sections should not scroll out of reach. */
@media (min-width: 861px) {
  body.ssu-admin-page .ssu-admin-side {
    position: sticky; top: 16px;
    align-self: start;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  body.ssu-admin-page .ssu-admin-side::-webkit-scrollbar { width: 8px; }
  body.ssu-admin-page .ssu-admin-side::-webkit-scrollbar-thumb {
    background: #d9e2ee; border-radius: 8px;
  }
}

/* ---------- brand, and tags as chips ---------- */
.ssu-edit-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ssu-edit-brand {
  width: 100%; padding: 10px 12px;
  border: 1.5px solid #dde5f0; border-radius: 9px; background: #fff;
  font-size: .92em; font-weight: 700; color: var(--ssu-navy);
}
.ssu-edit-brand:focus { border-color: var(--ssu-navy); outline: none; }

.ssu-tagbox {
  position: relative;
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  padding: 8px 10px; min-height: 44px;
  border: 1.5px solid #dde5f0; border-radius: 9px; background: #fff;
}
.ssu-tagbox:focus-within { border-color: var(--ssu-navy); }
.ssu-chips { display: contents; }
.ssu-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 6px 4px 10px; border-radius: 999px;
  background: #e9f0fa; color: #1a3f74;
  font-size: .8em; font-weight: 700; line-height: 1.2;
}
.ssu-chip-x {
  border: 0; background: none; cursor: pointer; padding: 0 2px;
  color: #7b93b6; font-size: .95em; line-height: 1; border-radius: 50%;
}
.ssu-chip-x:hover { color: var(--ssu-red) !important; background: none !important; }
.ssu-tag-input {
  flex: 1 1 120px; min-width: 120px;
  border: 0 !important; padding: 4px 2px !important; background: none;
  font-size: .9em; color: var(--ssu-navy);
}
.ssu-tag-input:focus { outline: none; }
.ssu-tag-menu {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30;
  background: #fff; border: 1px solid #dde5f0; border-radius: 10px;
  box-shadow: 0 14px 30px rgba(15, 35, 70, .14);
  max-height: 210px; overflow-y: auto; padding: 4px;
}
.ssu-tag-menu[hidden] { display: none !important; }
.ssu-tag-option {
  display: block; width: 100%; text-align: left;
  border: 0; background: none !important; cursor: pointer;
  padding: 8px 10px; border-radius: 7px;
  font-size: .88em; color: #42546b;
}
.ssu-tag-option:hover, .ssu-tag-option:focus {
  background: #eef4fd !important; color: var(--ssu-navy) !important; outline: none;
}

/* ---------- title and SKU share a line ---------- */
.ssu-edit-head { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; }
@media (max-width: 720px) { .ssu-edit-head { grid-template-columns: 1fr; } }
.ssu-edit-sku {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .86em !important;
}
.ssu-edit-sku.is-invalid { border-color: #e01c2b !important; background: #fff6f7 !important; }

/* ---------- WordPress's editor, made to sit in the console ---------- */
.ssu-edit .wp-editor-wrap { border: 1.5px solid #dde5f0; border-radius: 9px; overflow: hidden; background: #fff; }
.ssu-edit .wp-editor-tools { background: #f7fafd; padding: 6px 6px 0; margin: 0; border-bottom: 1px solid #e6edf6; }
.ssu-edit .wp-editor-tabs { float: right; }
.ssu-edit .wp-switch-editor {
  border: 1px solid #dde5f0 !important; border-bottom: 0 !important; background: #fff !important;
  border-radius: 6px 6px 0 0 !important; color: #6f7c8d !important;
  font-size: 11px !important; font-weight: 700 !important;
}
.ssu-edit .wp-editor-container { border: 0 !important; }
.ssu-edit .mce-panel { border-color: #e6edf6 !important; background: #fff !important; }
.ssu-edit .mce-toolbar .mce-btn button { color: #42546b !important; }
.ssu-edit .wp-editor-area {
  border: 0 !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px;
}
.ssu-edit .quicktags-toolbar { background: #f7fafd; border-bottom: 1px solid #e6edf6; }

/* ---------- the product editor as a dialog ---------- */
.ssu-modal.ssu-editmodal .ssu-modal-box {
  width: min(1040px, calc(100vw - 32px));
  margin-top: 5vh; max-height: 88vh;
}
.ssu-modal.ssu-editmodal .ssu-modal-head { padding: 16px 22px 14px; }
.ssu-modal.ssu-editmodal .ssu-modal-head h2 {
  font-family: inherit !important; font-size: 1.05em !important; font-weight: 800 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ssu-edit-body { overflow-y: auto; padding: 20px 22px 22px; background: #f7fafd; }
.ssu-edit-body > .ssu-edit { gap: 18px; }
.ssu-edit-actions {
  position: sticky; bottom: -22px;
  margin: 4px -22px -22px; padding: 14px 22px;
  background: #fff; border-top: 1px solid #e6edf6;
}
.ssu-editmodal .ssu-inv-loading { display: block; padding: 40px 0; text-align: center; color: #8695a9; }

/* ---------- the SKU field, locked ---------- */
.ssu-edit-skufield .ssu-inv-lockwrap { display: flex; align-items: center; gap: 8px; }
.ssu-edit-skufield .ssu-edit-sku { flex: 1 1 auto; min-width: 0; }
.ssu-edit-skufield .ssu-edit-sku:disabled { background: #f4f7fb; color: #7d8ca0; }
.ssu-edit-skufield .ssu-inv-lock { flex: 0 0 auto; }

/* ---------- the editor's shape -----------------------------------------
   Title, SKU and brand on one line; tags across; then the copy on the left
   with the category tree standing beside both boxes. */
.ssu-edit-head { grid-template-columns: minmax(0, 1fr) 220px 220px; }
@media (max-width: 900px) { .ssu-edit-head { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .ssu-edit-head { grid-template-columns: 1fr; } }

.ssu-edit > .ssu-edit-two:last-of-type {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  grid-template-rows: auto auto;
  align-items: start;
}
.ssu-edit > .ssu-edit-two:last-of-type > .ssu-edit-field:first-child { grid-column: 1; grid-row: 1; }
.ssu-edit > .ssu-edit-two:last-of-type > .ssu-edit-field:nth-child(2) { grid-column: 1; grid-row: 2; }
.ssu-edit > .ssu-edit-two:last-of-type > .ssu-edit-stack { grid-column: 2; grid-row: 1 / span 2; }
@media (max-width: 900px) {
  .ssu-edit > .ssu-edit-two:last-of-type { grid-template-columns: 1fr; }
  .ssu-edit > .ssu-edit-two:last-of-type > * { grid-column: 1 !important; grid-row: auto !important; }
}
.ssu-edit-stack .ssu-edit-cats { max-height: 320px; }

/* ---------- brands, with their marks ---------- */
.ssu-brandpick { position: relative; }
.ssu-brand-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  width: 100%; padding: 8px 10px;
  border: 1.5px solid #dde5f0 !important; border-radius: 9px; background: #fff !important;
  color: var(--ssu-navy) !important; cursor: pointer; font: inherit; font-weight: 700;
}
.ssu-brand-toggle:hover { border-color: #c9d8ee !important; }
.ssu-brand-caret { flex: 0 0 auto; color: #9aa6b6; }
.ssu-brand-face { display: inline-flex; align-items: center; gap: 9px; min-width: 0; font-size: .92em; }
.ssu-brand-face img { width: 34px; height: 20px; object-fit: contain; display: block; }
.ssu-brand-blank { width: 34px; height: 20px; border-radius: 4px; background: #eef2f8; display: block; }
.ssu-brand-none { font-size: .88em; font-weight: 700; color: #9aa6b6; }
.ssu-brand-menu {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 40;
  background: #fff; border: 1px solid #dde5f0; border-radius: 10px; padding: 4px;
  box-shadow: 0 16px 34px rgba(15, 35, 70, .16);
  max-height: 280px; overflow-y: auto;
}
.ssu-brand-menu[hidden] { display: none !important; }
.ssu-brand-option {
  display: block; width: 100%; text-align: left;
  border: 0 !important; background: none !important; cursor: pointer;
  padding: 7px 9px; border-radius: 7px;
}
.ssu-brand-option:hover, .ssu-brand-option:focus { background: #eef4fd !important; outline: none; }
.ssu-brand-option[aria-selected="true"] { background: #e7f0fb !important; }

/* ---------- the editor, in the order asked for -------------------------
   name / sku / brand, then tags across, then the two copy boxes stacked with
   the category tree standing beside both. */
.ssu-edit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  grid-template-rows: auto auto;
  gap: 16px;
  align-items: start;
}
.ssu-edit-grid > .ssu-cell-short { grid-column: 1; grid-row: 1; }
.ssu-edit-grid > .ssu-cell-long  { grid-column: 1; grid-row: 2; }
.ssu-edit-grid > .ssu-cell-cats  { grid-column: 2; grid-row: 1 / span 2; align-self: stretch; }
.ssu-cell-cats .ssu-edit-cats { max-height: 420px; }
@media (max-width: 900px) {
  .ssu-edit-grid { grid-template-columns: 1fr; }
  .ssu-edit-grid > * { grid-column: 1 !important; grid-row: auto !important; }
  .ssu-cell-cats .ssu-edit-cats { max-height: 220px; }
}

/* ---------- the brand picker keeps its own colours ----------------------
   Storefront paints every <button> white-on-dark; inside a white menu that
   left the names invisible. Both the face and the options say what they are. */
body.ssu-admin-page .ssu-brand-toggle,
body.ssu-admin-page .ssu-brand-toggle:hover,
body.ssu-admin-page .ssu-brand-toggle:focus,
body.ssu-admin-page .ssu-brand-option,
body.ssu-admin-page .ssu-brand-option:hover,
body.ssu-admin-page .ssu-brand-option:focus {
  color: var(--ssu-navy) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 700 !important;
  text-shadow: none !important;
}
body.ssu-admin-page .ssu-brand-toggle { background: #fff !important; }
body.ssu-admin-page .ssu-brand-option { background: none !important; }
body.ssu-admin-page .ssu-brand-option:hover,
body.ssu-admin-page .ssu-brand-option:focus { background: #eef4fd !important; }
body.ssu-admin-page .ssu-brand-face,
body.ssu-admin-page .ssu-brand-face span { color: var(--ssu-navy) !important; }
body.ssu-admin-page .ssu-brand-none { color: #8695a9 !important; font-weight: 700 !important; }
body.ssu-admin-page .ssu-brand-menu { background: #fff !important; }

/* the tag menu is a button list too */
body.ssu-admin-page .ssu-tag-option { color: #42546b !important; text-transform: none !important; letter-spacing: 0 !important; }
body.ssu-admin-page .ssu-tag-option:hover,
body.ssu-admin-page .ssu-tag-option:focus { color: var(--ssu-navy) !important; }
body.ssu-admin-page .ssu-chip { color: #1a3f74 !important; }

/* ---------- everything under the title row is two columns ----------------
   Tags, then the two copy boxes down the left; the category tree runs the
   full height of the right. */
.ssu-edit-grid { grid-template-rows: auto auto auto; }
.ssu-edit-grid > .ssu-cell-tags  { grid-column: 1; grid-row: 1; }
.ssu-edit-grid > .ssu-cell-short { grid-column: 1; grid-row: 2; }
.ssu-edit-grid > .ssu-cell-long  { grid-column: 1; grid-row: 3; }
.ssu-edit-grid > .ssu-cell-cats  { grid-column: 2; grid-row: 1 / span 3; }
.ssu-cell-cats { display: flex; flex-direction: column; }
.ssu-cell-cats .ssu-edit-cats { flex: 1 1 auto; max-height: none; min-height: 260px; }
@media (max-width: 900px) {
  .ssu-edit-grid > .ssu-cell-cats { grid-row: auto; }
  .ssu-cell-cats .ssu-edit-cats { min-height: 0; max-height: 220px; }
}

/* ---------- the lists can be arranged ---------- */
body.ssu-admin-page .ssu-inv-table > thead > tr > th:first-child { width: 34px !important; padding-right: 0; }
body.ssu-admin-page .ssu-inv-table > tbody > tr > td.ssu-row-grip {
  width: 34px; padding-left: 10px; padding-right: 0;
  color: #cdd7e4; cursor: grab; vertical-align: middle;
}
body.ssu-admin-page .ssu-inv-table > tbody > tr:hover > td.ssu-row-grip { color: #8695a9; }
body.ssu-admin-page .ssu-inv-table > tbody > tr.is-dragging { opacity: .45; }
body.ssu-admin-page .ssu-inv-table > tbody > tr.is-over > td { box-shadow: inset 0 2px 0 var(--ssu-red); }

/* ---------- the right column: categories, then pictures ------------------
   The tree is kept to a readable box rather than running the height of the
   dialog, and the left column no longer stretches to match it. */
.ssu-edit-grid { align-content: start; }
.ssu-edit-grid > .ssu-cell-tags,
.ssu-edit-grid > .ssu-cell-short,
.ssu-edit-grid > .ssu-cell-long { align-self: start; }
.ssu-cell-cats { display: block; }
.ssu-cell-cats .ssu-edit-cats { max-height: 230px !important; min-height: 0 !important; }
.ssu-edit-grid > .ssu-cell-pics { grid-column: 2; grid-row: 2 / span 2; align-self: start; }

.ssu-pics {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  padding: 10px; border: 1.5px solid #dde5f0; border-radius: 9px; background: #fff;
  max-height: 260px; overflow-y: auto;
}
.ssu-pic {
  position: relative; margin: 0; aspect-ratio: 1 / 1;
  border: 1px solid #e6edf6; border-radius: 8px; overflow: hidden; background: #f7fafd;
  cursor: grab;
}
.ssu-pic img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ssu-pic.is-main { border-color: var(--ssu-navy); box-shadow: 0 0 0 1px var(--ssu-navy) inset; }
.ssu-pic figcaption {
  position: absolute; left: 0; bottom: 0; right: 0;
  background: rgba(18, 45, 86, .86); color: #fff;
  font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  text-align: center; padding: 2px 0;
}
.ssu-pic.is-dragging { opacity: .4; }
.ssu-pic-tools { position: absolute; top: 3px; right: 3px; display: flex; gap: 3px; opacity: 0; transition: opacity .12s ease; }
.ssu-pic:hover .ssu-pic-tools { opacity: 1; }
.ssu-pic-tools button {
  border: 0; background: rgba(255, 255, 255, .94) !important; cursor: pointer;
  width: 20px; height: 20px; border-radius: 5px; padding: 0;
  font-size: .68rem; line-height: 1; color: #42546b !important;
  box-shadow: 0 1px 3px rgba(15, 35, 70, .2);
}
.ssu-pic-tools .ssu-pic-drop:hover { color: #fff !important; background: var(--ssu-red) !important; }
.ssu-pic-tools .ssu-pic-main:hover { color: #fff !important; background: var(--ssu-navy) !important; }
.ssu-pics-none { grid-column: 1 / -1; margin: 0; padding: 18px 0; text-align: center; color: #9aa6b6; font-size: .85em; }
.ssu-pics-foot { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.ssu-pic-add { cursor: pointer; }
.ssu-pics-state { font-size: .72em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8695a9; }
.ssu-pics-state.is-good { color: #1c7c4a; }
.ssu-pics-state.is-bad { color: #c3121f; }

/* ---------- the right column stacks: tree first, pictures under it -------
   They were both claiming the same rows, so the panels sat on top of one
   another. */
.ssu-edit-grid > .ssu-cell-cats { grid-column: 2 !important; grid-row: 1 !important; }
.ssu-edit-grid > .ssu-cell-pics { grid-column: 2 !important; grid-row: 2 / span 2 !important; }
@media (max-width: 900px) {
  .ssu-edit-grid > .ssu-cell-cats,
  .ssu-edit-grid > .ssu-cell-pics { grid-column: 1 !important; grid-row: auto !important; }
}

/* the editor's second row of tools sits on the same tinted strip */
.ssu-edit .mce-toolbar-grp { background: #f7fafd !important; border-bottom: 1px solid #e6edf6 !important; }
.ssu-edit .mce-btn i { color: #42546b !important; }
.ssu-edit .mce-btn.mce-active, .ssu-edit .mce-btn:hover { background: #e7eefa !important; }

/* ---------- two columns that each stack on their own --------------------
   Rows were shared before, so a tall category tree left a gap under the tags. */
.ssu-edit-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 330px !important;
  grid-template-rows: auto !important;
  align-items: start;
}
.ssu-edit-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ssu-edit-grid > .ssu-edit-col:first-child { grid-column: 1 !important; grid-row: 1 !important; }
.ssu-edit-grid > .ssu-edit-col:last-child  { grid-column: 2 !important; grid-row: 1 !important; }
.ssu-edit-col > .ssu-edit-field { grid-column: auto !important; grid-row: auto !important; }
@media (max-width: 900px) {
  .ssu-edit-grid { grid-template-columns: 1fr !important; }
  .ssu-edit-grid > .ssu-edit-col { grid-column: 1 !important; grid-row: auto !important; }
}

/* ---------- the link, and whether it follows the title ---------- */
.ssu-edit-slugopt {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 8px;
  font-size: .78em; font-weight: 700; color: #6f7c8d; cursor: pointer;
}
.ssu-edit-slugopt input { accent-color: var(--ssu-navy); }
.ssu-edit-slugline {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .72em !important; color: #9aa6b6 !important; word-break: break-all;
}
.ssu-edit-slugline.is-changing { color: var(--ssu-red) !important; font-weight: 700; }

/* ---------- the left column, without the padding out ---------- */
.ssu-edit-col { gap: 12px; }
.ssu-edit { gap: 14px !important; }
.ssu-edit-field textarea { min-height: 0; }
.ssu-edit .wp-editor-area { min-height: 0; }
.ssu-edit-hint { margin-top: 4px !important; line-height: 1.35; }
.ssu-tagbox { min-height: 40px; padding: 6px 8px; }
.ssu-edit-field > label { margin-bottom: 4px; }


/* ---------- the editor, left in its own shape but dressed up -------------
   WordPress lays this out itself; only the colours, the tab pills and the
   spacing are changed here — nothing that moves a part somewhere else. */
.ssu-edit .wp-editor-wrap {
  border: 1.5px solid #dde5f0; border-radius: 10px; overflow: hidden; background: #fff;
}
.ssu-edit .wp-editor-tools { background: #f4f8fc; border-bottom: 1px solid #e2eaf4; padding: 7px 8px 0; }
.ssu-edit .wp-editor-tabs { padding: 3px; border-radius: 8px; background: #e6edf6; margin-bottom: 4px; }
.ssu-edit .wp-switch-editor {
  margin: 0 !important; padding: 5px 14px !important;
  border: 0 !important; border-radius: 6px !important; background: transparent !important;
  color: #6f7c8d !important; box-shadow: none !important;
  font-size: 10px !important; font-weight: 800 !important; letter-spacing: .1em; text-transform: uppercase;
}
.ssu-edit .wp-switch-editor:hover { color: var(--ssu-navy) !important; }
.ssu-edit .wp-editor-wrap.tmce-active .switch-tmce,
.ssu-edit .wp-editor-wrap.html-active .switch-html {
  background: #fff !important; color: var(--ssu-navy) !important;
  box-shadow: 0 1px 2px rgba(20, 45, 82, .12) !important;
}

.ssu-edit .mce-panel { background: #fff !important; border-color: #eef2f8 !important; }
.ssu-edit .mce-toolbar-grp { border-bottom: 1px solid #eef2f8 !important; padding: 4px 4px !important; }
.ssu-edit .mce-btn { background: none !important; border: 0 !important; border-radius: 7px !important; }
.ssu-edit .mce-btn i, .ssu-edit .mce-ico { color: #56677f !important; }
.ssu-edit .mce-btn:hover, .ssu-edit .mce-btn:focus { background: #eaf1fb !important; }
.ssu-edit .mce-btn:hover i { color: var(--ssu-navy) !important; }
.ssu-edit .mce-btn.mce-active { background: var(--ssu-navy) !important; }
.ssu-edit .mce-btn.mce-active i { color: #fff !important; }
.ssu-edit .mce-btn.mce-disabled i { color: #c3cede !important; }
.ssu-edit .mce-listbox button {
  background: #fff !important; border: 1px solid #dde5f0 !important; border-radius: 7px !important;
  color: var(--ssu-navy) !important; font-size: 11px !important; font-weight: 700 !important;
  text-transform: none !important; letter-spacing: 0 !important;
}
.ssu-edit .wp-editor-area { padding: 12px 14px !important; font-size: 13px; line-height: 1.6; color: var(--ssu-navy); }
.ssu-edit .quicktags-toolbar { background: #f4f8fc !important; border-bottom: 1px solid #eef2f8 !important; padding: 6px !important; }
.ssu-edit .quicktags-toolbar input.button {
  border: 1px solid #dde5f0 !important; border-radius: 6px !important;
  background: #fff !important; color: #56677f !important; font-size: 11px !important;
}

/* a failure in the editor should be impossible to miss */
.ssu-edit-state.is-bad {
  background: #fdeaec; color: #a3121d !important; border-radius: 7px;
  padding: 6px 10px; font-size: .76em; max-width: 60ch;
}

/* ---------- what a save looks like when it lands ---------- */
.ssu-modal.ssu-saved { align-items: center; }
.ssu-modal.ssu-saved .ssu-modal-veil {
  background: rgba(12, 26, 48, .34);
  backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
}
.ssu-saved-card {
  position: relative;
  width: min(430px, calc(100vw - 32px));
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 18px; padding: 22px;
  box-shadow: 0 30px 70px rgba(9, 22, 42, .3);
  text-align: center;
}
.ssu-saved-said {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  margin: 0 0 16px !important;
  font-size: .82em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #1c7c4a;
}
.ssu-saved-tick {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%; background: #e4f5ea; color: #1c7c4a;
}
.ssu-saved-link {
  display: flex; align-items: center; gap: 14px; text-align: left;
  padding: 12px; border-radius: 12px; border: 1px solid #e6edf6;
  background: #fff !important; text-decoration: none !important;
}
.ssu-saved-link:hover { border-color: #c9d8ee; box-shadow: 0 6px 18px rgba(15, 35, 70, .1); }
.ssu-saved-pic {
  flex: 0 0 auto; width: 72px; height: 72px; border-radius: 10px; overflow: hidden;
  background: #f4f7fb; display: flex; align-items: center; justify-content: center;
}
.ssu-saved-pic img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ssu-saved-blank { width: 100%; height: 100%; background: #eef2f8; display: block; }
.ssu-saved-words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ssu-saved-brand {
  display: flex; align-items: center; gap: 7px;
  font-size: .68em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8695a9 !important;
}
.ssu-saved-brand img { width: 26px; height: 15px; object-fit: contain; display: block; }
.ssu-saved-brand:empty { display: none; }
.ssu-saved-title { font-size: .98em; font-weight: 800; color: var(--ssu-navy) !important; line-height: 1.25; }
.ssu-saved-open { font-size: .72em; font-weight: 700; color: var(--ssu-red) !important; margin-top: 2px; }
.ssu-saved-actions { display: flex; justify-content: center; margin-top: 16px; }

/* ---------- a question always sits above what it is asking about ---------
   Every dialog shared z-index 9999, and the confirm markup is printed first,
   so the "close without saving?" card was drawn behind the editor it belonged
   to — present, but invisible and unclickable. */
.ssu-modal.ssu-confirm { z-index: 10050 !important; }
.ssu-modal.ssu-saved { z-index: 10010 !important; }

/* ---------- the sizes, inside the product editor ---------- */
.ssu-cell-vars { margin-top: 2px; }
.ssu-cell-vars[hidden] { display: none !important; }
.ssu-vars {
  border: 1.5px solid #dde5f0; border-radius: 10px; background: #fff;
  padding: 10px 12px 12px; max-height: 300px; overflow-y: auto;
}
.ssu-vars-table { width: 100%; table-layout: fixed; }
.ssu-vars-table th:nth-child(1), .ssu-vars-table td:nth-child(1) { width: 30px; }
.ssu-vars-table th:nth-child(2), .ssu-vars-table td:nth-child(2) { width: 16%; }
.ssu-vars-table th:nth-child(3), .ssu-vars-table td:nth-child(3) { width: 30%; }
.ssu-vars-table th:nth-child(7), .ssu-vars-table td:nth-child(7) { width: 40px; }
.ssu-vars-table input { width: 100%; }
.ssu-vars-none { margin: 6px 2px; color: #9aa6b6; font-size: .86em; }

/* ---------- a SKU stays on one line ---------- */
body.ssu-admin-page .ssu-watch-table .ssu-watch-sku {
  white-space: nowrap; overflow: visible; word-break: normal; overflow-wrap: normal;
}
body.ssu-admin-page .ssu-watch-table > thead > tr > th:nth-child(4) { width: 1%; white-space: nowrap; }
body.ssu-admin-page .ssu-watch-table > tbody > tr > td { word-break: normal; overflow-wrap: normal; }
body.ssu-admin-page .ssu-watch-table .ssu-inv-name { word-break: normal; }

/* ---------- the sizes panel matches the inventory one ---------- */
.ssu-vars-table .ssu-inv-lockwrap { display: flex; align-items: center; gap: 6px; width: 100%; }
.ssu-vars-table input[data-vfield="sku"] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .84em !important;
}
.ssu-vars-table input[data-vfield="sku"]:disabled { background: #f6f8fc; color: #7d8ca0; }
.ssu-vars .ssu-var-new { margin-top: 10px; }
.ssu-vars .ssu-var-newname { width: 140px; }

/* ---------- apparel wears the footwear panel's layout ---------------------
   The same five-column shape, dividers and brand marks; only the class that
   carries it differs, so those rules are repeated here for it. */
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; gap: 9px;
}
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; justify-content: flex-start !important; gap: 10px;
}
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr 1.15fr .8fr .95fr;
  grid-auto-rows: min-content;
  align-items: start;
  gap: 0 !important;
  padding: 20px 26px 22px !important;
  border-radius: 0 0 12px 12px;
}
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li {
  width: auto !important; padding: 2px 22px !important; margin: 0 !important;
  border-right: 1px solid #eef2f8;
}
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li:first-child { padding-left: 4px !important; }
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li:last-child { border-right: 0; padding-right: 4px !important; }
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a {
  display: block !important; pointer-events: none;
  margin: 0 0 10px !important; padding: 0 0 7px !important;
  font-size: .64em; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
  color: #8695a9 !important;
  border-bottom: 1px solid #e6ecf5;
}
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a::before { content: none !important; }
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu {
  display: block !important; position: static !important; min-width: 0 !important;
  padding: 0 !important; margin: 0 !important; background: none !important;
  border: 0 !important; box-shadow: none !important;
}
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li { margin: 0 !important; }
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li a {
  display: flex !important; align-items: center; gap: 9px;
  padding: 5px 0 !important; border: 0 !important;
  font-size: .88em !important; font-weight: 600; line-height: 1.3;
  letter-spacing: 0; text-transform: none;
  color: #3f5169 !important;
  background: none !important;
  transition: color .14s ease, transform .14s ease;
}
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li a:hover {
  color: var(--ssu-red) !important; transform: translateX(3px);
}
.main-navigation ul.menu > li.mega-apparel ul.sub-menu ul.sub-menu li:first-child a {
  font-weight: 800; color: var(--ssu-navy) !important;
}
@media (max-width: 1180px) {
  .main-navigation ul.menu > li.mega-apparel > ul.sub-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 0 !important;
  }
  .main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li:nth-child(3n) { border-right: 0; }
}

/* ---------- the mega columns stand the same height ----------------------
   Sized to their own contents they left the dividers stopping short and the
   panel looking ragged. */
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu,
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu {
  grid-auto-rows: 1fr !important;
  align-items: stretch !important;
}
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li,
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li {
  display: flex !important; flex-direction: column;
}

/* ---------- a product, faintly, in the corner of each column -------------
   Bottom-left of its own column, well under the links, fading out at the foot.
   Multiplied into the panel so the white studio backdrop the photos carry
   disappears instead of showing as a pale box. */
#menu-primary > li.mega-apparel > ul.sub-menu > li,
#menu-primary > li.mega-footwear > ul.sub-menu > li { position: relative; overflow: hidden; }

#menu-primary > li.mega-apparel > ul.sub-menu > li::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li::after {
  content: '';
  position: absolute; left: 18px; bottom: 0;
  width: 132px; height: 132px;
  background-image: var(--face, none);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: contain;
  opacity: .11;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 46%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0, #000 46%, transparent 100%);
  pointer-events: none; z-index: 0;
  transition: opacity .7s ease;
}
#menu-primary > li.mega-apparel > ul.sub-menu > li:first-child::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:first-child::after { left: 4px; }
#menu-primary > li.mega-apparel > ul.sub-menu > li:hover::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:hover::after { opacity: .17; }
#menu-primary > li.mega-apparel > ul.sub-menu > li.is-fading::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li.is-fading::after { opacity: 0 !important; }

#menu-primary > li.mega-apparel > ul.sub-menu > li > a,
#menu-primary > li.mega-apparel > ul.sub-menu > li > ul,
#menu-primary > li.mega-footwear > ul.sub-menu > li > a,
#menu-primary > li.mega-footwear > ul.sub-menu > li > ul { position: relative; z-index: 1; }

@media (max-width: 1300px) {
  #menu-primary > li.mega-apparel > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 96px; height: 96px; opacity: .09; }
}

/* ---------- the product sits in the bottom-right of its column ---------- */
#menu-primary > li.mega-apparel > ul.sub-menu > li::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li::after {
  left: auto; right: 18px;
  background-position: right bottom;
}
#menu-primary > li.mega-apparel > ul.sub-menu > li:first-child::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:first-child::after { left: auto; right: 18px; }
#menu-primary > li.mega-apparel > ul.sub-menu > li:last-child::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:last-child::after { right: 4px; }

/* ---------- the corner product, larger ---------- */
#menu-primary > li.mega-apparel > ul.sub-menu > li::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li::after {
  width: 182px; height: 182px;
  opacity: .13;
}
#menu-primary > li.mega-apparel > ul.sub-menu > li:hover::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:hover::after { opacity: .2; }
@media (max-width: 1300px) {
  #menu-primary > li.mega-apparel > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 130px; height: 130px; opacity: .1; }
}

/* ---------- the corner product runs into the divider ---------------------
   A little smaller, pushed hard against the column's right edge and cut off
   by it, so it reads as part of the panel rather than a picture placed in it. */
#menu-primary > li.mega-apparel > ul.sub-menu > li::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li::after {
  width: 152px; height: 152px;
  left: auto; right: -22px;
  background-position: right bottom;
}
#menu-primary > li.mega-apparel > ul.sub-menu > li:first-child::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:first-child::after { left: auto; right: -22px; }
#menu-primary > li.mega-apparel > ul.sub-menu > li:last-child::after,
#menu-primary > li.mega-footwear > ul.sub-menu > li:last-child::after { right: -4px; }

@media (max-width: 1300px) {
  #menu-primary > li.mega-apparel > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 112px; height: 112px; right: -18px; }
}

/* ---------- the column headings carry the panel ------------------------
   They were the faintest thing in it — grey, tiny, easy to read past. Now they
   are navy, a size up, and sit on a rule that starts with a red mark, so the
   eye finds the four or five sections before it starts reading links. */
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a,
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a {
  font-size: .78em !important;
  font-weight: 800 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--ssu-navy) !important;
  padding: 0 0 10px !important;
  margin: 0 0 12px !important;
  border-bottom: 0 !important;
  background-image: linear-gradient(to right, var(--ssu-red) 0, var(--ssu-red) 28px, #e2e9f4 28px) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 2px !important;
  background-position: left bottom !important;
}
@media (max-width: 1300px) {
  .main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a,
  .main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a { font-size: .72em !important; }
}

/* ---------- a heading is never cut off ----------------------------------
   "Headwear & Accessories" ran past the end of its column, so the headings may
   wrap, and the apparel panel gets column widths that suit its own words. */
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a,
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a {
  white-space: normal !important;
  line-height: 1.3 !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu {
  grid-template-columns: 1fr .78fr .95fr 1.15fr .92fr;
}

/* ---------- the headings take the brand's red --------------------------
   Navy put them in the same voice as the links beneath them; red separates
   the section names from the things you can click. */
.main-navigation ul.menu > li.mega-apparel > ul.sub-menu > li > a,
.main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a {
  color: var(--ssu-red) !important;
  background-image: linear-gradient(to right, var(--ssu-red) 0, var(--ssu-red) 28px, #e2e9f4 28px) !important;
}

/* ---------- equipment wears the same panel ---------- */
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; gap: 9px;
}
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li a:has(.ssu-menu-brandlogo) {
  display: flex !important; align-items: center; justify-content: flex-start !important; gap: 10px;
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr 1.15fr .8fr .95fr;
  grid-auto-rows: min-content;
  align-items: start;
  gap: 0 !important;
  padding: 20px 26px 22px !important;
  border-radius: 0 0 12px 12px;
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li {
  width: auto !important; padding: 2px 22px !important; margin: 0 !important;
  border-right: 1px solid #eef2f8;
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li:first-child { padding-left: 4px !important; }
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li:last-child { border-right: 0; padding-right: 4px !important; }
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li > a {
  display: block !important; pointer-events: none;
  margin: 0 0 10px !important; padding: 0 0 7px !important;
  font-size: .64em; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
  color: #8695a9 !important;
  border-bottom: 1px solid #e6ecf5;
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li > a::before { content: none !important; }
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu {
  display: block !important; position: static !important; min-width: 0 !important;
  padding: 0 !important; margin: 0 !important; background: none !important;
  border: 0 !important; box-shadow: none !important;
}
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li { margin: 0 !important; }
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li a {
  display: flex !important; align-items: center; gap: 9px;
  padding: 5px 0 !important; border: 0 !important;
  font-size: .88em !important; font-weight: 600; line-height: 1.3;
  letter-spacing: 0; text-transform: none;
  color: #3f5169 !important;
  background: none !important;
  transition: color .14s ease, transform .14s ease;
}
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li a:hover {
  color: var(--ssu-red) !important; transform: translateX(3px);
}
.main-navigation ul.menu > li.mega-equipment ul.sub-menu ul.sub-menu li:first-child a {
  font-weight: 800; color: var(--ssu-navy) !important;
}
@media (max-width: 1180px) {
  .main-navigation ul.menu > li.mega-equipment > ul.sub-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 0 !important;
  }
  .main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li:nth-child(3n) { border-right: 0; }
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu {
  grid-auto-rows: 1fr !important;
  align-items: stretch !important;
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li {
  display: flex !important; flex-direction: column;
}
@media (max-width: 1300px) {
  #menu-primary > li.mega-equipment > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 96px; height: 96px; opacity: .09; }
}
@media (max-width: 1300px) {
  #menu-primary > li.mega-equipment > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 130px; height: 130px; opacity: .1; }
}
@media (max-width: 1300px) {
  #menu-primary > li.mega-equipment > ul.sub-menu > li::after,
  #menu-primary > li.mega-footwear > ul.sub-menu > li::after { width: 112px; height: 112px; right: -18px; }
}
@media (max-width: 1300px) {
  .main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li > a,
  .main-navigation ul.menu > li.mega-footwear > ul.sub-menu > li > a { font-size: .72em !important; }
}
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu {
  grid-template-columns: 1fr .78fr .95fr 1.15fr .92fr;
}

/* ---------- every panel's headings read the same ---------- */
.main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li > a {
  font-size: .78em !important;
  font-weight: 800 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--ssu-red) !important;
  white-space: normal !important;
  line-height: 1.3 !important;
  padding: 0 0 10px !important;
  margin: 0 0 12px !important;
  border-bottom: 0 !important;
  background-image: linear-gradient(to right, var(--ssu-red) 0, var(--ssu-red) 28px, #e2e9f4 28px) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 2px !important;
  background-position: left bottom !important;
}
@media (max-width: 1300px) {
  .main-navigation ul.menu > li.mega-equipment > ul.sub-menu > li > a { font-size: .72em !important; }
}

/* ---------- equipment gets its corner product too -----------------------
   The earlier copy missed these: their selectors run across two lines, and the
   copier only recognised a rule when the class and the brace shared one. */
#menu-primary > li.mega-equipment > ul.sub-menu > li { position: relative; overflow: hidden; }
#menu-primary > li.mega-equipment > ul.sub-menu > li::after {
  content: '';
  position: absolute; left: auto; right: -22px; bottom: 0;
  width: 152px; height: 152px;
  background-image: var(--face, none);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
  opacity: .13;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 46%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0, #000 46%, transparent 100%);
  pointer-events: none; z-index: 0;
  transition: opacity .7s ease;
}
#menu-primary > li.mega-equipment > ul.sub-menu > li:last-child::after { right: -4px; }
#menu-primary > li.mega-equipment > ul.sub-menu > li:hover::after { opacity: .2; }
#menu-primary > li.mega-equipment > ul.sub-menu > li.is-fading::after { opacity: 0 !important; }
#menu-primary > li.mega-equipment > ul.sub-menu > li > a,
#menu-primary > li.mega-equipment > ul.sub-menu > li > ul { position: relative; z-index: 1; }
@media (max-width: 1300px) {
  #menu-primary > li.mega-equipment > ul.sub-menu > li::after {
    width: 112px; height: 112px; right: -18px; opacity: .1;
  }
}

/* ---------- the brand filter carries the marks people recognise ---------- */
.ssu-filter-brand { display: flex; align-items: center; gap: 8px; }
.ssu-filter-mark {
  width: 26px; height: 16px; object-fit: contain; flex: 0 0 auto;
  opacity: .9; filter: saturate(.9);
}
.ssu-filter-brand span { flex: 1 1 auto; min-width: 0; }
.ssu-filter-brand:hover .ssu-filter-mark { opacity: 1; filter: none; }

/* ---------- the apply button ---------- */
.ssu-filter-go {
  display: block; width: 100%; margin-top: 4px;
  padding: 11px 14px; border: 0; border-radius: 9px;
  background: var(--ssu-red); color: #fff; cursor: pointer;
  font-size: .74em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.ssu-filter-go:hover { background: #c3121f; }
.ssu-filter-chips .ssu-chip { display: inline-flex; align-items: center; cursor: pointer; }
.ssu-filter-chips .ssu-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.ssu-filter-chips .ssu-chip.is-on,
.ssu-filter-chips .ssu-chip:has(input:checked) {
  background: var(--ssu-navy); color: #fff; border-color: var(--ssu-navy);
}
a.ssu-filter-clear { text-decoration: none !important; }

/* ---------- the filter rail stays where you can reach it ----------------
   It was sticky already, but taller than the window: sticky only bites once
   the whole element has been scrolled past, so the filters crawled up with the
   page and only settled near the foot. Capping it to the window and letting it
   scroll inside keeps the top of the rail in view from the first product to
   the last, with the heading and the apply button always on screen. */
@media (min-width: 901px) {
  .ssu-shopfilters {
    top: 70px;
    max-height: calc(100vh - 86px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-top: 0; padding-bottom: 0;
    scrollbar-width: thin;
  }
  .ssu-shopfilters::-webkit-scrollbar { width: 8px; }
  .ssu-shopfilters::-webkit-scrollbar-thumb { background: #dbe4ef; border-radius: 8px; }
  .ssu-shopfilters::-webkit-scrollbar-thumb:hover { background: #c7d4e6; }

  .ssu-filter-head {
    position: sticky; top: 0; z-index: 2;
    background: #fff; padding: 14px 0 10px;
    border-bottom: 1px solid var(--ssu-line);
  }
  .ssu-filter-go {
    position: sticky; bottom: 0; z-index: 2;
    margin: 12px 0 14px;
  }
  .ssu-filter-form::after {
    content: ''; position: sticky; bottom: 0; display: block; height: 14px;
    background: #fff;
  }
}

/* ---------- the rail scrolls without showing it -------------------------
   It still scrolls inside itself; the bar simply is not drawn. */
@media (min-width: 901px) {
  .ssu-shopfilters {
    scrollbar-width: none;              /* Firefox */
    -ms-overflow-style: none;           /* old Edge */
  }
  .ssu-shopfilters::-webkit-scrollbar { width: 0; height: 0; display: none; }
}

/* ---------- the chips answer to the class, not to :has ------------------
   The live state is set by script the moment a chip is pressed, so the panel
   never waits on the page to show what was chosen. */
.ssu-filter-chips .ssu-chip {
  position: relative;
  border: 1px solid var(--ssu-line); border-radius: 999px;
  padding: 6px 12px; background: #fff; color: var(--ssu-navy);
  font-size: .78em; font-weight: 700; line-height: 1;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.ssu-filter-chips .ssu-chip:hover { border-color: #b9c9e0; background: #f4f8fd; }
.ssu-filter-chips .ssu-chip.is-on {
  background: var(--ssu-navy) !important; border-color: var(--ssu-navy) !important; color: #fff !important;
}

/* while the next page is on its way */
.ssu-filter-form.is-working { opacity: .55; pointer-events: none; }
.ssu-filter-form.is-working .ssu-filter-go { background: #8695a9; }

/* with script running, the button is a fallback rather than the way in */
.ssu-filter-go { margin-top: 6px; }

/* ---------- the sale ticket on a catalog card --------------------------
   Pinned to the top-right of the picture and tilted, the way a shop pins a
   ticket to stock, rather than a pill sitting in the brand row. */
.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product .ssu-card-top .onsale,
.woocommerce ul.products li.product .onsale {
  position: absolute !important;
  top: 12px; right: 12px; left: auto; bottom: auto;
  margin: 0 !important;
  z-index: 5;
  display: inline-flex; align-items: center; justify-content: center;
  height: auto; padding: 6px 13px;
  background: var(--ssu-red); color: #fff;
  border: 0; border-radius: 5px;
  box-shadow: 0 5px 14px rgba(216, 31, 38, .3);
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: .74rem; font-weight: 700; letter-spacing: .12em; line-height: 1;
  text-transform: uppercase; text-indent: 0;
  transform: rotate(9deg) !important;
  transition: transform .15s ease;
  pointer-events: none;
}
.woocommerce ul.products li.product:hover .onsale { transform: rotate(9deg) scale(1.06) !important; }

/* the out-of-stock flag keeps the other corner to itself */
.woocommerce ul.products li.product .ssu-oos-flag { z-index: 5; }

@media (max-width: 700px) {
  .woocommerce ul.products li.product .onsale { top: 8px; right: 8px; padding: 5px 10px; font-size: .66rem; }
}

/* ---------- compact catalog cards ---------------------------------------
   Five to a row instead of four, with everything inside pulled in: less card
   padding, a shorter picture, smaller type and tighter gaps between the brand,
   the name and the price. The card keeps its shape — it just takes less room,
   so more stock is on screen before anyone scrolls. */
.ssu-shopmain .woocommerce ul.products,
.ssu-shopmain ul.products,
.woocommerce ul.products {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
@media (max-width: 1500px) { .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
@media (max-width: 1180px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 820px)  { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

.woocommerce ul.products li.product {
  padding: 9px 9px 12px !important;
  border-radius: 9px;
}

/* the picture takes a little less height */
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product .ssu-thumbswap img {
  aspect-ratio: 1 / 1; object-fit: contain;
}
.woocommerce ul.products li.product .ssu-thumbswap { display: block; }

/* brand, name, price: closer together and a size down */
.woocommerce ul.products li.product .ssu-card-top { margin: 10px 0 1px !important; gap: 7px !important; }
.woocommerce ul.products li.product .ssu-card-brand { font-size: .62em !important; letter-spacing: .1em; }
.woocommerce ul.products li.product .ssu-card-brandlogo { height: 13px !important; max-width: 34px !important; }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: .96em !important;
  line-height: 1.3 !important;
  margin-bottom: 5px !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.woocommerce ul.products li.product .price {
  font-size: 1em !important;
  margin: 2px 0 0 !important;
}
.woocommerce ul.products li.product .price del { font-size: .74em !important; }

/* the marks scale with the smaller card */
.woocommerce ul.products li.product .onsale { top: 8px; right: 8px; padding: 5px 10px; font-size: .64rem; }
.woocommerce ul.products li.product .ssu-oos-flag { font-size: .58rem; padding: 4px 8px; }

/* ---------- hover actions on a card: wishlist + quick preview ---------- */
.woocommerce ul.products li.product { overflow: hidden; }
.ssu-card-actions {
  position: absolute; top: 44px; right: 8px; z-index: 6;
  display: flex; flex-direction: column; gap: 6px;
  opacity: 0; transform: translateX(6px);
  transition: opacity .15s ease, transform .15s ease;
  pointer-events: none;
}
.woocommerce ul.products li.product:hover .ssu-card-actions,
.woocommerce ul.products li.product:focus-within .ssu-card-actions {
  opacity: 1; transform: none; pointer-events: auto;
}
@media (hover: none) {
  .ssu-card-actions { opacity: 1; transform: none; pointer-events: auto; }
}
.ssu-cardbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; min-height: 0; min-width: 0; border-radius: 50%;
  border: 1px solid var(--ssu-line); background: #fff; color: var(--ssu-navy);
  cursor: pointer; padding: 0; margin: 0; gap: 0; flex: none;
  font-size: 1em; font-weight: 400; letter-spacing: normal; text-transform: none;
  box-shadow: 0 2px 6px rgba(18, 58, 109, .12);
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ssu-cardbtn:hover { border-color: var(--ssu-navy); background: var(--ssu-navy); color: #fff; }
.ssu-cardbtn.ssu-wishlist.is-on { color: var(--ssu-red); border-color: var(--ssu-red); }
.ssu-cardbtn.ssu-wishlist.is-on:hover { background: var(--ssu-red); color: #fff; }

/* ---------- quick preview modal ---------- */
.ssu-qv-backdrop {
  position: fixed; inset: 0; z-index: 2000; display: flex;
  align-items: center; justify-content: center; padding: 24px;
  background: rgba(11, 20, 32, .55);
  opacity: 0; visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
}
.ssu-qv-backdrop.is-open { opacity: 1; visibility: visible; }
body.ssu-qv-lock { overflow: hidden; }

.ssu-qv-box {
  position: relative; background: #fff; border-radius: 14px;
  max-width: 900px; width: 100%; max-height: 88vh; overflow: auto;
  box-shadow: 0 30px 60px rgba(11, 20, 32, .3);
  transform: translateY(10px) scale(.98);
  transition: transform .2s ease;
}
.ssu-qv-backdrop.is-open .ssu-qv-box { transform: none; }

.ssu-qv-close {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--ssu-line);
  background: #fff; color: var(--ssu-navy); font-size: 20px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.ssu-qv-close:hover { border-color: var(--ssu-navy); background: var(--ssu-navy); color: #fff; }

.ssu-qv-body { display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 720px) { .ssu-qv-body { grid-template-columns: 1fr; } }

.ssu-qv-media { background: #f7f9fc; padding: 28px; }
.ssu-qv-mainimg { aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; }
.ssu-qv-mainimg img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ssu-qv-thumbs { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.ssu-qv-thumb {
  width: 52px; height: 52px; border-radius: 8px; border: 1px solid var(--ssu-line);
  background: #fff; padding: 4px; cursor: pointer;
}
.ssu-qv-thumb img { width: 100%; height: 100%; object-fit: contain; }
.ssu-qv-thumb.is-active { border-color: var(--ssu-navy); box-shadow: 0 0 0 1px var(--ssu-navy); }

.ssu-qv-info { padding: 32px 32px 32px 24px; }
@media (max-width: 720px) { .ssu-qv-info { padding: 24px; } }
.ssu-qv-brand {
  font-size: .78em; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ssu-muted); margin-bottom: 6px;
}
.ssu-qv-title { font-size: 1.3em; line-height: 1.3; margin: 0 0 10px; }
.ssu-qv-price { font-size: 1.15em; font-weight: 700; color: var(--ssu-navy); margin-bottom: 8px; }
.ssu-qv-price del { color: var(--ssu-muted); font-weight: 400; }
.ssu-qv-price ins { color: var(--ssu-red); text-decoration: none; }
.ssu-qv-stock { font-size: .82em; font-weight: 700; color: var(--ssu-pitch); margin-bottom: 14px; }
.ssu-qv-stock.is-out { color: var(--ssu-red); }
.ssu-qv-excerpt { font-size: .92em; color: var(--ssu-muted); line-height: 1.5; margin-bottom: 20px; }
.ssu-qv-actions { margin-bottom: 14px; }
.ssu-qv-actions .button, .ssu-qv-addbtn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 24px; border-radius: 8px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; font-size: .82em; text-decoration: none;
  background: var(--ssu-navy); color: #fff; border: 1px solid var(--ssu-navy); cursor: pointer;
}
.ssu-qv-actions .button:hover, .ssu-qv-addbtn:hover { background: var(--ssu-navy-dark); border-color: var(--ssu-navy-dark); }
.ssu-qv-addbtn.is-added { background: var(--ssu-pitch); border-color: var(--ssu-pitch); }
.ssu-qv-oos { font-weight: 700; color: var(--ssu-red); }
.ssu-qv-full { display: inline-block; font-size: .84em; font-weight: 700; color: var(--ssu-navy); text-decoration: underline; }

/* ---------- the tighter card keeps full-size words ----------------------
   The padding was the thing worth saving, not the reading. Name, price and
   brand go back to the sizes they had before the card shrank. */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.1em !important;
  line-height: 1.32 !important;
  font-weight: 700;
  margin-bottom: 6px !important;
}
.woocommerce ul.products li.product .price { font-size: 1.16em !important; }
.woocommerce ul.products li.product .price del { font-size: .62em !important; }
.woocommerce ul.products li.product .ssu-card-brand { font-size: .68em !important; letter-spacing: .12em; }
.woocommerce ul.products li.product .ssu-card-brandlogo { height: 15px !important; max-width: 40px !important; }

/* ---------- the price leads the card ---------- */
.woocommerce ul.products li.product .price {
  font-size: 1.42em !important;
  font-weight: 800;
  line-height: 1.1;
  margin-top: 4px !important;
  letter-spacing: -.01em;
}
.woocommerce ul.products li.product .price ins { font-weight: 800; }
.woocommerce ul.products li.product .price del { font-size: .56em !important; }

/* ---------- the square applies to the product shot, not the brand mark ---
   The compact rule squared every image inside the card, brand logos included,
   which is why they stopped being cropped to their own shape. */
.woocommerce ul.products li.product .ssu-card-brandlogo,
.woocommerce ul.products li.product .ssu-card-brand img {
  aspect-ratio: auto !important;
  width: auto !important;
  height: 15px !important;
  max-width: 40px !important;
  object-fit: cover !important;
  object-position: center;
  display: block;
}
.woocommerce ul.products li.product .wp-post-image,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product .ssu-thumbswap img {
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  width: 100%;
}

/* ---------- room between the cards --------------------------------------
   The cards themselves stay tight; it is the space around them that grows, so
   each one reads as its own thing rather than part of a block. */
.ssu-shopmain .woocommerce ul.products,
.ssu-shopmain ul.products,
.woocommerce ul.products {
  gap: 26px 22px !important;
}
@media (max-width: 1180px) { .woocommerce ul.products { gap: 22px 18px !important; } }
@media (max-width: 820px)  { .woocommerce ul.products { gap: 18px 14px !important; } }

/* ---------- the mark sits tight to its own edges ---------- */
.woocommerce ul.products li.product .ssu-card-brandlogo,
.woocommerce ul.products li.product .ssu-card-brand img {
  height: 14px !important; width: auto !important; max-width: 44px !important;
  object-fit: contain !important;
}

/* ---------- a larger product shot on the card ---------------------------
   The picture fills the card's width and a little more height, and the shot
   inside it is nudged up in scale so the garment reads at a glance. */
.woocommerce ul.products li.product .wp-post-image,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product .ssu-thumbswap img {
  aspect-ratio: 1 / 1.06 !important;
  transform: scale(1.06);
  transition: transform .25s ease;
}
.woocommerce ul.products li.product:hover .wp-post-image,
.woocommerce ul.products li.product:hover .ssu-thumbswap img { transform: scale(1.1); }
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .ssu-thumbswap { overflow: hidden; border-radius: 6px; }

/* ---------- a little more room per card ---------------------------------
   Four to a row at every desktop width. */
.ssu-shopmain .woocommerce ul.products,
.ssu-shopmain ul.products,
.woocommerce ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
@media (max-width: 1180px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 820px)  { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

.woocommerce ul.products li.product { padding: 11px 11px 14px !important; }

/* ---------- every card picture is the same square ----------------------
   The shots come in at different shapes, so a tall one pushed the brand, name
   and price of its card below its neighbours. The picture is squared and
   fitted inside that square; the link around it is left alone, because in
   WooCommerce that same anchor also carries the title and the price. */
.woocommerce ul.products li.product .ssu-thumbswap {
  display: block; position: relative;
  width: 100%; aspect-ratio: 1 / 1 !important;
  overflow: hidden; border-radius: 6px; background: #fff;
}
.woocommerce ul.products li.product .ssu-thumbswap img {
  position: absolute; inset: 0;
  width: 100% !important; height: 100% !important;
  object-fit: contain !important;
  margin: 0 !important;
}

/* cards with a single picture and no swap */
.woocommerce ul.products li.product > a img.wp-post-image,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img.ssu-placeholder {
  display: block;
  width: 100% !important; height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  margin: 0 0 0 !important;
  border-radius: 6px;
}

/* the zoom stays, without moving anything around it */
.woocommerce ul.products li.product img.wp-post-image,
.woocommerce ul.products li.product .ssu-thumbswap img {
  transform: scale(1.03);
  transition: transform .25s ease, opacity .25s ease;
}
.woocommerce ul.products li.product:hover img.wp-post-image,
.woocommerce ul.products li.product:hover .ssu-thumbswap img { transform: scale(1.08); }

.woocommerce ul.products li.product .ssu-card-top { margin-top: 11px !important; }

/* ---------- the brand heading matches a category heading ---------- */
.ssu-brandban .ssu-catban-text h1 {
  display: flex; align-items: center; gap: 14px;
}
.ssu-brandban-mark {
  height: .74em; width: auto; max-width: 132px; object-fit: contain; display: block;
}
.woocommerce .woocommerce-products-header { margin: 0; }
body.tax-product_brand .woocommerce-products-header__title,
body.tax-product_brand .woocommerce-products-header { display: none !important; }

/* ---------- a brand heading is typeset like a category heading ----------
   The banner plugin prints those styles only on pages it owns, so the brand
   archive says them for itself: same Oswald caps, same navy, same subtitle. */
.ssu-brandban { margin: 0 0 22px; }
.ssu-brandban .ssu-catban-text { position: static; max-width: 64%; padding: 2px 0; }
.ssu-brandban .ssu-catban-text h1 {
  margin: 0;
  display: flex; align-items: center; gap: 14px;
  color: #123a6d;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: clamp(2.1em, 4vw, 3.4em);
  font-weight: 700; letter-spacing: .02em; line-height: 1.02;
  text-transform: uppercase;
}
.ssu-brandban .ssu-catban-text p {
  margin: 9px 0 0; font-size: 1.02em; line-height: 1.5; color: #5b6879; letter-spacing: .01em;
}
.ssu-brandban-mark { height: .62em; width: auto; max-width: 150px; object-fit: contain; display: block; }
@media (max-width: 900px) { .ssu-brandban .ssu-catban-text { max-width: 100%; } }

/* the same suppression for model and club archives */
body.tax-ssu_model .woocommerce-products-header__title,
body.tax-ssu_model .woocommerce-products-header,
body.tax-ssu_club .woocommerce-products-header__title,
body.tax-ssu_club .woocommerce-products-header { display: none !important; }

/* ---------- every catalog heading starts the same distance down ---------
   A category with a picture banner had room above it; a plain heading sat
   almost against the menu. Both now begin at the same place. */
.woocommerce .ssu-catban,
.woocommerce .ssu-catban.is-textonly,
.woocommerce .ssu-brandban {
  margin-top: 34px !important;
  margin-bottom: 24px !important;
}
@media (max-width: 900px) {
  .woocommerce .ssu-catban,
  .woocommerce .ssu-catban.is-textonly,
  .woocommerce .ssu-brandban { margin-top: 22px !important; margin-bottom: 18px !important; }
}

/* ---------- a picture banner still meets the menu ----------------------
   The 34px belongs to plain headings. A category whose banner carries an image
   is meant to sit flush under the navigation, as it did before. */
.woocommerce .ssu-catban:not(.is-textonly) {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

/* ---------- a brand heading sits closer to the menu ----------------------
   The mark makes the line taller than a plain title, so it needs less room
   above it to look level with the rest. */
.woocommerce .ssu-brandban {
  margin-top: 18px !important;
  margin-bottom: 16px !important;
}
@media (max-width: 900px) {
  .woocommerce .ssu-brandban { margin-top: 14px !important; margin-bottom: 12px !important; }
}

/* ---------- every plain heading keeps the same tighter spacing ----------
   Brands, models, clubs and any category without a picture banner. Categories
   that do carry a picture stay flush with the menu. */
.woocommerce .ssu-catban.is-textonly,
.woocommerce .ssu-brandban {
  margin-top: 18px !important;
  margin-bottom: 16px !important;
}
@media (max-width: 900px) {
  .woocommerce .ssu-catban.is-textonly,
  .woocommerce .ssu-brandban { margin-top: 14px !important; margin-bottom: 12px !important; }
}

/* ---------- the brand line takes only the room it needs -----------------
   The mark makes the heading's line box taller than a plain title, so at the
   same margin it read as extra space above. Less margin, a smaller mark. */
.woocommerce .ssu-brandban {
  margin-top: 6px !important;
  margin-bottom: 12px !important;
}
.ssu-brandban .ssu-catban-text h1 { line-height: 1 !important; }
.ssu-brandban-mark { height: .52em; max-width: 120px; }
@media (max-width: 900px) {
  .woocommerce .ssu-brandban { margin-top: 4px !important; margin-bottom: 10px !important; }
}

/* ---------- brand, model and club start where a category starts ---------
   The category banner plugin zeroes the content padding on the pages it owns;
   these archives never got that, which is where their extra 30px above the
   heading came from — not from the heading's own margin. */
body.tax-product_brand #content, body.tax-product_brand .site-content,
body.tax-ssu_model #content,     body.tax-ssu_model .site-content,
body.tax-ssu_club #content,      body.tax-ssu_club .site-content,
body.post-type-archive-product #content, body.post-type-archive-product .site-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
.woocommerce .ssu-brandban { margin-top: 18px !important; margin-bottom: 14px !important; }
.ssu-brandban-mark { height: .56em; max-width: 128px; }

/* ---------- the size boxes share one width ---------- */
.ssu-sizes .ssu-size {
  min-width: var(--ssu-size-w, 58px) !important;
  padding-left: 8px !important; padding-right: 8px !important;
  box-sizing: border-box;
}

/* ---------- the sizes table now carries codes as well as prices ---------- */
body.ssu-admin-page .ssu-var-table th:nth-child(1),
body.ssu-admin-page .ssu-var-table td:nth-child(1) { width: 30px; }
body.ssu-admin-page .ssu-var-table th:nth-child(2),
body.ssu-admin-page .ssu-var-table td:nth-child(2) { width: 11%; }
body.ssu-admin-page .ssu-var-table th:nth-child(3),
body.ssu-admin-page .ssu-var-table td:nth-child(3) { width: 20%; }
body.ssu-admin-page .ssu-var-table th:nth-child(4),
body.ssu-admin-page .ssu-var-table td:nth-child(4) { width: 15%; }
body.ssu-admin-page .ssu-var-table th:nth-child(5),
body.ssu-admin-page .ssu-var-table td:nth-child(5) { width: 15%; }
body.ssu-admin-page .ssu-var-table th:nth-child(6),
body.ssu-admin-page .ssu-var-table td:nth-child(6),
body.ssu-admin-page .ssu-var-table th:nth-child(7),
body.ssu-admin-page .ssu-var-table td:nth-child(7),
body.ssu-admin-page .ssu-var-table th:nth-child(8),
body.ssu-admin-page .ssu-var-table td:nth-child(8) { width: 11%; }
body.ssu-admin-page .ssu-var-table th:nth-child(9),
body.ssu-admin-page .ssu-var-table td:nth-child(9) { width: 40px; }
body.ssu-admin-page .ssu-var-table input[data-vfield="upc"],
body.ssu-admin-page .ssu-var-table input[data-vfield="mpn"] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82em !important;
}

/* ---------- title, SKU, UPC, MPN and brand share the top row ---------- */
.ssu-edit-head { grid-template-columns: minmax(0, 1.5fr) 190px 170px 170px 190px !important; }
@media (max-width: 1300px) { .ssu-edit-head { grid-template-columns: minmax(0, 1fr) 1fr 1fr !important; } }
@media (max-width: 780px)  { .ssu-edit-head { grid-template-columns: 1fr !important; } }
.ssu-edit-upc, .ssu-edit-mpn {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .86em !important;
}

/* ---------- the codes have the row under the title ---------- */
.ssu-edit-head { grid-template-columns: minmax(0, 1fr) 220px 220px !important; }
@media (max-width: 900px) { .ssu-edit-head { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 620px) { .ssu-edit-head { grid-template-columns: 1fr !important; } }

.ssu-edit-coderow {
  display: grid; grid-template-columns: 260px 260px; gap: 16px;
}
@media (max-width: 780px) { .ssu-edit-coderow { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ssu-edit-coderow { grid-template-columns: 1fr; } }

/* ---------- the code row spans the dialog, split evenly ---------- */
.ssu-edit-coderow {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100%;
}
@media (max-width: 520px) { .ssu-edit-coderow { grid-template-columns: 1fr !important; } }

/* ---------- the trail back ---------------------------------------------
   Grey underlined links in a row of slashes read as small print. As a trail of
   quiet steps with chevrons between them — and the current page in navy — it
   says where you are without competing with the product. */
.woocommerce .ssu-crumbs,
.woocommerce-page .ssu-crumbs {
  display: flex; align-items: center; flex-wrap: wrap; gap: 2px;
  margin: 14px 0 18px !important;
  padding: 0 !important;
  font-size: .78em !important;
  color: #8695a9;
}
.woocommerce .ssu-crumbs a {
  display: inline-flex; align-items: center;
  padding: 4px 9px; border-radius: 999px;
  color: #6f7c8d !important;
  font-weight: 600; text-decoration: none !important;
  transition: background .14s ease, color .14s ease;
}
.woocommerce .ssu-crumbs a:hover,
.woocommerce .ssu-crumbs a:focus-visible {
  background: #eef3fa; color: var(--ssu-navy) !important;
}
.ssu-crumb-sep {
  display: inline-flex; align-items: center;
  color: #c3cede; flex: 0 0 auto;
}
.ssu-crumb-here {
  display: inline-flex; align-items: center;
  padding: 4px 10px; border-radius: 999px;
  background: #eef3fa; color: var(--ssu-navy);
  font-weight: 800; letter-spacing: -.005em;
  max-width: min(52ch, 100%);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@media (max-width: 700px) {
  .woocommerce .ssu-crumbs { font-size: .74em !important; margin: 10px 0 14px !important; }
  .ssu-crumb-here { max-width: 24ch; }
}

/* ---------- the main picture keeps a margin ----------------------------
   Trimming takes roughly 600px of studio white off the sides, so the garment
   ends up filling its frame edge to edge and reads as cropped. A little
   padding inside the frame gives it room without touching the stored file. */
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .wp-post-image {
  padding: 4.5% !important;
  box-sizing: border-box;
}
.woocommerce-product-gallery .flex-control-thumbs img { padding: 6% !important; box-sizing: border-box; }

/* ---------- the trail takes one line, and only that ---------------------
   The pills gave it the height of a toolbar; as plain words with chevrons it
   is a line of type again, tight to the menu above and the product below. */
.woocommerce .ssu-crumbs,
.woocommerce-page .ssu-crumbs {
  margin: 10px 0 12px !important;
  gap: 0 !important;
  line-height: 1.2 !important;
  font-size: .76em !important;
}
.woocommerce .ssu-crumbs a {
  padding: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: #7d8ca0 !important;
  font-weight: 600;
}
.woocommerce .ssu-crumbs a:hover,
.woocommerce .ssu-crumbs a:focus-visible {
  background: none !important;
  color: var(--ssu-red) !important;
  text-decoration: none !important;
}
.ssu-crumb-sep { margin: 0 7px; color: #cbd5e3; }
.ssu-crumb-here {
  padding: 0 !important;
  background: none !important;
  color: var(--ssu-navy) !important;
  font-weight: 700;
}
@media (max-width: 700px) {
  .woocommerce .ssu-crumbs { margin: 8px 0 10px !important; font-size: .72em !important; }
  .ssu-crumb-sep { margin: 0 5px; }
}

/* ---------- the picture is not cropped by us ---------------------------
   Trimming only removes the flat studio background around the garment; where
   a photo arrived already cut, that is the file itself. The frame keeps a
   small margin so nothing sits against the edge. */
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .wp-post-image {
  padding: 3% !important;
  object-fit: contain !important;
}

/* ---------- youth gear, marked ---------- */
.ssu-youth {
  display: inline-flex; align-items: center;
  padding: 3px 8px; border-radius: 999px;
  background: #e7f0fb; color: #1a3f74;
  font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  line-height: 1; white-space: nowrap;
}
.woocommerce ul.products li.product .ssu-youth { margin-left: 6px; font-size: .58rem; padding: 3px 7px; }
.ssu-single-top .ssu-youth { margin-left: 10px; font-size: .68rem; padding: 4px 10px; }

/* ---------- menu, trail, product: no dead space between them ---------- */
body.single-product #content,
body.single-product .site-content { padding-top: 0 !important; margin-top: 0 !important; }
body.single-product .woocommerce .ssu-crumbs,
body.single-product .woocommerce-page .ssu-crumbs {
  margin: 6px 0 6px !important;
}
body.single-product div.product,
body.single-product .woocommerce div.product { margin-top: 0 !important; }
body.single-product .woocommerce-product-gallery { margin-top: 0 !important; }
body.single-product div.product .summary { margin-top: 0 !important; }

/* ---------- the youth badge earns its place ----------------------------
   A pale blue pill read as decoration. Solid navy with a yellow dot in front
   of it reads as a fact about the product: this one is cut for a child. */
.ssu-youth {
  gap: 6px;
  padding: 4px 10px 4px 8px !important;
  border-radius: 6px !important;
  background: var(--ssu-navy) !important;
  color: #fff !important;
  font-size: .64rem !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  box-shadow: 0 2px 6px rgba(18, 45, 86, .28);
}
.ssu-youth::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: #ffd233;
  display: inline-block; flex: 0 0 auto;
}

.woocommerce ul.products li.product .ssu-youth {
  margin-left: 6px; font-size: .58rem !important; padding: 3px 8px 3px 7px !important;
}
.ssu-single-top .ssu-youth {
  margin-left: 12px; font-size: .72rem !important; padding: 6px 13px 6px 11px !important;
}
.ssu-single-top .ssu-youth::before { width: 7px; height: 7px; }

/* ---------- the sale seal, stamped on the picture ---------- */
.woocommerce div.product .woocommerce-product-gallery { position: relative; }
.woocommerce div.product .ssu-single-top .onsale { display: none !important; }

.ssu-seal {
  position: absolute; top: 16px; left: 16px; z-index: 6;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 84px; height: 84px; border-radius: 50%;
  background: var(--ssu-red); color: #fff;
  box-shadow: 0 8px 20px rgba(216, 31, 38, .34);
  transform: rotate(-11deg);
  pointer-events: none;
  border: 2px solid rgba(255, 255, 255, .55);
}
.ssu-seal-off {
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 1.42rem; font-weight: 700; line-height: 1; letter-spacing: -.01em;
}
.ssu-seal-word {
  font-style: normal; margin-top: 2px;
  font-size: .58rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
  opacity: .92;
}
@media (max-width: 700px) {
  .ssu-seal { width: 66px; height: 66px; top: 10px; left: 10px; }
  .ssu-seal-off { font-size: 1.1rem; }
  .ssu-seal-word { font-size: .5rem; }
}

/* ---------- youth: yellow ground, navy type ---------- */
.ssu-youth {
  background: #ffd233 !important;
  color: #12305c !important;
  box-shadow: 0 2px 6px rgba(190, 150, 20, .3) !important;
}
.ssu-youth::before { background: #12305c !important; }

/* ---------- the seal: one word, top right, above every picture ---------- */
.ssu-seal {
  left: auto !important; right: 16px !important; top: 16px !important;
  width: 78px !important; height: 78px !important;
  z-index: 8 !important;
}
.ssu-seal b {
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  font-size: 1.02rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  line-height: 1;
}
.ssu-seal .ssu-seal-word { display: none; }
@media (max-width: 700px) {
  .ssu-seal { width: 62px !important; height: 62px !important; right: 10px !important; top: 10px !important; }
  .ssu-seal b { font-size: .82rem; }
}

/* ---------- the seal sits on the picture, not beside it -----------------
   Pinned to the frame's edge it floated in the white margin and read as a
   separate thing. Inset into the frame it lands on the photograph, and it
   leans the other way. */
.ssu-seal {
  top: 5% !important;
  right: 6% !important;
  transform: rotate(12deg) !important;
}
@media (max-width: 700px) { .ssu-seal { top: 4% !important; right: 5% !important; } }

/* ---------- an accordion's contents sit under its heading ---------------
   Panel text started at the same margin as the heading, so an open section
   read as a continuation of the page rather than as the answer to the title
   above it. A step in — matching the chevron's column — makes the structure
   visible without a box or a rule. */
.ssu-acc-inner {
  padding-left: 18px !important;
  padding-right: 8px !important;
  border-left: 2px solid #eef2f8;
  margin-left: 2px;
}
.ssu-acc-item.is-open .ssu-acc-inner { border-left-color: #e2e9f4; }

/* tables inside a panel keep the same left edge as its words */
.ssu-acc-inner table { margin-left: 0; }
.ssu-acc-inner > *:first-child { margin-top: 0; }
.ssu-acc-inner > *:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
  .ssu-acc-inner { padding-left: 13px !important; }
}

/* ---------- the wishlist button has an edge to it ----------------------
   White on white left it almost invisible under the red Add to cart. A faint
   grey ground and a firmer border give it a shape without turning it into a
   second call to action; the red is still the only thing shouting. */
.ssu-wishlist,
.ssu-wishlist:link,
.ssu-wishlist:visited {
  background: #f4f7fb !important;
  border: 1.5px solid #dbe3ee !important;
  color: #42546b !important;
}
.ssu-wishlist:hover,
.ssu-wishlist:focus-visible {
  background: #fdeaec !important;
  border-color: var(--ssu-red) !important;
  color: var(--ssu-red) !important;
}
.ssu-wishlist.is-on,
.ssu-wishlist.is-on:hover {
  background: #fdeaec !important;
  border-color: var(--ssu-red) !important;
  color: var(--ssu-red) !important;
}

/* ---------- quantity: named, and with a ground of its own ---------------
   Same treatment as the wishlist button — a faint grey field so the control
   is visible against the page, with a small label saying what it counts. */
.ssu-qtyfield {
  flex: 0 0 20%; min-width: 130px;
  display: flex; flex-direction: column; gap: 5px;
}
.ssu-qty-label {
  font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: #8695a9;
}
.ssu-qty {
  flex: 1 1 auto !important; min-width: 0 !important;
  background: #f4f7fb !important;
  border-color: #dbe3ee !important;
}
.ssu-qty input.qty { background: none !important; }
.ssu-qty-btn { background: #eaeff7 !important; color: #42546b !important; }
.ssu-qty-btn:hover { background: var(--ssu-navy) !important; color: #fff !important; }

/* the add-to-cart button keeps its footing beside the taller field */
.woocommerce div.product form.cart .single_add_to_cart_button { align-self: flex-end; }
@media (max-width: 520px) { .ssu-qtyfield { flex: 0 0 40%; } }

/* ---------- reviews ------------------------------------------------------
   Storefront hands us a bare stack of labels and boxes, and the star widget
   WooCommerce draws needs an icon font this theme never loads, so the rating
   row came out empty. Everything here is drawn with plain characters instead:
   nothing to load, and it matches the rest of the page. */
#reviews .woocommerce-Reviews-title { display: none; }          /* the accordion says it */

/* stars, written rather than iconed — the grey row is the track, the gold one
   is clipped to the score by WooCommerce's own inline width */
#reviews .star-rating {
  position: relative; display: inline-block; overflow: hidden;
  width: 5.5em; height: 1.15em; line-height: 1.15; font-size: .95em;
  font-family: inherit !important;
}
#reviews .star-rating::before {
  content: "\2605\2605\2605\2605\2605"; letter-spacing: .1em; color: #dde4ef;
  position: absolute; left: 0; top: 0;
}
#reviews .star-rating span {
  position: absolute; left: 0; top: 0; overflow: hidden; padding: 0; height: 100%;
}
#reviews .star-rating span::before {
  content: "\2605\2605\2605\2605\2605"; letter-spacing: .1em; color: #ffc233;
  position: absolute; left: 0; top: 0;
}
#reviews .star-rating span strong { display: none; }

/* nobody has written one yet */
#reviews .woocommerce-noreviews {
  display: block !important; float: none !important;
  margin: 0 0 26px !important; padding: 30px 20px; text-align: center;
  border: 1px dashed #dbe3ee; border-radius: 14px; background: #fbfcfe;
  color: #6c7c92; font-size: .95em; font-weight: 600;
}
/* Storefront positions the ::before of its notice paragraphs absolutely, which
   dropped this star row on top of the sentence. It flows, like normal text. */
#reviews .woocommerce-noreviews::before {
  content: "\2605\2605\2605\2605\2605";
  display: block !important; position: static !important; float: none !important;
  width: 100%; margin: 0 0 10px !important; padding: 0 !important;
  letter-spacing: .2em; font-size: 1.5em; line-height: 1; color: #e4e9f2;
}
#reviews .woocommerce-noreviews::after {
  content: "Be the first to say how it fits and how it holds up.";
  display: block; margin: 6px 0 0; font-size: .84em; font-weight: 500; color: #a3aec0;
}

/* the ones that exist */
#reviews ol.commentlist { margin: 0 0 26px !important; padding: 0 !important; list-style: none; }
#reviews ol.commentlist li.review, #reviews ol.commentlist li.comment {
  margin: 0 0 12px !important; padding: 16px 18px; list-style: none;
  border: 1px solid #e6ecf5; border-radius: 14px; background: #fff;
}
#reviews ol.commentlist li .comment_container { display: flex; gap: 14px; align-items: flex-start; }
#reviews ol.commentlist li img.avatar {
  width: 44px !important; height: 44px; border-radius: 50%; flex: 0 0 44px;
  border: 1px solid #e6ecf5; padding: 0 !important; background: #f4f7fc;
  position: static !important; float: none !important;
}
#reviews ol.commentlist li .comment-text { flex: 1 1 auto; margin: 0 !important; padding: 0 !important; border: 0 !important; }
#reviews .comment-text p.meta {
  margin: 0 0 8px !important; font-size: .82em; color: #90a0b5;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px;
}
#reviews .comment-text p.meta strong {
  color: var(--ssu-navy); font-weight: 800; font-size: 1.05em; letter-spacing: .01em;
}
#reviews .comment-text .description { color: #42546b; line-height: 1.6; }
#reviews .comment-text .description p:last-child { margin-bottom: 0; }
#reviews .comment-text .star-rating { margin: 0 0 6px; }

/* ---------- writing one ---------- */
#reviews #review_form_wrapper { margin: 0; }
#reviews #respond {
  padding: 26px 26px 22px; border: 1px solid #e6ecf5; border-radius: 16px;
  background: linear-gradient(#fff, #fbfcfe);
  box-shadow: 0 1px 2px rgba(15, 47, 92, .04);
}
#reviews .comment-reply-title {
  display: block; margin: 0 0 4px !important; padding: 0 0 12px;
  font-size: 1.02em !important; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ssu-navy);
  border-bottom: 1px solid #eef2f8;
}
#reviews .comment-reply-title small { float: right; font-weight: 600; text-transform: none; letter-spacing: 0; }
#reviews .comment-notes {
  margin: 12px 0 18px !important; font-size: .82em !important; color: #a3aec0 !important;
}
#reviews .comment-form label {
  display: block; margin: 0 0 6px;
  font-size: .72em; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8695a9;
}
#reviews .comment-form .required { color: var(--ssu-red); }
#reviews .comment-form input[type="text"],
#reviews .comment-form input[type="email"],
#reviews .comment-form input[type="url"],
#reviews .comment-form textarea {
  width: 100%; padding: 11px 13px;
  border: 1.5px solid #dde5f0 !important; border-radius: 10px; background: #fff !important;
  font-size: .95em; color: var(--ssu-navy); box-shadow: none !important;
}
#reviews .comment-form textarea { min-height: 130px; resize: vertical; line-height: 1.55; }
#reviews .comment-form input:focus,
#reviews .comment-form textarea:focus {
  border-color: var(--ssu-navy) !important; outline: none;
  box-shadow: 0 0 0 3px rgba(15, 47, 92, .07) !important;
}
#reviews .comment-form p { margin: 0 0 16px !important; }
/* Name and email sit side by side, which leaves a gap this paragraph would
   otherwise slide into and wrap one word per line. It gets the full width. */
#reviews .comment-form-cookies-consent {
  display: flex !important; align-items: flex-start; gap: 9px;
  clear: both; width: 100% !important; float: none !important;
  margin: 2px 0 18px !important;
}
#reviews .comment-form-cookies-consent input[type="checkbox"] {
  flex: 0 0 auto; width: auto !important; margin: 2px 0 0 !important;
}
#reviews .comment-form-cookies-consent label {
  flex: 1 1 auto; display: inline !important; margin: 0 !important;
  text-transform: none; letter-spacing: 0; font-size: .82em; font-weight: 500;
  line-height: 1.5; color: #90a0b5;
}
@media (min-width: 720px) {
  #reviews .comment-form-author,
  #reviews .comment-form-email { display: inline-block; width: calc(50% - 7px); vertical-align: top; }
  #reviews .comment-form-author { margin-right: 10px !important; }
}

/* the rating row we draw ourselves */
#reviews .comment-form-rating { margin-bottom: 18px !important; }
#reviews .comment-form-rating p.stars,
#reviews .comment-form-rating select#rating { display: none !important; }
#reviews .ssu-rate { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ssu-rate-stars { display: inline-flex; gap: 2px; }
.ssu-rate-star {
  border: 0 !important; background: none !important; padding: 0 3px !important; margin: 0 !important;
  font-size: 1.75em; line-height: 1; cursor: pointer; color: #dde4ef !important;
  transition: color .12s ease, transform .12s ease;
}
.ssu-rate-star:hover, .ssu-rate-star:focus { transform: translateY(-1px); outline: none; }
.ssu-rate-star.is-on { color: #ffc233 !important; }
.ssu-rate-star:focus-visible { text-shadow: 0 0 0 rgba(0,0,0,0); outline: 2px solid rgba(15,47,92,.25); border-radius: 4px; }
.ssu-rate-word {
  font-size: .74em; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #8695a9;
}
.ssu-rate.is-missing .ssu-rate-word { color: var(--ssu-red); }
.ssu-rate.is-missing .ssu-rate-star { color: #f3c9ce !important; }

#reviews .form-submit { margin: 4px 0 0 !important; }
#reviews .form-submit input[type="submit"],
#reviews #respond input#submit {
  background: var(--ssu-red) !important; color: #fff !important; border: 0 !important;
  padding: 13px 30px !important; border-radius: 999px !important;
  font-size: .82em !important; font-weight: 800 !important; letter-spacing: .12em; text-transform: uppercase;
  cursor: pointer; box-shadow: 0 2px 8px rgba(216, 20, 34, .18);
}
#reviews .form-submit input[type="submit"]:hover,
#reviews #respond input#submit:hover { background: #c3121f !important; box-shadow: 0 3px 12px rgba(216, 20, 34, .26); }

/* ---------- a sale mark on the suggestion thumbnail, small and tilted like
   the catalogue's own stamp so the two read as the same idea ---------- */
/* a small ribbon, not a pill: a pointed left edge like a price tag, tilted
   the same direction as the stamp over the catalogue cards */
.ssu-sug-sale {
  justify-self: end; align-self: start;
  margin: 1px -3px 0 0;
  background: var(--ssu-red); color: #fff;
  font-size: .6em; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
  padding: 3px 8px 2px 11px; line-height: 1.4;
  clip-path: polygon(8px 0, 100% 0, 100% 100%, 8px 100%, 0 50%);
  transform: rotate(-7deg);
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
}

/* ---------- the mobile menu is a drawer, not an inline accordion ---------- */
@media (max-width: 767px) {
  .ssu-mnav-back {
    position: fixed; inset: 0; z-index: 9998;
    background: rgba(15, 30, 51, .45);
    opacity: 0; transition: opacity .22s ease;
  }
  body.ssu-mnav-open .ssu-mnav-back { opacity: 1; }
  body.ssu-mnav-open { overflow: hidden; }

  /* moved to a direct child of <body> at runtime (see the script below),
     so nothing here can be scoped under .main-navigation any more — that
     was the whole reason for the move: escaping its stacking context */
  body > .handheld-navigation {
    display: block !important;
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 9999;
    width: 100vw; max-width: none;
    background: #fff;
    box-shadow: -6px 0 24px rgba(15, 30, 51, .18);
    transform: translateX(100%);
    transition: transform .26s ease;
    max-height: none !important; overflow-y: auto; overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 18px 0 40px;
  }
  body.ssu-mnav-open > .handheld-navigation { transform: translateX(0); }

  /* no repeated "MENU" label in here — the toggle button already reads as
     one, right beside this panel; a second one just looked like two menus */
  .handheld-navigation { padding-top: 26px; }

  /* Storefront's own arrow glyph sits inside the link's text, so on a label
     long enough to wrap it could break mid-word and strand the glyph on its
     own line. The row already has its own chevron on the right; this one
     was doing nothing but that. */
  .handheld-navigation ul.menu > li.menu-item-has-children > a::after {
    display: none !important; content: none !important;
  }
  .handheld-navigation ul.menu > li.menu-item > a {
    padding-right: 44px !important; overflow-wrap: normal !important; word-break: keep-all !important;
  }
  .handheld-navigation .dropdown-toggle { width: 44px !important; }

  .handheld-navigation ul.menu,
  .handheld-navigation ul.nav-menu {
    display: block !important; flex-wrap: nowrap; width: auto !important; margin: 0;
  }
  .handheld-navigation ul.menu > li.menu-item {
    flex: none !important; border-bottom: 1px solid var(--ssu-line);
  }
  .handheld-navigation ul.menu > li.menu-item > a {
    display: block !important; width: auto; justify-content: flex-start !important;
    padding: 15px 20px !important; margin: 0;
    font-size: .92em !important; font-weight: 700; letter-spacing: .02em;
    color: var(--ssu-navy); text-transform: none; white-space: normal !important;
    text-align: left;
  }
  .handheld-navigation ul.menu > li.menu-item-has-children { position: relative; }
  .handheld-navigation .dropdown-toggle {
    width: 54px; height: 50px;
    display: flex !important; align-items: center; justify-content: center;
  }
  .handheld-navigation .dropdown-toggle::after {
    content: ""; width: 9px; height: 9px;
    border-right: 2px solid #8695a9; border-bottom: 2px solid #8695a9;
    transform: rotate(45deg); transition: transform .2s ease;
  }
  .handheld-navigation .dropdown-toggle.toggled-on::after { transform: rotate(-135deg); }

  /* the desktop mega-panel grid never applies here (it needs :hover), but
     make sure a stray display:grid from elsewhere cannot reach it either */
  .handheld-navigation ul.menu .sub-menu {
    display: block !important; position: static !important; grid-template-columns: none !important;
    background: #f7f9fc; padding: 4px 0 4px 14px !important; margin: 0 !important;
    border: 0 !important; box-shadow: none !important;
  }
  .handheld-navigation ul.menu .sub-menu li { border: 0 !important; width: auto !important; }
  .handheld-navigation ul.menu .sub-menu li a {
    padding: 11px 20px 11px 8px !important; font-size: .86em !important; font-weight: 600 !important;
    color: #42546b; white-space: normal !important;
  }
  .handheld-navigation ul.menu .sub-menu .mega-col-title > a {
    font-weight: 800 !important; color: var(--ssu-navy);
    text-transform: uppercase; font-size: .74em !important; letter-spacing: .08em;
  }

  /* the toggle sits above the drawer and the backdrop, wherever it opens from */
  .main-navigation .menu-toggle { position: relative; z-index: 10000; }
}

/* ---------- the menu toggle, moved in beside the other icon buttons ---------- */
@media (max-width: 767px) {
  /* the drawer itself lives inside this bar (position:fixed, so it still
     renders from the viewport regardless) — display:none on the bar would
     have taken the whole subtree down with it, drawer included. Collapsing
     its own box instead just removes the now-empty strip around it. */
  /* .storefront-primary-navigation has its own position:relative + z-index
     elsewhere in this file, which makes it a stacking context of its own —
     and the drawer inside it, however high its own z-index, never escapes
     that context. It was rendering fully behind the backdrop (a sibling of
     the *body*, outside that context entirely): every tap on a menu item
     was actually landing on the backdrop underneath it, which closes the
     menu. Removing the stacking context here lets the fixed-position drawer
     compare on equal terms with the backdrop, the way position:fixed is
     supposed to. */
  .storefront-primary-navigation {
    height: 0; min-height: 0; padding: 0; margin: 0; border: 0; box-shadow: none;
    overflow: visible; position: static !important; z-index: auto !important;
  }
  .storefront-primary-navigation .col-full { padding: 0; }

  /* the logo, centred in its own row */
  .site-header > .col-full .site-branding { width: 100%; text-align: center; }
  .site-header > .col-full .site-branding .custom-logo-link { display: inline-block; }

  /* menu at the left edge, wishlist/account/cart at the right — one row,
     split, rather than a cluster sitting wherever flex order landed it */
  .ssu-head-row {
    display: flex !important; align-items: center; justify-content: space-between;
    width: 100%; order: 3;
  }
  .site-header .ssu-head-actions { margin: 0 !important; }
}
/* back with wishlist/account/cart, first (leftmost) in that row */
.ssu-menu-btn {
  position: static !important; float: none !important;
  border: 0 !important; box-shadow: none !important; background: none !important;
  max-width: none; padding: 6px 14px !important;
  border-radius: 0 !important; border-right: 1px solid #e3e8ef !important;
  flex-direction: row !important; align-items: center !important; gap: 8px;
  min-width: 0 !important; height: auto !important; width: auto !important;
}
.ssu-menu-btn .ssu-head-label { font-size: 11px !important; }
@media (max-width: 480px) { .ssu-menu-btn .ssu-head-label { display: inline !important; } }
/* the button's own inherited pseudo-lines are not used any more; not scoped
   under .ssu-head-actions since the button now sits outside it */
.ssu-menu-btn::before,
.ssu-menu-btn::after,
.ssu-menu-btn span::before { content: none !important; display: none !important; }
.ssu-menu-btn:hover { background: none !important; color: var(--ssu-red); }
.ssu-menu-icon { display: block; line-height: 0; }
.ssu-menu-bar { transform-origin: 12px 12px; transition: transform .2s ease, opacity .2s ease; }
.ssu-menu-btn.is-open .ssu-menu-bar-1 { transform: translateY(6px) rotate(45deg); }
.ssu-menu-btn.is-open .ssu-menu-bar-2 { opacity: 0; }
.ssu-menu-btn.is-open .ssu-menu-bar-3 { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 480px) { .ssu-head-actions .ssu-menu-btn .ssu-head-label { display: none; } }

/* ---------- footer, centred at phone width ---------- */
@media (max-width: 640px) {
  .ssu-footer-grid { justify-items: center; text-align: center; }
  .ssu-foot-brand { display: flex; flex-direction: column; align-items: center; }
  .ssu-foot-brand p { text-align: center; }
  .ssu-foot-col { width: 100%; }
  .ssu-foot-col h3 { text-align: center; }
  .ssu-foot-col ul { justify-items: center; }
  .ssu-foot-col a { justify-content: center; }
  .ssu-stores-mail { align-items: center; }
  .ssu-stores { justify-items: center; text-align: center; }
  .ssu-store { align-items: center; text-align: center; }
  .ssu-store > * { justify-content: center; }
  .ssu-store-addr { text-align: center; }
  .ssu-footer-bottom,
  .ssu-footer-bottom > * { justify-content: center; text-align: center; }
}

/* the relocated toggle must disappear above the handheld breakpoint no
   matter what class it was given — the desktop header stays exactly as it
   was before any of this */
@media (min-width: 768px) {
  .ssu-menu-btn, .ssu-head-row .menu-toggle { display: none !important; }
  .ssu-head-row { display: contents; }
}

/* Final word on the mega menu's dropdown panels: this file has accumulated a lot of
   overlapping rules for the same selectors over time, and somewhere in that stack a
   later declaration dropped the "display: none" default, leaving every panel's items
   rendered inline in the bar itself instead of tucked away until hovered. Settling it
   here, once, so there's one place left to look. */
.main-navigation ul.menu > li.menu-item-has-children > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands > ul.sub-menu {
  display: none !important;
  opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
}
.main-navigation ul.menu > li.menu-item-has-children:hover > ul.sub-menu,
.main-navigation ul.menu > li.menu-item-has-children:focus-within > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands:hover > ul.sub-menu,
.main-navigation ul.menu > li.mega-brands:focus-within > ul.sub-menu {
  display: grid !important;
  opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
}

/* Compact Google reviews in the footer */
.ssu-rev-strip { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 22px; align-items: stretch; padding: 4px 0 26px; }
.ssu-rev-sum { display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.ssu-rev-score { display: flex; align-items: center; gap: 8px; }
.ssu-rev-score strong { font-size: 1.7em; line-height: 1; color: var(--ssu-navy); font-weight: 800; }
.ssu-rev-count { font-size: .82em; color: var(--ssu-muted); font-weight: 600; }
.ssu-rev-write { font-size: .8em; font-weight: 700; color: var(--ssu-navy); text-decoration: none; border-bottom: 1px solid transparent; align-self: flex-start; }
.ssu-rev-write:hover { border-bottom-color: var(--ssu-navy); }
.ssu-rev-stars { position: relative; display: inline-block; line-height: 0; white-space: nowrap; }
.ssu-rev-stars svg { width: 14px; height: 14px; margin-right: 1px; }
.ssu-rev-stars-bg svg { fill: #d5dbe4; }
.ssu-rev-stars-fg { position: absolute; left: 0; top: 0; width: var(--pct, 100%); overflow: hidden; }
.ssu-rev-stars-fg svg { fill: #f5b301; }
.ssu-rev-wrap { position: relative; min-width: 0; }
.ssu-rev-list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.ssu-rev-list::-webkit-scrollbar { display: none; }
.ssu-rev-card { flex: 0 0 calc((100% - 28px) / 3); scroll-snap-align: start; margin: 0; background: #fff; border: 1px solid var(--ssu-line); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 7px; min-width: 0; box-sizing: border-box; }
.ssu-rev-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ssu-rev-date { font-size: .74em; color: var(--ssu-muted); }
.ssu-rev-text { margin: 0; padding: 0; border: 0; quotes: none; font-size: .84em; line-height: 1.5; color: var(--ssu-ink); font-style: normal;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ssu-rev-name { font-size: .78em; font-weight: 700; color: var(--ssu-navy); margin-top: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ssu-rev-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 30px; height: 30px; border-radius: 50%; padding: 0; line-height: 1;
  background: #fff; border: 1px solid var(--ssu-line); color: var(--ssu-navy); font-size: 20px; cursor: pointer; display: none; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(18,58,109,.12); }
.ssu-rev-prev { left: -14px; } .ssu-rev-next { right: -14px; }
.ssu-rev-can-prev .ssu-rev-prev, .ssu-rev-can-next .ssu-rev-next { display: flex; }
.ssu-rev-nav:hover { border-color: var(--ssu-navy); }
@media (max-width: 900px) { .ssu-rev-strip { grid-template-columns: 1fr; gap: 14px; } .ssu-rev-sum { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
  .ssu-rev-card { flex-basis: calc((100% - 14px) / 2); } .ssu-rev-prev { left: -6px; } .ssu-rev-next { right: -6px; } }
@media (max-width: 560px) { .ssu-rev-card { flex-basis: 86%; } }

/* ======================================================================
 * Header: hide the customer "My account" button for now (Admin tools button for admins is untouched).
 * To bring it back, delete this one rule.
 * ==================================================================== */
.ssu-head-actions a.ssu-head-btn[aria-label="My account"] { display: none !important; }

/* ======================================================================
 * Footer: dark navy gradient. Theme-only overrides (no core files touched).
 * ==================================================================== */
.ssu-footer {
  background: linear-gradient(135deg, #0a1c38 0%, #123a6d 52%, #0b2444 100%) !important;
  box-shadow: inset 0 3px 0 var(--ssu-red) !important;
  color: #c7d3e6;
}
.ssu-footer::before, .ssu-footer::after { opacity: .18 !important; filter: brightness(2.2) saturate(.7); }

/* logo sits on a white chip so the dark wordmark stays readable */
.ssu-foot-logo { background: #fff; border-radius: 12px; padding: 8px 12px; box-sizing: content-box; }

/* text */
.ssu-foot-brand p, .ssu-foot-news p, .ssu-store span, .ssu-store-meta, .ssu-foot-note { color: #b9c7de !important; }
.ssu-store-meta .ssu-ico { color: #8fa6c8; }
.ssu-foot-col h3, .ssu-foot-stores h3 a, .ssu-foot-col h3 span { color: #fff !important; }
.ssu-store strong, .ssu-store strong a { color: #fff !important; }
.ssu-foot-col a, .ssu-stores-mail a, .ssu-store-tel a, .ssu-store-addr { color: #e6edf8 !important; }
.ssu-foot-col a:hover, .ssu-stores-mail a:hover, .ssu-store-tel a:hover, .ssu-store-addr:hover,
.ssu-foot-stores h3 a:hover, .ssu-store strong a:hover { color: #ff6b70 !important; }
.ssu-footer .ssu-ico, .ssu-h3-ico { color: #ff5a60 !important; }
.ssu-store-meta .ssu-ico { color: #8fa6c8 !important; }

/* social buttons */
.ssu-social a { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.22) !important; color: #fff !important; }
.ssu-social a:hover { background: var(--ssu-red) !important; border-color: var(--ssu-red) !important; color: #fff !important; }

/* google rating + review cards (cards stay white for contrast) */
.ssu-rev-score strong { color: #fff; }
.ssu-rev-count { color: #b9c7de; }
.ssu-rev-write { color: #fff; } .ssu-rev-write:hover { border-bottom-color: #fff; }
.ssu-rev-stars-bg svg { fill: rgba(255,255,255,.28); }
.ssu-rev-card { border-color: rgba(255,255,255,.14); box-shadow: 0 6px 18px rgba(3,12,28,.28); }
.ssu-rev-nav { border-color: rgba(255,255,255,.3); }

/* bottom bar */
.ssu-footer-bottom { border-top-color: rgba(255,255,255,.16) !important; color: #a9b9d2 !important; }
.ssu-foot-links a { color: #cfdaec !important; } .ssu-foot-links a:hover { color: #fff !important; }
.ssu-pay-card { background: #fff !important; border-color: rgba(255,255,255,.35) !important; }
/* rating link must be light on the dark footer (beats the generic footer-link rules) */
.ssu-footer .ssu-rev-sum .ssu-rev-write { color: #fff !important; border-bottom-color: rgba(255,255,255,.45) !important; }
.ssu-footer .ssu-rev-sum .ssu-rev-write:hover { color: #ff8a8e !important; border-bottom-color: #ff8a8e !important; }

/* ======================================================================
 * Layout: header, menu and page content use the same full width and side
 * padding as the footer (40px; 64px on 1700px+; 16px on phones).
 * To go back to the old 1320px column, delete this block.
 * ==================================================================== */
.site-header > .col-full,
.site-header .col-full,
.storefront-primary-navigation .col-full,
.storefront-primary-navigation.is-stuck .col-full,
.storefront-breadcrumb .col-full,
.site-content > .col-full,
#content > .col-full {
  max-width: 100% !important;
  width: 100%;
  padding-left: 40px !important;
  padding-right: 40px !important;
  box-sizing: border-box;
}
@media (min-width: 1700px) {
  .site-header > .col-full, .site-header .col-full, .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full, .storefront-breadcrumb .col-full,
  .site-content > .col-full, #content > .col-full { padding-left: 64px !important; padding-right: 64px !important; }
}
@media (max-width: 767px) {
  .site-header > .col-full, .site-header .col-full, .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full, .storefront-breadcrumb .col-full,
  .site-content > .col-full, #content > .col-full { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Socials: one per row, icon + handle */
.ssu-foot-quick .ssu-social { flex-direction: column !important; align-items: flex-start !important; gap: 9px !important; }
.ssu-foot-quick .ssu-social a {
  width: auto !important; height: auto !important; background: none !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; display: inline-flex !important; align-items: center; gap: 10px; text-decoration: none;
  color: #e6edf8 !important; font-size: .88em; font-weight: 600; transform: none !important;
}
.ssu-foot-quick .ssu-social a svg {
  flex: 0 0 auto; box-sizing: content-box; width: 15px; height: 15px; padding: 8px; border-radius: 50%;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.22); margin: 0 !important; transition: background .14s, border-color .14s;
}
.ssu-foot-quick .ssu-social a:hover { color: #fff !important; }
.ssu-foot-quick .ssu-social a:hover svg { background: var(--ssu-red); border-color: var(--ssu-red); }
.ssu-social-handle { white-space: nowrap; }
/* social handles: readable, normal case */
.ssu-foot-quick .ssu-social a .ssu-social-handle { color: #e6edf8 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 1em !important; font-weight: 600; }
.ssu-foot-quick .ssu-social a:hover .ssu-social-handle { color: #fff !important; }

/* ======================================================================
 * Footer: larger text; centered column titles for Quick links / Follow us.
 * (Sizes elsewhere in the footer are em-based, so raising the base scales them all.)
 * ==================================================================== */
.ssu-footer { font-size: 1.18rem; }
.ssu-foot-brand p { font-size: 1em !important; max-width: 38ch; }
.ssu-foot-col h3 { font-size: .9em !important; }
.ssu-foot-col a, .ssu-stores-mail a { font-size: 1em !important; }
.ssu-store span, .ssu-store-tel a, .ssu-store-meta { font-size: .98em !important; }
.ssu-store strong { font-size: 1em !important; }
.ssu-footer-bottom { font-size: .92em !important; }
.ssu-rev-text { font-size: .95em !important; }
.ssu-rev-name { font-size: .88em !important; } .ssu-rev-date { font-size: .82em !important; }
.ssu-rev-count, .ssu-rev-write { font-size: .95em !important; }
.ssu-rev-score strong { font-size: 1.9em; }
.ssu-foot-quick .ssu-social a { font-size: 1em !important; }
.ssu-foot-quick .ssu-social a svg { width: 17px; height: 17px; }
.ssu-footer .ssu-ico { width: 16px; height: 16px; }

/* centered titles */
.ssu-foot-quick h3, .ssu-foot-quick h3.ssu-foot-follow { justify-content: center !important; text-align: center !important; }

/* socials: clear space between the icon circle and the handle */
.ssu-foot-quick .ssu-social a { gap: 0 !important; justify-content: flex-start !important; }
.ssu-foot-quick .ssu-social a svg { margin: 0 16px 0 0 !important; }
.ssu-foot-quick .ssu-social { gap: 12px !important; }

/* ======================================================================
 * Footer text size: a modest step up from the original (~13.5px -> ~15px).
 * Overrides the earlier, larger block above.
 * ==================================================================== */
.ssu-footer { font-size: 1rem; }
.ssu-foot-brand p { font-size: .94em !important; max-width: 36ch; }
.ssu-foot-col h3 { font-size: .82em !important; }
.ssu-foot-col a, .ssu-stores-mail a { font-size: .94em !important; }
.ssu-store span, .ssu-store-tel a { font-size: .92em !important; }
.ssu-store-meta { font-size: .88em !important; }
.ssu-store strong { font-size: .95em !important; }
.ssu-footer-bottom { font-size: .86em !important; }
.ssu-rev-text { font-size: .9em !important; }
.ssu-rev-name { font-size: .84em !important; } .ssu-rev-date { font-size: .78em !important; }
.ssu-rev-count, .ssu-rev-write { font-size: .9em !important; }
.ssu-rev-score strong { font-size: 1.7em; }
.ssu-foot-quick .ssu-social a { font-size: .94em !important; }
.ssu-foot-quick .ssu-social a svg { width: 15px; height: 15px; }
.ssu-footer .ssu-ico { width: 15px; height: 15px; }

/* ======================================================================
 * Footer section titles: clearly larger than the text under them.
 * Column titles ~19px / 800 weight, store names ~17px; contents stay ~15px.
 * ==================================================================== */
.ssu-foot-col h3 {
  font-size: 1.2rem !important; font-weight: 800 !important; letter-spacing: .12em !important;
  line-height: 1.2; color: #fff !important; margin: 0 0 18px !important;
}
.ssu-foot-col h3 .ssu-h3-ico { width: 19px !important; height: 19px !important; }
.ssu-foot-col h3 a, .ssu-foot-col h3 span { font-size: inherit !important; letter-spacing: inherit !important; font-weight: inherit !important; }

/* Locations: bigger title between its two rules (rules stay) */
.ssu-foot-stores h3 { gap: 14px; margin-bottom: 22px !important; }
.ssu-foot-stores h3::before, .ssu-foot-stores h3::after { background: rgba(255,255,255,.28) !important; }

/* Quick links / Follow us: centered title with a short red accent bar */
.ssu-foot-quick h3 { position: relative; padding-bottom: 14px; margin-bottom: 16px !important; }
.ssu-foot-quick h3::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 34px; height: 3px;
  transform: translateX(-50%); background: var(--ssu-red); border-radius: 2px;
}
.ssu-foot-quick .ssu-foot-follow { margin-top: 26px !important; }

/* store names (Figueroa / Alameda / Panorama City) */
.ssu-store strong, .ssu-store strong a { font-size: 1.08em !important; letter-spacing: .09em !important; font-weight: 800 !important; }
.ssu-store strong { margin-bottom: 4px; }

/* ======================================================================
 * Trust band above the footer (free shipping / safe site / licensed products)
 * ==================================================================== */
.ssu-trust { width: 100%; background: #fff; border-top: 1px solid var(--ssu-line); border-bottom: 1px solid var(--ssu-line); margin-top: 40px; }
.ssu-trust-inner {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 32px; align-items: center;
  max-width: 100%; box-sizing: border-box; padding: 28px 40px;
}
.ssu-trust-item { display: flex; align-items: center; justify-content: center; gap: 16px; min-width: 0; }
.ssu-trust-ico {
  flex: 0 0 auto; width: 54px; height: 54px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: #fff1f1; color: var(--ssu-red); border: 1px solid #f7d3d5;
}
.ssu-trust-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ssu-trust-copy strong { font-size: 1.05rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ssu-navy); line-height: 1.2; }
.ssu-trust-copy span { font-size: .95rem; color: var(--ssu-muted); line-height: 1.4; }
@media (min-width: 1700px) { .ssu-trust-inner { padding-left: 64px; padding-right: 64px; } }
@media (max-width: 900px) { .ssu-trust-inner { grid-template-columns: 1fr; gap: 18px; padding: 24px 16px; } .ssu-trust-item { justify-content: flex-start; } }
/* the band replaces the gap that used to sit above the footer */
.ssu-trust + .site-footer .ssu-footer, .ssu-trust ~ .site-footer .ssu-footer { margin-top: 0; }

/* ======================================================================
 * Trust band, second version: lives INSIDE the footer so it shares the same
 * navy gradient (no separate white strip). Divider line separates it from the columns.
 * ==================================================================== */
.ssu-trust { background: none !important; border: 0 !important; margin: 0 0 34px !important; padding: 0 0 30px; width: auto;
  border-bottom: 1px solid rgba(255,255,255,.16) !important; }
.ssu-trust-inner { padding: 4px 0 !important; gap: 0 !important; }
.ssu-trust-item { justify-content: center; padding: 6px 24px; }
.ssu-trust-item + .ssu-trust-item { border-left: 1px solid rgba(255,255,255,.14); }
.ssu-trust-ico {
  width: 56px; height: 56px; background: rgba(255,255,255,.08) !important; color: #ff5a60 !important;
  border: 1px solid rgba(255,255,255,.24) !important;
}
.ssu-trust-copy strong { color: #fff !important; font-size: 1.1rem; letter-spacing: .1em; }
.ssu-trust-copy span { color: #b9c7de !important; font-size: .95rem; }
@media (max-width: 900px) {
  .ssu-trust-item { justify-content: flex-start; padding: 6px 0; }
  .ssu-trust-item + .ssu-trust-item { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; }
  .ssu-trust-inner { gap: 14px !important; }
}

/* Socials: icons only again - a centered row of round buttons (links, labels and tooltips unchanged) */
.ssu-foot-quick .ssu-social { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; justify-content: center !important; gap: 10px !important; }
.ssu-foot-quick .ssu-social a { gap: 0 !important; justify-content: center !important; }
.ssu-foot-quick .ssu-social a svg { margin: 0 !important; width: 16px; height: 16px; padding: 9px; }

/* ======================================================================
 * Trust band, third version: its own section ABOVE the footer (not part of it).
 * Soft brand tint, navy icon badges, hairline dividers; the footer's red line closes it off.
 * ==================================================================== */
.ssu-trust {
  width: 100% !important; margin: 44px 0 0 !important; padding: 0 !important;
  background: linear-gradient(180deg, #f6f9fd 0%, #eef3fa 100%) !important;
  border-top: 1px solid var(--ssu-line) !important; border-bottom: 0 !important;
}
.ssu-trust-inner { padding: 26px 40px !important; gap: 0 !important; max-width: 100%; box-sizing: border-box; }
.ssu-trust-item { justify-content: center; padding: 4px 28px; }
.ssu-trust-item + .ssu-trust-item { border-left: 1px solid rgba(18,58,109,.14) !important; }
.ssu-trust-ico {
  width: 54px; height: 54px; background: var(--ssu-navy) !important; color: #fff !important; border: 0 !important;
  box-shadow: 0 6px 14px rgba(18,58,109,.22);
}
.ssu-trust-ico svg { width: 26px; height: 26px; }
.ssu-trust-copy strong { color: var(--ssu-navy) !important; font-size: 1.05rem; letter-spacing: .09em; }
.ssu-trust-copy span { color: var(--ssu-muted) !important; font-size: .95rem; }
@media (min-width: 1700px) { .ssu-trust-inner { padding-left: 64px !important; padding-right: 64px !important; } }
@media (max-width: 900px) {
  .ssu-trust-inner { padding: 22px 16px !important; gap: 14px !important; }
  .ssu-trust-item { justify-content: flex-start; padding: 4px 0; }
  .ssu-trust-item + .ssu-trust-item { border-left: 0 !important; border-top: 1px solid rgba(18,58,109,.12) !important; padding-top: 16px; }
}
.ssu-trust + .site-footer .ssu-footer { margin-top: 0 !important; }

/* Footer columns: the logo column no longer hogs space - Locations gets it */
@media (min-width: 1101px) {
  .ssu-footer-grid { grid-template-columns: minmax(230px, 290px) minmax(0, 1fr) minmax(250px, 300px) !important; gap: 30px 44px !important; }
  .ssu-foot-brand p { max-width: 34ch; }
}

/* Trust band: four columns (2x2 on tablets, stacked on phones); the stores item is a link */
.ssu-trust-inner { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.ssu-trust-item { padding: 4px 20px; }
a.ssu-trust-item { text-decoration: none; color: inherit; transition: transform .15s ease; }
a.ssu-trust-item:hover { transform: translateY(-2px); }
a.ssu-trust-item:hover .ssu-trust-ico { background: var(--ssu-red) !important; }
a.ssu-trust-item:hover .ssu-trust-copy strong { color: var(--ssu-red) !important; }
@media (max-width: 1100px) {
  .ssu-trust-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 18px 0 !important; }
  .ssu-trust-item { justify-content: flex-start; }
  .ssu-trust-item:nth-child(odd) { border-left: 0 !important; }
}
@media (max-width: 600px) {
  .ssu-trust-inner { grid-template-columns: 1fr !important; gap: 14px !important; }
  .ssu-trust-item { border-left: 0 !important; }
  .ssu-trust-item + .ssu-trust-item { border-top: 1px solid rgba(18,58,109,.12) !important; padding-top: 16px; }
}

/* ======================================================================
 * Footer: compact pass - same design, noticeably less height.
 * ==================================================================== */
.ssu-footer { padding-top: 22px !important; }
.ssu-footer-grid { padding-bottom: 14px !important; gap: 18px 40px !important; }
.ssu-foot-logo { max-width: 150px !important; padding: 6px 10px !important; margin-bottom: 8px !important; border-radius: 10px; }
.ssu-foot-brand p { font-size: .9em !important; line-height: 1.5 !important; margin-bottom: 8px !important; }
.ssu-stores-mail a { font-size: .9em !important; }

/* smaller section titles (still clearly bigger than the text under them) */
.ssu-foot-col h3 { font-size: 1.02rem !important; letter-spacing: .1em !important; margin: 0 0 12px !important; }
.ssu-foot-col h3 .ssu-h3-ico { width: 16px !important; height: 16px !important; }
.ssu-foot-stores h3 { margin-bottom: 14px !important; gap: 10px !important; }
.ssu-foot-quick h3 { padding-bottom: 10px; margin-bottom: 10px !important; }
.ssu-foot-quick h3::after { width: 28px; height: 2px; }
.ssu-foot-quick .ssu-foot-follow { margin-top: 16px !important; }
.ssu-store strong, .ssu-store strong a { font-size: .96em !important; letter-spacing: .07em !important; }
.ssu-store strong { margin-bottom: 2px; }
.ssu-stores { gap: 14px !important; }
.ssu-store { gap: 2px !important; }
.ssu-store span, .ssu-store-tel a { font-size: .88em !important; }
.ssu-store-meta { font-size: .84em !important; line-height: 1.4 !important; }
.ssu-foot-col a, .ssu-foot-col li a { font-size: .9em !important; }
.ssu-foot-col ul { gap: 5px !important; }
.ssu-foot-quick .ssu-social { gap: 8px !important; }
.ssu-foot-quick .ssu-social a svg { width: 14px; height: 14px; padding: 8px; }

/* review strip: shorter cards */
.ssu-rev-strip { padding: 2px 0 16px !important; gap: 18px !important; }
.ssu-rev-card { padding: 9px 12px !important; gap: 5px !important; }
.ssu-rev-text { font-size: .86em !important; -webkit-line-clamp: 2 !important; line-height: 1.45 !important; }
.ssu-rev-name { font-size: .8em !important; } .ssu-rev-date { font-size: .74em !important; }
.ssu-rev-score strong { font-size: 1.5em !important; }
.ssu-rev-count, .ssu-rev-write { font-size: .84em !important; }

/* bottom bar */
.ssu-footer-bottom { padding: 10px 0 14px !important; font-size: .82em !important; }
.ssu-pay-card { transform: scale(.92); transform-origin: center; }

/* trust band above the footer: slimmer too */
.ssu-trust { margin-top: 32px !important; }
.ssu-trust-inner { padding-top: 18px !important; padding-bottom: 18px !important; }
.ssu-trust-ico { width: 46px !important; height: 46px !important; }
.ssu-trust-ico svg { width: 22px !important; height: 22px !important; }
.ssu-trust-copy strong { font-size: .95rem !important; }
.ssu-trust-copy span { font-size: .86rem !important; }

/* ======================================================================
 * Product page: full width, no sidebar.
 * ==================================================================== */
body.single-product #secondary, body.single-product .widget-area { display: none !important; }
body.single-product #primary, body.single-product .content-area {
  width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important;
}

/* ======================================================================
 * Layout: header, menu and page content capped a little narrower than full width
 * and centered (the footer stays edge to edge). Change 1440px to adjust.
 * ==================================================================== */
.site-header > .col-full,
.site-header .col-full,
.storefront-primary-navigation .col-full,
.storefront-primary-navigation.is-stuck .col-full,
.storefront-breadcrumb .col-full,
.site-content > .col-full,
#content > .col-full {
  max-width: 1440px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ======================================================================
 * Layout: on screens 1400px+ the header, menu and content are 75% of the screen width, centered.
 * Below 1400px they use the full width (see the block above). Footer stays edge to edge.
 * ==================================================================== */
@media (min-width: 1400px) {
  .site-header > .col-full,
  .site-header .col-full,
  .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full,
  .storefront-breadcrumb .col-full,
  .site-content > .col-full,
  #content > .col-full {
    max-width: 75% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ======================================================================
 * Main menu: each item sizes to its own text (no overlapping / clipped labels) at any width.
 * ==================================================================== */
.main-navigation ul.menu { display: flex; flex-wrap: nowrap; }
.main-navigation ul.menu > li.menu-item { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; max-width: none !important; }
.main-navigation ul.menu > li.menu-item > a { white-space: nowrap !important; width: auto !important; overflow: visible !important; text-overflow: clip !important; padding-left: 16px !important; padding-right: 16px !important; }

/* ======================================================================
 * Layout, final: header, menu and content share the trust band's side spacing (60px each side)
 * on screens 1400px+, full width otherwise. Replaces the 1440px / 75% caps above.
 * ==================================================================== */
@media (min-width: 1400px) {
  .site-header > .col-full,
  .site-header .col-full,
  .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full,
  .storefront-breadcrumb .col-full,
  .site-content > .col-full,
  #content > .col-full {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 60px !important;
    padding-right: 60px !important;
  }
  .ssu-trust-inner { padding-left: 40px !important; padding-right: 40px !important; }
}

/* ======================================================================
 * Product page fixes
 * 1) "Add to cart": white label (a plugin injects color:#004dd3 !important, so this rule is more specific)
 * 2) Gravity Forms "Name & Number" title: same look as the "Size" heading
 * ==================================================================== */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button *,
body.single-product .single_add_to_cart_button {
  color: #fff !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button svg { stroke: currentColor; }

body.single-product .gform_wrapper .gform_heading .gform_title,
body.single-product .gform_wrapper h2.gform_title {
  font-family: inherit !important; font-size: 1.15rem !important; font-weight: 800 !important;
  letter-spacing: .02em; color: var(--ssu-navy) !important; margin: 18px 0 10px !important; line-height: 1.25;
}

/* ======================================================================
 * Layout, current: header, menu and content are 70% of the screen width (centered) on screens 1400px+.
 * Below 1400px they use the full width. Change 70% to adjust; the footer stays edge to edge.
 * ==================================================================== */
@media (min-width: 1400px) {
  .site-header > .col-full,
  .site-header .col-full,
  .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full,
  .storefront-breadcrumb .col-full,
  .site-content > .col-full,
  #content > .col-full {
    max-width: 70% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* Layout, current: 75% of the screen width (centered) on screens 1400px+. Full width below that. */
@media (min-width: 1400px) {
  .site-header > .col-full,
  .site-header .col-full,
  .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full,
  .storefront-breadcrumb .col-full,
  .site-content > .col-full,
  #content > .col-full { max-width: 75% !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
}

/* Quick links: the links are centered under their centered title */
.ssu-foot-quick ul { justify-items: center; text-align: center; }
.ssu-foot-quick ul li { width: 100%; text-align: center; }
.ssu-foot-quick ul li a { justify-content: center !important; text-align: center; }

/* Layout, current: 80% of the screen width (centered) on screens 1400px+. Full width below that. */
@media (min-width: 1400px) {
  .site-header > .col-full,
  .site-header .col-full,
  .storefront-primary-navigation .col-full,
  .storefront-primary-navigation.is-stuck .col-full,
  .storefront-breadcrumb .col-full,
  .site-content > .col-full,
  #content > .col-full { max-width: 80% !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
}

/* Catalog pages: full width, no widget column */
body.ssu-catalog-full #secondary, body.ssu-catalog-full .widget-area { display: none !important; }
body.ssu-catalog-full #primary, body.ssu-catalog-full .content-area {
  width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important;
}

/* ======================================================================
 * Catalog pages: SALE and YOUTH badges are subtle - small, flat, outlined; no tilt, no shadow, no hover jump.
 * (Scoped to catalog pages; product page and homepage badges are unchanged.)
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .onsale,
body.ssu-catalog-full ul.products li.product .ssu-card-top .onsale {
  background: rgba(255,255,255,.94) !important; color: var(--ssu-red) !important;
  border: 1px solid rgba(216,31,38,.28) !important; border-radius: 999px !important;
  box-shadow: none !important; transform: none !important; text-shadow: none !important;
  min-width: 0 !important; min-height: 0 !important; width: auto !important; height: auto !important;
  padding: 3px 9px !important; font-size: .62rem !important; font-weight: 700 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important; line-height: 1.2 !important;
  top: 10px !important; right: 10px !important; left: auto !important;
}
body.ssu-catalog-full ul.products li.product .onsale::before,
body.ssu-catalog-full ul.products li.product .onsale::after { content: none !important; display: none !important; }
body.ssu-catalog-full ul.products li.product:hover .onsale { transform: none !important; }

body.ssu-catalog-full ul.products li.product .ssu-youth {
  background: transparent !important; color: var(--ssu-muted) !important; border: 1px solid var(--ssu-line);
  font-weight: 700 !important; letter-spacing: .09em !important; box-shadow: none !important;
}
body.ssu-catalog-full ul.products li.product .ssu-youth::before { opacity: .45; }

/* ======================================================================
 * Catalog product cards: borderless. Soft rounded photo well, open text under it, gentle hover.
 * (Catalog pages only; homepage / related-product cards keep their current look.)
 * ==================================================================== */
body.ssu-catalog-full ul.products { column-gap: 24px !important; row-gap: 34px !important; }
body.ssu-catalog-full ul.products li.product {
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  padding: 0 !important; overflow: visible !important; border-radius: 0 !important;
  transition: none;
}
body.ssu-catalog-full ul.products li.product:hover { box-shadow: none !important; transform: none !important; border: 0 !important; }

/* photo well */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap {
  display: block; position: relative; overflow: hidden; border-radius: 14px;
  background: #f3f6fa; padding: 6%; box-sizing: border-box;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img {
  display: block; width: 100% !important; height: auto; mix-blend-mode: multiply; border-radius: 0 !important;
  transition: transform .35s ease, opacity .25s ease;
}
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img { transform: scale(1.045); }

/* text: open, left aligned */
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin: 12px 2px 2px !important; }
body.ssu-catalog-full ul.products li.product .woocommerce-loop-product__title {
  margin: 4px 2px 0 !important; padding: 0 !important; font-size: 1rem !important; font-weight: 700 !important; line-height: 1.32 !important;
  color: var(--ssu-navy) !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-align: left;
  transition: color .15s ease;
}
body.ssu-catalog-full ul.products li.product:hover .woocommerce-loop-product__title { color: var(--ssu-red) !important; }
body.ssu-catalog-full ul.products li.product .price {
  display: flex !important; flex-direction: row-reverse; justify-content: flex-end; align-items: baseline; gap: 8px;
  margin: 8px 2px 0 !important; padding: 0 !important; font-size: 1.08rem; font-weight: 800; text-align: left;
}
body.ssu-catalog-full ul.products li.product .price ins { text-decoration: none; background: none; color: var(--ssu-red); }
body.ssu-catalog-full ul.products li.product .price del { font-size: .82em; font-weight: 500; color: var(--ssu-muted); opacity: .8; }
body.ssu-catalog-full ul.products li.product .price > .amount, body.ssu-catalog-full ul.products li.product .price ins .amount { color: var(--ssu-red); }

/* badges sit on the photo well; hover buttons stay on the photo too */
body.ssu-catalog-full ul.products li.product .ssu-card-actions { top: 10px !important; }

/* ======================================================================
 * Catalog badges: keep their COLOR, keep them small and flat.
 * SALE = solid red with white text; YOUTH = original light blue. (Overrides the outlined version above.)
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .onsale,
body.ssu-catalog-full ul.products li.product .ssu-card-top .onsale {
  background: var(--ssu-red) !important; color: #fff !important; border: 0 !important;
  box-shadow: none !important; transform: none !important;
  padding: 4px 10px !important; font-size: .62rem !important; font-weight: 800 !important; letter-spacing: .1em !important;
}
body.ssu-catalog-full ul.products li.product .ssu-youth {
  background: #e7f0fb !important; color: #1a3f74 !important; border: 0 !important;
  font-weight: 800 !important; letter-spacing: .1em !important;
}
body.ssu-catalog-full ul.products li.product .ssu-youth::before { opacity: 1 !important; }

/* ======================================================================
 * Catalog cards: "floating" product. No flat box - a soft spotlight glow behind the product,
 * a soft floor shadow under it, and on hover it lifts while the shadow shrinks.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap {
  background: radial-gradient(ellipse 62% 56% at 50% 50%, #e9f0fa 0%, rgba(233,240,250,.55) 45%, rgba(233,240,250,0) 74%) !important;
  border-radius: 0 !important; overflow: visible !important; padding: 5% 7% 11% !important;
}
/* floor shadow */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::after {
  content: ""; position: absolute; left: 20%; right: 20%; bottom: 5%; height: 8%;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.30) 0%, rgba(13,42,80,.12) 45%, rgba(13,42,80,0) 72%);
  filter: blur(3px); pointer-events: none; z-index: 0;
  transition: transform .35s ease, opacity .35s ease;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img { position: relative; z-index: 1; transition: transform .4s cubic-bezier(.2,.7,.2,1), opacity .25s ease; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt { z-index: 2; }
/* hover: lift, shadow shrinks and fades */
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img { transform: translateY(-9px) scale(1.03); }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap::after { transform: scale(.78); opacity: .65; }
@media (prefers-reduced-motion: reduce) {
  body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img { transform: none; }
  body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap::after { transform: none; }
}

/* Floating cards - fix: the hover-swap photo must stay stacked on top of the main photo, not add height. */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt) { position: relative !important; z-index: 1; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt {
  position: absolute !important; z-index: 2; top: 5% !important; left: 7% !important; right: auto !important; bottom: auto !important;
  width: 86% !important; height: auto !important; margin: 0 !important;
}

/* Floating cards - polish: every photo area is the same square, product centered; stronger floor shadow. */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { aspect-ratio: 1 / 1; box-sizing: border-box; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt) {
  width: 100% !important; height: 100% !important; object-fit: contain !important;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt { height: 84% !important; object-fit: contain !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::after {
  left: 24%; right: 24%; bottom: 5.5%; height: 6.5%;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.42) 0%, rgba(13,42,80,.18) 46%, rgba(13,42,80,0) 74%);
  filter: blur(4px);
}

/* ======================================================================
 * Floating cards - final layout (works WITH the theme's square photo area):
 * - the theme's ::after loading layer is switched off on catalog cards
 * - the floor shadow lives on ::before
 * - both photos (main + hover swap) sit in the same inset box, so cards are all the same height
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::after { display: none !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::before {
  content: ""; position: absolute; left: 24%; right: 24%; bottom: 5%; height: 6%; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.40) 0%, rgba(13,42,80,.16) 48%, rgba(13,42,80,0) 74%);
  filter: blur(4px); transition: transform .35s ease, opacity .35s ease;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt),
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt {
  position: absolute !important; top: 5% !important; left: 7% !important; right: auto !important; bottom: auto !important;
  width: 86% !important; height: 84% !important; margin: 0 !important; object-fit: contain !important; z-index: 1;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt { z-index: 2; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img.ssu-thumb-alt { transform: translateY(-9px) scale(1.03) !important; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap::before { transform: scale(.78); opacity: .6; }

/* ======================================================================
 * Floating shadow, version 3: the shadow follows the product's outline, right beneath it.
 * The separate floor-shadow layer is switched off.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::before { display: none !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img { filter: url(#ssu-float); }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img.ssu-thumb-alt { filter: url(#ssu-float-hi); }

/* ======================================================================
 * Floating cards - simple, stable hover: the whole photo area lifts a few px (no filter switching,
 * no per-image transforms fighting the theme's own hover). Same shadow at rest and on hover.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { transition: transform .3s cubic-bezier(.2,.7,.2,1); will-change: transform; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap { transform: translateY(-7px); }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img.ssu-thumb-alt {
  transform: none !important; filter: url(#ssu-float) !important;
}
@media (prefers-reduced-motion: reduce) { body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap { transform: none; } }

/* ======================================================================
 * Hover photo swap, fixed: with the white backgrounds blended away, the second photo no longer hides the
 * first, so the first fades OUT while the second fades IN (only on cards that HAVE a second photo).
 * ".ssu-hover" is a test hook that mimics :hover.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt) { transition: opacity .45s ease; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap:has(.ssu-thumb-alt) img:not(.ssu-thumb-alt),
body.ssu-catalog-full ul.products li.product:focus-within .ssu-thumbswap:has(.ssu-thumb-alt) img:not(.ssu-thumb-alt),
body.ssu-catalog-full ul.products li.product.ssu-hover .ssu-thumbswap:has(.ssu-thumb-alt) img:not(.ssu-thumb-alt) { opacity: 0 !important; }
body.ssu-catalog-full ul.products li.product.ssu-hover .ssu-thumbswap img.ssu-thumb-alt { opacity: 1 !important; }
body.ssu-catalog-full ul.products li.product.ssu-hover .ssu-thumbswap { transform: translateY(-7px); }
/* out-of-stock cards never swap (the theme already keeps their second photo hidden) */
body.ssu-catalog-full ul.products li.product.outofstock:hover .ssu-thumbswap:has(.ssu-thumb-alt) img:not(.ssu-thumb-alt) { opacity: 1 !important; }

/* ======================================================================
 * Floating shadow, version 5: a soft ellipse placed by the script directly under each product's base.
 * The SVG outline filter is switched off. Images (not the shadow) lift on hover, so the product rises off it.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img.ssu-thumb-alt { filter: none !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap::before { display: none !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap.ssu-shadow-ready::before {
  display: block !important; content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: calc(var(--sh-cx) - var(--sh-w) / 2); width: var(--sh-w);
  top: calc(var(--sh-y) - 1.6%); height: 4.2%; bottom: auto; right: auto;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.42) 0%, rgba(13,42,80,.20) 45%, rgba(13,42,80,0) 72%);
  filter: blur(2.5px); transform-origin: 50% 50%; transition: transform .35s ease, opacity .35s ease;
}
/* hover: the product lifts, the shadow stays on the ground and shrinks/fades */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { transform: none !important; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap.ssu-shadow-ready::before { transform: scale(.72); opacity: .55; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img { transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .45s ease; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img.ssu-thumb-alt { transform: translateY(-8px) !important; }
@media (prefers-reduced-motion: reduce) {
  body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img { transform: none !important; }
  body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap.ssu-shadow-ready::before { transform: none; opacity: 1; }
}

/* ======================================================================
 * Catalog cards: same badges as the product page.
 *  - SALE  = the red circular stamp (same look as the product-page seal, smaller, tilted 12deg)
 *  - YOUTH = yellow pill with navy text and navy dot
 * And a tighter gap between the photo and the brand / name / price.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .onsale,
body.ssu-catalog-full ul.products li.product .ssu-card-top .onsale {
  position: absolute !important; top: 12px !important; right: 12px !important; left: auto !important; bottom: auto !important;
  width: 54px !important; height: 54px !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important;
  display: flex !important; align-items: center; justify-content: center; text-align: center;
  border-radius: 50% !important; background: var(--ssu-red) !important; color: #fff !important;
  border: 2px solid rgba(255,255,255,.55) !important;
  box-shadow: 0 6px 14px rgba(216,31,38,.32) !important;
  transform: rotate(12deg) !important; z-index: 5;
  font-family: 'Oswald', 'Arial Narrow', Impact, sans-serif !important; font-size: .8rem !important; font-weight: 700 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important; line-height: 1 !important; text-indent: .05em;
}
body.ssu-catalog-full ul.products li.product:hover .onsale { transform: rotate(12deg) !important; }

body.ssu-catalog-full ul.products li.product .ssu-youth {
  background: #ffd233 !important; color: #12305c !important; border: 0 !important; border-radius: 6px !important;
  box-shadow: 0 2px 6px rgba(190,150,20,.3) !important; font-weight: 800 !important; letter-spacing: .12em !important;
}
body.ssu-catalog-full ul.products li.product .ssu-youth::before { background: #12305c !important; opacity: 1 !important; }

/* tighter photo -> text gap: a shorter photo area, the picture fills it, brand row sits closer */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { aspect-ratio: 1 / .9 !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt),
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt { top: 3% !important; height: 94% !important; }
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin: 4px 2px 2px !important; }

/* ======================================================================
 * Catalog cards: zero gap. The photos already carry their own margins/borders, so the picture fills
 * the whole photo area edge to edge and the brand / name / price start directly underneath it.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap {
  aspect-ratio: 1 / 1 !important; padding: 0 !important; margin: 0 !important; background: transparent !important;
}
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img,
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img:not(.ssu-thumb-alt),
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img.ssu-thumb-alt {
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important; object-fit: contain !important;
}
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin: 0 2px 2px !important; padding: 2px 0 0 !important; min-height: 0 !important; }
body.ssu-catalog-full ul.products li.product .ssu-card-brand { margin-top: 0 !important; }
body.ssu-catalog-full ul.products li.product .woocommerce-loop-product__title { margin-top: 2px !important; }

/* ======================================================================
 * Floating shadow: much more obvious - darker, taller, a little wider, crisper edge.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap.ssu-shadow-ready::before {
  left: calc(var(--sh-cx) - var(--sh-w) * .58); width: calc(var(--sh-w) * 1.16);
  top: calc(var(--sh-y) - 3.2%); height: 7.5%;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.70) 0%, rgba(13,42,80,.42) 40%, rgba(13,42,80,.12) 68%, rgba(13,42,80,0) 82%);
  filter: blur(1.6px);
}
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap.ssu-shadow-ready::before { transform: scale(.7); opacity: .5; }

/* Catalog cards: brand / name / price pulled up flush under the photo (photos carry their own margins). */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { margin-bottom: 0 !important; display: block; line-height: 0; }
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin: -7px 2px 1px !important; padding: 0 !important; position: relative; z-index: 1; }
body.ssu-catalog-full ul.products li.product .woocommerce-loop-product__title { margin-top: 1px !important; }

/* Fix: keep the brand row un-positioned so the SALE stamp anchors to the card (top-right of the photo), not to this row. */
body.ssu-catalog-full ul.products li.product .ssu-card-top { position: static !important; z-index: auto !important; }

/* Catalog cards: tight but never clipped - small overlap only, tighter line spacing in the brand row. */
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin: 0 2px 1px !important; padding: 0 !important; line-height: 1 !important; min-height: 0 !important; align-items: center; }
body.ssu-catalog-full ul.products li.product .ssu-card-brand { margin: 0 !important; padding: 0 !important; line-height: 1 !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { position: relative; z-index: 0; }
body.ssu-catalog-full ul.products li.product .ssu-card-top .ssu-youth { margin-top: 0 !important; margin-bottom: 0 !important; }

/* 3px cushion under the photo so the brand row is never clipped, whatever the picture's shape. */
body.ssu-catalog-full ul.products li.product .ssu-card-top { margin-top: 3px !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap { overflow: visible !important; }
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img { max-height: 100%; }

/* ======================================================================
 * Catalog SALE badge: outlined starburst (sawtooth edge), white centre, red italic "Sale".
 * Smaller and lighter than the solid stamp; no fill, no glow.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product .onsale,
body.ssu-catalog-full ul.products li.product .ssu-card-top .onsale {
  width: 50px !important; height: 50px !important; top: 10px !important; right: 10px !important;
  background: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20100%20100%22%3E%3Cpolygon%20points=%2250.00,3.00%2057.71,11.26%2067.99,6.58%2071.95,17.16%2083.23,16.77%2082.84,28.05%2093.42,32.01%2088.74,42.29%2097.00,50.00%2088.74,57.71%2093.42,67.99%2082.84,71.95%2083.23,83.23%2071.95,82.84%2067.99,93.42%2057.71,88.74%2050.00,97.00%2042.29,88.74%2032.01,93.42%2028.05,82.84%2016.77,83.23%2017.16,71.95%206.58,67.99%2011.26,57.71%203.00,50.00%2011.26,42.29%206.58,32.01%2017.16,28.05%2016.77,16.77%2028.05,17.16%2032.01,6.58%2042.29,11.26%22%20fill=%22%23ffffff%22%20fill-opacity=%22.94%22%20stroke=%22%23d81f26%22%20stroke-width=%223%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E") center / contain no-repeat !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important; filter: none;
  color: #d81f26 !important; transform: rotate(-9deg) !important;
  font-family: Georgia, 'Times New Roman', serif !important; font-style: italic !important; font-weight: 700 !important;
  font-size: .95rem !important; letter-spacing: 0 !important; text-transform: none !important; text-indent: 0 !important;
}
body.ssu-catalog-full ul.products li.product:hover .onsale { transform: rotate(-9deg) !important; }

/* ======================================================================
 * Floating effect belongs to the PRIMARY photo only.
 * On cards that have a second (hover) photo: no lift, and the shadow steps aside while the second photo shows.
 * Cards with a single photo keep the lift + shrinking shadow.
 * ==================================================================== */
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap:has(.ssu-thumb-alt) img,
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap:has(.ssu-thumb-alt) img.ssu-thumb-alt,
body.ssu-catalog-full ul.products li.product:focus-within .ssu-thumbswap:has(.ssu-thumb-alt) img { transform: none !important; }
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap.ssu-shadow-ready:has(.ssu-thumb-alt)::before { opacity: 0; transform: none; }

/* Floating shadow: a notch softer than the strong version (between subtle and obvious), gentler lift. */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap.ssu-shadow-ready::before {
  left: calc(var(--sh-cx) - var(--sh-w) * .56); width: calc(var(--sh-w) * 1.12);
  top: calc(var(--sh-y) - 2.6%); height: 6%;
  background: radial-gradient(ellipse at center, rgba(13,42,80,.50) 0%, rgba(13,42,80,.28) 42%, rgba(13,42,80,.08) 68%, rgba(13,42,80,0) 82%);
  filter: blur(2px);
}
body.ssu-catalog-full ul.products li.product:hover .ssu-thumbswap img { transform: translateY(-6px) !important; }

/* Catalog cards: wishlist + quick view sit directly UNDER the sale badge, centred beneath it (never on top of it). */
body.ssu-catalog-full ul.products li.product .ssu-card-actions { top: 68px !important; right: 20px !important; }
body.ssu-catalog-full ul.products li.product.ssu-hover .ssu-card-actions { opacity: 1 !important; transform: none !important; pointer-events: auto; }

/* ======================================================================
 * Catalog pages: normal, comfortable text sizes (the theme had several pieces set too small).
 * ==================================================================== */
/* product cards */
body.ssu-catalog-full ul.products li.product .ssu-card-brand { font-size: .78rem !important; letter-spacing: .08em !important; }
body.ssu-catalog-full ul.products li.product .ssu-card-brand span { font-size: inherit !important; }
body.ssu-catalog-full ul.products li.product .ssu-card-brandlogo { height: 18px !important; max-width: 46px !important; }
body.ssu-catalog-full ul.products li.product .woocommerce-loop-product__title { font-size: 1.06rem !important; line-height: 1.3 !important; }
body.ssu-catalog-full ul.products li.product .price { font-size: 1.28rem !important; }
body.ssu-catalog-full ul.products li.product .price del { font-size: .95rem !important; }
body.ssu-catalog-full ul.products li.product .ssu-youth { font-size: .7rem !important; padding: 4px 9px 4px 8px !important; }

/* toolbar row (Hide filters / result count / Sort by) */
body.ssu-catalog-full .ssu-filter-toggle { font-size: .9rem !important; }
body.ssu-catalog-full .ssu-filter-toggle .ssu-filter-toggle-text { font-size: inherit !important; }
body.ssu-catalog-full .ssu-toolbar-count .woocommerce-result-count { font-size: 1rem !important; }
body.ssu-catalog-full .ssu-sort-label { font-size: .85rem !important; }
body.ssu-catalog-full .ssu-toolbar-sort select, body.ssu-catalog-full .woocommerce-ordering select { font-size: 1rem !important; }

/* filter panel */
body.ssu-catalog-full .ssu-filter-head, body.ssu-catalog-full .ssu-filter-head * { font-size: .95rem; }
body.ssu-catalog-full .ssu-filter-group h3 { font-size: .85rem !important; letter-spacing: .1em; }
body.ssu-catalog-full .ssu-filter-group label { font-size: 1rem !important; }
body.ssu-catalog-full .ssu-filter-group label em { font-size: .85rem !important; }
body.ssu-catalog-full .ssu-filter-group input[type="number"], body.ssu-catalog-full .ssu-filter-group input[type="text"] { font-size: 1rem !important; }
body.ssu-catalog-full .ssu-filter-form button, body.ssu-catalog-full .ssu-filter-form .button { font-size: .9rem !important; }

/* ======================================================================
 * Main menu: normal, confident size (it had shrunk to ~13px next to the larger catalog / footer text).
 * ==================================================================== */
.main-navigation ul.menu > li.menu-item > a {
  font-size: 1rem !important; letter-spacing: .05em !important; font-weight: 800;
  padding: 1.05em 1.2em !important;
}
.main-navigation ul.menu > li.menu-item-has-children > a::after { font-size: .75em; margin-left: .5em; }
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a { font-size: .95rem !important; padding-top: .7em !important; padding-bottom: .7em !important; }

/* dropdown / mega panel text */
.main-navigation ul.menu > li > ul.sub-menu > li > a { font-size: .98rem; }
.main-navigation ul.menu > li > ul.sub-menu > li.mega-col-title > a { font-size: .92rem; letter-spacing: .08em; }
.main-navigation ul.menu > li.mega-brands .mega-brand-name { font-size: .95rem; }

/* ======================================================================
 * Main menu: slanted, sporty. Italic labels, slanted dividers, and a slanted tinted tab for the
 * hovered / current item (replaces the flat red top bar). To undo, delete this block.
 * (".ssu-hover" on a menu item is only a test hook that mimics :hover.)
 * ==================================================================== */
.main-navigation ul.menu > li.menu-item > a { font-style: italic; isolation: isolate; }

/* slanted dividers instead of straight lines */
.main-navigation ul.menu > li.menu-item + li.menu-item,
.main-navigation ul.menu > li.menu-item:first-child,
.main-navigation ul.menu > li.menu-item:last-child { border-left: 0 !important; border-right: 0 !important; }
.main-navigation ul.menu > li.menu-item {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23c3cee0' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") left center / 10px 100% no-repeat;
}
.main-navigation ul.menu > li.menu-item:last-child {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23c3cee0' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") left center / 10px 100% no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23c3cee0' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") right center / 10px 100% no-repeat;
}

/* hover / current: a slanted tinted tab behind the label */
.main-navigation ul.menu > li.menu-item > a::before {
  top: 9px !important; bottom: 9px; height: auto !important; left: 50% !important; width: 0;
  background: rgba(216, 31, 38, .09) !important; border-radius: 3px !important;
  transform: skewX(-16deg); z-index: -1;
  transition: width .26s cubic-bezier(.4, 0, .2, 1), left .26s cubic-bezier(.4, 0, .2, 1);
}
.main-navigation ul.menu > li.menu-item:hover > a::before,
.main-navigation ul.menu > li.menu-item:focus-within > a::before,
.main-navigation ul.menu > li.menu-item.ssu-hover > a::before,
.main-navigation ul.menu > li.current-menu-item > a::before,
.main-navigation ul.menu > li.current-menu-ancestor > a::before,
.main-navigation ul.menu > li.current-menu-parent > a::before { left: 10px !important; width: calc(100% - 20px) !important; }
.main-navigation ul.menu > li.menu-item.ssu-hover > a { color: var(--ssu-red); }
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a::before { top: 6px !important; bottom: 6px; }

/* Main menu: the row of items is centred in the bar, and each label is centred in its own tab.
   (Not applied to the sticky bar, which shares its row with the logo and search.) */
.storefront-primary-navigation:not(.is-stuck) .main-navigation { width: 100%; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu { justify-content: center !important; width: 100%; }
.main-navigation ul.menu > li.menu-item > a { text-align: center !important; display: flex; align-items: center; justify-content: center; }
.main-navigation ul.menu > li.menu-item-has-children > a::after { margin-left: .45em; }

/* ======================================================================
 * Main menu, strong version: solid navy bar, white slanted labels, red slanted tab for hover / current page or section.
 * Full-width list (it was stuck at half width, which pushed the centred items off to the left).
 * The sticky (scrolled) bar keeps its light look.  To undo, delete this block.
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
.storefront-primary-navigation:not(.is-stuck) {
  background: linear-gradient(180deg, #16447f 0%, #0f3163 100%) !important;
  border-top: 0 !important; border-bottom: 3px solid var(--ssu-red) !important;
  box-shadow: 0 6px 16px rgba(13, 42, 80, .18);
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a {
  color: #fff !important; font-size: 1.1rem !important; letter-spacing: .06em !important; padding: 1.15em 1.4em !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23ffffff' stroke-opacity='.32' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23ffffff' stroke-opacity='.32' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 100' preserveAspectRatio='none'%3E%3Cline x1='9' y1='0' x2='1' y2='100' stroke='%23ffffff' stroke-opacity='.32' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; }
/* hover / current page or section: solid red slanted tab, white text */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  background: var(--ssu-red) !important; top: 0 !important; bottom: 0 !important; border-radius: 0 !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a { color: #fff !important; }

/* catalog title: still a title, but no longer louder than the menu */
body.ssu-catalog-full .ssu-brandban .ssu-catban-text h1, body.ssu-catalog-full .ssu-catban h1 { font-size: 2.3rem !important; line-height: 1.1 !important; letter-spacing: .01em; }
body.ssu-catalog-full .ssu-catban { padding-top: 6px !important; padding-bottom: 4px !important; margin-bottom: 8px !important; }

/* Strong menu: let the navy show through - the inner containers had their own white background. */
.storefront-primary-navigation:not(.is-stuck) > .col-full,
.storefront-primary-navigation:not(.is-stuck) .main-navigation,
.storefront-primary-navigation:not(.is-stuck) #site-navigation,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu,
.storefront-primary-navigation:not(.is-stuck) .main-navigation .menu-primary-container { background-color: transparent !important; box-shadow: none !important; }

/* ======================================================================
 * Main menu, light + slanted (final): white bar, big bold italic labels, slanted dividers and a slanted red-tint hover tab
 * that share ONE angle (12px lean over the row height), so the tab's edges sit on the divider lines.
 * Replaces the navy version above.  Sticky bar unchanged.
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) {
  background: #fff !important; border-top: 1px solid var(--ssu-line) !important; border-bottom: 0 !important;
  box-shadow: 0 6px 16px rgba(13, 42, 80, .08) !important;
}
/* the wrapper around the list was stuck at half width - give it the whole bar so the row can truly centre */
.storefront-primary-navigation:not(.is-stuck) #site-navigation > div,
.storefront-primary-navigation:not(.is-stuck) .main-navigation > div { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu { justify-content: center !important; }

.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a {
  color: var(--ssu-navy) !important; font-size: 1.1rem !important; font-weight: 800 !important; letter-spacing: .05em !important;
  padding: 1.1em 1.45em !important; overflow: visible !important;
}
/* dividers: same 12px lean, full row height */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 100' preserveAspectRatio='none'%3E%3Cline x1='11' y1='0' x2='1' y2='100' stroke='%23b9c6da' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 12px 100% !important; background-position: left center !important; background-repeat: no-repeat !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 100' preserveAspectRatio='none'%3E%3Cline x1='11' y1='0' x2='1' y2='100' stroke='%23b9c6da' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 100' preserveAspectRatio='none'%3E%3Cline x1='11' y1='0' x2='1' y2='100' stroke='%23b9c6da' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 12px 100%, 12px 100% !important; background-position: left center, right center !important; background-repeat: no-repeat, no-repeat !important; }

/* hover / current page or section: slanted tab, edges follow the dividers */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  content: "" !important; display: block !important; position: absolute !important; z-index: -1; pointer-events: none;
  top: 0 !important; bottom: 0 !important; left: 0 !important; right: -12px !important; width: auto !important; height: auto !important;
  background: rgba(216, 31, 38, .11) !important; border-radius: 0 !important; transform: scaleX(.86) !important; opacity: 0;
  clip-path: polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  transition: opacity .2s ease, transform .26s cubic-bezier(.4, 0, .2, 1) !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a::before { opacity: 1; transform: scaleX(1) !important; left: 0 !important; width: auto !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a { color: var(--ssu-red) !important; }

/* Menu wrapper fix: only the real menu wrapper takes the full width; the empty mobile-fallback block beside it must not share the row. */
.storefront-primary-navigation:not(.is-stuck) #site-navigation > div.primary-navigation { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; }
.storefront-primary-navigation:not(.is-stuck) #site-navigation > div.menu { display: none !important; }

/* ======================================================================
 * Menu slant, steeper (about 20 degrees): dividers, hover tab and current tab all use the same 22px lean.
 * The flat rectangle some theme rules paint behind hovered / current items is switched off - only the slanted tab shows.
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a {
  background: transparent !important; background-color: transparent !important; box-shadow: none !important;
  padding-left: 1.75em !important; padding-right: 1.75em !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23b0bed4' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 22px 100% !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23b0bed4' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23b0bed4' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 22px 100%, 22px 100% !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  right: -22px !important; clip-path: polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%) !important;
  background: rgba(216, 31, 38, .13) !important;
}

/* Menu (non-sticky, desktop): items are spread evenly - each takes an equal share of the bar. Sticky bar unchanged. */
@media (min-width: 992px) {
  .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu { justify-content: stretch !important; }
  .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item {
    flex: 1 1 0% !important; min-width: 0 !important; width: auto !important;
  }
  .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a {
    width: 100% !important; padding-left: .6em !important; padding-right: .6em !important;
  }
}

/* ======================================================================
 * Menu polish: soft fade + red underline on the slanted tab; the LAST tab stops exactly at its closing line;
 * the sticky (scrolled) menu is spread evenly like the main one.
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  background: linear-gradient(180deg, rgba(216, 31, 38, .05) 0%, rgba(216, 31, 38, .17) 100%) !important;
  border-bottom: 3px solid var(--ssu-red) !important; box-sizing: border-box;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child > a::before {
  right: 0 !important;
  clip-path: polygon(22px 0, calc(100% - 1px) 0, calc(100% - 21px) 100%, 0 100%) !important;
}
@media (min-width: 992px) {
  .storefront-primary-navigation.is-stuck .main-navigation, .storefront-primary-navigation.is-stuck #site-navigation { flex: 1 1 auto !important; min-width: 0 !important; }
  .storefront-primary-navigation.is-stuck .main-navigation > div.primary-navigation { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; }
  .storefront-primary-navigation.is-stuck .main-navigation > div.menu { display: none !important; }
  .storefront-primary-navigation.is-stuck .main-navigation ul.menu { display: flex !important; flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; justify-content: stretch !important; }
  .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item { flex: 1 1 0% !important; min-width: 0 !important; width: auto !important; }
  .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a { width: 100% !important; display: flex !important; align-items: center; justify-content: center; text-align: center; padding-left: .5em !important; padding-right: .5em !important; }
}

/* Regular (non-sticky) menu: less height - tighter top and bottom. */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a { padding-top: .68em !important; padding-bottom: .68em !important; }
/* Catalog cards: photos of any shape sit whole inside the square (letterboxed, never cropped). */
body.ssu-catalog-full ul.products li.product .ssu-thumbswap img { object-fit: contain !important; }

/* ======================================================================
 * Menu, richer look: light gradient bar, navy-to-red brand line underneath, two-tone racing-stripe dividers,
 * bolder labels and a small lift on hover. (Regular bar only; sticky bar keeps its lighter look.)
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) {
  background: linear-gradient(180deg, #ffffff 0%, #eef3fa 100%) !important;
  border-top: 1px solid #dbe4f0 !important;
  border-bottom: 4px solid transparent !important;
  border-image: linear-gradient(90deg, #123a6d 0%, #123a6d 62%, #d81f26 100%) 1 !important;
  box-shadow: 0 8px 18px rgba(13, 42, 80, .10) !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a { font-size: 1.12rem !important; font-weight: 800 !important; letter-spacing: .07em !important; transition: transform .18s ease, color .18s ease; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a { transform: translateY(-1px); }
/* racing-stripe dividers: navy line + red line, same lean as the tab */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100% !important; background-position: left center !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100%, 22px 100% !important; background-position: left center, right center !important; }
/* the current / hovered tab: a touch stronger */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  background: linear-gradient(180deg, rgba(216, 31, 38, .07) 0%, rgba(216, 31, 38, .22) 100%) !important;
  border-bottom: 4px solid var(--ssu-red) !important;
}

/* ======================================================================
 * Menu text: clearly the biggest, darkest type on the page (scales with screen width so it never overflows).
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a {
  font-size: clamp(.95rem, 1.25vw, 1.3rem) !important;
  color: #0a2547 !important; font-weight: 800 !important; letter-spacing: .07em !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .9); -webkit-text-stroke: .35px currentColor;
  padding-top: .78em !important; padding-bottom: .78em !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a { color: var(--ssu-red) !important; }

/* ======================================================================
 * Menu buttons: every item is a raised slanted button (light gradient + ledge); hovered / current = solid red with white text.
 * Same shape on the regular AND the sticky bar. To undo, delete this block.
 * ==================================================================== */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a { color: #0a2547 !important; background: transparent !important; box-shadow: none !important; position: relative; isolation: isolate; overflow: visible !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a::before {
  content: "" !important; display: block !important; position: absolute !important; z-index: -1; pointer-events: none;
  top: 0 !important; bottom: 0 !important; left: 0 !important; right: -22px !important; width: auto !important; height: auto !important;
  transform: none !important; opacity: 1 !important; border-radius: 0 !important; box-sizing: border-box;
  clip-path: polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%) !important;
  background: linear-gradient(180deg, #ffffff 0%, #e4edf8 100%) !important;
  border-bottom: 3px solid rgba(18, 58, 109, .22) !important;
  transition: background .2s ease, border-color .2s ease !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child > a::before { right: 0 !important; clip-path: polygon(22px 0, calc(100% - 1px) 0, calc(100% - 21px) 100%, 0 100%) !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100% !important; background-position: left center !important; background-repeat: no-repeat !important; }
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100%, 22px 100% !important; background-position: left center, right center !important; background-repeat: no-repeat, no-repeat !important; }
/* hovered / current page or section: solid red slanted button, white text */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a::before, .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a::before, .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a::before,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a::before {
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important; border-bottom: 4px solid #8c0f14 !important; left: 0 !important; width: auto !important;
}
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:hover > a, .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item:focus-within > a, .storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.current-menu-parent > a { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }

.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a { color: #0a2547 !important; background: transparent !important; box-shadow: none !important; position: relative; isolation: isolate; overflow: visible !important; }
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a::before {
  content: "" !important; display: block !important; position: absolute !important; z-index: -1; pointer-events: none;
  top: 0 !important; bottom: 0 !important; left: 0 !important; right: -22px !important; width: auto !important; height: auto !important;
  transform: none !important; opacity: 1 !important; border-radius: 0 !important; box-sizing: border-box;
  clip-path: polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%) !important;
  background: linear-gradient(180deg, #ffffff 0%, #e4edf8 100%) !important;
  border-bottom: 3px solid rgba(18, 58, 109, .22) !important;
  transition: background .2s ease, border-color .2s ease !important;
}
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:last-child > a::before { right: 0 !important; clip-path: polygon(22px 0, calc(100% - 1px) 0, calc(100% - 21px) 100%, 0 100%) !important; }
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100% !important; background-position: left center !important; background-repeat: no-repeat !important; }
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3Cline x1='26' y1='0' x2='6' y2='100' stroke='%23d81f26' stroke-opacity='.85' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.55' stroke-width='1.8' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 27px 100%, 22px 100% !important; background-position: left center, right center !important; background-repeat: no-repeat, no-repeat !important; }
/* hovered / current page or section: solid red slanted button, white text */
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:hover > a::before, .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:focus-within > a::before, .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item.ssu-hover > a::before,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-item > a::before,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-ancestor > a::before,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-parent > a::before {
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important; border-bottom: 4px solid #8c0f14 !important; left: 0 !important; width: auto !important;
}
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:hover > a, .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item:focus-within > a, .storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.current-menu-parent > a { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }

/* ======================================================================
 * Menu: no hard lines. The bar's top / bottom borders and the buttons' ledges become soft fades and shadows.
 * ==================================================================== */
.storefront-primary-navigation,
.storefront-primary-navigation:not(.is-stuck),
.storefront-primary-navigation.is-stuck {
  border-top: 0 !important; border-bottom: 0 !important; border-image: none !important;
}
.storefront-primary-navigation:not(.is-stuck) {
  background: linear-gradient(180deg, #ffffff 0%, #f3f7fc 55%, #e9f0f9 100%) !important;
  box-shadow: 0 10px 22px -8px rgba(13, 42, 80, .22), 0 1px 0 rgba(255, 255, 255, .8) inset !important;
}
.storefront-primary-navigation.is-stuck { box-shadow: 0 8px 20px -8px rgba(13, 42, 80, .28) !important; }

/* buttons: soft gradient + gentle drop shadow instead of a hard ledge */
.storefront-primary-navigation .main-navigation ul.menu > li.menu-item > a::before { border-bottom: 0 !important; }
.storefront-primary-navigation .main-navigation ul.menu > li.menu-item > a { filter: drop-shadow(0 2px 2px rgba(13, 42, 80, .10)); }
.storefront-primary-navigation .main-navigation ul.menu > li.menu-item:hover > a,
.storefront-primary-navigation .main-navigation ul.menu > li.menu-item.ssu-hover > a,
.storefront-primary-navigation .main-navigation ul.menu > li.current-menu-item > a,
.storefront-primary-navigation .main-navigation ul.menu > li.current-menu-ancestor > a,
.storefront-primary-navigation .main-navigation ul.menu > li.current-menu-parent > a { filter: drop-shadow(0 4px 6px rgba(195, 22, 29, .35)); }

/* ======================================================================
 * Menu slider (works with the script above). The single slanted red tab moves; individual items lose their own red hover.
 * ==================================================================== */
ul#menu-primary { position: relative; }
ul#menu-primary .ssu-menu-slider {
  position: absolute; top: 0; bottom: 0; left: 0; width: 0; z-index: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%);
  clip-path: polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
  filter: drop-shadow(0 4px 6px rgba(195, 22, 29, .35));
  transition: transform .4s cubic-bezier(.4, 0, .2, 1), width .4s cubic-bezier(.4, 0, .2, 1), opacity .25s ease;
  will-change: transform, width;
}
ul#menu-primary .ssu-menu-slider.is-last { clip-path: polygon(22px 0, calc(100% - 1px) 0, calc(100% - 21px) 100%, 0 100%); }
ul#menu-primary > li.menu-item > a { z-index: 1; }
/* with the slider on, items don't paint their own red tab */
ul#menu-primary.ssu-slider-ready > li.menu-item > a::before,
ul#menu-primary.ssu-slider-ready > li.menu-item:hover > a::before,
ul#menu-primary.ssu-slider-ready > li.menu-item.ssu-hover > a::before,
ul#menu-primary.ssu-slider-ready > li.current-menu-item > a::before,
ul#menu-primary.ssu-slider-ready > li.current-menu-ancestor > a::before,
ul#menu-primary.ssu-slider-ready > li.current-menu-parent > a::before { background: transparent !important; border: 0 !important; }
ul#menu-primary.ssu-slider-ready > li.menu-item > a,
ul#menu-primary.ssu-slider-ready > li.menu-item:hover > a,
ul#menu-primary.ssu-slider-ready > li.current-menu-item > a,
ul#menu-primary.ssu-slider-ready > li.current-menu-ancestor > a,
ul#menu-primary.ssu-slider-ready > li.current-menu-parent > a { color: #0a2547 !important; text-shadow: none !important; filter: none !important; transition: color .25s ease; }
ul#menu-primary.ssu-slider-ready > li.menu-item.ssu-slide-on > a { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }

/* ======================================================================
 * Menu, calmer: no divider lines at all; the sliding tab is a soft red tint (not a solid block) with red text;
 * sticky menu a little larger.
 * ==================================================================== */
ul#menu-primary > li.menu-item,
ul#menu-primary > li.menu-item:last-child,
ul#menu-primary > li.menu-item:first-child { background-image: none !important; border: 0 !important; }

ul#menu-primary .ssu-menu-slider {
  background: linear-gradient(180deg, rgba(216, 31, 38, .07) 0%, rgba(216, 31, 38, .20) 100%);
  filter: none;
}
ul#menu-primary.ssu-slider-ready > li.menu-item.ssu-slide-on > a { color: #c3161d !important; text-shadow: none !important; }

/* sticky menu: bigger labels and a taller row */
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a {
  font-size: clamp(1rem, 1.15vw, 1.2rem) !important; padding-top: .95em !important; padding-bottom: .95em !important;
}


/* ======================================================================
 * Menu, final touches
 *  - active / hovered tab = the DARK red (same colours before and after the script runs, so nothing flashes on reload)
 *  - subtle slanted dividers back (one thin, faint line between items)
 * ==================================================================== */
ul#menu-primary .ssu-menu-slider {
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important;
  filter: drop-shadow(0 4px 6px rgba(195, 22, 29, .35)) !important;
}
ul#menu-primary.ssu-slider-ready > li.menu-item.ssu-slide-on > a { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }
/* before the script runs the current item paints its own tab: same dark red */
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-item > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-ancestor > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-parent > a::before {
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important; border-bottom: 0 !important;
}
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-item > a,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-ancestor > a,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-parent > a { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }

/* subtle dividers */
ul#menu-primary > li.menu-item { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.17' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 22px 100% !important; background-position: left center !important; background-repeat: no-repeat !important; }
ul#menu-primary > li.menu-item:first-child { background-image: none !important; }
ul#menu-primary > li.menu-item:last-child { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.17' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 100' preserveAspectRatio='none'%3E%3Cline x1='21' y1='0' x2='1' y2='100' stroke='%23123a6d' stroke-opacity='.17' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") !important; background-size: 22px 100%, 22px 100% !important; background-position: left center, right center !important; background-repeat: no-repeat, no-repeat !important; }

/* Sticky menu: a little smaller than before (labels and row height). */
.storefront-primary-navigation.is-stuck .main-navigation ul.menu > li.menu-item > a {
  font-size: clamp(.92rem, 1.02vw, 1.05rem) !important; padding-top: .72em !important; padding-bottom: .72em !important;
}

/* Regular menu: less space above and below the labels (shorter bar). */
.storefront-primary-navigation:not(.is-stuck) .main-navigation ul.menu > li.menu-item > a { padding-top: .48em !important; padding-bottom: .48em !important; }

/* ======================================================================
 * Active menu tab: a very subtle light sheen sweeps across it every few seconds.
 * Same background on the sliding tab and on the pre-script tab, so nothing jumps. Disabled for reduced-motion users.
 * ==================================================================== */
@keyframes ssu-menu-shimmer {
  0%, 35% { background-position: 140% 0, 0 0; }
  75%, 100% { background-position: -40% 0, 0 0; }
}
ul#menu-primary .ssu-menu-slider,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-item > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-ancestor > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-parent > a::before {
  background: linear-gradient(112deg, rgba(255,255,255,0) 38%, rgba(255,255,255,.26) 50%, rgba(255,255,255,0) 62%),
              linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important;
  background-size: 260% 100%, 100% 100% !important; background-repeat: no-repeat !important;
  animation: ssu-menu-shimmer 4.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  ul#menu-primary .ssu-menu-slider, .storefront-primary-navigation .main-navigation ul.menu > li > a::before { animation: none !important; }
}

/* ======================================================================
 * Shimmer, v2: the sheen is its own overlay (::after) on the sliding tab, so no !important background rule can block it.
 * The tab background itself goes back to the plain dark-red gradient.
 * ==================================================================== */
@keyframes ssu-menu-sheen {
  0%, 30% { transform: translateX(-130%); }
  72%, 100% { transform: translateX(130%); }
}
ul#menu-primary .ssu-menu-slider,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-item > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-ancestor > a::before,
.storefront-primary-navigation .main-navigation ul.menu:not(.ssu-slider-ready) > li.current-menu-parent > a::before {
  background: linear-gradient(180deg, #ef4a51 0%, #c3161d 100%) !important; background-size: 100% 100% !important; animation: none !important;
}
ul#menu-primary .ssu-menu-slider { overflow: hidden; }
ul#menu-primary .ssu-menu-slider::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 55%; pointer-events: none;
  background: linear-gradient(105deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.30) 50%, rgba(255,255,255,0) 100%);
  transform: translateX(-130%);
  animation: ssu-menu-sheen 4.2s ease-in-out infinite;
  animation-delay: var(--ssu-sh-delay, 0s); animation-play-state: var(--ssu-sh-state, running);
}
@media (prefers-reduced-motion: reduce) { ul#menu-primary .ssu-menu-slider::after { animation: none; opacity: 0; } }

/* Shimmer polish: straight soft gradient, band skewed to the tab's slant so its edges are soft, not square. */
@keyframes ssu-menu-sheen {
  0%, 30% { transform: translateX(-160%) skewX(-19deg); }
  72%, 100% { transform: translateX(260%) skewX(-19deg); }
}
ul#menu-primary .ssu-menu-slider::after {
  width: 34%; left: 0; transform: translateX(-160%) skewX(-19deg);
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.10) 22%, rgba(255,255,255,.30) 50%, rgba(255,255,255,.10) 78%, rgba(255,255,255,0) 100%);
}

/* Shimmer removed (redundant with the logo). The active tab is the plain dark-red gradient with the sliding hover. */
ul#menu-primary .ssu-menu-slider::after { display: none !important; animation: none !important; }
