/* ============================================================
   Jääportit 2026 — Shop & WooCommerce Premium Facelift
   Targets both classic WC classes and WC Blocks (.wc-block-*)
   Layered on top of tokens.css — uses the same CSS variables.
   ============================================================ */

/* ── Google Font import (Manrope + Germania One already loaded by WP,
      but we re-declare as a fallback for any isolated contexts) ── */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Germania+One&display=swap');

/* ============================================================
   SHOP PAGE HERO BANNER
   ============================================================ */

/* Main shop header area */
.woocommerce-shop .entry-header,
.page-template-default .entry-header,
body.woocommerce.archive .wp-block-query-title,
body.woocommerce .page-title,
.jp-shop-hero {
  position: relative;
  text-align: center;
  padding: 3rem 1rem 2rem;
  margin-bottom: 2rem;
  overflow: hidden;
}

/* Shop page title */
body.woocommerce.archive h1.page-title,
body.woocommerce .wp-block-query-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--fg-1);
  line-height: 1;
  margin-bottom: 0.5rem;
}

/* ============================================================
   PRODUCT COLLECTION BLOCK CARDS
   (WC Blocks — the modern block-based shop layout)
   ============================================================ */

/* Card wrapper */
.wc-block-product-template li.wc-block-product,
.wp-block-woocommerce-product-collection li.wc-block-product {
  background: var(--bg-elev-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  transition:
    border-color var(--dur-base) var(--ease-out),
    transform var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out);
  position: relative;
  display: flex;
  flex-direction: column;
}

.wc-block-product-template li.wc-block-product:hover,
.wp-block-woocommerce-product-collection li.wc-block-product:hover {
  border-color: rgba(153, 170, 255, 0.35);
  transform: translateY(-4px);
  box-shadow:
    0 16px 48px -12px rgba(0, 5, 16, 0.8),
    0 0 0 1px rgba(153, 170, 255, 0.08),
    0 0 40px -16px rgba(0, 31, 255, 0.2);
}

/* Product image container */
.wc-block-product .wc-block-components-product-image,
.wc-block-product .wp-block-woocommerce-product-image {
  overflow: hidden;
  border-radius: 10px 10px 0 0;
  background: var(--bg-elev-1);
  position: relative;
}

/* Image itself — smooth zoom on hover */
.wc-block-product .wc-block-components-product-image img,
.wc-block-product .wp-block-woocommerce-product-image img {
  transition:
    transform 400ms var(--ease-out),
    opacity 400ms var(--ease-out);
  display: block;
  width: 100%;
}

.wc-block-product:hover .wc-block-components-product-image img,
.wc-block-product:hover .wp-block-woocommerce-product-image img {
  transform: scale(1.05);
  opacity: 0.9;
}

/* Product title */
.wc-block-product .wp-block-post-title,
.wc-block-product .wc-block-components-product-name {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  color: var(--fg-1) !important;
  line-height: 1.3 !important;
  padding: 14px 16px 4px !important;
  margin: 0 !important;
  text-decoration: none !important;
}

.wc-block-product .wp-block-post-title a {
  color: var(--fg-1) !important;
  text-decoration: none !important;
  transition: color var(--dur-fast) var(--ease-out);
}

.wc-block-product .wp-block-post-title a:hover {
  color: var(--accent-soft) !important;
}

/* Price */
.wc-block-product .wc-block-components-product-price,
.wc-block-product .price {
  font-family: var(--font-mono) !important;
  font-size: 0.8125rem !important;
  color: var(--accent-soft) !important;
  letter-spacing: 0.04em !important;
  padding: 0 16px 4px !important;
  display: block;
}

/* Add to cart / Select options button — WC Blocks */
.wc-block-product .wc-block-components-product-button .wp-block-button__link,
.wc-block-product .wc-block-components-product-button button {
  background: var(--accent) !important;
  color: #fff !important;
  border: 1px solid var(--accent) !important;
  border-radius: 6px !important;
  padding: 10px 18px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.8125rem !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  width: calc(100% - 32px) !important;
  margin: 6px 16px 16px !important;
  text-align: center !important;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    background var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out) !important;
}

/* Shimmer sweep effect on button hover */
.wc-block-product .wc-block-components-product-button .wp-block-button__link::after,
.wc-block-product .wc-block-components-product-button button::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 30%,
    rgba(255, 255, 255, 0.15) 50%,
    transparent 70%
  );
  transform: translateX(-100%);
  transition: transform 500ms var(--ease-out);
}

.wc-block-product .wc-block-components-product-button .wp-block-button__link:hover::after,
.wc-block-product .wc-block-components-product-button button:hover::after {
  transform: translateX(100%);
}

.wc-block-product .wc-block-components-product-button .wp-block-button__link:hover,
.wc-block-product .wc-block-components-product-button button:hover {
  background: var(--accent-hover) !important;
  border-color: var(--accent-hover) !important;
  box-shadow: 0 0 20px -4px rgba(0, 31, 255, 0.5) !important;
}

/* ============================================================
   PRODUCT BADGES - Made to Order & Ready to Ship
   Icon URLs injected as CSS custom properties via functions.php
   (wp_add_inline_style) so they resolve correctly on local and production.
   ============================================================ */

