/**
 * WooStoreFront — Shoptimizer-style storefront (single bundle).
 */

:root {
  --wsf-layout-max: 1280px;
  --wsf-color-bg: #fff;
  --wsf-color-surface: #f6f7f8;
  --wsf-color-text: #111111;
  --wsf-color-muted: #222222;
  --wsf-color-border: #e2e5ea;
  --wsf-color-accent: #2563eb;
  --wsf-color-accent-hover: #1d4ed8;
  --wsf-color-sale: #dc2626;
  --wsf-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, sans-serif;
  /* Live Elementor printing-services headings use Poppins (not Inter). */
  --wsf-font-heading: "Poppins", "Inter", system-ui, sans-serif;
  --wsf-radius: 8px;
  --wsf-field-radius: 8px;
  --wsf-btn-radius: 10px;
  --wsf-btn-padding-y: 0.4rem;
  --wsf-btn-padding-x: 0.9rem;
  --wsf-btn-font-size: 0.8125rem;
  --wsf-btn-font-weight: 600;
  --wsf-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.08);
  --wsf-space-2: 0.5rem;
  --wsf-space-3: 0.75rem;
  --wsf-space-4: 1rem;
  --wsf-space-6: 1.5rem;
  --wsf-space-8: 2rem;
  --wsf-header-h: 4rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body.wsf-body {
  margin: 0;
  font-family: var(--wsf-font-sans);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--wsf-color-text);
  background: var(--wsf-color-bg);
  /*
   * Do NOT put display:flex on body. WP injects cart/cookie/chat/notice
   * siblings after .wsf-site; flex+align-self on those fixed overlays breaks
   * position:fixed (Home cart drawer appeared under the hero band).
   */
  min-height: 100vh;
  min-height: 100dvh;
}

/*
 * Sticky footer shell: utility + header + main + footer only.
 * Overlays render after </div#wsf-site> via wp_footer and stay true fixed.
 */
.wsf-site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

.wsf-site > .wsf-utility-bar,
.wsf-site > .wsf-header {
  flex: 0 0 auto;
}

.wsf-site > #wsf-main {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
}

.wsf-site > .wsf-footer {
  flex: 0 0 auto;
  margin-top: 0;
}

/* USP last → free space grows above USP, not between USP and footer. */
.wsf-site > #wsf-main:has(.wsf-block-trust--assurance:last-child) {
  display: flex;
  flex-direction: column;
}

.wsf-site > #wsf-main:has(.wsf-block-trust--assurance:last-child) > .wsf-page {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 0;
}

.wsf-site > #wsf-main:has(.wsf-block-trust--assurance:last-child) .wsf-page-tokens {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.wsf-site > #wsf-main .wsf-page-tokens > .wsf-block-trust--assurance:last-child {
  margin-top: auto;
  margin-bottom: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/*
 * WordPress image alignment — classic-theme-styles is dequeued (wp-trim),
 * so without these, aligncenter/left/right do nothing and images stay left.
 */
.aligncenter,
img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.alignleft,
img.alignleft {
  float: left;
  margin: 0.35em 1.25em 0.85em 0;
}

.alignright,
img.alignright {
  float: right;
  margin: 0.35em 0 0.85em 1.25em;
}

.alignnone,
img.alignnone {
  margin: 0.5em 0;
}

a {
  color: var(--wsf-color-accent);
  text-decoration: none;
}

a:hover {
  color: var(--wsf-color-accent-hover);
}

.wsf-container {
  width: min(100% - 2rem, var(--wsf-layout-max));
  max-width: var(--wsf-layout-max);
  margin-left: auto;
  margin-right: auto;
  margin-inline: auto;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Utility top bar (live-style contact strip) */
.wsf-utility-bar {
  background: #0a0a0a;
  color: #dcdcdc;
  font-size: 0.75rem;
  line-height: 1.3;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.wsf-utility-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  min-height: 2rem;
  padding-block: 0.35rem;
}

.wsf-utility-bar__left {
  margin: 0;
  color: #b0b0b0;
}

.wsf-utility-bar__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-utility-bar__contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #e8e8e8;
  text-decoration: none;
}

.wsf-utility-bar__contact a:hover,
.wsf-utility-bar__contact a:focus-visible {
  color: #fff;
}

.wsf-utility-bar__icon {
  display: inline-flex;
  color: #cfcfcf;
}

.wsf-utility-bar__icon svg {
  width: 0.85rem;
  height: 0.85rem;
}

/* Header — live Raven: white bar, lime accent, icon actions */
.wsf-header {
  --wsf-header-accent: #84c559;
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid #ececec;
  box-shadow: none;
}

.wsf-header__inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 4.25rem;
}

.wsf-logo--lockup {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  color: inherit;
  min-width: 0;
  flex: 0 0 auto;
}

.wsf-logo__mark {
  display: inline-flex;
  flex: 0 0 auto;
  line-height: 0;
}

.wsf-logo__mark-svg,
.wsf-logo__mark .wsf-footer__mark-svg,
.wsf-logo__mark svg {
  width: 2.6rem;
  height: 2.6rem;
}

.wsf-logo__text-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.wsf-logo__text {
  font-weight: 800;
  font-size: 1.05rem;
  color: #111;
  line-height: 1.05;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.wsf-logo__text-accent {
  color: var(--wsf-header-accent, #84c559);
}

.wsf-logo__tag {
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #111;
}

.wsf-logo--has-image .custom-logo-link {
  display: flex;
  align-items: center;
}

.wsf-logo--has-image .custom-logo,
.wsf-logo--has-image img {
  max-height: 3rem;
  width: auto;
  height: auto;
}

.wsf-header__panel {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  min-width: 0;
}

.wsf-nav {
  flex: 1 1 auto;
  min-width: 0;
}

.wsf-nav__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.15rem 1.05rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-nav__list > li > a {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: #111 !important;
  font-weight: 500;
  font-size: 0.875rem;
  text-decoration: none;
  white-space: nowrap;
}

.wsf-nav__list > li {
  position: relative;
}

.wsf-nav__list > li > a:hover,
.wsf-nav__list > li.current-menu-item > a,
.wsf-nav__list > li.current_page_item > a {
  color: var(--wsf-header-accent, #84c559) !important;
}

/* Do not bleach open dropdown parents / submenu labels (focus-within used to cascade badly). */
.wsf-nav__list > li.is-open > a,
.wsf-nav__list > li:focus-within > a {
  color: var(--wsf-header-accent, #84c559) !important;
}

.wsf-nav__caret {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.75;
}

/* Classic white dropdown — flush to parent + invisible bridge (no hover gap) */
.wsf-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 130;
  display: none;
  min-width: 13.5rem;
  margin: 0;
  padding: 0.55rem 0 0.45rem;
  list-style: none;
  background: #fff !important;
  border: 1px solid #ececec;
  border-radius: 0.35rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
  color: #323232;
}

/* Extra hit area above the panel so diagonal mouse paths still count */
.wsf-nav .sub-menu::before {
  content: "";
  position: absolute;
  top: -0.85rem;
  left: -1.25rem;
  right: -1.25rem;
  height: 0.95rem;
}

.wsf-nav .sub-menu a,
.wsf-nav .sub-menu .menu-item > a {
  display: block;
  padding: 0.45rem 1rem;
  color: #323232 !important;
  font-size: 0.8125rem;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
}

.wsf-nav .sub-menu a:hover,
.wsf-nav .sub-menu a:focus-visible {
  color: #fff !important;
  background: var(--wsf-header-accent, #84c559);
}

@media (min-width: 901px) {
  /* Open via JS hover-intent (.is-open) or keyboard focus — not raw :hover */
  .wsf-nav__list > li.menu-item-has-children:focus-within > .sub-menu,
  .wsf-nav__list > li.menu-item-has-children.is-open > .sub-menu {
    display: block;
  }
}

.wsf-header__actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.wsf-header__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #111;
  text-decoration: none;
  cursor: pointer;
}

.wsf-header__icon-btn:hover,
.wsf-header__icon-btn:focus-visible {
  color: var(--wsf-header-accent, #84c559);
}

.wsf-search--icon {
  position: relative;
}

.wsf-search__panel {
  position: absolute;
  top: calc(100% + 0.55rem);
  right: 0;
  z-index: 140;
  min-width: min(22rem, calc(100vw - 2rem));
  padding: 0.75rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
}

.wsf-search__panel[hidden] {
  display: none !important;
}

.wsf-search--icon .woocommerce-product-search {
  display: flex;
  align-items: stretch;
  gap: 0;
  position: relative;
}

.wsf-search--icon input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0.65rem 0.85rem;
  border: 1px solid #d1d5db;
  border-right: none;
  border-radius: 0.35rem 0 0 0.35rem !important;
  background: #fff;
  color: #111 !important;
  font: inherit;
  font-size: 0.875rem;
}

.wsf-search--icon input[type="search"]::placeholder {
  color: #222222;
}

.wsf-search--icon .wsf-search__submit {
  margin: 0;
  padding: 0.65rem 1rem;
  border: 1px solid #111;
  border-radius: 0 0.35rem 0.35rem 0;
  background: #111;
  color: #fff !important;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.wsf-search--icon .wsf-search__submit:hover {
  background: #222;
}

.wsf-cart--icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: #111;
  text-decoration: none;
  background: transparent;
}

.wsf-cart--icon:hover,
.wsf-cart--icon:focus-visible {
  color: var(--wsf-header-accent, #84c559);
}

.wsf-cart--icon .wsf-cart__icon {
  display: inline-flex;
}

.wsf-cart--icon .wsf-cart__count {
  position: absolute;
  top: 0.05rem;
  right: 0.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.2rem;
  border-radius: 999px;
  background: var(--wsf-header-accent, #84c559);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
}

/* Side cart drawer */
.wsf-cart-drawer[hidden] {
  display: none !important;
}

.wsf-cart-drawer {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 10060;
  display: block;
  /* Outside .wsf-site — never a flex item. */
  margin: 0;
}

.wsf-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(17, 17, 17, 0.45);
  cursor: pointer;
}

.wsf-cart-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  width: min(24rem, 100vw);
  height: 100%;
  background: #fff;
  box-shadow: -8px 0 28px rgba(0, 0, 0, 0.18);
  outline: none;
}

.wsf-cart-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex: 0 0 auto;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid #ececec;
}

.wsf-cart-drawer__title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #111;
}

.wsf-cart-drawer__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--wsf-header-accent, #84c559);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
}

.wsf-cart-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #111;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.wsf-cart-drawer__close:hover {
  color: var(--wsf-header-accent, #84c559);
}

.wsf-cart-drawer__body {
  flex: 1 1 auto;
  overflow: auto;
  padding: 0.85rem 1.1rem 1.25rem;
  scrollbar-gutter: stable;
}

.wsf-cart-drawer__body .woocommerce-mini-cart,
.wsf-cart-drawer__body .cart_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item,
.wsf-cart-drawer__body .cart_list li {
  display: grid;
  grid-template-columns: 3.5rem 1fr auto;
  gap: 0.65rem;
  align-items: start;
  padding: 0.75rem 0;
  border-bottom: 1px solid #f1f1f1;
  font-size: 0.875rem;
}

/* Product titles + prices: black (reference drawer). Qty line muted gray. */
.wsf-cart-drawer__body .woocommerce-mini-cart-item a:not(.remove),
.wsf-cart-drawer__body .cart_list li a:not(.remove) {
  color: #111 !important;
  font-weight: 600;
  text-decoration: none !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item a:not(.remove):hover,
.wsf-cart-drawer__body .cart_list li a:not(.remove):hover {
  color: #000 !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item .quantity,
.wsf-cart-drawer__body .cart_list li .quantity {
  color: #6b7280 !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item .quantity .amount,
.wsf-cart-drawer__body .cart_list li .quantity .amount,
.wsf-cart-drawer__body .woocommerce-mini-cart-item .amount,
.wsf-cart-drawer__body .cart_list li .amount {
  color: #111 !important;
  font-weight: 700;
}

/* Remove = FA trash-can (cart drawer + cart table) */
.wsf-cart-remove-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.wsf-cart-remove-icon i {
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item a.remove,
.wsf-cart-drawer__body .cart_list li a.remove,
.wsf-main--cart table.shop_table .product-remove a.remove,
.wsf-main--cart table.shop_table td.product-remove a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px;
  background: transparent !important;
  color: #9ca3af !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  text-indent: 0 !important;
  box-shadow: none !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item a.remove .wsf-cart-remove-icon,
.wsf-cart-drawer__body .cart_list li a.remove .wsf-cart-remove-icon,
.wsf-main--cart table.shop_table .product-remove a.remove .wsf-cart-remove-icon,
.wsf-main--cart table.shop_table td.product-remove a .wsf-cart-remove-icon {
  font-size: 1rem;
  color: inherit;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item a.remove:hover,
.wsf-cart-drawer__body .cart_list li a.remove:hover,
.wsf-main--cart table.shop_table .product-remove a.remove:hover,
.wsf-main--cart table.shop_table td.product-remove a:hover {
  color: #111 !important;
  background: transparent !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart-item img,
.wsf-cart-drawer__body .cart_list img {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: contain;
  background: #fafafa;
}

.wsf-cart-drawer__body .woocommerce-mini-cart__empty-message,
.wsf-cart-drawer__body .woocommerce-mini-cart__total,
.wsf-cart-drawer__body .total {
  margin: 0.85rem 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #111 !important;
  text-align: left;
}

/*
 * Cart drawer CTAs — both View cart + Checkout: #84C559 + white → black on hover.
 * !important beats global .woocommerce a.button accent bleed.
 */
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons,
.wsf-cart-drawer__body .buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.55rem;
  width: 100%;
}

.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a,
.wsf-cart-drawer__body .buttons a,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a.button,
.wsf-cart-drawer__body .buttons a.button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  box-sizing: border-box;
  min-height: 2.85rem;
  margin: 0 !important;
  padding: 0.7rem 1rem !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-align: center;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  background: #84c559 !important;
  color: #fff !important;
  border: 1px solid #84c559 !important;
}

.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a:hover,
.wsf-cart-drawer__body .buttons a:hover,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a:focus-visible,
.wsf-cart-drawer__body .buttons a:focus-visible,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a:active,
.wsf-cart-drawer__body .buttons a:active,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a.button:hover,
.wsf-cart-drawer__body .buttons a.button:hover,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a.button:focus-visible,
.wsf-cart-drawer__body .buttons a.button:focus-visible,
.wsf-cart-drawer__body .woocommerce-mini-cart__buttons a.button:active,
.wsf-cart-drawer__body .buttons a.button:active {
  background: #111 !important;
  color: #fff !important;
  border-color: #111 !important;
}

html.wsf-cart-drawer-open {
  overflow: hidden;
}

/* Carets for WP menus with children (fallback also uses .wsf-nav__caret) */
.wsf-nav__list > li.menu-item-has-children > a:not(:has(.wsf-nav__caret))::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.25rem;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.75;
  vertical-align: middle;
}

/* Storefront — inputs & dropdowns */
.wsf-body input[type="text"],
.wsf-body input[type="email"],
.wsf-body input[type="tel"],
.wsf-body input[type="url"],
.wsf-body input[type="password"],
.wsf-body input[type="search"],
.wsf-body input[type="number"],
.wsf-body select,
.wsf-body textarea,
.wsf-body .woocommerce form .input-text,
.wsf-body .woocommerce form input.input-text,
.wsf-body .woocommerce form select,
.wsf-body .woocommerce form textarea {
  border-radius: var(--wsf-field-radius, var(--wsf-radius));
}

.wsf-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-btn-radius);
  background: var(--wsf-color-bg);
  cursor: pointer;
}

.wsf-nav-toggle__bar {
  display: block;
  width: 1.25rem;
  height: 2px;
  margin-inline: auto;
  background: var(--wsf-color-text);
}

/* Main — do not min-height the whole column (creates a white band under USP on short pages). */
.wsf-main {
  padding-block: var(--wsf-space-8);
}

/* Block pages (Replicator Home): hero flush under header like live. */
.wsf-main--page {
  padding-block: 0;
}

.wsf-main--page .wsf-block-hero:first-child {
  margin-top: 0;
}

.wsf-section {
  padding-block: var(--wsf-space-8);
}

.wsf-section__title {
  margin: 0 0 var(--wsf-space-6);
  font-size: 1.5rem;
  font-weight: 700;
}

.wsf-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--wsf-space-4);
  margin-bottom: var(--wsf-space-6);
}

