body {
  overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   Add-to-cart: loading shimmer & curtain-open success animation
   -------------------------------------------------------------------------- */

/* Loading state — gentle light sweep across the button */
.wedo-atc-loading {
  position: relative !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.wedo-atc-loading::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.42) 50%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: wedo-shimmer 1.8s ease-in-out infinite;
  border-radius: inherit;
  pointer-events: none;
}
@keyframes wedo-shimmer {
  0%   { background-position:  200% 0; }
  100% { background-position: -200% 0; }
}

/* Success state — two dark curtain panels part from centre */
.wedo-atc-success {
  position: relative !important;
  overflow: hidden !important;
}
.wedo-atc-success::before,
.wedo-atc-success::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 52%;          /* slightly past 50% so panels fully cover the join */
  background: rgba(18, 12, 3, 0.68);  /* dark curtain-fabric tone */
  z-index: 2;
  pointer-events: none;
  animation-duration: 0.56s;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  animation-fill-mode: forwards;
}
.wedo-atc-success::before {
  left: 0;
  animation-name: wedo-curtain-left;
}
.wedo-atc-success::after {
  right: 0;
  animation-name: wedo-curtain-right;
}
@keyframes wedo-curtain-left {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-105%); }
}
@keyframes wedo-curtain-right {
  0%   { transform: translateX(0); }
  100% { transform: translateX(105%); }
}

.site-logo {
  display: block;
  flex-shrink: 0;
  max-width: 100%;
}

.site-header-logo {
  display: block;
  width: auto !important;
  height: 2.75rem !important;
  max-width: 11rem !important;
  max-height: 2.75rem !important;
  object-fit: contain;
}

.site-footer-logo {
  height: 3.5rem;
  width: auto;
}

.category-card-title {
  color: #d6a319;
  line-height: 1;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.08),
    0 8px 22px rgba(0, 0, 0, 0.55);
}

.homepage-category-card-body {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  text-align: center;
}

.homepage-category-card-title {
  display: flex;
  min-height: 2.25rem;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.homepage-category-card-body > p {
  display: flex;
  width: min(100%, 19rem);
  min-height: 6.25rem;
  align-items: flex-start;
  justify-content: center;
  margin-top: 0.75rem !important;
  overflow: hidden;
}

.homepage-category-card-body > span {
  justify-content: center;
  margin-top: 0 !important;
}

.hero-tagline {
  letter-spacing: 0.01em;
  text-wrap: balance;
}

.menu-trigger {
  border: 1px solid rgba(214, 163, 25, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0)),
    rgba(17, 17, 17, 0.76);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 12px 36px rgba(0, 0, 0, 0.24);
}

.menu-panel {
  border-radius: 2rem;
  border: 1px solid rgba(214, 163, 25, 0.14);
  background:
    radial-gradient(circle at top, rgba(214, 163, 25, 0.1), transparent 34%),
    linear-gradient(180deg, rgba(20, 20, 20, 0.98), rgba(8, 8, 8, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 26px 70px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(16px);
  max-height: calc(100dvh - 110px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.menu-panel-block {
  border-radius: 1.55rem;
  padding: 1.1rem 1.1rem 1rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.menu-panel-block-compact {
  min-height: 100%;
}

.menu-panel-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #d6a319;
  transition: color 0.2s ease;
}

.menu-panel-label:hover {
  color: #e6bc4d;
}

.menu-panel-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-radius: 999px;
  padding: 0.9rem 1rem;
  color: #f8f5ec;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.menu-panel-link:hover {
  background: rgba(255, 255, 255, 0.04);
  color: #d6a319;
  transform: translateX(2px);
}

.mobile-menu-card,
.mobile-menu-single {
  border-radius: 1.7rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0)),
    rgba(5, 5, 5, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.mobile-menu-toggle,
.mobile-menu-single {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 1.05rem 1.25rem;
  text-align: left;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.mobile-menu-toggle {
  color: #d6a319;
}

.mobile-menu-single {
  color: #f8f5ec;
}

.mobile-menu-link {
  display: block;
  border-radius: 999px;
  padding: 0.9rem 1rem;
  font-size: 0.95rem;
  color: #f8f5ec;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.mobile-menu-link:hover {
  background: rgba(255, 255, 255, 0.04);
  color: #d6a319;
}

.prototype-mini-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  font-size: 0.875rem;
}

.prototype-mini-nav a {
  color: #b8b1a3;
  transition: color 0.2s ease;
}

.prototype-mini-nav a:hover,
.prototype-mini-nav a:first-child {
  color: #d6a319;
}

html.menu-open,
body.menu-open {
  overflow: hidden;
  overscroll-behavior: none;
}

.heading-placeholder {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(237, 232, 222, 0.9)),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.95) 0,
      rgba(255, 255, 255, 0.95) 22px,
      rgba(230, 224, 214, 0.85) 22px,
      rgba(230, 224, 214, 0.85) 44px
    );
  box-shadow: inset 0 0 0 1px rgba(214, 163, 25, 0.18);
}