/* Shared badge base */
.wc-block-product.product_cat-made-to-order .wc-block-components-product-image::after,
li.product_cat-made-to-order .wc-block-components-product-image::after,
li.product_cat-made-to-order a > .wc-block-components-product-image::after,
.wc-block-product.product_cat-ready-to-ship .wc-block-components-product-image::after,
li.product_cat-ready-to-ship .wc-block-components-product-image::after,
li.product_cat-ready-to-ship a > .wc-block-components-product-image::after {
  content: '';
  position: absolute;
  bottom: 8px;
  left: 8px;
  width: 36px;
  height: 36px;
  padding: 5px;
  box-sizing: border-box;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-color: rgba(0, 5, 16, 0.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(153, 170, 255, 0.22);
  border-radius: 6px;
  pointer-events: none;
  z-index: 2;
}

.wc-block-product.product_cat-made-to-order .wc-block-components-product-image::after,
li.product_cat-made-to-order .wc-block-components-product-image::after,
li.product_cat-made-to-order a > .wc-block-components-product-image::after {
  background-image: var(--jp-mto-badge-icon);
}

.wc-block-product.product_cat-ready-to-ship .wc-block-components-product-image::after,
li.product_cat-ready-to-ship .wc-block-components-product-image::after,
li.product_cat-ready-to-ship a > .wc-block-components-product-image::after {
  background-image: var(--jp-rts-badge-icon);
}

/* Classic WC loop */
.woocommerce ul.products li.product_cat-made-to-order,
.woocommerce ul.products li.product_cat-ready-to-ship {
  position: relative;
}

.woocommerce ul.products li.product_cat-made-to-order::before,
.woocommerce ul.products li.product_cat-ready-to-ship::before {
  content: '';
  position: absolute;
  bottom: 54px;
  left: 10px;
  width: 36px;
  height: 36px;
  padding: 5px;
  box-sizing: border-box;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-color: rgba(0, 5, 16, 0.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(153, 170, 255, 0.22);
  border-radius: 6px;
  z-index: 2;
}

.woocommerce ul.products li.product_cat-made-to-order::before {
  background-image: var(--jp-mto-badge-icon);
}

.woocommerce ul.products li.product_cat-ready-to-ship::before {
  background-image: var(--jp-rts-badge-icon);
}

/* ============================================================
   SHOP SECTION HEADINGS
   (The "Made to Order" and other section titles on the shop page)
   ============================================================ */

.wp-block-woocommerce-product-collection h2.wp-block-heading,
.woocommerce-shop h2.wp-block-heading,
.entry-content h2.wp-block-heading {
  font-family: var(--font-special) !important;
  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  color: var(--fg-1) !important;
  line-height: 1.1 !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 1px solid var(--border) !important;
  position: relative;
}

/* Blue accent underline on section titles */
.wp-block-woocommerce-product-collection h2.wp-block-heading::after,
.woocommerce-shop h2.wp-block-heading::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 48px;
  height: 1px;
  background: var(--accent-soft);
}

/* ============================================================
   SHOP PAGE — SCROLL FADE-IN ANIMATION
   ============================================================ */

@media (prefers-reduced-motion: no-preference) {
  .wc-block-product-template li.wc-block-product {
    opacity: 0;
    transform: translateY(24px);
    transition:
      opacity 500ms var(--ease-out),
      transform 500ms var(--ease-out),
      border-color var(--dur-base) var(--ease-out),
      box-shadow var(--dur-base) var(--ease-out);
  }

  .wc-block-product-template li.wc-block-product.jp-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Stagger delays */
  .wc-block-product-template li.wc-block-product:nth-child(1)  { transition-delay: 0ms; }
  .wc-block-product-template li.wc-block-product:nth-child(2)  { transition-delay: 60ms; }
  .wc-block-product-template li.wc-block-product:nth-child(3)  { transition-delay: 120ms; }
  .wc-block-product-template li.wc-block-product:nth-child(4)  { transition-delay: 180ms; }
  .wc-block-product-template li.wc-block-product:nth-child(5)  { transition-delay: 240ms; }
  .wc-block-product-template li.wc-block-product:nth-child(6)  { transition-delay: 300ms; }
  .wc-block-product-template li.wc-block-product:nth-child(7)  { transition-delay: 360ms; }
  .wc-block-product-template li.wc-block-product:nth-child(8)  { transition-delay: 420ms; }
  .wc-block-product-template li.wc-block-product:nth-child(n+9) { transition-delay: 480ms; }

  /* Hover override — always instant lift on hover */
  .wc-block-product-template li.wc-block-product.jp-visible:hover {
    transform: translateY(-4px);
    transition-delay: 0ms !important;
  }
}

/* ============================================================
   SHOP TOOLBAR — refined layout
   ============================================================ */

.woocommerce-products-header {
  border-bottom: 1px solid var(--border);
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
}

/* Result count + ordering row */
.woocommerce-result-count,
.woocommerce-ordering {
  display: inline-flex;
  align-items: center;
}

/* ============================================================
   PAGINATION — enhanced
   ============================================================ */

.woocommerce nav.woocommerce-pagination,
.wc-block-pagination {
  margin-top: 3rem;
  display: flex;
  justify-content: center;
}

.wc-block-pagination-page,
.wc-block-pagination-page--arrow {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  color: var(--fg-2) !important;
  font-family: var(--font-mono) !important;
  font-size: 0.8125rem !important;
  border-radius: 4px !important;
  padding: 8px 14px !important;
  margin: 0 2px !important;
  transition:
    background var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-pagination-page:hover,
.wc-block-pagination-page--arrow:hover {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}

.wc-block-pagination-page--active {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}

/* ============================================================
   STORE NOTICES — styled to theme
   ============================================================ */

.wc-block-store-notices .wc-block-components-notice-banner,
.woocommerce-notices-wrapper .woocommerce-message {
  background: var(--bg-elev-2) !important;
  border: 1px solid var(--border) !important;
  border-left: 3px solid var(--accent-soft) !important;
  border-radius: var(--r-3) !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  padding: 1rem 1.25rem !important;
}

/* ============================================================
   CART PAGE — BLOCK CART
   ============================================================ */

.wp-block-woocommerce-cart {
  color: var(--fg-1);
}

.wp-block-woocommerce-cart .wc-block-cart__main-heading,
.wp-block-woocommerce-cart h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--fg-1);
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
}

/* Cart item rows */
.wc-block-cart-items table,
.wc-block-cart-items__header,
.wc-block-cart-items__row {
  border-color: var(--border) !important;
  color: var(--fg-1) !important;
}

.wc-block-cart-items__header-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3) !important;
}

/* Cart item product name */
.wc-block-cart-item__product-name {
  font-family: var(--font-body);
  font-weight: 600;
  color: var(--fg-1) !important;
}

/* Cart item price */
.wc-block-cart-item__total .wc-block-formatted-money-amount,
.wc-block-cart-item__prices .wc-block-formatted-money-amount {
  font-family: var(--font-mono);
  color: var(--accent-soft) !important;
}

/* Remove button */
.wc-block-cart-item__remove-link {
  color: var(--fg-3) !important;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-cart-item__remove-link:hover {
  color: var(--danger) !important;
}

/* Order summary panel */
.wc-block-cart__totals-title {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--fg-1) !important;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
  margin-bottom: 1rem;
}

.wc-block-components-totals-wrapper {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-3) !important;
  padding: 1.5rem !important;
}

.wc-block-components-totals-item__label {
  font-family: var(--font-body);
  color: var(--fg-2) !important;
}

.wc-block-components-totals-item__value {
  font-family: var(--font-mono);
  color: var(--fg-1) !important;
}

/* Proceed to checkout button */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 16px 24px !important;
  width: 100% !important;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    background var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out) !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: var(--accent-hover) !important;
  box-shadow: 0 0 28px -6px rgba(0, 31, 255, 0.55) !important;
}

/* ============================================================
   CHECKOUT PAGE — BLOCK CHECKOUT
   ============================================================ */