.wsf-section__head .wsf-section__title {
  margin: 0;
}

.wsf-link {
  font-weight: 600;
  font-size: 0.9375rem;
}

/* Hero */
.wsf-hero {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
  color: #fff;
  padding-block: 3.5rem;
}

.wsf-hero__title {
  margin: 0 0 var(--wsf-space-4);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.2;
}

.wsf-hero__text {
  margin: 0 0 var(--wsf-space-6);
  max-width: 36rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.0625rem;
}

.wsf-hero a.wsf-btn--primary {
  color: #fff;
}

/* Buttons */
.wsf-btn,
.wsf-body .woocommerce a.button,
.wsf-body .woocommerce button.button,
.wsf-body .woocommerce input.button,
.wsf-body .woocommerce #respond input#submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--wsf-btn-padding-y) var(--wsf-btn-padding-x);
  border-radius: var(--wsf-btn-radius);
  font-weight: var(--wsf-btn-font-weight);
  font-size: var(--wsf-btn-font-size);
  border: none;
  cursor: pointer;
  text-decoration: none;
}

.wsf-btn--primary {
  background: var(--wsf-color-accent);
  color: #fff;
}

.wsf-btn--primary:hover {
  background: var(--wsf-color-accent-hover);
  color: #fff;
}

.wsf-btn--secondary {
  background: var(--wsf-color-surface);
  color: var(--wsf-color-text);
  border: 1px solid var(--wsf-color-border);
}

/* Category grid */
.wsf-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--wsf-space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-cat-card a {
  display: flex;
  flex-direction: column;
  gap: var(--wsf-space-3);
  color: var(--wsf-color-text);
}

.wsf-cat-card__img,
.wsf-cat-card__placeholder {
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--wsf-radius);
  background: var(--wsf-color-surface);
  border: 1px solid var(--wsf-color-border);
}

.wsf-cat-card__name {
  font-weight: 600;
  font-size: 0.9375rem;
  text-align: center;
}

/* Product grid */
.wsf-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wsf-space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Woo clearfix / float leftovers must not become ghost grid cells. */
.wsf-product-grid::before,
.wsf-product-grid::after {
  content: none !important;
  display: none !important;
}

.wsf-product-grid > li {
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

@media (min-width: 640px) {
  .wsf-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .wsf-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--wsf-space-6);
  }
}

/* Honour explicit column modifiers (PDP related outputs --cols-4). */
.wsf-product-grid--cols-3 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wsf-product-grid--cols-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
  .wsf-product-grid--cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .wsf-product-grid--cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.wsf-product-card {
  display: flex;
  flex-direction: column;
  background: var(--wsf-color-bg);
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
  box-shadow: var(--wsf-shadow-card);
  overflow: hidden;
}

.wsf-product-card__link {
  display: block;
  color: inherit;
  flex: 1;
}

.wsf-product-card__link:hover {
  color: inherit;
}

.wsf-product-card__media {
  position: relative;
  aspect-ratio: 1;
  background: #fff;
  overflow: hidden;
}

.wsf-product-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.wsf-badge {
  position: absolute;
  top: var(--wsf-space-2);
  left: var(--wsf-space-2);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
}

.wsf-badge--sale {
  background: var(--wsf-color-sale);
  color: #fff;
}

.wsf-product-card__title {
  margin: var(--wsf-space-3) var(--wsf-space-4) 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;
}

.wsf-product-card__price {
  margin: var(--wsf-space-2) var(--wsf-space-4) var(--wsf-space-3);
  font-weight: 700;
  color: var(--wsf-color-text);
  text-align: center;
}

.wsf-product-card__price del {
  color: var(--wsf-color-muted);
  font-weight: 400;
}

.wsf-product-card__actions {
  padding: 0 var(--wsf-space-4) var(--wsf-space-4);
  margin-top: auto;
}

.wsf-product-card__actions .button,
.wsf-product-card__actions a.button {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.55rem 1rem;
  border-radius: var(--wsf-btn-radius, 999px);
  background: var(--wsf-color-accent);
  color: #fff !important;
  font-weight: 600;
  font-size: 0.875rem;
  border: none;
  text-decoration: none !important;
  transition: background 0.15s ease, color 0.15s ease;
}

.wsf-product-card__actions .button:hover,
.wsf-product-card__actions .button:focus-visible,
.wsf-product-card__actions a.button:hover,
.wsf-product-card__actions a.button:focus-visible {
  background: #111 !important;
  color: #fff !important;
}

/* Cart drawer opens on ATC — hide Woo's redundant "View cart" loop link. */
.wsf-product-card__actions .added_to_cart,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products .added_to_cart.wc-forward {
  display: none !important;
}

/* Shop — live-style: category sidebar (no search) + product grid */
.wsf-main--shop {
  padding-block: var(--wsf-space-6) var(--wsf-space-8);
  background: #fff;
}

.wsf-shop {
  display: grid;
  grid-template-columns: minmax(14rem, 17.5rem) minmax(0, 1fr);
  gap: 2rem 2.25rem;
  align-items: start;
}

.wsf-shop__sidebar {
  position: sticky;
  top: calc(var(--wsf-header-h, 4rem) + 0.75rem);
  max-height: calc(100vh - var(--wsf-header-h, 4rem) - 1.5rem);
  overflow: auto;
  padding-right: 0.25rem;
}

.wsf-shop__sidebar-title {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wsf-color-text, #111);
}

/* Intentionally no product-search form in the sidebar — header search covers it. */

.wsf-shop__cat-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-shop__cat-list--child {
  margin: 0.2rem 0 0.35rem;
  padding-left: 0.85rem;
}

.wsf-shop__cat-item {
  margin: 0;
}