.product-measurements-grid {
  align-items: end;
}

.product-measurement-input {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
}

.product-gallery-main {
  background: #050505;
}

.product-gallery-arrow {
  display: inline-flex;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(214, 163, 25, 0.32);
  border-radius: 999px;
  color: #d6a319;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.product-gallery-arrow:hover {
  background: #d6a319;
  color: #050505;
}

.product-gallery-thumb {
  width: 5.25rem;
  height: 5.25rem;
}

.product-gallery-thumbs {
  scrollbar-width: thin;
  scrollbar-color: rgba(214, 163, 25, 0.48) rgba(255, 255, 255, 0.06);
}

.heading-style-image {
  background: #f5f0e7;
}

.wedo-configurator-cart form.cart {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0;
}

.wedo-configurator-cart form.cart .quantity {
  display: none;
}

.wedo-configurator-cart form.cart .single_add_to_cart_button,
.wedo-configurator-cart form.cart button[type="submit"] {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: #d6a319;
  padding: 1rem 1.75rem;
  color: #050505;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  transition:
    background-color 0.2s ease,
    opacity 0.2s ease;
}

.wedo-configurator-cart form.cart .single_add_to_cart_button:hover,
.wedo-configurator-cart form.cart button[type="submit"]:hover {
  background: #e6bc4d;
}

.wedo-configurator-cart form.cart .single_add_to_cart_button:disabled,
.wedo-configurator-cart form.cart button[type="submit"]:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.wedo-configurator-cart .variations {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.75rem;
}

.wedo-configurator-cart .variations th,
.wedo-configurator-cart .variations td {
  display: block;
  padding: 0;
  text-align: left;
}

.wedo-configurator-cart .variations label {
  display: block;
  margin-bottom: 0.5rem;
  color: #b8b1a3;
  font-size: 0.875rem;
}

.wedo-configurator-cart select,
.wedo-configurator-cart input:not([type="hidden"]) {
  width: 100%;
  border: 1px solid #262626;
  border-radius: 1rem;
  background: #050505;
  padding: 0.85rem 1rem;
  color: #f8f5ec;
  outline: none;
}

.wedo-configurator-cart select:focus,
.wedo-configurator-cart input:not([type="hidden"]):focus {
  border-color: #d6a319;
}

/* ── Product step badge ─────────────────────────────────────────────────── */
.product-step-badge {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #D6A319;
  color: #050505;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
}

/* ── Category product card ──────────────────────────────────────────────── */
.product-card {
  overflow: hidden;
  border-radius: 1.75rem;
  border: 1px solid #262626;
  background-color: #111111;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.product-card:hover {
  border-color: rgba(214, 163, 25, 0.55);
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(214, 163, 25, 0.07);
}

.product-card-image-wrap {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #050505;
}