.wp-block-woocommerce-checkout {
  color: var(--fg-1);
}

.wc-block-checkout__main h2,
.wc-block-checkout__sidebar h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--fg-1);
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
}

/* Step headings */
.wc-block-components-checkout-step__heading {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  color: var(--fg-1) !important;
}

.wc-block-components-checkout-step__heading-content {
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
  color: var(--fg-3) !important;
  letter-spacing: 0.06em !important;
}

/* Checkout step number badge */
.wc-block-components-checkout-step__index {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  font-family: var(--font-mono) !important;
}

/* Form labels */
.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-form label {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--fg-2) !important;
  margin-bottom: 0.375rem;
}

/* Checkout inputs — 1.25rem top keeps WC floating label clear of input text (WC's own default) */
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-text-input input,
.wc-block-components-select select {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 1.25rem 14px 0.5rem !important;
  transition: border-color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-form .wc-block-components-text-input input:focus,
.wc-block-components-text-input input:focus {
  border-color: var(--accent-soft) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(153, 170, 255, 0.1) !important;
}

/* Order summary in checkout sidebar */
.wc-block-components-order-summary {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-3) !important;
}

.wc-block-components-order-summary-item__description {
  color: var(--fg-3) !important;
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
}

/* Payment methods */
.wc-block-components-payment-method-label {
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
}

.wc-block-components-radio-control-accordion-option {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  margin-bottom: 8px !important;
}

.wc-block-components-radio-control-accordion-option--checked {
  border-color: var(--accent-soft) !important;
  background: rgba(153, 170, 255, 0.04) !important;
}

/* ============================================================
   RESPONSIVE TWEAKS
   ============================================================ */

@media (max-width: 600px) {
  .wc-block-product-template li.wc-block-product:hover {
    transform: none; /* no lift on touch */
  }
}

/* ============================================================
   UTILITY: frost-glass panel (re-usable)
   ============================================================ */

.jp-glass {
  background: rgba(5, 15, 42, 0.72);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid var(--border);
  border-radius: var(--r-3);
}

/* ============================================================
   SINGLE PRODUCT PAGE (PDP) — Full Facelift
   WooCommerce Blocks-based product template
   ============================================================ */

/* ── Product title — main PDP heading only, never inside a product card ── */
.single-product .product:not(.wc-block-product) > .wp-block-post-title,
.single-product h1.product_title {
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
  letter-spacing: -0.03em !important;
  color: var(--fg-1) !important;
  line-height: 1.05 !important;
  margin-bottom: 0.5rem !important;
}

/* ── Product card titles — keep small everywhere (related products, etc.) ── */
.wc-block-product .wp-block-post-title,
.wc-block-product .wp-block-post-title a,
.wc-block-product h2.wp-block-post-title {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  letter-spacing: normal !important;
  line-height: 1.3 !important;
  color: var(--fg-1) !important;
  text-decoration: none !important;
}

/* ── Price on PDP ── */
.single-product .wc-block-components-product-price,
.single-product .price {
  font-family: var(--font-mono) !important;
  font-size: 1.375rem !important;
  color: var(--accent-soft) !important;
  letter-spacing: 0.03em !important;
  margin-bottom: 1.5rem !important;
  display: block;
}

/* ── Product gallery ── */
.single-product .wc-block-product-gallery,
.single-product .woocommerce-product-gallery {
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-elev-1);
  border: 1px solid var(--border);
}

.single-product .wc-block-product-gallery__large-image img,
.single-product .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 600ms var(--ease-out);
}

.single-product .wc-block-product-gallery__large-image:hover img {
  transform: scale(1.03);
}

/* Gallery thumbnails */
.single-product .wc-block-product-gallery__thumbnails,
.single-product .woocommerce-product-gallery__thumbs {
  gap: 8px;
  margin-top: 10px;
}

.single-product .wc-block-product-gallery__thumbnail,
.single-product .flex-control-thumbs li img {
  border: 2px solid transparent;
  border-radius: 6px;
  opacity: 0.65;
  transition:
    border-color var(--dur-fast) var(--ease-out),
    opacity var(--dur-fast) var(--ease-out);
  cursor: pointer;
}

.single-product .wc-block-product-gallery__thumbnail:hover,
.single-product .flex-control-thumbs li img:hover,
.single-product .wc-block-product-gallery__thumbnail--selected,
.single-product .flex-control-thumbs li img.flex-active {
  border-color: var(--accent-soft);
  opacity: 1;
}

/* ── MADE TO ORDER trust banner ── */
.single-product.product_cat-made-to-order .entry-content::before,
body.single-product .product_cat-made-to-order .wc-block-add-to-cart-with-options::before {
  content: none; /* handled by JS-injected element below */
}

/* MTO info strip - injected via JS below the product description */
.jp-mto-strip {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(0, 31, 255, 0.06);
  border: 1px solid rgba(153, 170, 255, 0.2);
  border-left: 3px solid var(--accent-soft);
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 1.5rem;
  font-family: var(--font-body);
  font-size: 0.8125rem;
  color: var(--fg-2);
  line-height: 1.5;
}

.jp-mto-strip__icon {
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: 1px;
}

.jp-mto-strip strong {
  display: block;
  color: var(--accent-soft);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 2px;
}

/* ── Variation / attribute section heading ── */
.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute
  .wc-block-dropdown__label,
.wc-block-add-to-cart-with-options__attribute-name {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
  margin-bottom: 0.5rem !important;
  display: block;
}

/* ── Size / color chip buttons ── */
.wc-block-product-filter-chips__item {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 5px !important;
  color: var(--fg-2) !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  padding: 7px 14px !important;
  cursor: pointer;
  transition:
    background var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out) !important;
  min-width: 44px;
  text-align: center;
}

.wc-block-product-filter-chips__item:hover {
  border-color: var(--accent-soft) !important;
  color: var(--fg-1) !important;
  background: rgba(153, 170, 255, 0.07) !important;
}

/* Selected chip */
.wc-block-product-filter-chips__item[aria-checked="true"] {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
  box-shadow: 0 0 14px -4px rgba(0, 31, 255, 0.5);
}

/* Disabled chip */
.wc-block-product-filter-chips__item[disabled] {
  opacity: 0.3 !important;
  cursor: not-allowed !important;
  text-decoration: line-through !important;
}

/* Chip container */
.wc-block-product-filter-chips__items {
  gap: 8px !important;
  flex-wrap: wrap !important;
}

/* ── Variation description ── */
.wp-block-woocommerce-add-to-cart-with-options-variation-description {
  font-size: 0.875rem !important;
  color: var(--fg-3) !important;
  font-style: italic;
  margin-top: 0.5rem !important;
}