.wsf-shop__cat-link {
  display: block;
  padding: 0.28rem 0;
  color: var(--wsf-color-text, #222);
  text-decoration: none;
  font-size: 0.9375rem;
  line-height: 1.35;
}

.wsf-shop__cat-link:hover,
.wsf-shop__cat-link:focus-visible {
  color: var(--wsf-color-accent, #84c559);
}

.wsf-shop__cat-link.is-active {
  font-weight: 700;
  color: var(--wsf-color-text, #111);
}

.wsf-shop__main {
  min-width: 0;
}

.wsf-main--shop .page-title,
.wsf-main--shop .woocommerce-products-header__title {
  text-align: center;
  margin: 0 0 1.25rem;
}

/*
 * Shop cards — match Home `.wsf-block-products__card` size / chrome:
 * rounded elevated box, clamped title, centered type, pop on hover (no text recolor).
 */
.wsf-main--shop .wsf-product-grid,
.wsf-main--shop .wsf-product-grid--cols-3,
.wsf-main--shop .wsf-product-grid--cols-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (min-width: 900px) {
  .wsf-main--shop .wsf-product-grid,
  .wsf-main--shop .wsf-product-grid--cols-3,
  .wsf-main--shop .wsf-product-grid--cols-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .wsf-main--shop .wsf-product-grid,
  .wsf-main--shop .wsf-product-grid--cols-3,
  .wsf-main--shop .wsf-product-grid--cols-4 {
    /* Home product grids use 4 columns — keep shop cards the same footprint. */
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.wsf-main--shop .wsf-product-card {
  border: 1px solid var(--wsf-color-border, #e2e5ea);
  border-radius: var(--wsf-radius, 8px);
  box-shadow: var(--wsf-shadow-card, 0 1px 3px rgba(0, 0, 0, 0.08));
  background: #fff;
  height: 100%;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.wsf-user-shell .wsf-main--shop .wsf-product-card {
  border-color: var(--wsf-color-accent, #84c559);
  border-width: 1.5px;
}

.wsf-main--shop .wsf-product-card:hover,
.wsf-main--shop .wsf-product-card:focus-within {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
  border-color: #6fad45;
}

.wsf-main--shop .wsf-product-card__link,
.wsf-main--shop .wsf-product-card__link:hover,
.wsf-main--shop .wsf-product-card__link:focus {
  color: inherit;
  text-decoration: none;
}

.wsf-main--shop .wsf-product-card__media {
  aspect-ratio: auto;
  min-height: 10rem;
  max-height: 12rem;
  padding: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.wsf-main--shop .wsf-product-card__img {
  width: 100%;
  height: auto;
  max-height: 12rem;
  object-fit: contain;
}

.wsf-main--shop .wsf-product-card__title,
.wsf-main--shop .wsf-product-card__price {
  text-align: center;
  color: var(--wsf-color-text, #1a1d21);
}

.wsf-main--shop .wsf-product-card__title {
  margin: 0.35rem 0.75rem 0;
  padding: 0;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
  min-height: 2.7em;
}

/* Never recolor title/price on hover — the card pop is the affordance. */
.wsf-main--shop .wsf-product-card:hover .wsf-product-card__title,
.wsf-main--shop .wsf-product-card:hover .wsf-product-card__price,
.wsf-main--shop .wsf-product-card__link:hover .wsf-product-card__title,
.wsf-main--shop .wsf-product-card__link:hover .wsf-product-card__price {
  color: var(--wsf-color-text, #1a1d21);
}

.wsf-main--shop .wsf-product-card__price {
  margin: 0.25rem 0.75rem 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.wsf-main--shop .wsf-product-card__actions {
  padding: 0.35rem 0.75rem 0.85rem;
  text-align: center;
}

.wsf-main--shop .wsf-product-card__actions .button,
.wsf-main--shop .wsf-product-card__actions a.button {
  border-radius: 999px;
  background: var(--wsf-color-accent, #84c559);
  color: #fff;
  border: 0;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.55rem 1rem;
  transition: background 0.15s ease, color 0.15s ease;
}

.wsf-main--shop .wsf-product-card__actions .button:hover,
.wsf-main--shop .wsf-product-card__actions .button:focus-visible,
.wsf-main--shop .wsf-product-card__actions a.button:hover,
.wsf-main--shop .wsf-product-card__actions a.button:focus-visible {
  background: #111 !important;
  color: #fff !important;
}

/* Breadcrumb sits above the two-column shop shell */
.wsf-main--shop > .wsf-breadcrumb,
.wsf-main--shop > .woocommerce-breadcrumb {
  width: min(100% - 2rem, var(--wsf-layout-max));
  max-width: var(--wsf-layout-max);
  margin: 0 auto 1rem;
}

@media (max-width: 900px) {
  .wsf-shop {
    grid-template-columns: 1fr;
  }

  .wsf-shop__sidebar {
    position: static;
    max-height: none;
    border-bottom: 1px solid var(--wsf-color-border);
    padding-bottom: 1rem;
    margin-bottom: 0.25rem;
  }
}

/* Shop toolbar */
.wsf-shop-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--wsf-space-4);
  margin-bottom: var(--wsf-space-6);
  padding-bottom: var(--wsf-space-4);
  border-bottom: 1px solid var(--wsf-color-border);
  font-size: 0.875rem;
  color: var(--wsf-color-muted);
}

.wsf-shop-toolbar .woocommerce-ordering select {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
  font: inherit;
}

/*
 * User shell — Live Raven green (#84C559) + white label; hover/active → black.
 * --wsf-header-accent is set inline from header chrome.
 */
.wsf-user-shell {
  --wsf-color-accent: var(--wsf-header-accent, #84c559);
  --wsf-color-accent-hover: #111111;
  --wsf-btn-primary: var(--wsf-header-accent, #84c559);
  --wsf-btn-primary-text: #ffffff;
  --wsf-btn-primary-hover: #111111;
}

/*
 * Global primary buttons (Live): green pill + white text → black on hover/focus/active.
 * Exceptions below: PayPal, secondary/outline variants, disabled Update.
 */
.wsf-user-shell .wsf-btn--primary,
.wsf-user-shell a.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline),
.wsf-user-shell button.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline),
.wsf-user-shell .woocommerce a.button,
.wsf-user-shell .woocommerce button.button,
.wsf-user-shell .woocommerce input.button,
.wsf-user-shell .woocommerce #respond input#submit,
.wsf-user-shell .woocommerce a.button.alt,
.wsf-user-shell .woocommerce button.button.alt,
.wsf-user-shell .single_add_to_cart_button,
.wsf-user-shell .return-to-shop .button,
.wsf-user-shell .coupon .button,
.wsf-user-shell .wc-proceed-to-checkout a.checkout-button,
.wsf-user-shell .wsf-block-hero__btn:not(.wsf-block-hero__btn--secondary),
.wsf-user-shell .wsf-block-cta__btn,
.wsf-user-shell .wsf-block-split__btn,
.wsf-user-shell .wsf-block-promos__btn,
.wsf-user-shell .wsf-block-products__btn,
.wsf-user-shell .wsf-block-products__actions .button,
.wsf-user-shell .wsf-block-contact-form__submit,
.wsf-user-shell .wsf-product-card__actions .button,
.wsf-user-shell .wsf-product-card__actions a.button {
  background: var(--wsf-btn-primary, #84c559) !important;
  background-color: var(--wsf-btn-primary, #84c559) !important;
  color: #fff !important;
  border-color: var(--wsf-btn-primary, #84c559) !important;
}

.wsf-user-shell .wsf-btn--primary:hover,
.wsf-user-shell .wsf-btn--primary:focus-visible,
.wsf-user-shell .wsf-btn--primary:active,
.wsf-user-shell a.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):hover,
.wsf-user-shell a.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):focus-visible,
.wsf-user-shell a.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):active,
.wsf-user-shell button.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):hover,
.wsf-user-shell button.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):focus-visible,
.wsf-user-shell button.wsf-btn:not(.wsf-btn--secondary):not(.wsf-btn--ghost):not(.wsf-btn--outline):active,
.wsf-user-shell .woocommerce a.button:hover,
.wsf-user-shell .woocommerce a.button:focus-visible,
.wsf-user-shell .woocommerce a.button:active,
.wsf-user-shell .woocommerce button.button:hover,
.wsf-user-shell .woocommerce button.button:focus-visible,
.wsf-user-shell .woocommerce button.button:active,
.wsf-user-shell .woocommerce input.button:hover,
.wsf-user-shell .woocommerce input.button:focus-visible,
.wsf-user-shell .woocommerce input.button:active,
.wsf-user-shell .woocommerce #respond input#submit:hover,
.wsf-user-shell .woocommerce a.button.alt:hover,
.wsf-user-shell .woocommerce button.button.alt:hover,
.wsf-user-shell .single_add_to_cart_button:hover,
.wsf-user-shell .single_add_to_cart_button:focus-visible,
.wsf-user-shell .single_add_to_cart_button:active,
.wsf-user-shell .return-to-shop .button:hover,
.wsf-user-shell .coupon .button:hover,
.wsf-user-shell .wc-proceed-to-checkout a.checkout-button:hover,
.wsf-user-shell .wc-proceed-to-checkout a.checkout-button:focus-visible,
.wsf-user-shell .wsf-block-hero__btn:not(.wsf-block-hero__btn--secondary):hover,
.wsf-user-shell .wsf-block-hero__btn:not(.wsf-block-hero__btn--secondary):focus-visible,
.wsf-user-shell .wsf-block-hero__btn:not(.wsf-block-hero__btn--secondary):active,
.wsf-user-shell .wsf-block-cta__btn:hover,
.wsf-user-shell .wsf-block-cta__btn:focus-visible,
.wsf-user-shell .wsf-block-cta__btn:active,
.wsf-user-shell .wsf-block-split__btn:hover,
.wsf-user-shell .wsf-block-split__btn:focus-visible,
.wsf-user-shell .wsf-block-split__btn:active,
.wsf-user-shell .wsf-block-promos__btn:hover,
.wsf-user-shell .wsf-block-promos__btn:focus-visible,
.wsf-user-shell .wsf-block-promos__btn:active,
.wsf-user-shell .wsf-block-products__btn:hover,
.wsf-user-shell .wsf-block-products__btn:focus-visible,
.wsf-user-shell .wsf-block-products__btn:active,
.wsf-user-shell .wsf-block-products__actions .button:hover,
.wsf-user-shell .wsf-block-products__actions .button:focus-visible,
.wsf-user-shell .wsf-block-products__actions .button:active,
.wsf-user-shell .wsf-block-contact-form__submit:hover,
.wsf-user-shell .wsf-block-contact-form__submit:focus-visible,
.wsf-user-shell .wsf-product-card__actions .button:hover,
.wsf-user-shell .wsf-product-card__actions .button:focus-visible,
.wsf-user-shell .wsf-product-card__actions .button:active,
.wsf-user-shell .wsf-product-card__actions a.button:hover,
.wsf-user-shell .wsf-product-card__actions a.button:focus-visible,
.wsf-user-shell .wsf-product-card__actions a.button:active {
  background: #111 !important;
  background-color: #111 !important;
  color: #fff !important;
  border-color: #111 !important;
  filter: none !important;
  box-shadow: none !important;
}

/* Disabled Update cart stays faded green (Live). */
.wsf-user-shell .actions > .button[name="update_cart"]:disabled,
.wsf-user-shell .actions > button[name="update_cart"]:disabled {
  background: #d9ecc4 !important;
  background-color: #d9ecc4 !important;
  color: #fff !important;
  border-color: transparent !important;
  cursor: default !important;
}

/* Breadcrumbs */
.wsf-breadcrumb {
  margin: 0 0 var(--wsf-space-4);
  padding-bottom: var(--wsf-space-3);
  font-size: 0.8125rem;
  color: var(--wsf-color-muted);
}

.wsf-breadcrumb a {
  color: var(--wsf-color-muted);
  text-decoration: none;
}

.wsf-breadcrumb a:hover,
.wsf-breadcrumb a:focus-visible {
  color: var(--wsf-color-text);
}

.wsf-breadcrumb__sep {
  margin-inline: 0.35rem;
  color: #9aa0a8;
}

/* Single product — live composition (vertical thumbs | buy box + share/safe) */
.wsf-main--product {
  background: #f6f7f8;
  padding-block: 1.25rem 2.5rem;
}

.wsf-main--product .wsf-container {
  max-width: min(100% - 2rem, var(--wsf-layout-max, 72rem));
}

.wsf-main--product .wsf-breadcrumb {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
}

/* Kill classic Woo floats — WSF owns the two-column shell. */
.wsf-main--product div.product::before,
.wsf-main--product div.product::after,
.wsf-main--product .wsf-product-top::before,
.wsf-main--product .wsf-product-top::after {
  display: none !important;
  content: none !important;
}

.wsf-main--product div.product .images,
.wsf-main--product div.product .summary,
.wsf-main--product div.product .woocommerce-product-gallery {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: none !important;
}

.wsf-product-top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem 2rem;
  align-items: start;
  margin-bottom: 2rem;
}

.wsf-product-top__gallery,
.wsf-product-top__summary {
  min-width: 0;
  width: 100%;
  margin: 0 !important;
}

@media (min-width: 900px) {
  .wsf-product-top {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 2rem 2.75rem;
  }

  .wsf-main--product.wsf-shell-designed .wsf-product-top {
    grid-template-columns: minmax(0, var(--wsf-shell-gallery-pct, 55%)) minmax(0, 1fr);
  }
}

/* Gallery — vertical thumbs LEFT | main image (kill Woo column % widths that clip thumbs) */
.wsf-product-top__gallery {
  position: relative;
  min-width: 0;
  overflow: visible;
}

.wsf-pdp-badge-new {
  position: absolute;
  top: 0.85rem;
  left: calc(5rem + 0.85rem + 0.5rem);
  z-index: 4;
  display: inline-block;
  padding: 0.28rem 0.65rem;
  background: #e21e1d;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.02em;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

.wsf-main--product .woocommerce-product-gallery {
  position: relative;
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  overflow: visible;
  opacity: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/*
 * Thumbs column (JS-wrapped) | main image.
 * Do NOT use grid-row: span N on the main slide — that invents empty rows and
 * leaves a huge white gap under the buy box before the tabs.
 */
.wsf-main--product .woocommerce-product-gallery__wrapper {
  display: flex !important;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.5rem 0.85rem;
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
}

/*
 * Thumb column is a fixed 5rem rail. Large full-size <img> files inside must
 * NOT expand it (flex default min-width:auto was letting thumbs “grow”).
 */
.wsf-main--product .wsf-gallery-thumbs {
  display: flex;
  flex-direction: column;
  flex: 0 0 5rem;
  width: 5rem;
  min-width: 5rem;
  max-width: 5rem;
  max-height: min(70vh, 560px);
  gap: 0.5rem;
  order: 1;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.wsf-main--product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
  position: relative;
  order: 2;
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--wsf-color-border, #e2e5ea);
  border-radius: 4px;
  overflow: hidden;
}

.wsf-main--product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child a {
  cursor: zoom-in;
}

/* Neutralise Woo `.columns-4` float/width — main slide only (not thumbs). */
.wsf-main--product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child,
.wsf-main--product .woocommerce-product-gallery--columns-4 .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff;
  box-sizing: border-box;
}

.wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image {
  flex: 0 0 5rem;
  width: 5rem !important;
  min-width: 5rem !important;
  max-width: 5rem !important;
  height: 5rem !important;
  min-height: 5rem !important;
  max-height: 5rem !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  cursor: pointer;
  border: 2px solid var(--wsf-color-border, #e2e5ea);
  border-radius: 6px;
  overflow: hidden;
  opacity: 0.95;
  background: #fff;
  box-sizing: border-box;
}

.wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image:hover,
.wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image.is-active {
  border-color: var(--wsf-color-accent, #84c559);
  opacity: 1;
}

.wsf-main--product .woocommerce-product-gallery__image a {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  overflow: hidden;
}

.wsf-main--product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: min(70vh, 560px);
  margin: 0 auto;
  object-fit: var(--wsf-shell-image-fit, contain);
}

.wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image img {
  display: block;
  width: 5rem !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 5rem !important;
  min-height: 0 !important;
  max-height: 100% !important;
  object-fit: cover;
  object-position: center;
  margin: 0 !important;
}

/* Hover lens zoom stays off (blurry base). Magnifier opens PhotoSwipe lightbox. */
.wsf-main--product .zoomImg {
  display: none !important;
}

.wsf-main--product .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 5;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.14);
  text-indent: -9999px;
  overflow: hidden;
  opacity: 0.92;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.wsf-main--product .woocommerce-product-gallery:hover .woocommerce-product-gallery__trigger,
.wsf-main--product .woocommerce-product-gallery__trigger:focus-visible {
  opacity: 1;
  transform: scale(1.04);
}

.wsf-main--product .woocommerce-product-gallery__trigger::before {
  content: '';
  position: absolute;
  top: 0.45rem;
  left: 0.45rem;
  width: 0.78rem;
  height: 0.78rem;
  border: 2px solid #222;
  border-radius: 50%;
  box-sizing: border-box;
}

.wsf-main--product .woocommerce-product-gallery__trigger::after {
  content: '';
  position: absolute;
  width: 0.45rem;
  height: 2px;
  background: #222;
  border-radius: 1px;
  transform: rotate(45deg);
  top: 1.35rem;
  left: 1.2rem;
}

/* Prev / next on the main image (live-like), without Flexslider. */
.wsf-gallery-nav {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 5px rgba(15, 23, 42, 0.16);
  color: #222;
  cursor: pointer;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.wsf-main--product .woocommerce-product-gallery:hover .wsf-gallery-nav,
.wsf-main--product .wsf-gallery-nav:focus-visible {
  opacity: 1;
  pointer-events: auto;
}

.wsf-gallery-nav:hover {
  background: #fff;
}

.wsf-gallery-nav--prev {
  left: 0.65rem;
}

.wsf-gallery-nav--next {
  right: 0.65rem;
}

.wsf-gallery-nav::before {
  content: '';
  width: 0.55rem;
  height: 0.55rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  box-sizing: border-box;
}

.wsf-gallery-nav--prev::before {
  transform: rotate(-135deg);
  margin-left: 0.15rem;
}

.wsf-gallery-nav--next::before {
  transform: rotate(45deg);
  margin-right: 0.15rem;
}

.wsf-main--product .woocommerce-product-gallery__image img {
  image-rendering: auto;
}

@media (max-width: 700px) {
  .wsf-pdp-badge-new {
    left: 0.75rem;
  }

  /* Touch: keep arrows tappable without requiring hover. */
  .wsf-gallery-nav {
    opacity: 0.9;
    pointer-events: auto;
  }

  .wsf-main--product .woocommerce-product-gallery__wrapper {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .wsf-main--product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child {
    order: 1;
    flex: 1 1 100%;
    width: 100% !important;
    max-width: 100% !important;
  }

  .wsf-main--product .wsf-gallery-thumbs {
    order: 2;
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: none;
    flex-direction: row;
    flex-wrap: wrap;
    overflow: visible;
  }

  .wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image {
    flex: 0 0 calc(25% - 0.4rem);
    width: calc(25% - 0.4rem) !important;
    min-width: 0 !important;
    max-width: calc(25% - 0.4rem) !important;
    height: 4.5rem !important;
    min-height: 4.5rem !important;
    max-height: 4.5rem !important;
  }

  .wsf-main--product .wsf-gallery-thumbs .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: 4.5rem !important;
    max-height: 4.5rem !important;
  }
}

.wsf-main--product span.onsale {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  min-width: 3rem;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: var(--wsf-color-sale, #e11d48);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

/* Buy box (right column) — live-like hierarchy */
.wsf-main--product .summary.entry-summary,
.wsf-main--product .wsf-product-top__summary {
  padding: 0.15rem 0 0;
  color: var(--wsf-color-text, #111);
}

/*
 * Store-wide type: Poppins headings (--wsf-font-heading), Inter body (--wsf-font-sans).
 * Same stack as Home `.wsf-block__title` — do not hardcode a different face on PDP.
 */
.wsf-main--product .product_title {
  margin: 0 0 0.65rem;
  font-family: "Poppins", var(--wsf-font-heading, var(--wsf-font-sans, system-ui, sans-serif));
  font-size: var(--wsf-shell-title-size, clamp(1.5rem, 1.15rem + 1.2vw, 2rem));
  /* Home headings use 400 for crisp Poppins; 600 keeps product names clear without heavy blobbing. */
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--wsf-color-text, #111);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.wsf-main--product .price {
  display: block;
  margin: 0 0 0.85rem;
  font-family: var(--wsf-font-sans, "Inter", system-ui, sans-serif);
  font-size: var(--wsf-shell-price-size, 1.5rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #111 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.wsf-main--product .price .amount,
.wsf-main--product .price .woocommerce-Price-amount {
  font-family: inherit;
  color: #111 !important;
}

.wsf-main--product .price del {
  color: var(--wsf-color-muted, #222222);
  font-weight: 500;
  font-size: 0.85em;
  margin-right: 0.35rem;
}

.wsf-main--product .price ins {
  text-decoration: none;
}

.wsf-main--product .woocommerce-product-details__short-description {
  margin: 0 0 1rem;
  color: var(--wsf-color-muted, #222222);
  font-size: 0.975rem;
  line-height: 1.55;
}

.wsf-main--product .woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}

.wsf-main--product .stock {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 1rem;
  padding: 0;
  border-radius: 0;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0;
  background: transparent;
}

.wsf-main--product .stock.in-stock {
  background: transparent;
  color: #16a34a;
}

.wsf-main--product .stock.in-stock::before {
  content: "✓";
  font-weight: 700;
}

.wsf-main--product .stock.out-of-stock {
  background: transparent;
  color: #b91c1c;
}

/*
 * Cart / ATC — global for EVERY product type.
 * Simple: form is the qty+ATC row.
 * Variable: form is a column; qty+ATC live in .variations_button.
 */
.wsf-main--product form.cart:not(.variations_form) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.65rem;
  margin: 0.15rem 0 0.85rem;
}

.wsf-main--product form.variations_form.cart {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  margin: 0.15rem 0 0.85rem;
}

.wsf-main--product form.cart .quantity {
  margin: 0 !important;
  flex: 0 0 auto;
}

.wsf-main--product form.cart .quantity .qty {
  width: 4.5rem;
  min-height: 3rem;
  padding: 0.55rem 0.5rem;
  border: 1px solid var(--wsf-color-border, #e2e5ea);
  border-radius: 999px;
  font: inherit;
  text-align: center;
  background: #fff;
}

/* Qty + ATC row (variable products) */
.wsf-main--product .woocommerce-variation-add-to-cart,
.wsf-main--product .variations_button {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.65rem;
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
}

/* Collapse empty variation price/availability slot (big white gap above ATC). */
.wsf-main--product .single_variation_wrap {
  margin: 0;
  padding: 0;
}

.wsf-main--product .woocommerce-variation.single_variation {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wsf-main--product .woocommerce-variation.single_variation:empty,
.wsf-main--product .woocommerce-variation.single_variation.is-empty,
.wsf-main--product .woocommerce-variation.single_variation[hidden] {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.wsf-main--product .single_add_to_cart_button,
.wsf-main--product .single_add_to_cart_button.button,
.wsf-main--product .single_add_to_cart_button.button.alt,
.wsf-main--product form.cart .single_add_to_cart_button {
  flex: 1 1 12rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 3rem !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.75rem 1.75rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: var(--wsf-color-accent, #84c559) !important;
  color: #fff !important;
  font-family: var(--wsf-font-sans) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  line-height: 1.2 !important;
  letter-spacing: 0.01em;
  text-transform: none !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background 0.15s ease, filter 0.15s ease;
}

.wsf-main--product .single_add_to_cart_button:hover,
.wsf-main--product .single_add_to_cart_button.button.alt:hover,
.wsf-main--product .single_add_to_cart_button:focus-visible,
.wsf-main--product .single_add_to_cart_button:active {
  background: #111 !important;
  filter: none;
  color: #fff !important;
}

/*
 * Notify me — do NOT share ATC `flex: 1 1 12rem`. In a column form that flex
 * basis applies to HEIGHT and turns the pill into a tall oval.
 */
.wsf-main--product .wsf-back-in-stock__form .wsf-btn {
  flex: 0 0 auto !important;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  height: auto;
  min-height: 2.75rem;
  padding: 0.7rem 1.6rem;
  border: none;
  border-radius: 999px;
  background: var(--wsf-color-accent, #84c559) !important;
  color: #fff !important;
  font-family: var(--wsf-font-sans);
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  text-transform: none;
  cursor: pointer;
  transition: background 0.15s ease, filter 0.15s ease;
}

.wsf-main--product .wsf-back-in-stock__form .wsf-btn:hover,
.wsf-main--product .wsf-back-in-stock__form .wsf-btn:focus-visible,
.wsf-main--product .wsf-back-in-stock__form .wsf-btn:active {
  background: #111 !important;
  filter: none;
  color: #fff !important;
}

/* Social share + safe checkout (live buy-box extras) */
.wsf-pdp-meta {
  border-top: 0;
  padding-top: 0.25rem;
  margin-top: 0.5rem;
}

.wsf-pdp-share {
  margin: 1.1rem 0 1rem;
}

.wsf-pdp-share__label {
  display: block;
  margin-bottom: 0.55rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #111;
}

.wsf-pdp-share__buttons {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem;
  overflow-x: auto;
  max-width: 100%;
  padding-bottom: 0.15rem;
}

.wsf-pdp-share__btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  color: #fff !important;
  text-decoration: none !important;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.wsf-pdp-share__btn:hover {
  opacity: 0.92;
  transform: translateY(-1px);
  color: #fff !important;
}

.wsf-pdp-share__btn--facebook { background: #1877f2; }
.wsf-pdp-share__btn--x { background: #111; }
.wsf-pdp-share__btn--linkedin { background: #0a66c2; }
.wsf-pdp-share__btn--pinterest { background: #e60023; }
.wsf-pdp-share__btn--discord { background: #5865f2; }

.wsf-pdp-trustpilot {
  margin: 1.1rem 0 0.65rem;
  font-size: 0.875rem;
  color: var(--wsf-color-muted, #444);
  line-height: 1.45;
}

/* Live Shoptimizer fieldset: legend sits on the top border, trust strip inside. */
.wsf-pdp-safe {
  margin: 0.35rem 0 0;
  padding: 0.55rem 0.65rem 0.45rem;
  border: 1px solid #c5c9d0;
  border-radius: 2px;
  background: #f3f4f6;
  min-inline-size: 0;
}

.wsf-pdp-safe__title {
  margin-inline: auto;
  padding: 0 0.7rem;
  float: none;
  width: auto;
  font-family: "Poppins", var(--wsf-font-heading, var(--wsf-font-sans, system-ui, sans-serif));
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  color: #1b2a4a;
  text-align: center;
}

.wsf-pdp-safe__strip {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0.15rem auto 0;
}

.wsf-pdp-safe__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.35rem 0 0.15rem;
}

.wsf-main--product table.variations {
  margin: 0;
  width: 100%;
  border-collapse: collapse;
}

.wsf-main--product table.variations th.label {
  padding: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--wsf-color-text);
  text-align: left;
  vertical-align: top;
}

.wsf-main--product table.variations td.value {
  position: relative;
  padding: 0 0 0.25rem;
}

.wsf-main--product .reset_variations {
  display: inline-block;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: var(--wsf-color-muted);
}

.wsf-main--product .single_variation_wrap .woocommerce-variation-price {
  margin: 0 0 0.45rem;
}

.wsf-main--product .product_meta {
  margin-top: 0.75rem;
  padding-top: 0;
  border-top: 0;
  font-size: 0.8125rem;
  color: var(--wsf-color-muted);
  line-height: 1.6;
}

.wsf-main--product .product_meta > span {
  display: block;
}

.wsf-main--product .product_meta a {
  color: var(--wsf-color-text);
  text-decoration: none;
}

.wsf-main--product .product_meta a:hover {
  color: var(--wsf-color-accent);
}

/* Tabs — live: centered labels, accent underline, open panel */
.wsf-main--product .woocommerce-tabs {
  margin-bottom: var(--wsf-space-8);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.wsf-main--product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--wsf-color-border);
  background: transparent;
}

.wsf-main--product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}

.wsf-main--product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.85rem 1.15rem;
  color: var(--wsf-color-muted);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}

.wsf-main--product .woocommerce-tabs ul.tabs li.active a,
.wsf-main--product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--wsf-color-text);
  border-bottom-color: var(--wsf-color-accent, #84c559);
  background: transparent;
}

.wsf-main--product .woocommerce-tabs .panel {
  padding: 1.25rem 1.35rem 1.5rem;
  color: var(--wsf-color-text);
  font-size: 0.9375rem;
  line-height: 1.6;
}

.wsf-main--product .woocommerce-tabs .panel::after {
  content: '';
  display: table;
  clear: both;
}

/*
 * Description images — center by default on EVERY product.
 * Migrated Shopify HTML often has bare <img> with no aligncenter class.
 */
.wsf-main--product .woocommerce-tabs .panel img:not(.alignleft):not(.alignright),
.wsf-main--product .woocommerce-Tabs-panel img:not(.alignleft):not(.alignright) {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  height: auto;
}

.wsf-main--product .woocommerce-tabs .panel img.alignleft,
.wsf-main--product .woocommerce-Tabs-panel img.alignleft {
  margin-left: 0;
  margin-right: 1.25em;
}

.wsf-main--product .woocommerce-tabs .panel img.alignright,
.wsf-main--product .woocommerce-Tabs-panel img.alignright {
  margin-right: 0;
  margin-left: 1.25em;
}

.wsf-main--product .woocommerce-tabs .panel h2:first-child {
  display: none;
}

/* Related / upsells — always one row of 4 on desktop (not the default 3+1 wrap). */
.wsf-main--product .related.products,
.wsf-main--product .up-sells {
  margin-top: 0;
  clear: both;
}

.wsf-main--product .related.products > h2,
.wsf-main--product .up-sells > h2 {
  margin: 0 0 1.15rem;
  font-family: var(--wsf-font-heading, var(--wsf-font-sans));
  font-size: clamp(1.35rem, 1rem + 0.8vw, 1.65rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: center;
  color: var(--wsf-color-text);
}

.wsf-main--product .related.products .wsf-product-grid,
.wsf-main--product .up-sells .wsf-product-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (min-width: 768px) {
  .wsf-main--product .related.products .wsf-product-grid,
  .wsf-main--product .up-sells .wsf-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.15rem;
  }
}

.wsf-main--product .related.products .wsf-product-card__media,
.wsf-main--product .up-sells .wsf-product-card__media {
  background: #fff;
}

.wsf-main--product .related.products .wsf-product-card__title,
.wsf-main--product .up-sells .wsf-product-card__title {
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;
}

.wsf-main--product .related.products .wsf-product-card__price,
.wsf-main--product .up-sells .wsf-product-card__price {
  text-align: center;
}

/* User mode — green borders on related/upsell cards (same taste as Home grid). */
.wsf-user-shell .wsf-main--product .wsf-product-card {
  border-color: var(--wsf-color-accent, #84c559);
}

.wsf-user-shell .wsf-main--product .wsf-product-card:hover,
.wsf-user-shell .wsf-main--product .wsf-product-card:focus-within {
  border-color: #3f6212;
  box-shadow: 0 4px 14px rgba(63, 98, 18, 0.12);
}

/* Variation image / text selectors */
.wsf-variation-select {
  margin: 0 0 0.25rem;
}

.wsf-variation-select__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.wsf-variation-select__btn {
  margin: 0;
  padding: 0;
  border: 2px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
  background: var(--wsf-color-surface);
  cursor: pointer;
  line-height: 1.2;
  font: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.wsf-variation-select__btn:hover {
  border-color: var(--wsf-color-accent);
}

.wsf-variation-select__btn.is-selected {
  border-color: var(--wsf-color-accent);
  box-shadow: 0 0 0 1px var(--wsf-color-accent);
}

.wsf-variation-select__btn--image {
  width: 4.5rem;
  height: 4.5rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wsf-variation-select__btn--image .wsf-variation-select__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wsf-variation-select__btn--text {
  padding: 0.45rem 0.85rem;
  min-height: 2.5rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.wsf-variation-select__native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.wsf-main--product table.variations td.value {
  position: relative;
}

/* Back in stock */
.wsf-back-in-stock {
  margin-top: 1rem;
  width: 100%;
  max-width: 100%;
  padding: 1rem 1.1rem;
  background: var(--wsf-color-surface, #f7f8fa);
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  box-sizing: border-box;
}

.wsf-back-in-stock--hidden {
  display: none !important;
}

.wsf-back-in-stock__title {
  margin: 0 0 0.45rem;
  font-size: 1rem;
  font-weight: 700;
}

.wsf-back-in-stock__lead,
.wsf-back-in-stock__fine-print {
  margin: 0 0 0.75rem;
  color: var(--wsf-color-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

.wsf-back-in-stock__fine-print {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
}

.wsf-back-in-stock__form {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  width: 100%;
  max-width: 100%;
}

.wsf-back-in-stock__fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}

.wsf-back-in-stock__fields input[type="text"],
.wsf-back-in-stock__fields input[type="email"] {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
  font: inherit;
  background: #fff;
}

.wsf-back-in-stock__form .wsf-btn {
  align-self: flex-start;
  width: auto !important;
}

.wsf-back-in-stock__fields input[type="text"]:focus,
.wsf-back-in-stock__fields input[type="email"]:focus {
  outline: 2px solid var(--wsf-color-accent);
  outline-offset: 1px;
}

/* Trust strip */
.wsf-trust__grid {
  display: grid;
  gap: var(--wsf-space-6);
}

@media (min-width: 768px) {
  .wsf-trust__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.wsf-trust__item {
  padding: var(--wsf-space-6);
  background: var(--wsf-color-surface);
  border: 1px solid var(--wsf-color-border);
  border-radius: var(--wsf-radius);
}

.wsf-trust__item h3 {
  margin: 0 0 var(--wsf-space-2);
  font-size: 1rem;
}

.wsf-trust__item p {
  margin: 0;
  color: var(--wsf-color-muted);
  font-size: 0.9375rem;
}

/* Cart / checkout / account — classic Woo shell (live Raven look) */
.wsf-main--cart,
.wsf-main--checkout,
.wsf-main--account {
  padding-block: 1.5rem 2.75rem;
}

/* Center cart/checkout content (not stuck to the left edge). */
body.woocommerce-cart .wsf-main--cart > .wsf-page > .wsf-page-tokens,
body.woocommerce-checkout .wsf-main--checkout > .wsf-page > .wsf-page-tokens,
.wsf-main--cart > .wsf-page > .wsf-page-tokens,
.wsf-main--checkout > .wsf-page > .wsf-page-tokens {
  width: min(100% - 2.5rem, 72rem);
  max-width: 72rem;
  margin-inline: auto;
  box-sizing: border-box;
}

.wsf-main--cart .wsf-woo-shell-title,
.wsf-main--checkout .wsf-woo-shell-title,
.wsf-main--account .wsf-woo-shell-title {
  margin: 0 0 1.15rem;
  /* Same Poppins heading stack as Track Order / Home / Map titles */
  font-family: var(--wsf-font-heading, "Poppins", var(--wsf-font-sans, system-ui, sans-serif));
  font-size: clamp(1.15rem, 1.5vw + 0.85rem, 1.875rem);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--wsf-color-text, #1a1d21);
  text-align: center;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Cart title — centered over the progress rail */
body.woocommerce-cart .wsf-main .wsf-woo-shell-title,
.wsf-main--cart .wsf-woo-shell-title {
  text-align: center;
  margin: 0 0 0.85rem;
  font-family: var(--wsf-font-heading, "Poppins", var(--wsf-font-sans, system-ui, sans-serif));
  font-weight: 400;
  color: var(--wsf-color-text, #1a1d21);
  text-transform: none;
  letter-spacing: -0.01em;
}

/* Live checkout: progress only (no page H1 above the rail). */
body.woocommerce-checkout .wsf-main .wsf-woo-shell-title,
.wsf-main--checkout .wsf-woo-shell-title {
  display: none !important;
}

/* ——— Checkout progress (Live: circle centered on each label) ———
   Full width of cart shell (= items + subtotal box). Each step is 1/3;
   node is 1fr | circle | 1fr so the number sits over the label center.
   Rail starts at bin column (left edge) and ends at subtotal box right. */
.wsf-checkout-progress {
  display: flex;
  align-items: flex-start;
  list-style: none;
  margin: 0 0 1.85rem;
  padding: 0;
  max-width: none;
  width: 100%;
  gap: 0;
  box-sizing: border-box;
}

.wsf-checkout-progress__step {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #9ca3af;
}

.wsf-checkout-progress__node {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: 100%;
  min-height: 1.65rem;
}

.wsf-checkout-progress__seg {
  display: block;
  height: 2px;
  width: 100%;
  min-width: 0;
  margin: 0;
  background: #d1d5db;
  border: 0;
}

.wsf-checkout-progress__seg.is-done {
  background: #84c559;
}

/* Green from bin-aligned left edge through to circle 1. */
.wsf-checkout-progress__seg--before.is-lead {
  background: #84c559;
}

.wsf-checkout-progress__seg--before.is-lead::after {
  content: none;
  display: none;
}

/* Tail after step 3 — line continues to right edge of subtotal column. */
.wsf-checkout-progress__seg--after.is-tail {
  background: #d1d5db;
}

.wsf-checkout-progress__index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  margin: 0;
  border-radius: 999px;
  border: 2px solid #d1d5db;
  background: #fff;
  color: #9ca3af;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  z-index: 1;
}

.wsf-checkout-progress__step.is-current .wsf-checkout-progress__index,
.wsf-checkout-progress__step.is-done .wsf-checkout-progress__index {
  border-color: #111;
  background: #111;
  color: #fff;
}

.wsf-checkout-progress__label {
  display: block;
  width: 100%;
  margin: 0.5rem 0 0;
  padding: 0 0.25rem;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.25;
  color: #9ca3af;
  max-width: none;
  box-sizing: border-box;
}

.wsf-checkout-progress__step.is-current .wsf-checkout-progress__label,
.wsf-checkout-progress__step.is-done .wsf-checkout-progress__label {
  color: #111;
  font-weight: 600;
}

/* Cart only: green halfway toward step 2. On checkout the 1→2 rail is fully green. */
body.woocommerce-cart .wsf-checkout-progress__step.is-current .wsf-checkout-progress__seg--after:not(.is-tail) {
  background: linear-gradient(to right, #84c559 0 50%, #d1d5db 50% 100%);
}

.wsf-main--cart .woocommerce,
.wsf-main--checkout .woocommerce,
.wsf-main--account .woocommerce {
  max-width: min(100%, var(--wsf-layout-max, 72rem));
  margin-inline: auto;
}

.wsf-main--cart.wsf-shell-designed,
.wsf-main--checkout.wsf-shell-designed,
.wsf-main--account.wsf-shell-designed,
.wsf-main--shop.wsf-shell-designed {
  background: var(--wsf-shell-surface, var(--wsf-color-bg, #fff));
  color: var(--wsf-color-text);
}

.wsf-main--shop.wsf-shell-designed .wsf-container,
.wsf-main--cart.wsf-shell-designed .wsf-container,
.wsf-main--checkout.wsf-shell-designed .wsf-container,
.wsf-main--account.wsf-shell-designed .wsf-container {
  max-width: min(100% - 2rem, var(--wsf-layout-max, 72rem));
}

@media (min-width: 1024px) {
  .wsf-main--shop.wsf-shell-designed .wsf-product-grid {
    grid-template-columns: repeat(var(--wsf-shell-columns, 4), minmax(0, 1fr));
    gap: var(--wsf-shell-gap, var(--wsf-space-6));
  }
}

/* Empty cart — classic message + Return to shop */
.wsf-main--cart .cart-empty.woocommerce-info,
.wsf-main--cart .wc-empty-cart-message .cart-empty {
  margin: 0 0 1.25rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--wsf-color-border, #e2e5ea);
  border-radius: 8px;
  background: #f7f8fa;
  color: var(--wsf-color-text, #111);
  font-size: 1rem;
  font-weight: 600;
  box-shadow: var(--wsf-shadow-card, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.wsf-main--cart .return-to-shop {
  margin: 0;
}

.wsf-main--cart .return-to-shop .button,
.wsf-main--cart .return-to-shop a.button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  padding: 0.7rem 1.5rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: var(--wsf-color-accent, #84c559) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 0.9375rem !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.wsf-main--cart .return-to-shop .button:hover,
.wsf-main--cart .return-to-shop .button:focus-visible,
.wsf-main--cart .return-to-shop .button:active {
  background: #111 !important;
  color: #fff !important;
}

/*
 * Filled cart — Live list rows (not classic PRODUCT/PRICE table).
 * Scope with body.woocommerce-cart as well so styles still win if main
 * loses .wsf-main--cart (shortcode-only / template edge cases).
 */
body.woocommerce-cart .wsf-main .woocommerce-cart-form,
.wsf-main--cart .woocommerce-cart-form {
  margin: 0 0 1.5rem;
}

body.woocommerce-cart .wsf-main table.shop_table.cart,
body.woocommerce-cart .wsf-main table.shop_table,
.wsf-main--cart table.shop_table {
  width: 100%;
  border: 0 !important;
  border-radius: 0 !important;
  border-collapse: collapse;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible;
}

body.woocommerce-cart .wsf-main table.shop_table thead,
.wsf-main--cart table.shop_table thead {
  display: none !important;
}

body.woocommerce-cart .wsf-main table.shop_table tbody,
.wsf-main--cart table.shop_table tbody {
  display: block;
  width: 100%;
}

body.woocommerce-cart .wsf-main table.shop_table tbody tr.cart_item,
.wsf-main--cart table.shop_table tbody tr.cart_item {
  display: grid;
  grid-template-columns: 1.5rem 3.75rem minmax(0, 1fr) auto auto;
  column-gap: 0.85rem;
  row-gap: 0.35rem;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0.95rem 0;
  border-bottom: 1px solid #e5e7eb;
  background: transparent;
}

body.woocommerce-cart .wsf-main table.shop_table tbody tr.cart_item td,
.wsf-main--cart table.shop_table tbody tr.cart_item td {
  display: block;
  width: auto;
  padding: 0;
  border: 0;
  background: transparent;
  vertical-align: middle;
}

body.woocommerce-cart .wsf-main table.shop_table .product-remove,
.wsf-main--cart table.shop_table .product-remove {
  grid-column: 1;
  grid-row: 1;
}

body.woocommerce-cart .wsf-main table.shop_table .product-thumbnail,
.wsf-main--cart table.shop_table .product-thumbnail {
  grid-column: 2;
  grid-row: 1;
}

body.woocommerce-cart .wsf-main table.shop_table .product-name,
.wsf-main--cart table.shop_table .product-name {
  grid-column: 3;
  grid-row: 1;
  min-width: 0;
}

body.woocommerce-cart .wsf-main table.shop_table .product-price,
.wsf-main--cart table.shop_table .product-price {
  display: none !important;
}

body.woocommerce-cart .wsf-main table.shop_table .product-quantity,
.wsf-main--cart table.shop_table .product-quantity {
  grid-column: 4;
  grid-row: 1;
  justify-self: end;
}

body.woocommerce-cart .wsf-main table.shop_table .product-subtotal,
.wsf-main--cart table.shop_table .product-subtotal {
  grid-column: 5;
  grid-row: 1;
  justify-self: end;
  font-weight: 700;
  color: #111;
  white-space: nowrap;
}

.wsf-main--cart table.shop_table img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.wsf-main--cart .product-name a {
  color: #111 !important;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
}

.wsf-main--cart .product-name a:hover {
  color: #111 !important;
  text-decoration: underline;
}

.wsf-main--cart .product-name .variation,
.wsf-main--cart .product-name dl.variation {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  color: #6b7280;
}

.wsf-main--cart .wsf-qty,
.wsf-main--cart .product-quantity .quantity {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.wsf-main--cart .wsf-qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2.15rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9ca3af;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.wsf-main--cart .wsf-qty-btn:hover {
  color: #111;
  background: #f3f4f6;
}

.wsf-main--cart .product-quantity .quantity .qty {
  width: 2.25rem;
  min-height: 2.15rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb;
  border-radius: 0;
  background: #fff;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: #111;
  -moz-appearance: textfield;
  appearance: textfield;
}

.wsf-main--cart .product-quantity .quantity .qty::-webkit-outer-spin-button,
.wsf-main--cart .product-quantity .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.wsf-main--cart table.shop_table tr:has(> td.actions),
.wsf-main--cart table.shop_table td.actions {
  display: block;
  width: 100%;
  grid-column: 1 / -1;
}

.wsf-main--cart .actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 1.15rem 0 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.wsf-main--cart .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  flex: 1 1 auto;
}

.wsf-main--cart .coupon .input-text {
  min-height: 2.65rem;
  min-width: 11rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font: inherit;
}

body.woocommerce-cart .wsf-main .coupon .button,
.wsf-main--cart .coupon .button {
  min-height: 2.65rem;
  padding: 0.55rem 1.35rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: #84c559 !important;
  color: #fff !important;
  font-weight: 700 !important;
}

.wsf-main--cart .coupon .button:hover,
.wsf-main--cart .coupon .button:focus-visible,
.wsf-main--cart .coupon .button:active {
  background: #111 !important;
  color: #fff !important;
}

.wsf-main--cart .actions > .button[name="update_cart"],
.wsf-main--cart .actions > button[name="update_cart"] {
  min-height: 2.65rem;
  padding: 0.55rem 1.35rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: #c5e6a8 !important;
  color: #fff !important;
  font-weight: 700 !important;
}

.wsf-main--cart .actions > .button[name="update_cart"]:disabled,
.wsf-main--cart .actions > button[name="update_cart"]:disabled {
  opacity: 1;
  background: #d9ecc4 !important;
  color: #fff !important;
  cursor: default;
}

.wsf-main--cart .cart-collaterals {
  margin-top: 0.5rem;
}

.wsf-main--cart .cart_totals {
  width: 100%;
  max-width: none;
  margin-left: 0;
  padding: 1.5rem 1.6rem 1.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  box-sizing: border-box;
}

body.woocommerce-cart .wsf-main .cart_totals > h2,
.wsf-main--cart .cart_totals > h2 {
  display: none !important;
}

.wsf-main--cart .cart_totals table {
  width: 100%;
  margin: 0 0 1.25rem;
  border: 0;
  border-collapse: collapse;
}

.wsf-main--cart .cart_totals th,
.wsf-main--cart .cart_totals td {
  padding: 0.85rem 0;
  border-top: 1px solid #e5e7eb;
  font-size: 0.95rem;
  vertical-align: top;
}

.wsf-main--cart .cart_totals th {
  text-align: left;
  font-weight: 600;
  color: #111;
  padding-right: 1rem;
  width: 35%;
}

.wsf-main--cart .cart_totals td {
  text-align: right;
  color: #111;
}

.wsf-main--cart .cart_totals tr:first-child th,
.wsf-main--cart .cart_totals tr:first-child td {
  border-top: 0;
  padding-top: 0.15rem;
}

.wsf-main--cart .cart_totals .order-total th,
.wsf-main--cart .cart_totals .order-total td {
  font-size: 1.1rem;
  font-weight: 700;
  padding-top: 1rem;
}

.wsf-main--cart .cart_totals .order-total .includes_tax,
.wsf-main--cart .cart_totals .order-total small {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #6b7280;
}

.wsf-main--cart .cart_totals .shipping td {
  text-align: right;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #374151;
}

.wsf-main--cart .wc-proceed-to-checkout {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  width: 100%;
}

.wsf-main--cart .wc-proceed-to-checkout .ppc-button-wrapper,
.wsf-main--cart .wc-proceed-to-checkout .paypal-buttons {
  margin-top: 0.15rem;
}

.wsf-main--cart .wc-proceed-to-checkout > * {
  max-width: 100%;
}

/* PayPal / express widgets need full sidebar width */
.wsf-main--cart .wc-proceed-to-checkout .paypal-buttons,
.wsf-main--cart .wc-proceed-to-checkout iframe,
.wsf-main--cart .cart_totals .paypal-buttons,
.wsf-main--cart .cart_totals [id*="paypal"],
.wsf-main--cart .cart_totals .ppc-button-wrapper {
  width: 100% !important;
  max-width: 100% !important;
}

body.woocommerce-cart .wsf-main .wc-proceed-to-checkout a.checkout-button,
.wsf-main--cart .wc-proceed-to-checkout a.checkout-button,
.wsf-main--checkout #place_order,
.wsf-main--account .woocommerce-Button,
.wsf-main--account button.button,
.wsf-main--account .woocommerce-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 3rem !important;
  margin: 0 !important;
  padding: 0.8rem 1.5rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: #84c559 !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;
}

body.woocommerce-cart .wsf-main .wc-proceed-to-checkout a.checkout-button::before,
.wsf-main--cart .wc-proceed-to-checkout a.checkout-button::before {
  content: "";
  display: inline-block;
  width: 0.95rem;
  height: 0.95rem;
  margin-right: 0.15rem;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17 8h-1V6a4 4 0 10-8 0v2H7a2 2 0 00-2 2v8a2 2 0 002 2h10a2 2 0 002-2v-8a2 2 0 00-2-2zm-7-2a2 2 0 114 0v2h-4V6zm7 12H7v-8h10v8z'/%3E%3C/svg%3E");
}

body.woocommerce-cart .wsf-main .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart .wsf-main .wc-proceed-to-checkout a.checkout-button:focus-visible,
body.woocommerce-cart .wsf-main .wc-proceed-to-checkout a.checkout-button:active,
.wsf-main--cart .wc-proceed-to-checkout a.checkout-button:hover,
.wsf-main--cart .wc-proceed-to-checkout a.checkout-button:focus-visible,
.wsf-main--cart .wc-proceed-to-checkout a.checkout-button:active,
.wsf-main--checkout #place_order:hover,
.wsf-main--checkout #place_order:focus-visible,
.wsf-main--account .woocommerce-Button:hover,
.wsf-main--account button.button:hover {
  background: #111 !important;
  color: #fff !important;
}

/* Shipping row — Live “Shipment”; no blue link/truck accents */
body.woocommerce-cart .wsf-main .cart_totals .woocommerce-shipping-totals th,
.wsf-main--cart .cart_totals .woocommerce-shipping-totals th,
body.woocommerce-cart .wsf-main .cart_totals .shipping th,
.wsf-main--cart .cart_totals .shipping th {
  color: #111;
  font-weight: 600;
}

body.woocommerce-cart .wsf-main .cart_totals .shipping a,
.wsf-main--cart .cart_totals .shipping a,
body.woocommerce-cart .wsf-main .cart_totals .woocommerce-shipping-calculator-button,
.wsf-main--cart .cart_totals .woocommerce-shipping-calculator-button {
  color: #374151 !important;
  text-decoration: underline !important;
  font-weight: 500;
}

body.woocommerce-cart .wsf-main .cart_totals .shipping a:hover,
.wsf-main--cart .cart_totals .shipping a:hover {
  color: #111 !important;
}

/* Hide plugin truck / blue shipping icons in cart totals */
body.woocommerce-cart .wsf-main .cart_totals .shipping img,
.wsf-main--cart .cart_totals .shipping img,
body.woocommerce-cart .wsf-main .cart_totals .shipping .fa-truck,
.wsf-main--cart .cart_totals .shipping .fa-truck,
body.woocommerce-cart .wsf-main .cart_totals .shipping [class*="truck"],
.wsf-main--cart .cart_totals .shipping [class*="truck"] {
  display: none !important;
}

/* Trust strip — Live badge row under PayPal / express buttons */
.wsf-cart-trust {
  display: block;
  width: 100%;
  margin: 1rem 0 0;
  padding: 0;
  order: 999;
}

.wsf-cart-trust__strip {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.wsf-main--cart .cart_totals .wsf-cart-trust,
.wsf-main--cart .wc-proceed-to-checkout .wsf-cart-trust {
  margin-top: 1rem;
}

@media (max-width: 700px) {
  .wsf-main--cart table.shop_table tbody tr.cart_item {
    grid-template-columns: 1.75rem 3.5rem minmax(0, 1fr);
    grid-template-areas:
      "remove thumb name"
      "remove thumb qty"
      "remove thumb price";
  }

  .wsf-main--cart table.shop_table .product-remove { grid-area: remove; }
  .wsf-main--cart table.shop_table .product-thumbnail { grid-area: thumb; }
  .wsf-main--cart table.shop_table .product-name { grid-area: name; }
  .wsf-main--cart table.shop_table .product-quantity {
    grid-area: qty;
    justify-self: start;
  }
  .wsf-main--cart table.shop_table .product-subtotal {
    grid-area: price;
    justify-self: start;
  }
}

@media (min-width: 960px) {
  .wsf-main--cart .woocommerce {
    display: grid;
    /* Left list + roomy totals/payment column (was squeezed at 0.7fr). */
    /* Live-ish: ~65% items / ~35% totals */
    grid-template-columns: minmax(0, 1.65fr) minmax(20rem, 24rem);
    gap: 2rem 2.75rem;
    align-items: start;
    width: 100%;
  }

  .wsf-main--cart .woocommerce-notices-wrapper,
  .wsf-main--cart .woocommerce-cart-form {
    grid-column: 1;
    min-width: 0;
  }

  .wsf-main--cart .cart-collaterals {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    margin: 0;
    width: 100%;
    min-width: 20rem;
  }

  .wsf-main--cart .cart_totals {
    max-width: none;
    width: 100%;
    position: sticky;
    top: 1rem;
  }
}

/* Checkout — Live: billing (+ notes) left | Your order right */
body.woocommerce-checkout .wsf-main .woocommerce-checkout,
.wsf-main--checkout .woocommerce-checkout {
  font-size: 0.9375rem;
  width: 100%;
  max-width: none;
}

body.woocommerce-checkout .wsf-main .woocommerce-billing-fields h3,
body.woocommerce-checkout .wsf-main .woocommerce-shipping-fields h3,
body.woocommerce-checkout .wsf-main #order_review_heading,
body.woocommerce-checkout .wsf-main .woocommerce-additional-fields h3,
.wsf-main--checkout .woocommerce-billing-fields h3,
.wsf-main--checkout .woocommerce-shipping-fields h3,
.wsf-main--checkout #order_review_heading,
.wsf-main--checkout .woocommerce-additional-fields h3 {
  margin: 0 0 0.85rem;
  font-family: var(--wsf-font-heading, "Poppins", var(--wsf-font-sans, system-ui, sans-serif));
  font-size: 1.25rem;
  font-weight: 700;
  color: #111;
  letter-spacing: -0.01em;
}

/* Kill Woo col2-set floats — stack billing + ship/notes in one left column */
body.woocommerce-checkout .wsf-main #customer_details,
body.woocommerce-checkout .wsf-main #customer_details.col2-set,
.wsf-main--checkout #customer_details,
.wsf-main--checkout #customer_details.col2-set {
  display: block !important;
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

body.woocommerce-checkout .wsf-main #customer_details .col-1,
body.woocommerce-checkout .wsf-main #customer_details .col-2,
.wsf-main--checkout #customer_details .col-1,
.wsf-main--checkout #customer_details .col-2 {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  clear: both !important;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
}

body.woocommerce-checkout .wsf-main #customer_details .col-2,
.wsf-main--checkout #customer_details .col-2 {
  margin-bottom: 0 !important;
}

.wsf-main--checkout .woocommerce-checkout .form-row input.input-text,
.wsf-main--checkout .woocommerce-checkout .form-row textarea,
.wsf-main--checkout .woocommerce-checkout .form-row select,
.wsf-main--checkout .woocommerce-checkout .select2-container .select2-selection--single {
  min-height: 2.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
}

/* Woo hides abbr.required (visibility:hidden) — force a visible red * */
body.woocommerce-checkout .wsf-main .woocommerce form .form-row .required,
body.woocommerce-checkout .wsf-main .woocommerce form .form-row label .required,
body.woocommerce-checkout .wsf-main .woocommerce form .form-row abbr.required,
.wsf-main--checkout .woocommerce form .form-row .required,
.wsf-main--checkout .woocommerce form .form-row label .required,
.wsf-main--checkout .woocommerce form .form-row abbr.required {
  visibility: visible !important;
  color: #e11d48 !important;
  font-weight: 700 !important;
  font-size: 1em !important;
  line-height: 1 !important;
  text-decoration: none !important;
  border: 0 !important;
  clip: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 0 0.15em !important;
  padding: 0 !important;
  overflow: visible !important;
  position: static !important;
}

/* Never show Woo’s grey “(optional)” on phone once required */
body.woocommerce-checkout .wsf-main #billing_phone_field .optional,
body.woocommerce-checkout .wsf-main #shipping_phone_field .optional,
.wsf-main--checkout #billing_phone_field .optional,
.wsf-main--checkout #shipping_phone_field .optional {
  display: none !important;
}

body.woocommerce-checkout .wsf-main #order_review,
.wsf-main--checkout #order_review {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Your order — Live product list (thumb + name × qty) then totals card */
body.woocommerce-checkout .wsf-main #order_review .shop_table,
.wsf-main--checkout #order_review .shop_table {
  width: 100%;
  margin: 0 0 1rem;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table thead,
.wsf-main--checkout #order_review .shop_table thead {
  display: none !important;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tbody tr.cart_item,
.wsf-main--checkout #order_review .shop_table tbody tr.cart_item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 0.85rem;
  /* Price sits on the first text line; name wraps below if needed */
  align-items: start;
  margin: 0;
  padding: 0.55rem 0;
  border: 0;
  border-bottom: 1px solid #e5e7eb;
  background: transparent;
}

/* Price on the right, top-aligned with product name first line */
body.woocommerce-checkout .wsf-main #order_review .shop_table .cart_item .product-total,
.wsf-main--checkout #order_review .shop_table .cart_item .product-total {
  display: block !important;
  text-align: right !important;
  font-weight: 700;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: #111;
  white-space: nowrap;
  justify-self: end;
  align-self: start;
  padding-top: 0;
  margin-top: 0;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tbody tr.cart_item:first-child,
.wsf-main--checkout #order_review .shop_table tbody tr.cart_item:first-child {
  padding-top: 0;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tbody tr.cart_item td,
.wsf-main--checkout #order_review .shop_table tbody tr.cart_item td {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  vertical-align: middle;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table .cart_item .product-name,
.wsf-main--checkout #order_review .shop_table .cart_item .product-name {
  text-align: left !important;
  min-width: 0;
}

body.woocommerce-checkout .wsf-main .wsf-checkout-item,
.wsf-main--checkout .wsf-checkout-item {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
}

body.woocommerce-checkout .wsf-main .wsf-checkout-item__media,
.wsf-main--checkout .wsf-checkout-item__media {
  flex: 0 0 3.25rem;
  width: 3.25rem;
}

body.woocommerce-checkout .wsf-main .wsf-checkout-item-thumb,
body.woocommerce-checkout .wsf-main .wsf-checkout-item__media img,
.wsf-main--checkout .wsf-checkout-item-thumb,
.wsf-main--checkout .wsf-checkout-item__media img {
  display: block;
  width: 3.25rem !important;
  height: 3.25rem !important;
  max-width: none !important;
  object-fit: contain;
  border-radius: 4px;
  background: #fafafa;
}

body.woocommerce-checkout .wsf-main .wsf-checkout-item__copy,
.wsf-main--checkout .wsf-checkout-item__copy {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.35;
  color: #111;
}

body.woocommerce-checkout .wsf-main #order_review .product-quantity,
.wsf-main--checkout #order_review .product-quantity {
  display: inline !important;
  font-weight: 500 !important;
  color: #9ca3af !important;
  white-space: nowrap;
}

/* Totals block under the product list (Live bordered card) */
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot,
.wsf-main--checkout #order_review .shop_table tfoot {
  display: table-footer-group;
  border: 0;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr,
.wsf-main--checkout #order_review .shop_table tfoot tr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 1rem;
  align-items: start;
  margin: 0;
  padding: 0.85rem 1.1rem;
  border-left: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb;
  background: #fff;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr:first-child,
.wsf-main--checkout #order_review .shop_table tfoot tr:first-child {
  margin-top: 1rem;
  padding-top: 0.95rem;
  border-top: 1px solid #e5e7eb;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr:last-child,
.wsf-main--checkout #order_review .shop_table tfoot tr:last-child {
  padding-bottom: 0.95rem;
  border-bottom: 1px solid #e5e7eb;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr + tr,
.wsf-main--checkout #order_review .shop_table tfoot tr + tr {
  border-top: 1px solid #e5e7eb;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot th,
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot td,
.wsf-main--checkout #order_review .shop_table tfoot th,
.wsf-main--checkout #order_review .shop_table tfoot td {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot th,
.wsf-main--checkout #order_review .shop_table tfoot th {
  text-align: left !important;
  font-weight: 600;
  color: #111;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot td,
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot .woocommerce-Price-amount,
.wsf-main--checkout #order_review .shop_table tfoot td,
.wsf-main--checkout #order_review .shop_table tfoot .woocommerce-Price-amount {
  text-align: right !important;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table .order-total th,
body.woocommerce-checkout .wsf-main #order_review .shop_table .order-total td,
.wsf-main--checkout #order_review .shop_table .order-total th,
.wsf-main--checkout #order_review .shop_table .order-total td {
  font-size: 1.05rem;
  font-weight: 700;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table .order-total small,
body.woocommerce-checkout .wsf-main #order_review .shop_table .order-total .includes_tax,
body.woocommerce-checkout .wsf-main #order_review .shop_table .order-total .tax_label,
.wsf-main--checkout #order_review .shop_table .order-total small,
.wsf-main--checkout #order_review .shop_table .order-total .includes_tax {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #6b7280;
  text-align: right !important;
}

/* Shipment = 2 lines: label, then address/options message (no overlap) */
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr.shipping,
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr.woocommerce-shipping-totals,
.wsf-main--checkout #order_review .shop_table tfoot tr.shipping,
.wsf-main--checkout #order_review .shop_table tfoot tr.woocommerce-shipping-totals {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.3rem;
  grid-template-columns: none !important;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr.shipping th,
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr.woocommerce-shipping-totals th,
.wsf-main--checkout #order_review .shop_table tfoot tr.shipping th,
.wsf-main--checkout #order_review .shop_table tfoot tr.woocommerce-shipping-totals th {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  font-weight: 600;
  color: #111;
}

body.woocommerce-checkout .wsf-main #order_review .shop_table .shipping td,
body.woocommerce-checkout .wsf-main #order_review .shop_table tfoot tr.woocommerce-shipping-totals td,
.wsf-main--checkout #order_review .shop_table .shipping td,
.wsf-main--checkout #order_review .shop_table tfoot tr.woocommerce-shipping-totals td {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.45;
  color: #374151;
}

/* ——— Payment block (Live: nested options + PayPal row) ——— */
body.woocommerce-checkout .wsf-main #payment,
.wsf-main--checkout #payment {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

body.woocommerce-checkout .wsf-main #payment ul.payment_methods,
.wsf-main--checkout #payment ul.payment_methods {
  list-style: none !important;
  margin: 0 0 1rem !important;
  padding: 0.35rem 0 !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  background: #fff !important;
  overflow: hidden;
}

body.woocommerce-checkout .wsf-main #payment ul.payment_methods li,
.wsf-main--checkout #payment ul.payment_methods li {
  margin: 0 !important;
  padding: 0.85rem 1.1rem !important;
  border: 0 !important;
  border-bottom: 1px solid #e5e7eb !important;
  background: #fff !important;
  list-style: none !important;
}

body.woocommerce-checkout .wsf-main #payment ul.payment_methods li:last-child,
.wsf-main--checkout #payment ul.payment_methods li:last-child {
  border-bottom: 0 !important;
}

body.woocommerce-checkout .wsf-main #payment ul.payment_methods li > input[type="radio"],
.wsf-main--checkout #payment ul.payment_methods li > input[type="radio"] {
  float: none !important;
  margin: 0 0.55rem 0 0 !important;
  accent-color: #84c559;
  vertical-align: middle;
}

body.woocommerce-checkout .wsf-main #payment ul.payment_methods li > label,
.wsf-main--checkout #payment ul.payment_methods li > label {
  display: inline-flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  width: calc(100% - 1.75rem);
  margin: 0 !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: #111 !important;
  cursor: pointer;
  vertical-align: middle;
}

/* PayPal (and similar) logo flush right on the method row */
body.woocommerce-checkout .wsf-main #payment ul.payment_methods li > label img,
body.woocommerce-checkout .wsf-main #payment ul.payment_methods li > label .paypal-logo,
.wsf-main--checkout #payment ul.payment_methods li > label img {
  margin-left: auto !important;
  height: 1.35rem !important;
  width: auto !important;
  max-width: 6rem;
}

body.woocommerce-checkout .wsf-main #payment div.payment_box,
.wsf-main--checkout #payment div.payment_box {
  margin: 0.75rem 0 0.15rem !important;
  padding: 0.65rem 0.85rem !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  color: #374151 !important;
  font-size: 0.9rem !important;
  line-height: 1.45;
}

/* Hide PayPal “Click the PayPal button below…” instruction popover */
body.woocommerce-checkout .wsf-main #payment li.payment_method_ppcp-gateway > .payment_box,
body.woocommerce-checkout .wsf-main #payment li.payment_method_ppcp-card-button-gateway > .payment_box,
body.woocommerce-checkout .wsf-main #payment li.payment_method_paypal > .payment_box,
body.woocommerce-checkout .wsf-main #payment li[class*="payment_method_ppcp"] > .payment_box,
body.woocommerce-checkout .wsf-main #payment li[class*="payment_method_paypal"] > .payment_box,
.wsf-main--checkout #payment li.payment_method_ppcp-gateway > .payment_box,
.wsf-main--checkout #payment li[class*="payment_method_ppcp"] > .payment_box,
.wsf-main--checkout #payment li[class*="payment_method_paypal"] > .payment_box {
  display: none !important;
}

/* Nested Card / Afterpay (WooPayments UPE) rows inside payment_box */
body.woocommerce-checkout .wsf-main #payment .payment_box .wc-payment-form,
body.woocommerce-checkout .wsf-main #payment .payment_box fieldset,
body.woocommerce-checkout .wsf-main #payment .payment_box .wcpay-payment-element,
.wsf-main--checkout #payment .payment_box .wc-payment-form {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.woocommerce-checkout .wsf-main #payment .payment_box .payment-method,
body.woocommerce-checkout .wsf-main #payment .payment_box [class*="PaymentMethod"],
body.woocommerce-checkout .wsf-main #payment .payment_box .woocommerce-SavedPaymentMethods-token,
.wsf-main--checkout #payment .payment_box li {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  margin: 0 !important;
  padding: 0.65rem 0.25rem !important;
  border-bottom: 1px solid #e5e7eb !important;
  background: transparent !important;
}

body.woocommerce-checkout .wsf-main #payment .payment_box li:last-child,
.wsf-main--checkout #payment .payment_box li:last-child {
  border-bottom: 0 !important;
}

body.woocommerce-checkout .wsf-main #payment .place-order,
.wsf-main--checkout #payment .place-order {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: 100% !important;
}

body.woocommerce-checkout .wsf-main #payment .woocommerce-privacy-policy-text,
body.woocommerce-checkout .wsf-main #payment .woocommerce-terms-and-conditions-wrapper,
.wsf-main--checkout #payment .woocommerce-privacy-policy-text,
.wsf-main--checkout #payment .woocommerce-terms-and-conditions-wrapper {
  margin: 0 0 0.85rem !important;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #374151;
}

body.woocommerce-checkout .wsf-main #payment a,
.wsf-main--checkout #payment a {
  color: #84c559 !important;
  text-decoration: underline !important;
  font-weight: 500;
}

body.woocommerce-checkout .wsf-main #payment a:hover,
.wsf-main--checkout #payment a:hover {
  color: #6fad45 !important;
}

body.woocommerce-checkout .wsf-main #payment .woocommerce-form__label-for-checkbox,
.wsf-main--checkout #payment .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: #111;
}

body.woocommerce-checkout .wsf-main #payment .woocommerce-form__input-checkbox,
.wsf-main--checkout #payment .woocommerce-form__input-checkbox {
  margin-top: 0.2rem;
  accent-color: #84c559;
}

body.woocommerce-checkout .wsf-main #place_order,
.wsf-main--checkout #place_order {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100% !important;
  min-height: 3rem !important;
  margin: 0.35rem 0 0 !important;
  padding: 0.8rem 1.5rem !important;
  border: none !important;
  border-radius: 999px !important;
  background: #84c559 !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-transform: none !important;
  cursor: pointer;
}

body.woocommerce-checkout .wsf-main #place_order::before,
.wsf-main--checkout #place_order::before {
  content: "";
  display: inline-block;
  width: 0.95rem;
  height: 0.95rem;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17 8h-1V6a4 4 0 10-8 0v2H7a2 2 0 00-2 2v8a2 2 0 002 2h10a2 2 0 002-2v-8a2 2 0 00-2-2zm-7-2a2 2 0 114 0v2h-4V6zm7 12H7v-8h10v8z'/%3E%3C/svg%3E");
}

body.woocommerce-checkout .wsf-main #place_order:hover,
body.woocommerce-checkout .wsf-main #place_order:focus-visible,
.wsf-main--checkout #place_order:hover,
.wsf-main--checkout #place_order:focus-visible {
  background: #111 !important;
  color: #fff !important;
}

/* Green Place order only for card — hidden while PayPal is selected */
body.woocommerce-checkout.wsf-checkout-pay-paypal #place_order,
body.woocommerce-checkout form.checkout.wsf-pay-paypal #place_order,
.wsf-main--checkout form.checkout.wsf-pay-paypal #place_order {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 960px) {
  body.woocommerce-checkout .wsf-main .woocommerce-checkout,
  .wsf-main--checkout .woocommerce-checkout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(20rem, 24rem);
    grid-template-areas:
      "notices notices"
      "customer heading"
      "customer review";
    column-gap: 2.75rem;
    row-gap: 0.65rem;
    align-items: start;
    width: 100%;
  }

  body.woocommerce-checkout .wsf-main .woocommerce-checkout > .woocommerce-NoticeGroup,
  body.woocommerce-checkout .wsf-main .woocommerce-checkout > .woocommerce-notices-wrapper,
  .wsf-main--checkout .woocommerce-checkout > .woocommerce-NoticeGroup,
  .wsf-main--checkout .woocommerce-checkout > .woocommerce-notices-wrapper {
    grid-area: notices;
  }

  body.woocommerce-checkout .wsf-main #customer_details,
  .wsf-main--checkout #customer_details {
    grid-area: customer;
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
    min-width: 0;
  }

  body.woocommerce-checkout .wsf-main #order_review_heading,
  .wsf-main--checkout #order_review_heading {
    grid-area: heading;
    width: 100%;
    float: none !important;
    margin: 0 0 0.35rem !important;
  }

  body.woocommerce-checkout .wsf-main #order_review,
  .wsf-main--checkout #order_review {
    grid-area: review;
    width: 100%;
    float: none !important;
    position: sticky;
    top: 1rem;
  }
}

.wsf-shell-hide-breadcrumbs .wsf-breadcrumb,
.wsf-shell-hide-related .related.products,
.wsf-shell-hide-related .up-sells {
  display: none !important;
}

/* My account — Live login (2-col) + logged-in nav/content */
body.woocommerce-account .wsf-main--account > .wsf-page > .wsf-page-tokens,
.wsf-main--account > .wsf-page > .wsf-page-tokens {
  width: min(100% - 2.5rem, 72rem);
  max-width: 72rem;
  margin-inline: auto;
  box-sizing: border-box;
}

/* Title like Live — left-aligned over the form (not cart-style centered) */
.wsf-main--account .wsf-woo-shell-title {
  text-align: left;
  margin: 0 0 1.35rem;
  font-weight: 600;
}

/* Only grid when logged-in nav exists — never squeeze #customer_login into a sidebar column */
.wsf-main--account .woocommerce {
  display: block;
  max-width: min(100%, 56rem);
  margin-inline: 0;
}

@media (min-width: 900px) {
  .wsf-main--account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    gap: 1.5rem 1.75rem;
    align-items: start;
    max-width: min(100%, 72rem);
  }

  .wsf-main--account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }
}