.product-card-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.product-card:hover .product-card-image-wrap img {
  transform: scale(1.04);
}

.product-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  background: #050505;
  color: #B8B1A3;
  font-size: 0.875rem;
}

/* ── Step label row ─────────────────────────────────────────────────────── */
.product-step-label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.product-step-label-text {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #D6A319;
}

/* ── ATC warning pill ───────────────────────────────────────────────────── */
.atc-warning-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(248, 113, 113, 0.28);
  background: rgba(248, 113, 113, 0.07);
  padding: 0.4rem 0.875rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #f87171;
}

/* ── Estimated total highlight border ───────────────────────────────────── */
.border-brand-mustard-faint {
  border-color: rgba(214, 163, 25, 0.32);
}

/* ── Category subcategory cards – hover glow ────────────────────────────── */
.shop-card {
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.shop-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(214, 163, 25, 0.07);
}

@media (max-width: 1023px) {
  header nav {
    display: none !important;
  }

  [data-mobile-nav-panel] {
    height: calc(100dvh - 76px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  #heading-style-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .site-header-logo {
    height: 3rem !important;
    max-height: 3rem !important;
  }

  [data-mobile-nav-panel] {
    top: 80px !important;
    height: calc(100dvh - 80px);
  }
}

@media (min-width: 1024px) {
  .site-header-logo {
    height: 3.5rem !important;
    max-height: 3.5rem !important;
  }
}

@media (max-width: 768px) {
  h1 {
    line-height: 1.08;
  }

  h2 {
    line-height: 1.15;
  }

  #heading-style-grid .heading-card {
    border-radius: 1.5rem;
  }

  #heading-style-grid .heading-card a,
  #heading-style-grid .heading-card button,
  .page-product main .rounded-\[2rem\] a:not(.product-gallery-arrow):not(.product-gallery-thumb),
  .page-product main .rounded-\[2rem\] button:not(.product-gallery-arrow):not(.product-gallery-thumb) {
    width: 100%;
  }

  .hero-tagline {
    max-width: 16ch;
  }
}

/*
 * ── Toolkit recommended-item cards (Step 5) ─────────────────────────────
 * Root cause: the global `max-width: 100%` img reset creates a CSS sizing
 * cycle inside the flex row. The browser resolves it by expanding the image
 * link `a.shrink-0` to the full row width (~298px). With `flex-shrink: 0`,
 * the link cannot collapse back to 64px, pushing the text column off-screen
 * and causing page-level horizontal overflow. Any focused select/input then
 * auto-scrolls the page ~49px right.
 *
 * Fix: pin the image link to exactly 4rem × 4rem via `flex: 0 0 4rem` so
 * the flex algorithm never resolves it to container width. Use
 * `overflow: clip` (not `hidden`) on the article to clip visually without
 * creating a scroll container.
 */

/* ── Article container ───────────────────────────────────────────────────── */
#toolkit-rows > article {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0)),
    #050505;
  border-radius: 1.5rem;
  overflow: clip;
}

/* ── Image link: pin to exactly 4rem × 4rem (= h-16 / w-16 mobile size) ─── */
#toolkit-rows article a[data-toolkit-product-link-img] {
  display: block;
  width: 4rem;
  height: 4rem;
  flex: 0 0 4rem;
  align-self: flex-start;
}

/* Also cap the img itself so max-width: 100% stays within its 4rem parent */
#toolkit-rows article img[data-toolkit-product-img] {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 4rem;
  max-height: 4rem;
}

/* ── Text container next to the image: fill remaining width ─────────────── */
#toolkit-rows article .flex.items-start > div {
  flex: 1 1 0%;
  min-width: 0;
  overflow: hidden;
}

/* ── Select and number inputs: constrain to card width ─────────────────── */
#toolkit-rows select,
#toolkit-rows input[type="number"] {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* ==========================================================================
   WooCommerce — Cart, Checkout, My Account, Orders
   Re-skins all WooCommerce pages to match the WeDo Curtains black/gold brand.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Page wrapper & shared layout
   -------------------------------------------------------------------------- */