/* ── Stock indicator ── */
.wc-block-components-product-stock-indicator--in-stock {
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #4ade80 !important; /* soft green */
}

.wc-block-components-product-stock-indicator--out-of-stock {
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--danger) !important;
}

/* ── Quantity stepper (WC Blocks) ── */
.wc-block-components-quantity-selector {
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  overflow: hidden;
  background: var(--bg-elev-1) !important;
  width: auto !important;
  display: inline-flex !important;
}

.wc-block-components-quantity-selector__input {
  background: transparent !important;
  border: none !important;
  color: var(--fg-1) !important;
  font-family: var(--font-mono) !important;
  font-size: 1rem !important;
  text-align: center;
  width: 52px !important;
  padding: 10px 4px !important;
}

.wc-block-components-quantity-selector__button {
  background: var(--bg-elev-2) !important;
  border: none !important;
  border-left: 1px solid var(--border-strong) !important;
  color: var(--fg-2) !important;
  font-size: 1.1rem !important;
  padding: 0 14px !important;
  cursor: pointer;
  transition:
    background var(--dur-fast) var(--ease-out),
    color var(--dur-fast) var(--ease-out) !important;
  line-height: 1;
}

.wc-block-components-quantity-selector__button--minus {
  border-left: none !important;
  border-right: 1px solid var(--border-strong) !important;
  order: -1;
}

.wc-block-components-quantity-selector__button:hover:not([disabled]) {
  background: var(--accent) !important;
  color: #fff !important;
}

.wc-block-components-quantity-selector__button[disabled] {
  opacity: 0.3 !important;
  cursor: not-allowed !important;
}

/* ── Add to Cart button (PDP) ── */
.single-product .wc-block-components-product-button__button,
.single-product .wc-block-components-product-button .wp-block-button__link,
.single-product .single_add_to_cart_button {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 15px 32px !important;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    background var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out),
    transform var(--dur-fast) var(--ease-out) !important;
  letter-spacing: 0.01em;
}

/* Shimmer on PDP ATC button */
.single-product .wc-block-components-product-button__button::after,
.single-product .single_add_to_cart_button::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 30%,
    rgba(255,255,255,0.18) 50%,
    transparent 70%
  );
  transform: translateX(-120%);
  transition: transform 600ms var(--ease-out);
}

.single-product .wc-block-components-product-button__button:hover::after,
.single-product .single_add_to_cart_button:hover::after {
  transform: translateX(120%);
}

.single-product .wc-block-components-product-button__button:hover,
.single-product .single_add_to_cart_button:hover {
  background: var(--accent-hover) !important;
  box-shadow: 0 0 32px -6px rgba(0,31,255,0.6) !important;
  transform: translateY(-1px);
}

.single-product .wc-block-components-product-button__button:active,
.single-product .single_add_to_cart_button:active {
  transform: translateY(0) !important;
  box-shadow: none !important;
}

/* Add to cart row flex layout */
.single-product .wp-block-group.is-layout-flex:has(
  .wc-block-add-to-cart-with-options__quantity-selector
) {
  gap: 12px !important;
  align-items: center !important;
  flex-wrap: wrap;
}

/* ── Product description accordion ── */
.wp-block-accordion-item {
  border-bottom: 1px solid var(--border) !important;
}

.wp-block-accordion-heading__toggle {
  background: transparent !important;
  border: none !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 1rem 0 !important;
  cursor: pointer;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  color: var(--fg-1) !important;
  text-align: left !important;
  transition: color var(--dur-fast) var(--ease-out) !important;
}

.wp-block-accordion-heading__toggle:hover {
  color: var(--accent-soft) !important;
}

.wp-block-accordion-heading__toggle-icon {
  font-size: 1.25rem !important;
  color: var(--accent-soft) !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  transition: transform var(--dur-base) var(--ease-out) !important;
  flex-shrink: 0;
}

.wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon {
  transform: rotate(45deg);
}

.wp-block-accordion-panel {
  overflow: hidden;
  transition: all var(--dur-base) var(--ease-out);
}

/* Accordion content text */
.wc-block-product-description p,
.wp-block-accordion-panel p {
  color: var(--fg-2) !important;
  font-size: 0.9375rem !important;
  line-height: 1.75 !important;
}

.wc-block-product-description ul,
.wp-block-accordion-panel ul {
  color: var(--fg-2) !important;
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
  padding-left: 1.25rem;
}

.wc-block-product-description li,
.wp-block-accordion-panel li {
  margin-bottom: 0.25rem;
}

/* Mindful production note — highlight the sustainability line */
.wc-block-product-description p:last-child {
  background: rgba(0, 31, 255, 0.05);
  border: 1px solid rgba(153, 170, 255, 0.15);
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 0.8125rem !important;
  color: var(--fg-3) !important;
  margin-top: 1rem;
}

/* Product specifications table */
.wp-block-woocommerce-product-specifications table {
  width: 100%;
  border-collapse: collapse;
}

.wp-block-product-specifications-item__label {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
  padding: 8px 16px 8px 0 !important;
  vertical-align: top;
  white-space: nowrap;
  width: 30%;
}

.wp-block-product-specifications-item__value {
  color: var(--fg-1) !important;
  font-size: 0.875rem !important;
  padding: 8px 0 !important;
}

.wp-block-product-specifications-item__value p {
  margin: 0 !important;
  color: var(--fg-1) !important;
}

/* ── Product meta (category/tag links) ── */
.wp-block-woocommerce-product-meta {
  border-top: 1px solid var(--border);
  padding-top: 1rem;
  margin-top: 0.5rem;
}

.wp-block-woocommerce-product-meta .wp-block-post-terms {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  color: var(--fg-3);
}

.wp-block-woocommerce-product-meta .wp-block-post-terms__prefix {
  text-transform: uppercase;
}

.wp-block-woocommerce-product-meta a {
  color: var(--accent-soft) !important;
  text-decoration: none !important;
  transition: color var(--dur-fast) var(--ease-out);
}

.wp-block-woocommerce-product-meta a:hover {
  color: var(--fg-1) !important;
}

/* ── Related Products heading ── */
.single-product h2.wp-block-heading {
  font-family: var(--font-special) !important;
  font-weight: 400 !important;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem) !important;
  letter-spacing: 0.02em !important;
  color: var(--fg-1) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 1.5rem !important;
  position: relative;
}

.single-product h2.wp-block-heading::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 40px;
  height: 1px;
  background: var(--accent-soft);
}

/* ── Breadcrumbs ── */
.wc-block-breadcrumbs,
.woocommerce-breadcrumb {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.06em !important;
  color: var(--fg-3) !important;
  margin-bottom: 1.5rem !important;
}