/* Logged-out Login | Register (Live col2-set) */
.wsf-main--account #customer_login.col2-set,
.wsf-main--account .u-columns.col2-set#customer_login {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  width: 100%;
  float: none;
  margin: 0;
}

@media (min-width: 900px) {
  .wsf-main--account #customer_login.col2-set,
  .wsf-main--account .u-columns.col2-set#customer_login {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 2rem 3.5rem;
    align-items: start;
  }
}

.wsf-main--account #customer_login .u-column1,
.wsf-main--account #customer_login .u-column2,
.wsf-main--account #customer_login .col-1,
.wsf-main--account #customer_login .col-2 {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0;
}

.wsf-main--account #customer_login h2 {
  margin: 0 0 1rem;
  font-family: var(--wsf-font-heading, "Poppins", var(--wsf-font-sans, system-ui, sans-serif));
  font-size: 1.35rem;
  font-weight: 700;
  color: #111;
}

.wsf-main--account #customer_login p,
.wsf-main--account #customer_login .woocommerce-privacy-policy-text p {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #374151;
}

.wsf-main--account #customer_login .form-row {
  margin: 0 0 0.85rem;
}

.wsf-main--account #customer_login label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: #111;
}

.wsf-main--account #customer_login .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-weight: 400;
}

.wsf-main--account #customer_login .woocommerce-form-login__rememberme span {
  margin-left: 0;
}