.woocommerce-page .woocommerce,
.woocommerce {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
  padding: 2.5rem 1.25rem 4rem;
}

/* Breadcrumb */
.woocommerce-breadcrumb {
  font-size: 0.8rem;
  color: var(--brand-muted);
  margin-bottom: 1.75rem;
}
.woocommerce-breadcrumb a {
  color: var(--brand-mustard);
  font-weight: 600;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 1rem;
  padding: 1rem 1.25rem 1rem 3.5rem;
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  list-style: none;
  position: relative;
  border-left: none !important;
  background: var(--brand-panel) !important;
  color: var(--brand-text) !important;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error li::before {
  display: none !important;
}
.woocommerce-message {
  border: 1px solid var(--brand-mustard) !important;
}
.woocommerce-info {
  border: 1px solid var(--brand-line) !important;
}
.woocommerce-error {
  border: 1px solid #ef4444 !important;
  padding-left: 1.25rem;
}
.woocommerce-message a.button,
.woocommerce-message a {
  color: var(--brand-mustard) !important;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Buttons — all WooCommerce buttons use the brand gold style
   -------------------------------------------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce-page #respond input#submit,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt,
.woocommerce-page input.button.alt,
.woocommerce-page #place_order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--brand-mustard) !important;
  color: #000 !important;
  border: 1px solid var(--brand-mustard) !important;
  border-radius: 9999px !important;
  padding: 0.875rem 1.75rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
  font-family: inherit;
  box-shadow: none !important;
  text-shadow: none !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.woocommerce-page a.button.alt:hover,
.woocommerce-page button.button.alt:hover,
.woocommerce-page input.button.alt:hover,
.woocommerce-page #place_order:hover {
  background-color: var(--brand-mustard-soft) !important;
  border-color: var(--brand-mustard-soft) !important;
  color: #000 !important;
}

/* Ghost / outlined button variant */
.woocommerce a.button.secondary,
.woocommerce button.button.secondary {
  background-color: transparent !important;
  color: var(--brand-mustard) !important;
  border-color: var(--brand-mustard) !important;
}
.woocommerce a.button.secondary:hover,
.woocommerce button.button.secondary:hover {
  background-color: var(--brand-mustard) !important;
  color: #000 !important;
}

/* --------------------------------------------------------------------------
   Form fields — inputs, selects, textareas
   -------------------------------------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.select2-container--default .select2-selection--single,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea {
  background: var(--brand-bg) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1rem !important;
  color: var(--brand-text) !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.875rem !important;
  font-family: inherit !important;
  width: 100%;
  box-sizing: border-box;
  outline: none;
  box-shadow: none !important;
  transition: border-color 150ms ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input[type="text"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce input[type="number"]:focus {
  border-color: var(--brand-mustard) !important;
  box-shadow: none !important;
  outline: none !important;
}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
  color: var(--brand-muted);
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.4rem;
  display: block;
}

/* Select2 */
.select2-container--default .select2-selection--single {
  height: auto !important;
  line-height: normal !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--brand-text) !important;
  padding-left: 0 !important;
  line-height: normal !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50% !important;
  transform: translateY(-50%);
}
.select2-dropdown {
  background: var(--brand-panel) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1rem !important;
  color: var(--brand-text) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--brand-mustard) !important;
  color: #000 !important;
}