.wc-block-breadcrumbs a,
.woocommerce-breadcrumb a {
  color: var(--fg-3) !important;
  text-decoration: none !important;
  transition: color var(--dur-fast) var(--ease-out);
}

.wc-block-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
  color: var(--accent-soft) !important;
}

/* ============================================================
   CART PAGE — WC Block Cart
   ============================================================ */

/* Cart empty state */
.wc-block-cart--is-empty .wc-block-cart__empty-cart__title {
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important;
  color: var(--fg-2) !important;
}

/* Cart table header row */
.wc-block-cart-items__header {
  border-bottom: 1px solid var(--border) !important;
}

.wc-block-cart-items__header-label {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
  padding-bottom: 0.75rem !important;
}

/* Cart item row */
.wc-block-cart-items__row {
  border-bottom: 1px solid var(--border) !important;
  padding: 1.25rem 0 !important;
  align-items: center !important;
}

/* Cart item image */
.wc-block-cart-item__image img {
  border-radius: 6px !important;
  border: 1px solid var(--border) !important;
}

/* Cart item name */
.wc-block-cart-item__product-name,
.wc-block-cart-item__product-name a {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  color: var(--fg-1) !important;
  text-decoration: none !important;
  transition: color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-cart-item__product-name a:hover {
  color: var(--accent-soft) !important;
}

/* Variation info under product name */
.wc-block-cart-item__product-metadata {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  color: var(--fg-3) !important;
  letter-spacing: 0.04em !important;
  margin-top: 4px !important;
}

/* Cart quantity stepper */
.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  background: var(--bg-elev-1) !important;
}

/* Cart price */
.wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-item__prices .wc-block-components-product-price {
  font-family: var(--font-mono) !important;
  font-size: 1rem !important;
  color: var(--fg-1) !important;
  font-weight: 600;
}

/* Cart remove button */
.wc-block-cart-item__remove-link {
  font-family: var(--font-mono) !important;
  font-size: 0.625rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
  text-decoration: none !important;
  border-bottom: 1px solid transparent !important;
  transition:
    color var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-cart-item__remove-link:hover {
  color: var(--danger) !important;
  border-color: var(--danger) !important;
}

/* Order totals panel */
.wc-block-components-totals-wrapper {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 1.5rem !important;
}

.wc-block-cart__totals-title {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 1.125rem !important;
  color: var(--fg-1) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 1rem !important;
}

.wc-block-components-totals-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 6px 0 !important;
}

.wc-block-components-totals-item__label {
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  color: var(--fg-2) !important;
}

.wc-block-components-totals-item__value {
  font-family: var(--font-mono) !important;
  font-size: 0.9375rem !important;
  color: var(--fg-1) !important;
}

/* Order total row — larger */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-weight: 700 !important;
  color: var(--fg-1) !important;
  font-size: 1rem !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.25rem !important;
  color: var(--accent-soft) !important;
  font-weight: 700;
}

/* Proceed to checkout CTA */
.wc-block-cart__submit-button {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 16px 24px !important;
  width: 100% !important;
  margin-top: 1rem !important;
  cursor: pointer;
  transition:
    background var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out),
    transform var(--dur-fast) var(--ease-out) !important;
}

.wc-block-cart__submit-button:hover {
  background: var(--accent-hover) !important;
  box-shadow: 0 0 28px -4px rgba(0,31,255,0.55) !important;
  transform: translateY(-1px);
}

/* Coupon code input */
.wc-block-components-totals-coupon__form input {
  background: var(--bg-elev-2) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  padding: 10px 12px !important;
}

.wc-block-components-totals-coupon__form button {
  background: transparent !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--accent-soft) !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  padding: 10px 16px !important;
  transition:
    background var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-totals-coupon__form button:hover {
  background: rgba(153,170,255,0.1) !important;
  border-color: var(--accent-soft) !important;
}

/* ============================================================
   CHECKOUT PAGE — WC Block Checkout
   ============================================================ */

.wp-block-woocommerce-checkout {
  color: var(--fg-1);
}

/* Step container */
.wc-block-components-checkout-step {
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 2rem !important;
  margin-bottom: 2rem !important;
}

.wc-block-components-checkout-step:last-child {
  border-bottom: none !important;
}

/* Step number badge */
.wc-block-components-checkout-step__index {
  background: var(--accent) !important;
  color: #fff !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--font-mono) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  flex-shrink: 0;
}

/* Step heading */
.wc-block-components-checkout-step__heading {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 1.125rem !important;
  color: var(--fg-1) !important;
}

.wc-block-components-checkout-step__heading-content {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  color: var(--fg-3) !important;
  letter-spacing: 0.06em !important;
  font-weight: 400 !important;
}

/* Checkout inputs — asymmetric padding keeps floating label above input text */
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-country-input input,
.wc-block-components-state-input input {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 1.25rem 14px 0.5rem !important;
  width: 100% !important;
  transition:
    border-color var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus {
  border-color: var(--accent-soft) !important;
  box-shadow: 0 0 0 3px rgba(153,170,255,0.12) !important;
  outline: none !important;
}

/* Input labels — do not set display or margin; WC floating label relies on its own positioning */
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-form label {
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--fg-2) !important;
}

/* Checkbox */
.wc-block-components-checkbox input[type="checkbox"] {
  accent-color: var(--accent);
}

.wc-block-components-checkbox label {
  font-size: 0.875rem !important;
  color: var(--fg-2) !important;
}