.wsf-main--account #customer_login .form-row input.input-text,
.wsf-main--account #customer_login .woocommerce-Input {
  width: 100%;
  min-height: 2.65rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px !important;
  background: #fff;
  box-sizing: border-box;
}

/*
 * Woo JS injects .password-input + .show-password-input (eye toggle).
 * Layout CSS is dequeued on shell pages — without this the toggle is a
 * stray grey pill beside/under Password (login, set-password, checkout).
 * SVG data-URIs are percent-encoded so the stylesheet parser never chokes.
 */
body.woocommerce-account .password-input,
body.woocommerce-lost-password .password-input,
.wsf-main--account .password-input,
.wsf-main--checkout .password-input,
form.woocommerce-ResetPassword .password-input {
  position: relative !important;
  display: block !important;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

body.woocommerce-account .password-input input[type="password"],
body.woocommerce-account .password-input input[type="text"],
body.woocommerce-lost-password .password-input input[type="password"],
body.woocommerce-lost-password .password-input input[type="text"],
.wsf-main--account .password-input input[type="password"],
.wsf-main--account .password-input input[type="text"],
.wsf-main--checkout .password-input input[type="password"],
.wsf-main--checkout .password-input input[type="text"],
form.woocommerce-ResetPassword .password-input input[type="password"],
form.woocommerce-ResetPassword .password-input input[type="text"] {
  width: 100%;
  padding-right: 2.75rem !important;
  box-sizing: border-box;
}

body.woocommerce-account .password-input input::-ms-reveal,
body.woocommerce-lost-password .password-input input::-ms-reveal,
.wsf-main--account .password-input input::-ms-reveal,
.wsf-main--checkout .password-input input::-ms-reveal,
form.woocommerce-ResetPassword .password-input input::-ms-reveal {
  display: none;
}

body.woocommerce-account .show-password-input,
body.woocommerce-lost-password .show-password-input,
.wsf-main--account .show-password-input,
.wsf-main--checkout .show-password-input,
form.woocommerce-ResetPassword .show-password-input {
  position: absolute !important;
  top: 50% !important;
  right: 0.7em !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 2;
  display: block !important;
  float: none !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  max-width: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  cursor: pointer;
  transform: translateY(-50%) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

body.woocommerce-account .show-password-input::before,
body.woocommerce-lost-password .show-password-input::before,
.wsf-main--account .show-password-input::before,
.wsf-main--checkout .show-password-input::before,
form.woocommerce-ResetPassword .show-password-input::before {
  content: "" !important;
  display: block !important;
  width: 22px;
  height: 22px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z' fill='%23111111'/%3E%3C/svg%3E");
}

body.woocommerce-account .show-password-input.display-password::before,
body.woocommerce-lost-password .show-password-input.display-password::before,
.wsf-main--account .show-password-input.display-password::before,
.wsf-main--checkout .show-password-input.display-password::before,
form.woocommerce-ResetPassword .show-password-input.display-password::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M18.3 9.5C15 4.9 8.5 3.8 3.9 7.2C2.7 8.1 1.7 9.3 0.9 10.6C1.1 11 1.4 11.4 1.7 11.8C5 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.8 18.3 9.5ZM10.1 7.2C10.6 6.7 11.4 6.7 11.9 7.2C12.4 7.7 12.4 8.5 11.9 9C11.4 9.5 10.6 9.5 10.1 9C9.6 8.5 9.6 7.7 10.1 7.2ZM10 14.9C6.9 14.9 4 13.3 2.3 10.7C3.5 9 5.1 7.8 7 7.2C6.3 8 6 8.9 6 9.9C6 12.1 7.7 14 10 14C12.2 14 14.1 12.3 14.1 10V9.9C14.1 8.9 13.7 7.9 13 7.2C14.9 7.8 16.5 9 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z' fill='%23111111'/%3E%3C/svg%3E");
}

/* Lost password / Set password — match login (label above field, compact CTA) */
.wsf-main--account form.woocommerce-ResetPassword,
.wsf-main--account form.lost_reset_password {
  max-width: 28rem;
}

.wsf-main--account form.woocommerce-ResetPassword > p:first-of-type,
.wsf-main--account form.lost_reset_password > p:first-of-type {
  margin: 0 0 1.15rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #374151;
}

.wsf-main--account form.woocommerce-ResetPassword .form-row,
.wsf-main--account form.lost_reset_password .form-row,
.wsf-main--account form.woocommerce-ResetPassword .form-row-first,
.wsf-main--account form.woocommerce-ResetPassword .form-row-last,
.wsf-main--account form.lost_reset_password .form-row-first,
.wsf-main--account form.lost_reset_password .form-row-last {
  float: none !important;
  clear: both !important;
  display: block !important;
  width: 100% !important;
  max-width: 100%;
  margin: 0 0 0.85rem !important;
  overflow: visible;
}

.wsf-main--account form.woocommerce-ResetPassword label,
.wsf-main--account form.lost_reset_password label {
  display: block !important;
  float: none !important;
  width: auto !important;
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: #111;
}

.wsf-main--account form.woocommerce-ResetPassword .woocommerce-Input,
.wsf-main--account form.lost_reset_password .woocommerce-Input,
.wsf-main--account form.woocommerce-ResetPassword input.input-text,
.wsf-main--account form.lost_reset_password input.input-text {
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: 100%;
  min-height: 2.65rem;
  margin: 0;
  padding: 0.55rem 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px !important;
  background: #fff;
  box-sizing: border-box;
}

.wsf-main--account form.woocommerce-ResetPassword .clear,
.wsf-main--account form.lost_reset_password .clear {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.wsf-main--account form.woocommerce-ResetPassword .woocommerce-Button,
.wsf-main--account form.lost_reset_password .woocommerce-Button,
.wsf-main--account form.woocommerce-ResetPassword button.button,
.wsf-main--account form.lost_reset_password button.button {
  width: auto !important;
  min-width: 10rem;
  max-width: 100%;
  margin-top: 0.35rem !important;
}

/* Login / Register / Lost+Set password — red required * (Woo often hides abbr.required) */
body.woocommerce-account .wsf-main--account .woocommerce form .form-row .required,
body.woocommerce-account .wsf-main--account .woocommerce form .form-row label .required,
body.woocommerce-account .wsf-main--account .woocommerce form .form-row abbr.required,
body.woocommerce-account .wsf-main--account form.woocommerce-ResetPassword .required,
body.woocommerce-account .wsf-main--account form.lost_reset_password .required,
body.woocommerce-lost-password .wsf-main--account .required,
.wsf-main--account #customer_login .required,
.wsf-main--account #customer_login label .required,
.wsf-main--account form.woocommerce-form-login .required,
.wsf-main--account form.woocommerce-form-register .required {
  visibility: visible !important;
  color: #e11d48 !important;
  font-weight: 700 !important;
  font-size: 1em !important;
  line-height: 1 !important;
  text-decoration: none !important;
  border: 0 !important;
  clip: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 0 0.15em !important;
  padding: 0 !important;
  overflow: visible !important;
  position: static !important;
}

.wsf-main--account #customer_login .woocommerce-button,
.wsf-main--account #customer_login .woocommerce-Button,
.wsf-main--account #customer_login button.button {
  width: auto;
  min-width: 8.5rem;
  margin-top: 0.65rem !important;
  border-radius: 999px !important;
}

.wsf-main--account #customer_login .lost_password {
  margin: 0.75rem 0 0;
}