/* --------------------------------------------------------------------------
   Tables — cart and order review
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table,
.woocommerce-page table.shop_table,
.woocommerce table.woocommerce-checkout-review-order-table {
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
  font-size: 0.875rem;
  color: var(--brand-text);
  background: var(--brand-panel);
}
.woocommerce table.shop_table thead tr,
.woocommerce table.woocommerce-checkout-review-order-table thead tr {
  background: var(--brand-bg);
}
.woocommerce table.shop_table th,
.woocommerce table.woocommerce-checkout-review-order-table th {
  color: var(--brand-mustard);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce table.shop_table td,
.woocommerce table.woocommerce-checkout-review-order-table td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
  vertical-align: middle;
}
.woocommerce table.shop_table tr:last-child td,
.woocommerce table.woocommerce-checkout-review-order-table tr:last-child td {
  border-bottom: none;
}
.woocommerce table.shop_table .product-name a {
  color: var(--brand-text);
  font-weight: 600;
}
.woocommerce table.shop_table .product-name a:hover {
  color: var(--brand-mustard);
}
/* Cart quantity input */
.woocommerce table.shop_table td.product-quantity .qty {
  width: 4.5rem;
  text-align: center;
  padding: 0.5rem 0.75rem !important;
  border-radius: 0.75rem !important;
}
/* Remove link */
.woocommerce table.shop_table td.product-remove a.remove {
  color: var(--brand-muted) !important;
  font-size: 1.25rem;
  line-height: 1;
  transition: color 150ms;
}
.woocommerce table.shop_table td.product-remove a.remove:hover {
  color: #ef4444 !important;
  background: transparent !important;
}
/* Totals rows */
.woocommerce table.shop_table tr.cart-subtotal td,
.woocommerce table.shop_table tr.order-total td,
.woocommerce table.shop_table tr.shipping td,
.woocommerce table.woocommerce-checkout-review-order-table tr.order-total td {
  font-weight: 700;
}
.woocommerce table.shop_table tr.order-total td .amount,
.woocommerce table.woocommerce-checkout-review-order-table tr.order-total td .amount {
  color: var(--brand-mustard);
  font-size: 1.1rem;
}
/* Item meta (our fabric measurements) */
.woocommerce table.shop_table .woocommerce-cart-product-meta-value,
.woocommerce table.shop_table .variation dd,
.woocommerce-checkout-review-order-table .variation dd {
  color: var(--brand-muted);
}
dl.variation dt {
  color: var(--brand-mustard);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
dl.variation dd {
  color: var(--brand-muted) !important;
  font-size: 0.875rem;
  margin-left: 0;
}

/* --------------------------------------------------------------------------
   Cart page
   -------------------------------------------------------------------------- */
.woocommerce-cart .cart-collaterals {
  margin-top: 2rem;
}
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--brand-panel);
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  padding: 1.75rem;
}
.woocommerce-cart .cart_totals h2 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-mustard);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 1.25rem;
}
.woocommerce-cart .wc-proceed-to-checkout {
  margin-top: 1.25rem;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  width: 100%;
  text-align: center;
  padding: 1rem 1.75rem !important;
  font-size: 1rem !important;
}

/* Coupon */
.woocommerce-cart .coupon {
  display: flex;
  gap: 0.75rem;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.woocommerce-cart .coupon label {
  display: block;
  color: var(--brand-muted);
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.4rem;
}
.woocommerce-cart .coupon input#coupon_code {
  border-radius: 9999px !important;
  padding: 0.75rem 1.25rem !important;
  width: auto;
  flex: 1 1 10rem;
}
.woocommerce-cart .coupon .button {
  background-color: transparent !important;
  color: var(--brand-mustard) !important;
  border: 1px solid var(--brand-mustard) !important;
  padding: 0.75rem 1.25rem !important;
}
.woocommerce-cart .coupon .button:hover {
  background-color: var(--brand-mustard) !important;
  color: #000 !important;
}

/* Update cart */
.woocommerce-cart .actions .button[name="update_cart"] {
  background-color: transparent !important;
  color: var(--brand-muted) !important;
  border: 1px solid var(--brand-line) !important;
  font-size: 0.8rem !important;
  padding: 0.6rem 1.25rem !important;
}
.woocommerce-cart .actions .button[name="update_cart"]:hover {
  border-color: var(--brand-mustard) !important;
  color: var(--brand-mustard) !important;
}