/* Payment methods accordion */
.wc-block-components-radio-control-accordion-option {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  margin-bottom: 8px !important;
  overflow: hidden;
  transition: border-color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-radio-control-accordion-option:hover {
  border-color: var(--border-strong) !important;
}

.wc-block-components-radio-control-accordion-option--checked {
  border-color: var(--accent-soft) !important;
  background: rgba(153,170,255,0.04) !important;
}

.wc-block-components-payment-method-label__name {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  color: var(--fg-1) !important;
}

/* Order summary sidebar */
.wc-block-components-order-summary {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  overflow: hidden;
}

.wc-block-components-order-summary__toggle-button {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  color: var(--fg-1) !important;
  background: transparent !important;
  border: none !important;
  width: 100% !important;
  text-align: left !important;
  padding: 1.25rem 1.5rem !important;
  cursor: pointer;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.wc-block-components-order-summary-item__description {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  color: var(--fg-3) !important;
  letter-spacing: 0.04em !important;
}

.wc-block-components-order-summary-item__individual-prices {
  font-family: var(--font-mono) !important;
  color: var(--fg-3) !important;
  font-size: 0.75rem !important;
}

/* Place order button */
.wc-block-components-checkout-place-order-button {
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 1.0625rem !important;
  padding: 18px 24px !important;
  width: 100% !important;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    background var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out),
    transform var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-checkout-place-order-button:hover {
  background: var(--accent-hover) !important;
  box-shadow: 0 0 36px -6px rgba(0,31,255,0.6) !important;
  transform: translateY(-1px);
}

/* ── Order Received / Thank You page ── */
.woocommerce-order-received .entry-title,
.wp-block-woocommerce-checkout-order-summary-block h2 {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
}

.wc-block-order-confirmation-summary-list-item__key {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
}

.wc-block-order-confirmation-summary-list-item__value {
  font-family: var(--font-body) !important;
  color: var(--fg-1) !important;
  font-weight: 600 !important;
}

/* ── Checkout header bar: logo | title | back-to-cart ────────────────────── */

/* Logo already sized by .jp-nav-blur rules in header-proto.css.
   Title takes the middle with flex:1 so logo and back link stay at their
   natural widths and the title is always optically centred. */
.jp-checkout-header-bar {
  align-items: center !important;
}

.jp-checkout-header__title {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
  color: var(--fg-1) !important;
  text-align: center !important;
  pointer-events: none !important;
}

.jp-checkout-header__title::after {
  content: 'Cart  ›  Checkout  ›  Complete';
  display: block !important;
  font-family: var(--font-mono) !important;
  font-size: 0.5625rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
  margin-top: 0.3rem !important;
}

/* Back-to-cart link — right side, matches nav link style */
.jp-checkout-header__back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  letter-spacing: 0.04em !important;
  color: var(--fg-2) !important;
  text-decoration: none !important;
  transition: color 140ms ease !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.jp-checkout-header__back:hover {
  color: var(--accent) !important;
}

/* Placeholder span keeps the 3-col balance on order-confirmation */
.jp-checkout-header__back--placeholder {
  min-width: 96px !important;
}

/* Hide back link text on small screens, keep the arrow.
   Also reduce title font-size and bar gap so the three-column layout
   stays comfortable at 375px without wrapping or horizontal overflow. */
@media (max-width: 480px) {
  .jp-checkout-header__back span { display: none !important; }
  .jp-checkout-header__back--placeholder { min-width: 24px !important; }
  .jp-checkout-header__title { font-size: 0.875rem !important; }
  .jp-checkout-header-bar { gap: 0.5rem !important; }
}

/* Reduce top padding on cart pages (checkout uses template-level 2.5rem) */
@media (max-width: 768px) {
  body.woocommerce-cart main.wp-block-group {
    padding-top: 5rem !important;
    padding-bottom: 4rem !important;
  }
}

/* ── Two-column layout ── */
.wp-block-woocommerce-checkout.alignwide {
  gap: 3rem !important;
}

/* Sidebar sticks while scrolling the form on desktop */
.wc-block-checkout__sidebar {
  position: sticky !important;
  top: 5.5rem !important;
  align-self: flex-start !important;
}

/* ── Country / Region select — WC 10.x uses .wc-blocks-components-select (not Gutenberg combobox) ── */
/* Default state has background:#fff which shows through the transparent dark-mode override */
.wc-blocks-components-select .wc-blocks-components-select__container {
  background: var(--bg-elev-1) !important;
  color: var(--fg-1) !important;
  border-radius: 6px !important;
}

.wc-blocks-components-select .wc-blocks-components-select__select {
  background: transparent !important;
  color: var(--fg-1) !important;
  border-color: var(--border-strong) !important;
  border-radius: 6px !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 1.25rem 14px 0.5rem !important;
  height: auto !important;
}

.wc-blocks-components-select .wc-blocks-components-select__select:focus {
  border-color: var(--accent-soft) !important;
  box-shadow: 0 0 0 3px rgba(153, 170, 255, 0.12) !important;
  outline: none !important;
}

.wc-blocks-components-select .wc-blocks-components-select__label {
  color: var(--fg-2) !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  left: 14px !important;
}

.wc-blocks-components-select .wc-blocks-components-select__expand {
  fill: var(--fg-2) !important;
}

/* ── Compact form field spacing ── */
.wc-block-components-checkout-step__content {
  padding-top: 1rem !important;
}

.wc-block-components-checkout-step__content .wc-block-components-text-input,
.wc-block-components-checkout-step__content .wc-block-components-select,
.wc-block-components-checkout-step__content .wc-block-components-country-input,
.wc-block-components-checkout-step__content .wc-block-components-state-input {
  margin-bottom: 0.75rem !important;
}

/* ── Payment step — order notes textarea ── */
.wc-block-components-textarea textarea {
  background: var(--bg-elev-1) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 12px 14px !important;
  width: 100% !important;
  min-height: 80px !important;
  resize: vertical;
  transition: border-color var(--dur-fast) var(--ease-out) !important;
}

.wc-block-components-textarea textarea:focus {
  border-color: var(--accent-soft) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(153, 170, 255, 0.1) !important;
}

/* ── Trust signal above Place Order ── */
.wc-block-checkout__actions {
  margin-top: 0.5rem;
}

.wc-block-checkout__actions::before {
  content: '🔒  SSL encrypted · secure checkout';
  display: block;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-3);
  background: rgba(153, 170, 255, 0.04);
  border: 1px solid rgba(153, 170, 255, 0.1);
  border-radius: 4px;
  padding: 0.6rem 1rem;
  margin-bottom: 0.875rem;
}

/* ── Order summary sidebar items ── */
.wc-block-components-order-summary-item {
  padding: 0.625rem 0 !important;
  border-bottom: 1px solid var(--border) !important;
}

.wc-block-components-order-summary-item__individual-prices {
  margin-top: 2px !important;
}

/* Grand total row in sidebar */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  color: var(--fg-1) !important;
}

/* ── Order confirmation / Thank You page ── */
body.woocommerce-order-received h1.wp-block-post-title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

.wc-block-order-confirmation-status {
  background: rgba(153, 170, 255, 0.05) !important;
  border: 1px solid rgba(153, 170, 255, 0.18) !important;
  border-left: 3px solid var(--accent-soft) !important;
  border-radius: 8px !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 2rem !important;
}

.wc-block-order-confirmation-totals__head,
.wc-block-order-confirmation-totals thead th {
  font-family: var(--font-mono) !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--fg-3) !important;
}


/* ── Classic WooCommerce Single product page (PDP) dark theme ────────────── */

/* Product gallery */
.woocommerce-product-gallery { margin-bottom: 0 !important; }