.wsf-main--account #customer_login .lost_password a,
.wsf-main--account #customer_login .woocommerce-privacy-policy-link,
.wsf-main--account .woocommerce-MyAccount-content a {
  color: #84c559;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  text-decoration-thickness: 0.75px;
}

.wsf-main--account #customer_login .lost_password a:hover,
.wsf-main--account #customer_login .woocommerce-privacy-policy-link:hover,
.wsf-main--account .woocommerce-MyAccount-content a:hover {
  color: #111;
}

.wsf-main--account #customer_login .woocommerce-privacy-policy-text {
  margin: 0.75rem 0 0.25rem;
}

.wsf-main--account .woocommerce-MyAccount-navigation,
.wsf-main--account .woocommerce-MyAccount-content {
  border: 1px solid var(--wsf-color-border);
  border-radius: 8px;
  background: var(--wsf-color-bg, #fff);
  box-shadow: var(--wsf-shadow-card);
}

.wsf-main--account .woocommerce-MyAccount-navigation {
  padding: 0.85rem 0;
}

.wsf-main--account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-main--account .woocommerce-MyAccount-navigation li {
  margin: 0;
}

.wsf-main--account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.65rem 1.15rem;
  color: var(--wsf-color-text, #111);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  border-left: 3px solid transparent;
}

.wsf-main--account .woocommerce-MyAccount-navigation li.is-active a,
.wsf-main--account .woocommerce-MyAccount-navigation a:hover {
  background: #f7f8fa;
  border-left-color: var(--wsf-color-accent, #84c559);
  color: var(--wsf-color-text, #111);
}

.wsf-main--account .woocommerce-MyAccount-content {
  padding: 1.25rem 1.5rem;
}

.wsf-main--account .woocommerce-MyAccount-content .woocommerce-Button,
.wsf-main--account .woocommerce-MyAccount-content button.button {
  width: auto;
  min-width: 10rem;
}

/* Logged-in address / edit-account fields match checkout */
.wsf-main--account .woocommerce-MyAccount-content .form-row input.input-text,
.wsf-main--account .woocommerce-MyAccount-content .form-row textarea,
.wsf-main--account .woocommerce-MyAccount-content .form-row select {
  min-height: 2.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px !important;
  background: #fff;
}

/* Footer — dark chrome under page USP strip (matches live Theme Builder footer) */
.wsf-footer {
  border-top: none;
  background: #0a0a0a;
  color: #f5f5f5;
}

.wsf-footer__grid {
  display: grid;
  gap: var(--wsf-space-6);
  padding-block: var(--wsf-space-8);
}

.wsf-footer__grid--chrome {
  gap: 1.75rem 2rem;
  padding-block: 2.25rem 1.5rem;
}

@media (min-width: 768px) {
  .wsf-footer__grid {
    grid-template-columns: 2fr 1fr 1fr;
  }

  .wsf-footer__grid--chrome {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .wsf-footer__grid--chrome {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.wsf-footer__heading {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

.wsf-footer__brand strong {
  color: #fff;
  font-size: 1.05rem;
}

.wsf-footer__tagline {
  margin: var(--wsf-space-2) 0 0;
  color: #b0b0b0;
  font-size: 0.9375rem;
}

.wsf-footer__menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wsf-footer__menu a {
  color: #dcdcdc;
  font-size: 0.9375rem;
  line-height: 2;
  text-decoration: none;
}

.wsf-footer__menu a:hover,
.wsf-footer__menu a:focus-visible {
  color: #fff;
}

.wsf-footer__subscribe-text {
  margin: 0 0 0.85rem;
  color: #b0b0b0;
  font-size: 0.875rem;
  line-height: 1.45;
  max-width: 18rem;
}

/* Live Theme Builder: flush white Email + black outlined Send (square strip) */
.wsf-footer__subscribe-form {
  display: flex;
  align-items: stretch;
  gap: 0;
  max-width: 18rem;
  margin: 0 0 1rem;
}

/* Beat .wsf-body input[type=email] radius so Email matches live (not pill-left / square-right). */
.wsf-body .wsf-footer__subscribe-input,
.wsf-footer__subscribe-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 2.5rem;
  margin: 0;
  padding: 0 0.75rem;
  box-sizing: border-box;
  border: 1px solid #fff;
  border-right: none;
  border-radius: 0 !important;
  -webkit-appearance: none;
  appearance: none;
  background: #fff;
  color: #111;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.2;
  box-shadow: none;
}

.wsf-body .wsf-footer__subscribe-input::placeholder,
.wsf-footer__subscribe-input::placeholder {
  color: #777;
  opacity: 1;
}

.wsf-body .wsf-footer__subscribe-input:focus,
.wsf-footer__subscribe-input:focus {
  outline: 2px solid rgba(255, 255, 255, 0.55);
  outline-offset: 1px;
  z-index: 1;
}

.wsf-body .wsf-footer__subscribe-btn,
.wsf-footer__subscribe-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.5rem;
  height: 2.5rem;
  margin: 0;
  padding: 0 0.95rem;
  box-sizing: border-box;
  border: 1px solid #fff;
  border-radius: 0 !important;
  -webkit-appearance: none;
  appearance: none;
  background: #000;
  color: #fff !important;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.01em;
  cursor: pointer;
  text-decoration: none;
  box-shadow: none;
  filter: none;
}

.wsf-body .wsf-footer__subscribe-btn:hover,
.wsf-body .wsf-footer__subscribe-btn:focus-visible,
.wsf-footer__subscribe-btn:hover,
.wsf-footer__subscribe-btn:focus-visible {
  background: #111;
  color: #fff !important;
  filter: none;
}

.wsf-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
}

.wsf-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  border: 1px solid #fff;
  background: #fff;
  color: #111 !important;
  text-decoration: none;
  line-height: 1;
}

.wsf-footer__social-link:hover,
.wsf-footer__social-link:focus-visible {
  border-color: #fff;
  background: #f2f2f2;
  color: #111 !important;
}

.wsf-footer__social-fa {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  color: inherit;
}

.wsf-footer__social-svg {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
  fill: currentColor;
}

.wsf-footer__payments {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.wsf-footer__pay-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  border-radius: 0.2rem;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.wsf-footer__pay-svg {
  display: block;
  width: 2.5rem;
  height: 1.55rem;
}

.wsf-footer__pay-svg text {
  dominant-baseline: auto;
}

.wsf-footer__brand-row {
  border-top: none;
  padding-block: 1.35rem 1.5rem;
}

.wsf-footer__brand-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2.5rem;
}

.wsf-footer__brand {
  min-width: 10rem;
}

.wsf-footer__lockup {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none;
  color: inherit;
}

.wsf-footer__lockup:hover .wsf-footer__brand-name,
.wsf-footer__lockup:focus-visible .wsf-footer__brand-name {
  color: #fff;
}

.wsf-footer__mark {
  display: inline-flex;
  flex: 0 0 auto;
  line-height: 0;
}

.wsf-footer__mark-svg {
  display: block;
  width: 3.1rem;
  height: 3.1rem;
}

.wsf-footer__lockup-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.wsf-footer__logo .custom-logo-link {
  display: inline-block;
  line-height: 0;
}

.wsf-footer__logo .custom-logo,
.wsf-footer__logo img {
  max-height: 3.5rem;
  width: auto;
  height: auto;
}

.wsf-footer__brand-name,
.wsf-footer__brand strong {
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.15;
}

.wsf-footer__tagline {
  margin: 0;
  color: #cfcfcf;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.wsf-footer__meta {
  flex: 1 1 16rem;
  text-align: center;
}

.wsf-footer__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  justify-content: center;
  list-style: none;
  margin: 0 0 0.45rem;
  padding: 0;
}

.wsf-footer__contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #dcdcdc;
  font-size: 0.875rem;
  line-height: 1.5;
  text-decoration: none;
}

.wsf-footer__contact a:hover,
.wsf-footer__contact a:focus-visible {
  color: #fff;
}

.wsf-footer__contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #cfcfcf;
  flex: 0 0 auto;
}