/* Cross-sells */
.cross-sells h2 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-mustard);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 1rem;
}

/* --------------------------------------------------------------------------
   Checkout page
   -------------------------------------------------------------------------- */
.woocommerce-checkout #customer_details {
  margin-bottom: 2rem;
}
.woocommerce-checkout h3#order_review_heading,
.woocommerce-checkout h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-mustard);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce-checkout #order_review_heading {
  margin-top: 0;
}

/* Payment methods */
#payment {
  background: var(--brand-panel) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1.5rem !important;
}
#payment ul.payment_methods {
  border-bottom: 1px solid var(--brand-line) !important;
  padding: 1.25rem 1.5rem !important;
}
#payment ul.payment_methods li label {
  color: var(--brand-text) !important;
  font-size: 0.9rem;
}
#payment div.payment_box {
  background: var(--brand-bg) !important;
  color: var(--brand-muted) !important;
  font-size: 0.85rem;
  border-radius: 0.75rem;
  margin: 0.75rem 0 0;
}
#payment div.payment_box::before {
  border-bottom-color: var(--brand-bg) !important;
}
#payment .place-order {
  padding: 1.25rem 1.5rem !important;
}
#place_order {
  width: 100%;
  padding: 1.125rem 1.75rem !important;
  font-size: 1rem !important;
}

/* Terms & conditions */
.woocommerce-terms-and-conditions-wrapper {
  font-size: 0.8rem;
  color: var(--brand-muted);
  margin-bottom: 1rem;
}
.woocommerce-terms-and-conditions-wrapper a {
  color: var(--brand-mustard);
}

/* Checkout columns layout */
@media (min-width: 768px) {
  .woocommerce-checkout .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: auto !important;
    float: none !important;
  }
}

/* --------------------------------------------------------------------------
   My Account — navigation & content
   -------------------------------------------------------------------------- */

/* Remove the extra top padding the generic .woocommerce wrapper adds —
   the page hero already provides spacing above. */
.woocommerce-account .woocommerce {
  padding-top: 0;
}

/* Logged-IN: sidebar nav + content two-column grid */
.logged-in.woocommerce-account .woocommerce {
  display: grid;
  gap: 2rem;
}
@media (min-width: 768px) {
  .logged-in.woocommerce-account .woocommerce {
    grid-template-columns: 200px 1fr;
    align-items: start;
  }
}

/* Logged-OUT: login + register side by side */
.woocommerce-account:not(.logged-in) .woocommerce #customer_login {
  display: grid;
  gap: 2rem;
}
@media (min-width: 640px) {
  .woocommerce-account:not(.logged-in) .woocommerce #customer_login {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}
.woocommerce-account:not(.logged-in) .woocommerce-form-login,
.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  max-width: none;
}

.woocommerce-MyAccount-navigation {
  background: var(--brand-panel);
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  padding: 1rem 0;
  overflow: hidden;
  /* Explicit width prevents the column collapsing narrower than its content */
  width: 200px;
  min-width: 200px;
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}
.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--brand-muted);
  text-decoration: none;
  transition: color 150ms, background-color 150ms;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--brand-mustard);
  background: rgba(214, 163, 25, 0.06);
}
.woocommerce-MyAccount-navigation ul li.is-active a {
  border-left: 3px solid var(--brand-mustard);
  padding-left: calc(1.5rem - 3px);
}

.woocommerce-MyAccount-content {
  min-width: 0;
}
.woocommerce-MyAccount-content p {
  font-size: 0.9rem;
  color: var(--brand-muted);
  line-height: 1.7;
  margin-bottom: 1rem;
}
.woocommerce-MyAccount-content a {
  color: var(--brand-mustard);
  font-weight: 600;
}

/* My Account section headings */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-mustard);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--brand-line);
}

/* --------------------------------------------------------------------------
   Orders table (My Account → Orders)
   -------------------------------------------------------------------------- */