/* Product title */
.product_title.entry-title,
h1.product_title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--fg-1) !important;
  margin-bottom: 0.5rem !important;
}

/* Price */
.woocommerce-Price-amount.amount {
  color: var(--accent) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
}

/* Add to cart button */
.single_add_to_cart_button.button {
  background: var(--accent) !important;
  color: var(--fg-1) !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  padding: 0.875rem 2rem !important;
  transition: opacity 160ms ease !important;
  width: 100% !important;
}
.single_add_to_cart_button.button:hover { opacity: 0.88 !important; }

/* Product tabs */
.woocommerce-tabs .tabs li a {
  color: var(--fg-2) !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  letter-spacing: 0.04em !important;
  border-color: var(--border) !important;
  background: transparent !important;
}
.woocommerce-tabs .tabs li.active a {
  color: var(--fg-1) !important;
  border-bottom-color: var(--bg) !important;
}
.woocommerce-Tabs-panel {
  color: var(--fg-2) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  line-height: 1.7 !important;
  border-color: var(--border) !important;
}

/* Related products heading */
.related.products > h2 {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--fg-1) !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 1.5rem !important;
}

/* ============================================================
   MTO PAGE NOTICE — JS-injected via shop-animations.js
   Injects a "Made to Order" trust strip on PDP for MTO products
   ============================================================ */

/* Applied by JS to body when on a MTO product page */

body.jp-is-mto .wc-block-components-product-button {
  position: relative;
}

/* ══════════════════════════════════════════════════════════════
   MINI-CART DRAWER
   ══════════════════════════════════════════════════════════════ */

/* Panel root */
.wc-block-mini-cart__drawer {
  background: var(--bg-elev-1) !important;
  color: var(--fg-1) !important;
  border-left: 1px solid var(--border) !important;
}

/* Overlay backdrop */
.wc-block-mini-cart__drawer .components-modal__screen-overlay,
.wc-block-mini-cart__overlay {
  background: rgba(0, 5, 16, 0.72) !important;
}

/* "Your cart" drawer heading */
.wc-block-mini-cart__title,
.wc-block-mini-cart__template-part h2,
.wc-block-mini-cart__template-part h3 {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--fg-1) !important;
  letter-spacing: -0.01em !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 1rem !important;
  margin-bottom: 0 !important;
}

/* Item rows */
.wc-block-cart-items__row {
  border-bottom: 1px solid var(--border) !important;
}

/* Product name */
.wc-block-cart-item__description a,
.wc-block-cart-item__description .wc-block-cart-item__product-name {
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}
.wc-block-cart-item__description a:hover {
  color: var(--accent-soft) !important;
}

/* Product meta (variation labels) */
.wc-block-cart-item__description .wc-block-cart-item__product-metadata {
  color: var(--fg-3) !important;
  font-size: 0.8125rem !important;
}

/* Price */
.wc-block-cart-item__prices .woocommerce-Price-amount {
  color: var(--accent) !important;
  font-weight: 600 !important;
}

/* Remove item button */
.wc-block-cart-item__remove-link {
  color: var(--fg-3) !important;
  font-size: 0.75rem !important;
  text-decoration: none !important;
  transition: color 140ms ease !important;
}
.wc-block-cart-item__remove-link:hover {
  color: var(--accent) !important;
}

/* Quantity stepper */
.wc-block-components-quantity-selector {
  background: var(--bg) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: var(--r-pill) !important;
  color: var(--fg-1) !important;
}
.wc-block-components-quantity-selector__button {
  color: var(--fg-2) !important;
  background: transparent !important;
}
.wc-block-components-quantity-selector__button:hover {
  color: var(--fg-1) !important;
}
.wc-block-components-quantity-selector input[type="number"] {
  background: transparent !important;
  color: var(--fg-1) !important;
  font-family: var(--font-mono) !important;
  border: none !important;
}

/* Footer: subtotal + buttons */
.wc-block-mini-cart__footer,
.wc-block-cart__totals-footer {
  border-top: 1px solid var(--border) !important;
  background: var(--bg-elev-1) !important;
}

/* Subtotal label + amount */
.wc-block-mini-cart__footer .wc-block-components-totals-item__label,
.wc-block-mini-cart__footer .wc-block-components-totals-item {
  color: var(--fg-2) !important;
  font-family: var(--font-body) !important;
}
.wc-block-mini-cart__footer .wc-block-components-totals-item .woocommerce-Price-amount {
  color: var(--accent) !important;
  font-weight: 700 !important;
}

/* Checkout CTA button */
.wc-block-mini-cart__footer-checkout-link,
.wc-block-mini-cart__footer .wc-block-components-checkout-button .components-button {
  background: var(--accent) !important;
  color: var(--bg) !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  letter-spacing: 0.03em !important;
  padding: 0.875rem 1.5rem !important;
  width: 100% !important;
  text-align: center !important;
  transition: opacity 160ms ease !important;
}
.wc-block-mini-cart__footer-checkout-link:hover {
  opacity: 0.88 !important;
}

/* Continue shopping link */
.wc-block-mini-cart__shopping-button a,
.wc-block-mini-cart__footer .wc-block-mini-cart__shopping-button {
  color: var(--fg-3) !important;
  font-size: 0.875rem !important;
  text-decoration: none !important;
  text-align: center !important;
  display: block !important;
}
.wc-block-mini-cart__shopping-button a:hover {
  color: var(--accent-soft) !important;
}

/* Empty cart state */
.wc-block-mini-cart__empty-cart-wrapper {
  color: var(--fg-3) !important;
  font-family: var(--font-body) !important;
  text-align: center !important;
  padding: 3rem 1.5rem !important;
}

/* ══════════════════════════════════════════════════════════════
   MY ACCOUNT
   ══════════════════════════════════════════════════════════════ */

/* ── Page layout ── */
.woocommerce-account {
  color: var(--fg-1);
}

/* Two-column layout — flex beats WC's float-based layout.css reliably */
.woocommerce-account .woocommerce {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 2rem !important;
  align-items: flex-start !important;
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce {
    flex-wrap: wrap !important;
  }
}

/* ── Sidebar navigation ── */
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  flex: 0 0 220px !important;
  width: 220px !important;
  background: var(--bg-elev-1);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.5rem;
  position: sticky;
  top: 5.5rem;
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    flex: 0 0 100% !important;
    width: 100% !important;
    position: static;
  }
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 4px;
  }
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  border-radius: 6px;
  overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 0.875rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--fg-2);
  text-decoration: none;
  border-radius: 6px;
  transition: background 140ms ease, color 140ms ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--bg-elev-2, var(--bg-elev-1));
  color: var(--fg-1);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active a {
  background: var(--bg-elev-2, var(--bg-elev-1));
  color: var(--accent-soft);
  font-weight: 600;
}