.wsf-footer__contact-svg {
  display: block;
}

.wsf-footer__contact-label {
  color: #9a9a9a;
}

.wsf-footer__copy {
  margin: 0;
  color: #9a9a9a;
  font-size: 0.8125rem;
}

.wsf-footer__abn {
  margin: 0.2rem 0 0;
  color: #9a9a9a;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}

.wsf-footer__awards {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.65rem 0.75rem;
  min-width: 10rem;
}

.wsf-footer__award {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  width: 4.5rem;
}

.wsf-footer__award-img {
  display: block;
  width: 4.5rem;
  height: auto;
  max-height: 5.4rem;
  object-fit: contain;
}

.wsf-footer__award--seal {
  width: 4.5rem;
}

.wsf-footer__award-svg {
  display: block;
  width: 4.5rem;
  height: auto;
}

a.wsf-footer__award {
  text-decoration: none;
  transition: transform 0.15s ease, filter 0.15s ease;
}

a.wsf-footer__award:hover,
a.wsf-footer__award:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.08);
}

.wsf-footer__award-year {
  margin-top: 0.25rem;
  color: #d8b64a;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
}

@media (min-width: 900px) {
  .wsf-footer__brand-inner {
    display: grid;
    grid-template-columns: 1fr minmax(14rem, auto) 1fr;
    align-items: center;
  }

  .wsf-footer__awards {
    justify-self: end;
  }
}