.woocommerce-orders-table {
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
  font-size: 0.875rem;
  background: var(--brand-panel);
}
.woocommerce-orders-table thead tr {
  background: var(--brand-bg);
}
.woocommerce-orders-table th {
  color: var(--brand-mustard);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce-orders-table td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
  vertical-align: middle;
  color: var(--brand-text);
}
.woocommerce-orders-table tr:last-child td {
  border-bottom: none;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a {
  margin-right: 0.5rem;
}

/* --------------------------------------------------------------------------
   Order status badges
   -------------------------------------------------------------------------- */
.woocommerce-orders-table .wc-item-meta,
mark.order-status,
.woocommerce-order-status {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.2rem 0.75rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--brand-bg);
  color: var(--brand-muted);
  border: 1px solid var(--brand-line);
}
mark.order-status.status-completed,
.woocommerce-order-status.status-completed {
  color: #22c55e;
  border-color: #22c55e;
  background: rgba(34, 197, 94, 0.08);
}
mark.order-status.status-processing,
.woocommerce-order-status.status-processing {
  color: var(--brand-mustard);
  border-color: var(--brand-mustard);
  background: rgba(214, 163, 25, 0.08);
}
mark.order-status.status-pending,
.woocommerce-order-status.status-pending {
  color: var(--brand-muted);
  border-color: var(--brand-line);
}
mark.order-status.status-cancelled,
mark.order-status.status-refunded,
.woocommerce-order-status.status-cancelled {
  color: #ef4444;
  border-color: #ef4444;
  background: rgba(239, 68, 68, 0.08);
}

/* --------------------------------------------------------------------------
   Single order view (My Account → View Order)
   -------------------------------------------------------------------------- */
.woocommerce-order-details,
.woocommerce-customer-details {
  margin-bottom: 2rem;
}
.woocommerce-order-details__title,
.woocommerce-column__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-mustard);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce-table--order-details {
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
  font-size: 0.875rem;
  background: var(--brand-panel);
}
.woocommerce-table--order-details thead tr {
  background: var(--brand-bg);
}
.woocommerce-table--order-details th {
  color: var(--brand-mustard);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
}
.woocommerce-table--order-details td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--brand-line);
  vertical-align: top;
  color: var(--brand-text);
}
.woocommerce-table--order-details tr:last-child td {
  border-bottom: none;
}
.woocommerce-table--order-details .product-name a {
  color: var(--brand-text);
  font-weight: 600;
}
.woocommerce-table--order-details tfoot tr th {
  font-weight: 700;
  color: var(--brand-text);
}
.woocommerce-table--order-details tfoot tr.order-total td .amount {
  color: var(--brand-mustard);
  font-weight: 700;
}

/* Customer addresses on order */
.woocommerce-customer-details address {
  background: var(--brand-panel);
  border: 1px solid var(--brand-line);
  border-radius: 1.25rem;
  padding: 1.25rem 1.5rem;
  font-size: 0.875rem;
  color: var(--brand-muted);
  line-height: 1.8;
  font-style: normal;
}

/* Order confirmation / thank-you page */
.woocommerce-order .woocommerce-order-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  list-style: none;
  padding: 0;
  margin-bottom: 2rem;
}
.woocommerce-order .woocommerce-order-overview li {
  background: var(--brand-panel);
  border: 1px solid var(--brand-line);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  font-size: 0.8rem;
  color: var(--brand-muted);
  min-width: 9rem;
}
.woocommerce-order .woocommerce-order-overview li strong {
  display: block;
  font-size: 1rem;
  color: var(--brand-text);
  margin-top: 0.25rem;
}

/* --------------------------------------------------------------------------
   Password / login / register forms
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-lost-password .woocommerce-form-login {
  background: var(--brand-panel);
  border: 1px solid var(--brand-line);
  border-radius: 1.5rem;
  padding: 2rem;
  max-width: 28rem;
}
.woocommerce-account .woocommerce-form-login p,
.woocommerce-account .woocommerce-form-register p {
  margin-bottom: 1rem;
}
.woocommerce-account .woocommerce-privacy-policy-text {
  font-size: 0.75rem;
  color: var(--brand-muted);
  margin-bottom: 1rem;
}

/* --------------------------------------------------------------------------
   Responsive adjustments
   -------------------------------------------------------------------------- */