/* ── Content area ── */
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  color: var(--fg-1);
  font-family: var(--font-body);
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--fg-1);
  margin-bottom: 1rem;
}

.woocommerce-account .woocommerce-MyAccount-content p {
  color: var(--fg-2);
  line-height: 1.7;
  margin-bottom: 0.875rem;
}

.woocommerce-account .woocommerce-MyAccount-content a {
  color: var(--accent);
  text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-content a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ── Orders table ── */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .shop_table th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-3);
  border-bottom: 1px solid var(--border-strong);
  padding: 0.75rem 1rem;
  text-align: left;
}

.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .shop_table td {
  color: var(--fg-2);
  border-bottom: 1px solid var(--border);
  padding: 0.875rem 1rem;
  font-family: var(--font-body);
  vertical-align: middle;
}

.woocommerce-account .woocommerce-orders-table tr:last-child td,
.woocommerce-account .shop_table tr:last-child td {
  border-bottom: none;
}

.woocommerce-account .woocommerce-orders-table tr:hover td,
.woocommerce-account .shop_table tr:hover td {
  background: var(--bg-elev-1);
}

/* Order status badge */
.woocommerce-account .order-status,
.woocommerce-account .woocommerce-orders-table__cell-order-status mark {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0.25rem 0.625rem;
  border-radius: var(--r-pill);
  background: var(--bg-elev-2, var(--bg-elev-1));
  color: var(--accent-soft);
}

/* View order / action button */
.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account .woocommerce-button {
  font-size: 0.75rem;
  font-family: var(--font-body);
  font-weight: 500;
  padding: 0.375rem 0.875rem;
  background: transparent;
  border: 1px solid var(--accent-soft);
  border-radius: 4px;
  color: var(--accent);
  text-decoration: none;
  display: inline-block;
  transition: background 140ms ease, color 140ms ease;
}
.woocommerce-account .woocommerce-orders-table .button:hover,
.woocommerce-account .woocommerce-button:hover {
  background: var(--bg-elev-1);
  color: var(--fg-1);
}

/* ── Address book ── */
.woocommerce-account .woocommerce-Addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

@media (max-width: 600px) {
  .woocommerce-account .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
}

.woocommerce-account .woocommerce-Address {
  background: var(--bg-elev-1);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
}

.woocommerce-account .woocommerce-Address-title h3 {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--fg-1);
  margin-bottom: 0.75rem;
  letter-spacing: 0.02em;
}

.woocommerce-account address {
  font-style: normal;
  color: var(--fg-2);
  font-size: 0.9375rem;
  line-height: 1.7;
}

/* ── Account & edit forms ── */
.woocommerce-account .woocommerce-EditAccountForm fieldset,
.woocommerce-account .woocommerce-address-fields fieldset {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}

.woocommerce-account .woocommerce-EditAccountForm legend,
.woocommerce-account .woocommerce-address-fields legend {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-3);
  padding: 0 0.5rem;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row label,
.woocommerce-account .woocommerce-address-fields .form-row label {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--fg-2);
  display: block;
  margin-bottom: 0.375rem;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row input,
.woocommerce-account .woocommerce-address-fields .form-row input,
.woocommerce-account .woocommerce-EditAccountForm .form-row select,
.woocommerce-account .woocommerce-address-fields .form-row select {
  background: var(--bg) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 0.625rem 0.875rem !important;
  width: 100% !important;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row input:focus,
.woocommerce-account .woocommerce-address-fields .form-row input:focus {
  border-color: var(--accent-soft) !important;
  outline: none !important;
}

/* Save changes button */
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"],
.woocommerce-account .woocommerce-address-fields button[type="submit"] {
  background: var(--accent) !important;
  color: var(--bg) !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  padding: 0.75rem 1.75rem !important;
  cursor: pointer !important;
  transition: opacity 160ms ease !important;
}
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"]:hover,
.woocommerce-account .woocommerce-address-fields button[type="submit"]:hover {
  opacity: 0.88 !important;
}

/* ── WC notices ── */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
  background: var(--bg-elev-1) !important;
  border-top-color: var(--accent) !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  border-radius: 0 0 6px 6px !important;
}

/* ── Login form (shown when logged out) ── */
.woocommerce-account .woocommerce-form-login {
  background: var(--bg-elev-1);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem;
  max-width: 480px;
}

.woocommerce-account .woocommerce-form-login h2 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fg-1);
  margin-bottom: 1.5rem;
  letter-spacing: -0.01em;
}

.woocommerce-account .woocommerce-form-row label {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--fg-2);
  display: block;
  margin-bottom: 0.375rem;
}

.woocommerce-account .woocommerce-Input--text,
.woocommerce-account .input-text {
  background: var(--bg) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  color: var(--fg-1) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  padding: 0.625rem 0.875rem !important;
  width: 100% !important;
}
.woocommerce-account .woocommerce-Input--text:focus,
.woocommerce-account .input-text:focus {
  border-color: var(--accent-soft) !important;
  outline: none !important;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--fg-2);
}

.woocommerce-account .woocommerce-form-login__submit {
  background: var(--accent) !important;
  color: var(--bg) !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  padding: 0.75rem 1.75rem !important;
  cursor: pointer !important;
  transition: opacity 160ms ease !important;
  display: inline-block !important;
  float: none !important;
}
.woocommerce-account .woocommerce-form-login__submit:hover {
  opacity: 0.88 !important;
}

.woocommerce-account .woocommerce-LostPassword a {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  color: var(--fg-3);
  text-decoration: none;
}
.woocommerce-account .woocommerce-LostPassword a:hover {
  color: var(--accent-soft);
}

/* Two-column login+register wrapper — must reset WC floats on col-1/col-2 */
.woocommerce-account .u-columns.col2-set {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 2rem !important;
  align-items: flex-start !important;
  width: 100% !important;
}

.woocommerce-account .u-columns.col2-set .col-1,
.woocommerce-account .u-columns.col2-set .col-2 {
  float: none !important;
  width: auto !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

@media (max-width: 640px) {
  .woocommerce-account .u-columns.col2-set {
    flex-wrap: wrap !important;
  }
  .woocommerce-account .u-columns.col2-set .col-1,
  .woocommerce-account .u-columns.col2-set .col-2 {
    flex: 0 0 100% !important;
  }
}

.woocommerce-account .u-columns .woocommerce-form {
  background: var(--bg-elev-1);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem;
}
.woocommerce-account .u-columns .woocommerce-form h2 {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--fg-1);
  margin-bottom: 1.25rem;
}

