/* ============================================
   SellEase CSS
   ============================================
   Now that head.php loads only the CSS for the
   active template (ns-main OR opai-main, never
   both), most conflict patches are unnecessary.
   ============================================ */

/* ------------------------------------------
   1. SellEase Brand Colors
   ------------------------------------------ */
:root {
  --se-blue: #2563eb;
  --se-blue-dark: #1d4ed8;
  --se-green: #16a34a;
  --se-green-dark: #15803d;
  --se-dark: #0f172a;
  --se-light: #f8fafc;
  --se-gray: #64748b;
  --se-white: #ffffff;

  /* Override template violet with SellEase blue */
  --color-primary-50: #f0f7ff;
  --color-primary-100: #e0efff;
  --color-primary-200: #b9dcfe;
  --color-primary-300: #7cc0fe;
  --color-primary-400: #369dfa;
  --color-primary-500: #075985;
  --color-primary-600: #064b6e;
}

/* Override hardcoded violet values from ns-main.css */
.text-primary-500 { color: #075985 !important; }
.bg-primary-500 { background-color: #075985 !important; }
.border-primary-500 { border-color: #075985 !important; }

/* ------------------------------------------
   2. Header
   ------------------------------------------ */

/* Header border (template doesn't include one by default) */
.header-one {
  border: 1px solid var(--color-stroke-1, #dfe4eb);
}

/* Desktop nav: force visible at xl (1280px+) */
@media (min-width: 80rem) {
  .header-one nav {
    display: flex !important;
  }
  .header-one .nav-hamburger {
    display: none !important;
  }
}

/* ------------------------------------------
   3. Animation Visibility
   ------------------------------------------ */
/* Both template CSS files hide animated elements with opacity:0.
   The template JS (GSAP) animates them in, but if JS has any
   issue, everything stays invisible. Override to ensure visibility.
   Without !important the GSAP inline styles could override this,
   but with !important we guarantee elements are always visible. */
[data-ns-animate],
[data-opai-animate] {
  opacity: 1 !important;
}

/* ------------------------------------------
   4. Badge — preserve original casing
   ------------------------------------------ */
.badge {
  text-transform: none !important;
}

/* ------------------------------------------
   5. Product Color Accents
   ------------------------------------------ */
.se-accent-os { color: var(--se-blue); }
.se-accent-go { color: var(--se-green); }
.se-accent-pay { color: #8b5cf6; }
.se-accent-hardware { color: #f59e0b; }

.se-bg-os { background-color: var(--se-blue); }
.se-bg-go { background-color: var(--se-green); }
.se-bg-pay { background-color: #8b5cf6; }
.se-bg-hardware { background-color: #f59e0b; }

/* ------------------------------------------
   5. WooCommerce — Full Custom Styling
   (WC default styles are dequeued in functions.php)
   ------------------------------------------ */

/* ---- Global WC button (non add-to-cart) ---- */
.woocommerce a.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce #respond input#submit.alt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 3rem !important;
  padding: 0 2rem !important;
  border-radius: 9999px !important;
  font-family: inherit !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  border: none !important;
  background-color: #0f172a !important;
  color: #fff !important;
  text-decoration: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover {
  background-color: #075985 !important;
  color: #fff !important;
}

.woocommerce a.button:disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.alt:disabled {
  opacity: 0.4 !important;
  cursor: not-allowed !important;
}

/* =============================================
   ADD TO CART BUTTON (btn-secondary-v2 style)
   ============================================= */
.single_add_to_cart_button,
button.single_add_to_cart_button,
.woocommerce button.button,
.woocommerce button.button.alt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.375rem !important;
  height: 3rem !important;
  padding: 0 1.75rem !important;
  border-radius: 9999px !important;
  font-family: inherit !important;
  font-weight: 500 !important;
  font-size: 0.9375rem !important;
  text-transform: lowercase !important;
  cursor: pointer !important;
  border: none !important;
  text-decoration: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  background-color: #0f172a !important;
  color: #fff !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
}

.single_add_to_cart_button::first-letter,
button.single_add_to_cart_button::first-letter {
  text-transform: uppercase !important;
}

.single_add_to_cart_button:hover,
button.single_add_to_cart_button:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover {
  background-color: #075985 !important;
  color: #fff !important;
}

/* Button text span */
.se-btn-text {
  display: inline-block;
  transition: transform 0.3s ease;
}

.se-btn-text::first-letter {
  text-transform: uppercase;
}

/* Button animated icon */
.se-btn-icon {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
  overflow: hidden;
  flex-shrink: 0;
}

.se-btn-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.se-btn-icon-in {
  position: absolute;
  inset: 0;
  width: 1.5rem;
  height: 1.5rem;
  transform: translateX(-1.5rem);
  transition: transform 0.3s ease;
}

.se-btn-icon-out {
  position: absolute;
  inset: 0;
  width: 1.5rem;
  height: 1.5rem;
  transform: translateX(-0.5rem);
  transition: transform 0.3s ease;
}

.single_add_to_cart_button:hover .se-btn-icon-in,
.woocommerce button.button:hover .se-btn-icon-in {
  transform: translateX(0.25rem);
}

.single_add_to_cart_button:hover .se-btn-icon-out,
.woocommerce button.button:hover .se-btn-icon-out {
  transform: translateX(1.5rem);
}

/* =============================================
   QUANTITY SELECTOR (+/-)
   ============================================= */
.se-qty {
  display: inline-flex;
  align-items: center;
  height: 3rem;
  border-radius: 9999px;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  overflow: hidden;
}

.se-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 100%;
  cursor: pointer;
  border: none;
  background: transparent;
  color: var(--color-secondary, #0f172a);
  transition: background-color 0.15s ease, color 0.15s ease;
  flex-shrink: 0;
}

.se-qty-btn:hover {
  background: var(--color-stroke-2, #e2e8f0);
}

.se-qty-btn:active {
  background: var(--color-stroke-4, #cbd5e1);
}

.se-qty .qty,
.se-qty input.qty {
  width: 2.75rem !important;
  height: 100% !important;
  text-align: center !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: inherit !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--color-secondary, #0f172a) !important;
  outline: none !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.se-qty .qty::-webkit-inner-spin-button,
.se-qty .qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* Hide original quantity wrapper styles */
.quantity.se-enhanced {
  margin-right: 0.75rem !important;
}

/* ---- Add to cart form layout ---- */

/* All product forms: stack vertically so addons/variations are above qty+button */
.sellease-add-to-cart form.cart {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
}

/* Variation result (price change etc) */
.sellease-add-to-cart .single_variation_wrap {
  width: 100% !important;
}

/* Qty + button row: horizontal */
form.cart .woocommerce-variation-add-to-cart,
form.cart .woocommerce-variation-add-to-cart.variations_button {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
  margin-top: 0.5rem;
}

/* =============================================
   APPLE-STYLE VARIATION CARDS
   ============================================= */

/* Container for all variation groups */
.se-var-container {
  width: 100% !important;
  margin-bottom: 2rem;
}

/* Single variation group (e.g. "Colore") */
.se-var-group {
  margin-bottom: 1.5rem;
}

.se-var-group:last-child {
  margin-bottom: 0;
}

/* Label: "Colore — Nero" */
.se-var-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  margin-bottom: 0.75rem;
  opacity: 0.45;
}

.se-var-selected-val {
  font-weight: 600;
  opacity: 1;
  color: var(--color-secondary, #0f172a);
}

/* Cards grid */
.se-var-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.625rem;
}

/* Single card */
.se-var-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-height: 3.25rem;
  padding: 0.75rem 1rem;
  border-radius: 1rem;
  border: 2px solid transparent;
  background: var(--color-background-3, #f1f5f9);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: center;
}

.se-var-card:hover {
  background: var(--color-background-4, #e2e8f0);
}

.se-var-card-text {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  line-height: 1.3;
}

/* Price diff badge */
.se-var-card-diff {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #075985;
  line-height: 1;
}

.se-var-card-diff-base {
  color: #64748b;
  font-weight: 500;
}

/* Active / selected card */
.se-var-card.se-var-active {
  border-color: var(--color-secondary, #0f172a);
  background: var(--color-background-3, #f1f5f9);
}

.se-var-card.se-var-active .se-var-card-text {
  font-weight: 600;
}

/* Checkmark on active card */
.se-var-card.se-var-active::after {
  content: '';
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  background: var(--color-secondary, #0f172a);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px;
}

/* Original table: hidden but accessible to WooCommerce JS */
table.variations.se-enhanced,
.variations_form table.variations.se-enhanced {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Hide variation price below (we update the main price above) */
.woocommerce-variation-price {
  display: none !important;
}

/* ---- Product Add-Ons plugin ---- */

/* Hide original addon labels and selects (replaced by cards) */
.wc-pao-addon-container.se-addon-done .wc-pao-addon-name {
  display: none !important;
}

.wc-pao-addon-container.se-addon-done .wc-pao-addon-wrap {
  display: none !important;
}

/* Addon total / subtotal breakdown */
#product-addons-total.se-addon-total {
  display: none !important;
}

/* Addon container: full width above qty+button row */
.wc-pao-addons-container {
  width: 100% !important;
  margin-bottom: 1.5rem;
  display: block !important;
}

/* Wrapper for qty + button on same line */
.se-cart-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin-top: 0.5rem;
}

/* Validation message */
#required_addons_validation_message:empty {
  display: none;
}

/* =============================================
   PRODUCT DETAIL TABS
   ============================================= */

/* Tab navigation bar */
.se-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 0.25rem;
  margin-bottom: 2rem;
  background: var(--color-background-3, #f1f5f9);
  border-radius: 1rem;
  padding: 0.3rem;
}

.se-tab-btn {
  padding: 0.625rem 1.5rem;
  border-radius: 0.75rem;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  opacity: 0.5;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
}

.se-tab-btn:hover {
  opacity: 0.8;
}

.se-tab-btn.se-tab-active {
  background: #fff;
  opacity: 1;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* Tab panels */
.se-tab-panel {
  display: none;
  animation: seTabFadeIn 0.3s ease;
}

.se-tab-panel.se-tab-visible {
  display: block;
}

@keyframes seTabFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Download rows */
.se-download-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.5rem;
  text-decoration: none;
  transition: background 0.2s ease;
}

.se-download-row:hover {
  background: var(--color-background-3, #f8fafc);
}

.se-download-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  background: var(--color-background-3, #f1f5f9);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #075985;
}

.se-download-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  min-width: 0;
}

.se-download-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.se-download-ext {
  font-size: 0.75rem;
  font-weight: 500;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.se-download-action {
  flex-shrink: 0;
  color: #64748b;
  transition: color 0.2s ease, transform 0.2s ease;
}

.se-download-row:hover .se-download-action {
  color: #075985;
  transform: translateX(3px);
}

@media (max-width: 640px) {
  .se-tabs-nav {
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .se-tab-btn {
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
  }
}

/* ---- Slot machine price animation (per-digit) ---- */
.se-slot {
  display: inline-block;
}

.se-slot-chars {
  display: inline-flex;
}

.se-slot-char {
  display: inline-block;
  position: relative;
  overflow: hidden;
  white-space: pre;
  line-height: 1.2;
}

/* Old digit — starts in place, slides up and out */
.se-slot-digit-out {
  display: block;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.3s ease;
}

/* New digit — starts below, slides up into place */
.se-slot-digit-in {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.3s ease;
}

.se-slot-digit-out.se-slot-digit-exit {
  transform: translateY(-100%);
  opacity: 0;
}

.se-slot-digit-in.se-slot-digit-enter {
  transform: translateY(0);
  opacity: 1;
}

/* Hide "clear" link */
.reset_variations {
  display: none !important;
}

/* Variation table fallback */
.sellease-add-to-cart .variations,
.woocommerce .variations {
  width: 100%;
  margin-bottom: 1.5rem;
  border-collapse: separate;
  border-spacing: 0;
  border: none;
}

.sellease-add-to-cart .variations td,
.woocommerce .variations td {
  border: none;
  padding: 0.5rem 0;
}

/* ---- Price display ---- */
.sellease-product-price .woocommerce-Price-amount,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-weight: 700;
}

.sellease-product-price del,
.woocommerce div.product p.price del {
  opacity: 0.4;
  font-size: 0.8em;
  margin-right: 0.5rem;
}

.sellease-product-price ins,
.woocommerce div.product p.price ins {
  text-decoration: none;
}

/* ---- Variation form ---- */
.sellease-add-to-cart .variations,
.woocommerce .variations {
  width: 100%;
  margin-bottom: 1rem;
  border-collapse: separate;
  border-spacing: 0 0.5rem;
}

.sellease-add-to-cart .variations td.label,
.woocommerce .variations td.label {
  font-weight: 500;
  padding-right: 1rem;
  font-size: 0.875rem;
  vertical-align: middle;
}

.sellease-add-to-cart .variations td.value select,
.woocommerce .variations td.value select {
  width: 100%;
  height: 3rem;
  padding: 0 1rem;
  border-radius: 1rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-family: inherit;
  font-size: 0.875rem;
  color: var(--color-secondary, #0f172a);
  outline: none;
  cursor: pointer;
}

.sellease-add-to-cart .variations td.value select:focus,
.woocommerce .variations td.value select:focus {
  border-color: var(--color-primary-500, #2563eb);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* ---- Notices ---- */
.woocommerce-message,
.woocommerce-info {
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  margin-bottom: 1.5rem;
  background: #eff6ff;
  border-left: 4px solid var(--color-primary-500, #2563eb);
  color: var(--color-secondary, #0f172a);
  font-size: 0.875rem;
}

.woocommerce-message a,
.woocommerce-info a {
  color: #075985;
  font-weight: 600;
}

/* Hide default WC "added to cart" notice banner — we use toast instead */
.woocommerce-notices-wrapper .woocommerce-message {
  display: none !important;
}

/* Account content: restyle .woocommerce-info as empty-state card */
.se-wc-account .woocommerce-MyAccount-content .woocommerce-info,
.se-wc-account .woocommerce-MyAccount-content .woocommerce-message {
  display: flex !important;
  align-items: center;
  gap: 0.75rem;
  background: var(--color-background-3, #f8fafc);
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-left: none;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  color: var(--color-secondary, #0f172a);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.se-wc-account .woocommerce-MyAccount-content .woocommerce-info::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ---- Toast Notification ---- */
.se-toast-wrap {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}

.se-toast {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: #0f172a;
  color: #fff;
  padding: 0.875rem 1.25rem;
  border-radius: 0.875rem;
  font-size: 0.875rem;
  font-weight: 500;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
  transform: translateY(20px);
  opacity: 0;
  animation: se-toast-in 0.35s ease forwards;
  max-width: 360px;
}

.se-toast svg {
  flex-shrink: 0;
}

.se-toast.se-toast-out {
  animation: se-toast-out 0.3s ease forwards;
}

@keyframes se-toast-in {
  to { transform: translateY(0); opacity: 1; }
}

@keyframes se-toast-out {
  to { transform: translateY(20px); opacity: 0; }
}

.woocommerce-error {
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  margin-bottom: 1.5rem;
  background: #fef2f2;
  border-left: 4px solid #ef4444;
  color: #991b1b;
  font-size: 0.875rem;
  list-style: none;
}

/* ---- Product Description (prose) ---- */
.se-tab-panel .prose {
  font-size: 1rem;
  line-height: 1.75;
}

.se-tab-panel .prose h2 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  margin: 2rem 0 0.75rem 0;
  line-height: 1.4;
}

.se-tab-panel .prose h2:first-child {
  margin-top: 0;
}

.se-tab-panel .prose h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  margin: 1.75rem 0 0.5rem 0;
  line-height: 1.4;
}

.se-tab-panel .prose p {
  margin: 0 0 1rem 0;
}

.se-tab-panel .prose ul {
  margin: 0 0 1rem 0;
  padding-left: 1.25rem;
  list-style: disc;
}

.se-tab-panel .prose ul li {
  margin-bottom: 0.375rem;
  line-height: 1.65;
}

.se-tab-panel .prose strong {
  color: var(--color-secondary, #0f172a);
  font-weight: 600;
}

/* ---- Shop / Archive page ---- */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce ul.products li.product {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.5rem;
  transition: box-shadow 0.3s ease;
  list-style: none;
}

.woocommerce ul.products li.product:hover {
  box-shadow: 0 10px 25px -5px rgba(0,0,0,0.08);
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
  border-radius: 1rem;
  margin-bottom: 1rem;
  width: 100%;
  height: auto;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--color-secondary, #0f172a);
}

.woocommerce ul.products li.product .price {
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 0.75rem;
  display: block;
  color: var(--color-secondary, #0f172a);
}

.woocommerce ul.products li.product .button {
  height: 2.5rem !important;
  padding: 0 1.5rem !important;
  font-size: 0.8125rem !important;
  background-color: #0f172a !important;
}

.woocommerce ul.products li.product .button:hover {
  background-color: #075985 !important;
}

/* ---- Star ratings ---- */
.woocommerce .star-rating {
  display: inline-flex;
  overflow: hidden;
  position: relative;
  height: 1em;
  width: 5.4em;
  font-size: 1em;
  line-height: 1;
  color: #f59e0b;
}

/* ---- Cart page ---- */
.woocommerce table.shop_table {
  border-radius: 1rem;
  overflow: hidden;
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

.woocommerce table.shop_table th {
  padding: 1rem 1.25rem;
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--color-background-3, #f8fafc);
  color: var(--color-secondary, #0f172a);
  border-bottom: 1px solid var(--color-stroke-2, #e2e8f0);
}

.woocommerce table.shop_table td {
  padding: 1rem 1.25rem;
  vertical-align: middle;
  border-bottom: 1px solid var(--color-stroke-2, #e2e8f0);
}

.woocommerce table.shop_table td.product-remove a {
  color: #ef4444 !important;
  font-size: 1.25rem;
  text-decoration: none;
}

.woocommerce table.shop_table td.product-thumbnail img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 0.75rem;
  background: var(--color-background-3, #f8fafc);
}

.woocommerce table.shop_table td.product-name a {
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  text-decoration: none;
}

.woocommerce table.shop_table td.product-name a:hover {
  color: var(--color-primary-500, #2563eb);
}

/* Cart totals */
.woocommerce .cart_totals,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.5rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--color-secondary, #0f172a);
}

/* ---- Checkout ---- */
.woocommerce form .form-row {
  margin-bottom: 1rem;
}

.woocommerce form .form-row label {
  display: block;
  font-weight: 500;
  font-size: 0.875rem;
  margin-bottom: 0.375rem;
  color: var(--color-secondary, #0f172a);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-input-wrapper input,
.woocommerce-input-wrapper select {
  width: 100%;
  height: 3rem;
  padding: 0 1rem;
  border-radius: 1rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-family: inherit;
  font-size: 0.875rem;
  color: var(--color-secondary, #0f172a);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.woocommerce form .form-row textarea {
  height: auto;
  min-height: 5rem;
  padding: 0.75rem 1rem;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--color-primary-500, #2563eb);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.woocommerce form .form-row .required {
  color: #ef4444;
}

/* Checkout columns */
.woocommerce .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

@media (max-width: 768px) {
  .woocommerce .col2-set {
    grid-template-columns: 1fr;
  }
}

/* Generic checkout form inputs (fallback) */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
  width: 100%;
  height: 3rem;
  padding: 0 1rem;
  border-radius: 0.875rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-family: inherit;
  font-size: 0.9375rem;
  color: var(--color-secondary, #0f172a);
  outline: none;
}

.woocommerce-checkout .form-row textarea {
  height: auto;
  min-height: 5rem;
  padding: 0.875rem 1rem;
}

/* ---- My Account ---- */
.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--color-background-3, #f8fafc);
  border-radius: 1.25rem;
  padding: 1rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin-bottom: 0.25rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  transition: all 0.2s ease;
  text-decoration: none;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: #0f172a;
  color: #fff;
}

.woocommerce-account .woocommerce-MyAccount-content {
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

/* Login / Register forms */
.woocommerce form.login,
.woocommerce form.register {
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

/* =============================================
   PAGE CONTENT — WooCommerce Pages
   ============================================= */

/* General WC page wrapper */
.se-wc-page .woocommerce {
  max-width: 100%;
}

/* ---- Account page layout ---- */
.se-wc-account .woocommerce {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 768px) {
  .se-wc-account .woocommerce {
    grid-template-columns: 1fr;
  }
}

/* Account nav styling enhancements */
.se-wc-account .woocommerce-MyAccount-navigation {
  position: sticky;
  top: 100px;
}

.se-wc-account .woocommerce-MyAccount-navigation ul li:last-child {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-stroke-2, #e2e8f0);
}

.se-wc-account .woocommerce-MyAccount-navigation ul li:last-child a {
  color: #ef4444;
}

.se-wc-account .woocommerce-MyAccount-navigation ul li:last-child a:hover {
  background: #fef2f2;
  color: #dc2626;
}

/* Account content min height */
.se-wc-account .woocommerce-MyAccount-content {
  min-height: 300px;
}

.se-wc-account .woocommerce-MyAccount-content p {
  margin-bottom: 1rem;
  line-height: 1.65;
}

.se-wc-account .woocommerce-MyAccount-content a {
  color: #075985;
  font-weight: 500;
  text-decoration: none;
}

.se-wc-account .woocommerce-MyAccount-content a:hover {
  text-decoration: underline;
}

/* Dashboard greeting */
.se-wc-account .woocommerce-MyAccount-content > p:first-of-type {
  font-size: 1.0625rem;
  color: var(--color-secondary, #0f172a);
}

/* Account orders table */
.se-wc-account .woocommerce-orders-table {
  border-radius: 1rem;
  overflow: hidden;
}

.se-wc-account .woocommerce-orders-table th {
  background: var(--color-background-3, #f8fafc);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #64748b;
}

.se-wc-account .woocommerce-orders-table td {
  font-size: 0.875rem;
  padding: 1rem 1.25rem;
}

.se-wc-account .woocommerce-orders-table .woocommerce-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.25rem;
  padding: 0 1rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 500;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}

.se-wc-account .woocommerce-orders-table .woocommerce-button:hover {
  background: #075985;
}

/* Account addresses */
.se-wc-account .woocommerce-Addresses,
.se-wc-account .col2-set.addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

@media (max-width: 640px) {
  .se-wc-account .woocommerce-Addresses,
  .se-wc-account .col2-set.addresses {
    grid-template-columns: 1fr;
  }
}

.se-wc-account .woocommerce-Address,
.se-wc-account .col2-set.addresses .col-1,
.se-wc-account .col2-set.addresses .col-2 {
  background: var(--color-background-3, #f8fafc);
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-radius: 1rem;
  padding: 1.5rem;
}

.se-wc-account .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.se-wc-account .woocommerce-Address-title h2,
.se-wc-account .woocommerce-Address-title h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  color: var(--color-secondary, #0f172a);
}

.se-wc-account .woocommerce-Address-title a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2rem;
  padding: 0 0.875rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff !important;
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.2s;
}

.se-wc-account .woocommerce-Address-title a:hover {
  background: #075985;
}

.se-wc-account .woocommerce-Address address {
  font-style: normal;
  font-size: 0.875rem;
  line-height: 1.7;
  color: #475569;
}

/* Account edit form */
.se-wc-account .woocommerce-MyAccount-content fieldset {
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-radius: 1rem;
  padding: 1.5rem;
  margin: 1.5rem 0;
}

.se-wc-account .woocommerce-MyAccount-content fieldset legend {
  font-weight: 600;
  font-size: 0.9375rem;
  padding: 0 0.5rem;
  color: var(--color-secondary, #0f172a);
}

/* Login form centered and max-width */
.se-wc-account .woocommerce form.login {
  max-width: 480px;
  margin: 0 auto;
}

.se-wc-account .woocommerce form.login h2,
.se-wc-account .woocommerce form.register h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: var(--color-secondary, #0f172a);
}

.se-wc-account .woocommerce form.login .form-row {
  margin-bottom: 1.25rem;
}

.se-wc-account .woocommerce form.login .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  cursor: pointer;
}

.se-wc-account .woocommerce form.login .woocommerce-form__label-for-checkbox input[type="checkbox"] {
  width: 1.125rem;
  height: 1.125rem;
  accent-color: var(--color-primary-500, #2563eb);
  cursor: pointer;
}

.se-wc-account .woocommerce form.login p.lost_password {
  margin-top: 1rem;
  text-align: center;
}

.se-wc-account .woocommerce form.login p.lost_password a {
  color: var(--color-primary-500, #2563eb);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
}

.se-wc-account .woocommerce form.login p.lost_password a:hover {
  text-decoration: underline;
}

/* Login/Register submit buttons — black */
.woocommerce form.login button.woocommerce-button,
.woocommerce form.login input[type="submit"],
.woocommerce form.register button.woocommerce-button,
.woocommerce form.register input[type="submit"],
.woocommerce-account button.woocommerce-Button,
.woocommerce-account .woocommerce button[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3rem !important;
  border-radius: 9999px !important;
  background: #0f172a !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  border: none !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}

.woocommerce form.login button.woocommerce-button:hover,
.woocommerce form.login input[type="submit"]:hover,
.woocommerce form.register button.woocommerce-button:hover,
.woocommerce form.register input[type="submit"]:hover,
.woocommerce-account button.woocommerce-Button:hover,
.woocommerce-account .woocommerce button[type="submit"]:hover {
  background: #075985 !important;
}

/* ---- Cart page enhancements ---- */
.se-wc-cart .woocommerce {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

/* Cart table responsive */
@media (max-width: 768px) {
  .se-wc-cart .woocommerce table.shop_table thead {
    display: none;
  }
  .se-wc-cart .woocommerce table.shop_table tr {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.5rem 1rem;
    padding: 1rem;
    border-bottom: 1px solid var(--color-stroke-2, #e2e8f0);
    align-items: center;
  }
  .se-wc-cart .woocommerce table.shop_table td {
    padding: 0;
    border: none;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-thumbnail {
    grid-row: span 2;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-remove {
    grid-column: 3;
    grid-row: 1;
    text-align: right;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-name {
    grid-column: 2;
    grid-row: 1;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-quantity {
    grid-column: 2;
    grid-row: 2;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-subtotal {
    grid-column: 3;
    grid-row: 2;
    text-align: right;
    font-weight: 600;
  }
  .se-wc-cart .woocommerce table.shop_table td.product-price {
    display: none;
  }
}

/* Cart layout: table + totals side by side on desktop */
@media (min-width: 769px) {
  .se-wc-cart .woocommerce-cart-form + .cart-collaterals {
    display: flex;
    justify-content: flex-end;
  }
  .se-wc-cart .cart_totals {
    width: 380px;
    flex-shrink: 0;
  }
}

/* Cart totals box */
.se-wc-cart .cart_totals {
  background: #fff;
  border-radius: 1.25rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  padding: 1.5rem;
}

.se-wc-cart .cart_totals h2 {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--color-secondary, #0f172a);
}

.se-wc-cart .cart_totals table {
  width: 100%;
  margin-bottom: 1.25rem;
}

.se-wc-cart .cart_totals table th {
  text-align: left;
  font-weight: 500;
  font-size: 0.875rem;
  color: #64748b;
  padding: 0.625rem 0;
}

.se-wc-cart .cart_totals table td {
  text-align: right;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-secondary, #0f172a);
  padding: 0.625rem 0;
}

.se-wc-cart .cart_totals table .order-total td {
  font-size: 1.125rem;
  font-weight: 700;
}

/* ---- WooCommerce Blocks overrides ---- */

/* Checkout / Proceed button — black */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button .wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wc-block-components-button.wc-block-cart__submit-button,
.wc-block-components-button.wc-block-components-checkout-place-order-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3.25rem !important;
  border-radius: 9999px !important;
  background: #0f172a !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  border: none !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button .wc-block-components-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover,
.wc-block-components-button.wc-block-cart__submit-button:hover,
.wc-block-components-button.wc-block-components-checkout-place-order-button:hover {
  background: #075985 !important;
}

/* Block cart/checkout general inputs */
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input {
  border-radius: 0.875rem !important;
  border: 1px solid var(--color-stroke-2, #e2e8f0) !important;
  background: var(--color-background-3, #f8fafc) !important;
  font-family: inherit !important;
  font-size: 0.9375rem !important;
  color: var(--color-secondary, #0f172a) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus {
  border-color: #0f172a !important;
  box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08) !important;
}

/* Block totals / order summary */
.wc-block-components-totals-wrapper {
  border-color: var(--color-stroke-2, #e2e8f0) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-weight: 700 !important;
  font-size: 1.125rem !important;
}

/* Block payment methods */
.wc-block-components-radio-control__option {
  border: 1px solid var(--color-stroke-2, #e2e8f0) !important;
  border-radius: 0.875rem !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: 0.5rem !important;
  transition: border-color 0.2s !important;
}

.wc-block-components-radio-control__option--checked {
  border-color: #0f172a !important;
  background: var(--color-background-3, #f8fafc) !important;
}

/* Block checkout sections */
.wc-block-checkout__form .wc-block-components-checkout-step {
  border-color: var(--color-stroke-2, #e2e8f0) !important;
}

.wc-block-components-checkout-step__title {
  font-weight: 700 !important;
  color: var(--color-secondary, #0f172a) !important;
}

/* Block shipping options */
.wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__label {
  font-weight: 500 !important;
}

/* Block express checkout divider */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
  font-size: 0.8125rem !important;
  color: #64748b !important;
}

/* Block coupon */
.wc-block-components-totals-coupon__button {
  background: #0f172a !important;
  color: #fff !important;
  border-radius: 9999px !important;
  border: none !important;
  font-weight: 600 !important;
  transition: background 0.2s !important;
}

.wc-block-components-totals-coupon__button:hover {
  background: #075985 !important;
}

/* Block error/info notices */
.wc-block-components-notice-banner {
  border-radius: 1rem !important;
  border-left: none !important;
}

/* Cart totals button — classic WC, black, theme-consistent */
.se-wc-cart .cart_totals .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 3.25rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: background 0.2s;
}

.se-wc-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: #075985;
}

/* Cart update button */
.se-wc-cart .woocommerce-cart-form button[name="update_cart"] {
  background: var(--color-background-3, #f8fafc);
  color: var(--color-secondary, #0f172a);
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  height: 2.75rem;
  padding: 0 1.5rem;
  border-radius: 9999px;
  font-weight: 500;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
}

.se-wc-cart .woocommerce-cart-form button[name="update_cart"]:hover {
  background: var(--color-stroke-2, #e2e8f0);
}

.se-wc-cart .woocommerce-cart-form button[name="update_cart"]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Cart coupon */
.se-wc-cart .coupon {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.se-wc-cart .coupon input#coupon_code {
  width: auto;
  max-width: 200px;
  height: 2.75rem;
  padding: 0 1rem;
  border-radius: 1rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-size: 0.875rem;
  font-family: inherit;
}

.se-wc-cart .coupon button {
  height: 2.75rem;
  padding: 0 1.25rem;
  border-radius: 9999px;
  background: var(--color-secondary, #0f172a);
  color: #fff;
  font-weight: 500;
  font-size: 0.8125rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}

.se-wc-cart .coupon button:hover {
  background: #075985;
}

/* Cart actions row */
.se-wc-cart .woocommerce-cart-form .actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1.25rem;
  border-top: 1px solid var(--color-stroke-2, #e2e8f0);
}

/* Empty cart */
.se-wc-cart .cart-empty,
.woocommerce-cart .cart-empty {
  text-align: center;
  padding: 3rem 1rem;
}

.se-wc-cart .cart-empty.woocommerce-info,
.woocommerce-cart .cart-empty.woocommerce-info {
  background: var(--color-background-3, #f8fafc);
  border: none;
  border-radius: 1.25rem;
  font-size: 1rem;
  color: var(--color-secondary, #0f172a);
  padding: 3rem 2rem;
}

.se-wc-cart .return-to-shop a,
.woocommerce-cart .return-to-shop a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3rem;
  padding: 0 2rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  transition: background 0.2s;
  margin-top: 1rem;
}

.se-wc-cart .return-to-shop a:hover,
.woocommerce-cart .return-to-shop a:hover {
  background: #075985;
}

/* Cart quantity input within table */
.se-wc-cart .woocommerce table.shop_table .quantity input.qty {
  width: 3.5rem;
  height: 2.5rem;
  text-align: center;
  border-radius: 0.75rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
}

/* ---- Checkout page enhancements ---- */
.se-wc-checkout .woocommerce-checkout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 768px) {
  .se-wc-checkout .woocommerce-checkout {
    grid-template-columns: 1fr;
  }
}

.se-wc-checkout #customer_details {
  grid-column: 1;
}

/* Checkout customer details cards */
.se-wc-checkout #customer_details .col-1,
.se-wc-checkout #customer_details .col-2 {
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  margin-bottom: 1.5rem;
}

/* Checkout billing/shipping headings */
.se-wc-checkout .woocommerce-billing-fields h3,
.se-wc-checkout .woocommerce-shipping-fields h3,
.se-wc-checkout .woocommerce-additional-fields h3 {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: var(--color-secondary, #0f172a);
}

/* Checkout form fields */
.se-wc-checkout .form-row {
  margin-bottom: 1rem;
}

.se-wc-checkout .form-row label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  margin-bottom: 0.375rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.se-wc-checkout .form-row label .required {
  color: #ef4444;
}

.se-wc-checkout .form-row label .optional {
  font-weight: 400;
  text-transform: none;
  color: #94a3b8;
  font-size: 0.75rem;
}

.se-wc-checkout .form-row input.input-text,
.se-wc-checkout .form-row textarea,
.se-wc-checkout .form-row select,
.se-wc-checkout .form-row .select2-container .select2-selection--single {
  width: 100%;
  height: 3rem;
  padding: 0 1rem;
  border-radius: 0.875rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: var(--color-background-3, #f8fafc);
  font-family: inherit;
  font-size: 0.9375rem;
  color: var(--color-secondary, #0f172a);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.se-wc-checkout .form-row textarea {
  height: auto;
  min-height: 5rem;
  padding: 0.875rem 1rem;
  resize: vertical;
}

.se-wc-checkout .form-row input.input-text:focus,
.se-wc-checkout .form-row textarea:focus,
.se-wc-checkout .form-row select:focus {
  border-color: #0f172a;
  box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08);
}

/* Select2 dropdown styling */
.se-wc-checkout .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
}

.se-wc-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 1;
  padding-left: 0;
  color: var(--color-secondary, #0f172a);
}

.se-wc-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  right: 0.75rem;
}

/* Form row layout — side by side */
.se-wc-checkout .form-row-first,
.se-wc-checkout .form-row-last {
  width: 48.5%;
  display: inline-block;
  vertical-align: top;
}

.se-wc-checkout .form-row-first {
  margin-right: 3%;
}

@media (max-width: 480px) {
  .se-wc-checkout .form-row-first,
  .se-wc-checkout .form-row-last {
    width: 100%;
    display: block;
    margin-right: 0;
  }
}

/* Order review sidebar */
.se-wc-checkout .woocommerce-checkout-review-order-wrap,
.se-wc-checkout #order_review {
  position: sticky;
  top: 100px;
}

.se-wc-checkout #order_review_heading {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--color-secondary, #0f172a);
}

/* Review order table */
.se-wc-checkout .woocommerce-checkout-review-order-table {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: #fff;
  margin-bottom: 1.5rem;
}

.se-wc-checkout .woocommerce-checkout-review-order-table th,
.se-wc-checkout .woocommerce-checkout-review-order-table td {
  padding: 0.875rem 1.25rem;
  font-size: 0.875rem;
}

.se-wc-checkout .woocommerce-checkout-review-order-table thead th {
  background: var(--color-background-3, #f8fafc);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #64748b;
}

.se-wc-checkout .woocommerce-checkout-review-order-table .order-total th,
.se-wc-checkout .woocommerce-checkout-review-order-table .order-total td {
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--color-secondary, #0f172a);
  border-top: 2px solid var(--color-stroke-2, #e2e8f0);
}

/* Payment methods */
.se-wc-checkout #payment {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.5rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
}

.se-wc-checkout #payment ul.payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}

.se-wc-checkout #payment ul.payment_methods li {
  padding: 1rem 1.25rem;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-radius: 0.875rem;
  margin-bottom: 0.5rem;
  transition: border-color 0.2s;
}

.se-wc-checkout #payment ul.payment_methods li:has(input:checked) {
  border-color: #0f172a;
  background: var(--color-background-3, #f8fafc);
}

.se-wc-checkout #payment ul.payment_methods li label {
  font-weight: 600;
  cursor: pointer;
  font-size: 0.9375rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.se-wc-checkout #payment ul.payment_methods li label img {
  max-height: 24px;
  width: auto;
}

.se-wc-checkout #payment ul.payment_methods li .payment_box {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-stroke-2, #e2e8f0);
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.6;
}

/* Privacy / Terms */
.se-wc-checkout .woocommerce-terms-and-conditions-wrapper {
  margin-top: 1rem;
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.6;
}

.se-wc-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: #075985;
  font-weight: 500;
}

.se-wc-checkout .woocommerce-privacy-policy-text {
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.se-wc-checkout .woocommerce-privacy-policy-text a {
  color: #075985;
}

/* Place order button — black, theme-consistent */
.se-wc-checkout #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 3.25rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff;
  font-weight: 600;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 1rem;
}

.se-wc-checkout #place_order:hover {
  background: #075985;
}

/* Checkout notices */
.se-wc-checkout .woocommerce-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--color-background-3, #f8fafc);
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-left: none;
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
}

.se-wc-checkout .woocommerce-info a {
  color: #075985;
  font-weight: 600;
}

/* Checkout login/coupon toggle links */
.se-wc-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.se-wc-checkout .woocommerce-form-login-toggle .woocommerce-info {
  cursor: pointer;
}

/* Checkout coupon/login expandable forms */
.se-wc-checkout .checkout_coupon,
.se-wc-checkout .woocommerce-form-login {
  background: #fff;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  border-radius: 1.25rem;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.se-wc-checkout .checkout_coupon .form-row input.input-text {
  max-width: 280px;
}

.se-wc-checkout .checkout_coupon button,
.se-wc-checkout .woocommerce-form-login button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3rem;
  padding: 0 1.5rem;
  border-radius: 9999px;
  background: #0f172a;
  color: #fff;
  font-weight: 600;
  font-size: 0.875rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}

.se-wc-checkout .checkout_coupon button:hover,
.se-wc-checkout .woocommerce-form-login button:hover {
  background: #075985;
}

/* ---- Sale badge ---- */
.woocommerce span.onsale {
  background: #ef4444 !important;
  color: #fff;
  font-weight: 700;
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 10;
}

/* ---- Breadcrumbs ---- */
.woocommerce-breadcrumb {
  font-size: 0.8125rem;
  color: var(--color-secondary, #64748b);
  margin-bottom: 1.5rem;
}

.woocommerce-breadcrumb a {
  color: var(--color-primary-500, #2563eb);
  text-decoration: none;
}

/* ---- Pagination ---- */
.woocommerce nav.woocommerce-pagination ul {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  list-style: none;
  padding: 2rem 0 0;
  margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  font-weight: 500;
  font-size: 0.875rem;
  text-decoration: none;
  transition: all 0.2s;
  color: var(--color-secondary, #0f172a);
  background: var(--color-background-3, #f8fafc);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--color-primary-500, #2563eb);
  color: #fff;
}

/* ---- Category filter buttons ---- */
.se-filter-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.25rem;
  border-radius: 9999px;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  background: var(--color-background-3, #f1f5f9);
  text-decoration: none;
  transition: all 0.25s ease;
  border: 1.5px solid transparent;
}

.se-filter-btn:hover {
  background: var(--color-background-4, #e2e8f0);
}

.se-filter-btn.se-filter-active {
  background: var(--color-secondary, #0f172a);
  color: #fff;
}

/* ---- SellEase pagination ---- */
.se-pagination {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.se-pagination a,
.se-pagination span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.5rem;
  border-radius: 0.75rem;
  font-weight: 500;
  font-size: 0.875rem;
  text-decoration: none;
  transition: all 0.2s ease;
  color: var(--color-secondary, #0f172a);
  background: var(--color-background-3, #f1f5f9);
}

.se-pagination a:hover {
  background: var(--color-background-4, #e2e8f0);
}

.se-pagination span.current {
  background: var(--color-secondary, #0f172a);
  color: #fff;
}

.se-pagination .dots {
  background: transparent;
  color: var(--color-secondary, #0f172a);
  opacity: 0.4;
}

/* ---- line-clamp utility ---- */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- Widget / Sidebar ---- */
.woocommerce .widget_price_filter .price_slider_wrapper {
  padding: 0.5rem 0;
}

/* =============================================
   PRODUCT ADVISOR WIZARD — Modal
   ============================================= */

/* Trigger button (hero CTA) */
.se-wiz-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
  padding: 0.75rem 2rem;
  border-radius: 9999px;
  border: 1.5px solid var(--color-stroke-2, #e2e8f0);
  background: #fff;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  cursor: pointer;
  transition: all 0.25s ease;
}

.se-wiz-trigger:hover {
  border-color: #075985;
  color: #075985;
  background: #f0f9ff;
}

/* Modal overlay container */
.se-wiz-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.se-wiz-modal.se-wiz-modal-open {
  visibility: visible;
  opacity: 1;
}

/* Dark backdrop */
.se-wiz-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Panel */
.se-wiz-modal-panel {
  position: relative;
  width: 100%;
  max-width: 720px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 1.5rem;
  padding: 2.5rem 2rem 2rem;
  box-shadow: 0 25px 60px -12px rgba(0, 0, 0, 0.25);
  transform: translateY(20px);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.se-wiz-modal.se-wiz-modal-open .se-wiz-modal-panel {
  transform: translateY(0);
}

/* Close button */
.se-wiz-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: var(--color-background-3, #f1f5f9);
  border-radius: 50%;
  font-size: 1.25rem;
  color: var(--color-secondary, #0f172a);
  cursor: pointer;
  transition: background 0.2s ease;
  line-height: 1;
}

.se-wiz-modal-close:hover {
  background: var(--color-background-4, #e2e8f0);
}

/* Responsive: full-width on mobile */
@media (max-width: 640px) {
  .se-wiz-modal-panel {
    max-width: 100%;
    max-height: 100vh;
    height: 100%;
    border-radius: 0;
    padding: 2rem 1.25rem 1.5rem;
  }
}

/* Progress bar */
.se-wiz-progress {
  height: 4px;
  background: #e2e8f0;
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.se-wiz-progress-bar {
  height: 100%;
  width: 0;
  background: #075985;
  border-radius: 9999px;
  transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Dot indicators */
.se-wiz-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.se-wiz-dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: #cbd5e1;
  transition: all 0.3s ease;
}

.se-wiz-dot.se-wiz-dot-active {
  width: 24px;
  background: #075985;
}

.se-wiz-dot.se-wiz-dot-done {
  background: #075985;
}

/* Viewport & step transitions */
.se-wiz-viewport {
  position: relative;
  overflow: hidden;
  min-height: 280px;
}

.se-wiz-step {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}

.se-wiz-slide-in-right {
  animation: seWizSlideInRight 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.se-wiz-slide-in-left {
  animation: seWizSlideInLeft 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.se-wiz-slide-out-left {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  animation: seWizSlideOutLeft 0.35s ease forwards;
}

.se-wiz-slide-out-right {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  animation: seWizSlideOutRight 0.35s ease forwards;
}

@keyframes seWizSlideInRight {
  from { transform: translateX(60px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

@keyframes seWizSlideInLeft {
  from { transform: translateX(-60px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

@keyframes seWizSlideOutLeft {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(-60px); opacity: 0; }
}

@keyframes seWizSlideOutRight {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(60px); opacity: 0; }
}

/* Question */
.se-wiz-question {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  color: var(--color-secondary, #0f172a);
}

/* Options grid */
.se-wiz-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}

.se-wiz-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.25rem 1rem;
  border-radius: 1rem;
  border: 2px solid transparent;
  background: var(--color-background-3, #f1f5f9);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: center;
  min-height: 96px;
}

.se-wiz-option:hover {
  background: var(--color-background-4, #e2e8f0);
  border-color: #cbd5e1;
}

.se-wiz-option-selected {
  border-color: #075985 !important;
  background: #f0f9ff !important;
}

.se-wiz-option-icon {
  font-size: 1.75rem;
  line-height: 1;
}

.se-wiz-option-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  line-height: 1.3;
}

/* Navigation */
.se-wiz-nav {
  display: flex;
  justify-content: flex-start;
  margin-top: 1.5rem;
}

.se-wiz-back {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  border: none;
  background: var(--color-background-3, #f1f5f9);
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  cursor: pointer;
  transition: all 0.2s ease;
}

.se-wiz-back:hover {
  background: var(--color-background-4, #e2e8f0);
}

/* Results */
.se-wiz-results {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.se-wiz-result-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  transition: all 0.3s ease;
}

.se-wiz-result-card:hover {
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08);
  border-color: #075985;
}

.se-wiz-badge-rec {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background: #075985;
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.se-wiz-result-img {
  background: var(--color-background-3, #f8fafc);
  padding: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
  margin: 0;
}

.se-wiz-result-img img {
  max-height: 140px;
  width: auto;
  object-fit: contain;
}

.se-wiz-result-info {
  padding: 1rem 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  flex: 1;
}

.se-wiz-result-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  margin: 0;
}

.se-wiz-result-desc {
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}

.se-wiz-result-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 0.5rem;
}

.se-wiz-result-price {
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--color-secondary, #0f172a);
}

.se-wiz-result-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #075985;
  transition: gap 0.2s ease;
}

.se-wiz-result-card:hover .se-wiz-result-cta {
  gap: 0.5rem;
}

/* Restart */
.se-wiz-restart-wrap {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.se-wiz-restart {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.5rem;
  border-radius: 9999px;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: #fff;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary, #0f172a);
  cursor: pointer;
  transition: all 0.2s ease;
}

.se-wiz-restart:hover {
  background: var(--color-background-3, #f1f5f9);
  border-color: #075985;
  color: #075985;
}

/* Responsive */
@media (max-width: 768px) {
  .se-wiz-results {
    grid-template-columns: 1fr;
  }
  .se-wiz-options {
    grid-template-columns: 1fr;
  }
  .se-wiz-option {
    flex-direction: row;
    min-height: 56px;
    padding: 1rem 1.25rem;
    gap: 0.75rem;
  }
  .se-wiz-option-icon {
    font-size: 1.5rem;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .se-wiz-results {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =============================================
   PRODUCT CARD — Image Gallery (Swiper)
   ============================================= */

/* Gallery fills the figure */
.se-card-gallery {
  position: absolute;
  inset: 0;
}

.se-card-gallery .swiper-wrapper {
  height: 100%;
}

.se-card-gallery .swiper-slide {
  height: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  box-sizing: border-box;
}

.se-card-gallery .swiper-slide img {
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Pagination dots — hidden by default, visible on card hover */
.se-card-gallery-dots.swiper-pagination {
  position: absolute;
  bottom: 0.75rem;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 0.375rem;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.group:hover .se-card-gallery-dots,
a:hover .se-card-gallery-dots {
  opacity: 1;
}

/* Individual bullet */
.se-card-gallery-dots .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: rgba(15, 23, 42, 0.25);
  opacity: 1;
  margin: 0 !important;
  transition: all 0.25s ease;
  cursor: pointer;
}

.se-card-gallery-dots .swiper-pagination-bullet-active {
  background: #0f172a;
  width: 18px;
}

/* Figure needs visible overflow when gallery arrows are present */
figure:has(.se-card-gallery) {
  overflow: visible !important;
}

/* Arrow buttons — visible on card hover */
button.se-card-gallery-prev,
button.se-card-gallery-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 20 !important;
  width: 2.25rem !important;
  height: 2.25rem !important;
  border-radius: 50% !important;
  border: none !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  color: #0f172a !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, box-shadow 0.2s ease;
  /* Override any Swiper-injected styles */
  --swiper-navigation-size: 14px;
}

button.se-card-gallery-prev { left: 0.5rem !important; }
button.se-card-gallery-next { right: 0.5rem !important; }

/* Override Swiper's default nav button styles that may hide our buttons */
button.se-card-gallery-prev.swiper-button-lock,
button.se-card-gallery-next.swiper-button-lock,
button.se-card-gallery-prev.swiper-button-disabled,
button.se-card-gallery-next.swiper-button-disabled {
  display: flex !important;
  opacity: 0;
  visibility: hidden;
}

button.se-card-gallery-prev::after,
button.se-card-gallery-next::after {
  display: none !important;
}

button.se-card-gallery-prev svg,
button.se-card-gallery-next svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
  stroke: #0f172a !important;
  flex-shrink: 0;
}

/* Show on card hover */
.group:hover button.se-card-gallery-prev,
.group:hover button.se-card-gallery-next,
a:hover button.se-card-gallery-prev,
a:hover button.se-card-gallery-next {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Even locked/disabled buttons show on hover when gallery is present */
.group:hover button.se-card-gallery-prev.swiper-button-lock,
.group:hover button.se-card-gallery-next.swiper-button-lock,
a:hover button.se-card-gallery-prev.swiper-button-lock,
a:hover button.se-card-gallery-next.swiper-button-lock {
  opacity: 1 !important;
  visibility: visible !important;
}

button.se-card-gallery-prev:hover,
button.se-card-gallery-next:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22) !important;
}

/* =============================================
   SHOP CATALOG — Tabbed Layout + Swiper
   ============================================= */

/* Tab nav: right-aligned variant for shop header */
.se-shop-tabs {
  margin-bottom: 0;
  margin-top: 1rem;
}

@media (min-width: 640px) {
  .se-shop-tabs {
    margin-top: 0;
  }
}

/* Category row */
.se-cat-row {
  margin-bottom: 3rem;
}

.se-cat-row:last-child {
  margin-bottom: 0;
}

/* Row header: title + count */
.se-cat-row-header {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.se-cat-row-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
  margin: 0;
}

.se-cat-row-count {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #64748b;
}

/* Swiper container */
.se-product-swiper {
  position: relative;
  overflow: hidden;
}

/* Navigation arrows */
.se-swiper-nav {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 1.25rem;
}

.se-swiper-prev,
.se-swiper-next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  border: 1px solid var(--color-stroke-2, #e2e8f0);
  background: #fff;
  color: var(--color-secondary, #0f172a);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.se-swiper-prev:hover,
.se-swiper-next:hover {
  background: var(--color-background-3, #f1f5f9);
  border-color: #075985;
  color: #075985;
}

.se-swiper-prev.swiper-button-disabled,
.se-swiper-next.swiper-button-disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* Swiper slide: ensure cards fill height */
.se-product-swiper .swiper-slide {
  height: auto;
}

.se-product-swiper .swiper-slide > a {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* =============================================
   PRICING PLAN CARDS (Shop catalog + Single virtual)
   ============================================= */

/* Toggle visibility: monthly shown by default, yearly hidden */
.se-plan-price-year {
  display: none;
}

.se-plan-row.se-plan-yearly .se-plan-price-month {
  display: none;
}

.se-plan-row.se-plan-yearly .se-plan-price-year {
  display: block;
}

/* Checkmark icon circle (used in virtual product single page) */
.se-plan-check-icon {
  width: 20px;
  height: 20px;
  min-width: 20px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.se-plan-check-icon.se-plan-check-dark {
  background: var(--color-secondary, #0f172a);
}

/* ---- Single Virtual Product Page ---- */

.se-virtual-add-to-cart form.cart {
  align-items: stretch !important;
}

.se-virtual-add-to-cart .single_add_to_cart_button {
  width: 100% !important;
}

/* Single virtual product: billing toggle cards */
.se-billing-toggle {
  display: flex;
  gap: 0.625rem;
}

.se-billing-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  padding: 0.875rem 1.25rem;
  border-radius: 1rem;
  border: 2px solid transparent;
  background: var(--color-background-3, #f1f5f9);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: center;
}

.se-billing-btn:hover {
  background: var(--color-background-4, #e2e8f0);
}

.se-billing-btn.se-billing-active {
  border-color: var(--color-secondary, #0f172a);
  background: var(--color-background-3, #f1f5f9);
}

.se-billing-btn-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-secondary, #0f172a);
}

.se-billing-btn-price {
  font-size: 0.75rem;
  font-weight: 500;
  color: #64748b;
}

/* Savings badge — positioned top-right of billing button */
.se-billing-savings {
  position: absolute;
  top: -0.5rem;
  right: -0.5rem;
  background: #16a34a;
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  padding: 0.175rem 0.5rem;
  border-radius: 9999px;
  line-height: 1.3;
  white-space: nowrap;
}

/* Savings badge inline (plan cards in shop/category) */
.se-plan-savings {
  display: inline-block;
  background: #16a34a;
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  padding: 0.175rem 0.5rem;
  border-radius: 9999px;
  vertical-align: middle;
  margin-left: 0.5rem;
  line-height: 1.3;
}

/* Active card checkmark */
.se-billing-btn.se-billing-active::after {
  content: '';
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  background: var(--color-secondary, #0f172a);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px;
}

.se-billing-btn {
  position: relative;
}

/* Toggle monthly/yearly price visibility */
.se-virtual-price-year {
  display: none;
}

.se-virtual-pricing.se-plan-yearly .se-virtual-price-month {
  display: none;
}

.se-virtual-pricing.se-plan-yearly .se-virtual-price-year {
  display: block;
}

/* Video embed — 16:9 responsive */
.se-virtual-video {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  border-radius: 20px;
  overflow: hidden;
  background: var(--color-background-3, #f1f5f9);
}

.se-virtual-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* ---- Tabs (hidden — we use our own sections) ---- */
.woocommerce-tabs {
  display: none !important;
}