/* Page USP black bar → shell footer should feel continuous */
.wsf-block-trust--assurance + .wsf-footer,
main.wsf-main:has(.wsf-block-trust--assurance:last-child) ~ .wsf-footer,
.wsf-site:has(.wsf-block-trust--assurance) .wsf-footer {
  margin-top: 0;
}

/* Mobile nav — icons stay in the bar; menu drawer below */
@media (max-width: 900px) {
  .wsf-nav-toggle {
    display: flex;
  }

  .wsf-header__inner {
    flex-wrap: wrap;
  }

  .wsf-header__panel {
    display: none;
    order: 3;
    flex: 1 0 100%;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    padding: 0.75rem 0 1rem;
    border-top: 1px solid #ececec;
  }

  .wsf-header__panel.is-open {
    display: flex;
  }

  .wsf-nav__list {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.35rem;
  }

  .wsf-nav__list > li > a {
    padding: 0.35rem 0;
  }

  .wsf-nav .sub-menu {
    position: static;
    display: none;
    min-width: 0;
    margin: 0.15rem 0 0.35rem 0.75rem;
    padding: 0.15rem 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  .wsf-nav .sub-menu::before {
    display: none;
  }

  .wsf-nav__list > li.menu-item-has-children.is-open > .sub-menu {
    display: block;
  }

  .wsf-nav .sub-menu a {
    padding: 0.35rem 0;
    white-space: normal;
  }

  .wsf-header__actions {
    margin-left: auto;
  }

  .wsf-search__panel {
    right: 0;
    left: auto;
    min-width: min(18rem, calc(100vw - 2rem));
  }
}

/* Woo notices — inline fallbacks hidden; centered dialog via storefront-notices.php */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper {
  display: none !important;
}

.wsf-notice-open {
  overflow: hidden;
}

.wsf-notice-root {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.wsf-notice-root[hidden] {
  display: none !important;
}

.wsf-notice-root__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.45);
  cursor: pointer;
}

.wsf-notice-dialog {
  position: relative;
  width: min(100%, 24rem);
  padding: 1.35rem 1.35rem 1.15rem;
  background: var(--wsf-color-surface);
  border: 1px solid var(--wsf-color-border);
  border-radius: calc(var(--wsf-radius) + 2px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  text-align: center;
}

.wsf-notice-root[data-type="success"] .wsf-notice-dialog {
  border-top: 4px solid #16a34a;
}

.wsf-notice-root[data-type="error"] .wsf-notice-dialog {
  border-top: 4px solid #dc2626;
}

.wsf-notice-root[data-type="notice"] .wsf-notice-dialog {
  border-top: 4px solid var(--wsf-color-accent);
}

.wsf-notice-dialog__eyebrow {
  margin: 0 0 0.35rem;
  color: var(--wsf-color-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.wsf-notice-dialog__title {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  line-height: 1.35;
}

.wsf-notice-dialog__body {
  margin: 0 0 1rem;
  color: var(--wsf-color-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
  text-align: left;
}

.wsf-notice-dialog__body p {
  margin: 0;
}

.wsf-notice-dialog__body p + p {
  margin-top: 0.65rem;
}

.wsf-notice-dialog__ok {
  min-width: 6.5rem;
}

/* Shop archives: Load more (no numbered next/previous pagination). */
.woocommerce nav.woocommerce-pagination {
  display: none !important;
}

.wsf-load-more-wrap {
  display: flex;
  justify-content: center;
  margin: var(--wsf-space-8) 0 var(--wsf-space-4);
}

.wsf-load-more-wrap .wsf-load-more,
.wsf-load-more-wrap .button.wsf-load-more {
  min-width: 14rem;
  padding: 0.75rem 1.5rem;
  border: 0;
  border-radius: 6px;
  background: var(--wsf-color-accent, #84c559);
  color: #fff;
  font-weight: 600;
  font-size: 0.9375rem;
  cursor: pointer;
}

.wsf-load-more-wrap .wsf-load-more:hover:not(:disabled),
.wsf-load-more-wrap .button.wsf-load-more:hover:not(:disabled) {
  background: var(--wsf-color-accent-hover, #6fad45);
  color: #fff;
}

.wsf-load-more-wrap .wsf-load-more:disabled {
  opacity: 0.7;
  cursor: wait;
}

/* ——— Track Order (Woo [woocommerce_order_tracking]) — live mint card ——— */
/*
 * Short-page layout: white space grows UNDER the green form so USP + footer
 * sit at the bottom of the viewport. Sticky shell is .wsf-site (global);
 * do NOT flex body (breaks cart drawer). Do NOT paint the page black.
 */
body.wsf-track-order {
  background: #fff;
}

body.wsf-track-order .wsf-site > .wsf-main--page {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
  background: #fff;
  min-height: 0;
}

body.wsf-track-order .wsf-site > .wsf-footer {
  flex: 0 0 auto;
  margin-top: 0;
}

body.wsf-track-order .wsf-page {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

body.wsf-track-order .wsf-page-tokens {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: min(100% - 2.5rem, 52rem);
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
  margin-inline: auto;
  padding: 1.75rem 0 0;
  background: transparent;
  box-sizing: border-box;
}

/* FA <link> tags wrongly emitted inside content must not eat flex space. */
body.wsf-track-order .wsf-page-tokens > link {
  display: none !important;
}

body.wsf-track-order .wsf-page > .wsf-page-tokens > h1,
body.wsf-track-order .wsf-page h1:first-child,
body.wsf-track-order .wsf-track-order-title,
body.wsf-track-order h1.wp-block-heading {
  /* Same as site titleband / Map headings — Poppins 400 via global tokens. */
  margin: 0 0 1.35rem;
  font-family: var(--wsf-font-heading, "Poppins", var(--wsf-font-sans, system-ui, sans-serif));
  font-size: clamp(1.15rem, 1.5vw + 0.85rem, 1.875rem);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--wsf-color-text, #1a1d21);
  text-align: center;
  flex: 0 0 auto;
}

body.wsf-track-order .woocommerce {
  max-width: 100%;
  margin-bottom: 0;
  flex: 0 0 auto;
}

body.wsf-track-order form.woocommerce-form-track-order {
  --wsf-track-accent: var(--wsf-header-accent, #84c559);
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1.35rem;
  row-gap: 1rem;
  align-items: start;
  /* Soft wash of shell lime — not a yellow pastel. */
  background: color-mix(in srgb, var(--wsf-track-accent) 26%, #ffffff);
  border-radius: 12px;
  padding: 1.75rem 1.75rem 1.5rem;
  box-sizing: border-box;
  margin: 0;
  flex: 0 0 auto;
}

body.wsf-track-order form.woocommerce-form-track-order > p:first-of-type {
  grid-column: 1 / -1;
  margin: 0;
  font-family: var(--wsf-font-sans, system-ui, sans-serif);
  color: var(--wsf-color-text, #111);
  font-size: 0.98rem;
  line-height: 1.55;
}

body.wsf-track-order form.woocommerce-form-track-order .clear {
  display: none !important;
}

body.wsf-track-order form.woocommerce-form-track-order .form-row-first,
body.wsf-track-order form.woocommerce-form-track-order .form-row-last {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

body.wsf-track-order form.woocommerce-form-track-order .form-row-first {
  grid-column: 1;
}

body.wsf-track-order form.woocommerce-form-track-order .form-row-last {
  grid-column: 2;
}

body.wsf-track-order form.woocommerce-form-track-order .form-row:not(.form-row-first):not(.form-row-last) {
  grid-column: 1 / -1;
  float: none !important;
  width: auto !important;
  margin: 0.15rem 0 0 !important;
  padding: 0 !important;
}

body.wsf-track-order form.woocommerce-form-track-order label {
  display: block;
  font-family: var(--wsf-font-sans, system-ui, sans-serif);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--wsf-color-text, #111);
  margin: 0 0 0.4rem;
}

body.wsf-track-order form.woocommerce-form-track-order .input-text {
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d5d9de;
  border-radius: 6px;
  padding: 0.7rem 0.85rem;
  font-size: 0.95rem;
  color: #111;
  box-shadow: none;
}

body.wsf-track-order form.woocommerce-form-track-order .input-text::placeholder {
  color: #9ca3af;
}

body.wsf-track-order form.woocommerce-form-track-order .input-text:focus {
  outline: 2px solid var(--wsf-track-accent, #84c559);
  outline-offset: 1px;
  border-color: transparent;
}

body.wsf-track-order form.woocommerce-form-track-order button.button,
body.wsf-track-order form.woocommerce-form-track-order button[name="track"],
body.wsf-user-shell.wsf-track-order form.woocommerce-form-track-order button.button,
body.wsf-user-shell.wsf-track-order form.woocommerce-form-track-order button[name="track"] {
  display: inline-block;
  background: var(--wsf-track-accent, #84c559) !important;
  background-color: var(--wsf-track-accent, #84c559) !important;
  color: #111 !important;
  border: 0 !important;
  border-radius: 8px;
  padding: 0.65rem 1.75rem;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  box-shadow: none !important;
  text-shadow: none !important;
}

body.wsf-track-order form.woocommerce-form-track-order button.button:hover,
body.wsf-track-order form.woocommerce-form-track-order button[name="track"]:hover,
body.wsf-user-shell.wsf-track-order form.woocommerce-form-track-order button.button:hover,
body.wsf-user-shell.wsf-track-order form.woocommerce-form-track-order button[name="track"]:hover {
  filter: brightness(0.94);
  background: var(--wsf-track-accent, #84c559) !important;
  background-color: var(--wsf-track-accent, #84c559) !important;
  color: #111 !important;
}

/* USP: full-bleed + margin-top:auto → white space after the green form pushes
   USP (and then footer) down to the bottom of the viewport. */
body.wsf-track-order .wsf-page-tokens > .wsf-block-trust--assurance,
body.wsf-track-order .wsf-page > .wsf-block-trust--assurance,
body.wsf-track-order .wsf-block-trust--assurance {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  flex: 0 0 auto;
}

body.wsf-track-order .wsf-main--page ~ .wsf-footer,
body.wsf-track-order .wsf-footer {
  margin-top: 0;
}

/* Pre-order policy — page shell full width so FAQ + red card center like Live. */
body.wsf-preorder-policy .wsf-page,
body.wsf-preorder-policy .wsf-page-tokens {
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

body.wsf-preorder-policy .wsf-page-tokens > .wsf-block-trust--assurance {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
}

@media (max-width: 700px) {
  body.wsf-track-order form.woocommerce-form-track-order {
    grid-template-columns: 1fr;
  }

  body.wsf-track-order form.woocommerce-form-track-order .form-row-first,
  body.wsf-track-order form.woocommerce-form-track-order .form-row-last {
    grid-column: 1;
  }
}

/* Blog index + single post — centered column, title left, no card wash. */
.wsf-main--blog,
.wsf-main--blog-single {
  padding-block: var(--wsf-space-8);
  background: transparent;
}

.wsf-blog,
.wsf-blog-single__shell {
  max-width: min(100% - 2.5rem, 72rem);
  margin-left: auto;
  margin-right: auto;
  margin-inline: auto;
}

.wsf-blog__title,
.wsf-blog-single__title {
  font-family: "Poppins", var(--wsf-font-heading, var(--wsf-font-sans, system-ui, sans-serif));
  font-size: clamp(1.75rem, 3vw, 2rem);
  font-weight: 500;
  margin: 0 0 2rem;
  text-align: center;
  background: transparent;
}

.wsf-blog__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: 1.75rem;
}

.wsf-blog-card {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  border-radius: var(--wsf-radius, 8px);
  box-shadow: none;
  overflow: hidden;
}

.wsf-blog-card__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f3f4f6;
}

.wsf-blog-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wsf-blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 1.1rem 1.25rem 1.25rem;
}

.wsf-blog-card__title {
  margin: 0 0 0.65rem;
  font-family: "Poppins", var(--wsf-font-heading, var(--wsf-font-sans, system-ui, sans-serif));
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
}

.wsf-blog-card__title a {
  color: inherit;
  text-decoration: none;
}

.wsf-blog-card__title a:hover {
  color: var(--wsf-color-accent, #2563eb);
}

.wsf-blog-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.75rem;
  font-size: 0.8125rem;
  color: var(--wsf-color-muted, #5c6370);
}

.wsf-blog-card__excerpt {
  margin-bottom: 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--wsf-color-text, #111);
}

.wsf-blog-card__excerpt p {
  margin: 0;
}

.wsf-blog-card__read-more {
  margin-top: auto;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.wsf-blog-card__read-more:hover {
  text-decoration: underline;
}

.wsf-blog__pagination {
  margin-top: 2.5rem;
}

.wsf-blog__pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.wsf-blog__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--wsf-border, #e2e5ea);
  border-radius: 6px;
  text-decoration: none;
}

.wsf-blog__pagination .page-numbers.current {
  background: #111827;
  border-color: #111827;
  color: #fff;
}

.wsf-blog-single__header {
  margin-bottom: 1.5rem;
}

.wsf-blog-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.875rem;
  color: var(--wsf-color-muted, #5c6370);
}

.wsf-blog-single__featured {
  margin-bottom: 1.75rem;
  border-radius: var(--wsf-radius, 8px);
  overflow: hidden;
  border: 1px solid var(--wsf-border, #e2e5ea);
}

.wsf-blog-single__featured-img {
  display: block;
  width: 100%;
  height: auto;
}

body.wsf-blog-single-page .wsf-blog-single__content {
  font-family: var(--wsf-font-sans, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, sans-serif);
  font-size: 1.125rem;
  line-height: 1.7;
}

body.wsf-blog-single-page .wsf-blog-single__content h2,
body.wsf-blog-single-page .wsf-blog-single__content h3 {
  font-family: "Poppins", var(--wsf-font-heading, var(--wsf-font-sans, system-ui, sans-serif));
  font-weight: 500;
  margin-top: 2rem;
}

/* Back to top — stacked above live chat launcher when present */
.wsf-back-to-top {
  --wsf-btt-size: 48px;
  --wsf-btt-offset-bottom: 20px;
  --wsf-btt-offset-side: 20px;
  --wsf-btt-gap: 16px;
  --wsf-btt-bg: #111827;
  --wsf-btt-icon: #fff;
  --wsf-btt-hover: #1f2937;
  position: fixed;
  bottom: var(--wsf-btt-offset-bottom);
  z-index: 99990;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: var(--wsf-btt-size);
  height: var(--wsf-btt-size);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wsf-btt-bg);
  color: var(--wsf-btt-icon);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.22);
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.15s ease, filter 0.15s ease;
}

.wsf-back-to-top--right {
  right: var(--wsf-btt-offset-side);
  left: auto;
}

.wsf-back-to-top--left {
  left: var(--wsf-btt-offset-side);
  right: auto;
}

.wsf-back-to-top--square {
  border-radius: 10px;
}

.wsf-back-to-top--pill {
  width: auto;
  min-width: var(--wsf-btt-size);
  padding: 0 0.9rem;
  border-radius: 999px;
}

.wsf-back-to-top--pill .wsf-back-to-top__label {
  display: inline;
  font-size: 0.8125rem;
  font-weight: 600;
}

.wsf-back-to-top__label {
  display: none;
}

.wsf-back-to-top--above-chat {
  bottom: calc(var(--wsf-btt-offset-bottom) + var(--wsf-btt-chat-lift, 56px) + var(--wsf-btt-gap));
}

.wsf-back-to-top.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.wsf-back-to-top:hover {
  background: var(--wsf-btt-hover);
}

.wsf-back-to-top--sync-chat:hover {
  filter: brightness(1.12);
}

.wsf-back-to-top:focus-visible {
  outline: 2px solid #84c559;
  outline-offset: 3px;
}

.wsf-back-to-top__icon {
  display: block;
  width: calc(var(--wsf-btt-size) * 0.45);
  height: calc(var(--wsf-btt-size) * 0.45);
}