@media (max-width: 639px) {
  .woocommerce table.shop_table,
  .woocommerce-orders-table,
  .woocommerce-table--order-details {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 1rem;
  }
  .woocommerce-cart .cart-collaterals {
    float: none !important;
    width: 100% !important;
  }
  .woocommerce-cart .cart_totals {
    float: none !important;
    width: 100% !important;
  }
  .woocommerce-checkout .col2-set {
    display: block;
  }
}

/* --------------------------------------------------------------------------
   Cart page — defensive overrides for both classic shortcode & WC Blocks
   These fire regardless of whether .woocommerce wrapper is present.
   -------------------------------------------------------------------------- */

/* ── Classic shortcode cart table ──────────────────────────────────────── */
body.woocommerce-cart table.shop_table,
body.woocommerce-cart table.shop_table.cart,
body.woocommerce-cart .woocommerce-cart-form table {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1.25rem !important;
  overflow: hidden !important;
  background: var(--brand-panel) !important;
  font-size: 0.875rem;
}
body.woocommerce-cart table.shop_table thead tr {
  background: var(--brand-bg) !important;
}
body.woocommerce-cart table.shop_table th {
  color: var(--brand-mustard) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.18em !important;
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid var(--brand-line) !important;
}
body.woocommerce-cart table.shop_table td {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid var(--brand-line) !important;
  vertical-align: middle !important;
  color: var(--brand-text) !important;
  background: transparent !important;
}
body.woocommerce-cart table.shop_table tr:last-child td {
  border-bottom: none !important;
}
body.woocommerce-cart table.shop_table .product-name a {
  color: var(--brand-text) !important;
  font-weight: 600;
}
body.woocommerce-cart table.shop_table .product-name a:hover {
  color: var(--brand-mustard) !important;
}
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--brand-panel) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1.25rem !important;
  padding: 1.75rem !important;
}
body.woocommerce-cart .cart_totals h2 {
  color: var(--brand-mustard) !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
}

/* ── WooCommerce Blocks cart (new block editor checkout) ────────────────── */
.wc-block-cart,
.wp-block-woocommerce-cart {
  color: var(--brand-text) !important;
}
.wc-block-cart-items,
.wc-block-cart-items__header {
  background: var(--brand-panel) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1.25rem !important;
  overflow: hidden !important;
}
.wc-block-cart-items__header span {
  color: var(--brand-mustard) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
}
.wc-block-cart-item__product-name {
  color: var(--brand-text) !important;
  font-weight: 600;
}
.wc-block-cart-item__total-price-and-sale-price,
.wc-block-cart-item__prices {
  color: var(--brand-text) !important;
}
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
  background: var(--brand-panel) !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 1.25rem !important;
  padding: 1.5rem !important;
}
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
  color: var(--brand-text) !important;
}
.wc-block-components-totals-item--total .wc-block-components-totals-item__value {
  color: var(--brand-mustard) !important;
  font-weight: 700;
}
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
  background-color: var(--brand-mustard) !important;
  color: #000 !important;
  border-radius: 9999px !important;
  border: none !important;
  font-weight: 700 !important;
  width: 100% !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
  background-color: var(--brand-mustardSoft, #c49b17) !important;
}
.wc-block-components-quantity-stepper__minus,
.wc-block-components-quantity-stepper__plus {
  background: var(--brand-panel) !important;
  border-color: var(--brand-line) !important;
  color: var(--brand-text) !important;
}
.wc-block-components-quantity-stepper__value {
  background: var(--brand-bg) !important;
  border-color: var(--brand-line) !important;
  color: var(--brand-text) !important;
}
