/* ============================================================
   Infinity Digital Shop — WooCommerce Overrides
   ============================================================ */

/* ── Single Product ── */
.ids-single-product{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.ids-product-gallery{position:sticky;top:80px}
.ids-product-gallery__main{
  aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;
  background:var(--bg-card);border:1px solid var(--border);margin-bottom:12px;
}
.ids-product-gallery__main img{width:100%;height:100%;object-fit:cover}
.ids-product-gallery__thumbs{display:flex;gap:8px}
.ids-product-gallery__thumb{
  width:70px;height:70px;border-radius:var(--radius-sm);overflow:hidden;
  background:var(--bg-card);border:1px solid var(--border);cursor:pointer;
  transition:border-color var(--transition);flex-shrink:0;
}
.ids-product-gallery__thumb.active,.ids-product-gallery__thumb:hover{border-color:var(--accent)}
.ids-product-gallery__thumb img{width:100%;height:100%;object-fit:cover}

.ids-product-summary{}
.ids-product-summary__cat{
  font-size:12px;color:var(--accent);font-weight:600;
  text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px;
}
.ids-product-summary__title{font-size:clamp(22px,3vw,32px);margin-bottom:20px}
.ids-product-summary__price{
  display:flex;align-items:baseline;gap:12px;margin-bottom:24px;
}
.ids-product-summary__price .woocommerce-Price-amount{
  font-size:32px;font-weight:800;color:var(--accent);font-family:'Poppins',sans-serif;
}
.ids-product-summary__price del .woocommerce-Price-amount{
  font-size:18px;color:var(--text-muted);font-weight:400;
}
.ids-product-summary__price ins{text-decoration:none}
/* Short description — glass feature card, full display */
.ids-product-summary__short-desc{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  padding:16px 20px;
  margin-bottom:20px;
  color:var(--text-secondary);font-size:14px;line-height:1.6;
}
.ids-product-summary__short-desc p{margin-bottom:8px;font-size:14px;line-height:1.6}
.ids-product-summary__short-desc p:last-child{margin-bottom:0}
.ids-product-summary__short-desc ul,.ids-product-summary__short-desc ol{
  list-style:none;display:flex;flex-direction:column;gap:7px;padding:0;margin:0;
}
.ids-product-summary__short-desc li{
  display:flex;align-items:flex-start;gap:10px;
  font-size:14px;line-height:1.5;padding:3px 0;
}
.ids-product-summary__short-desc ul li::before{
  content:'✓';color:var(--green);font-weight:700;flex-shrink:0;margin-top:1px;
}
.ids-product-summary__short-desc strong,.ids-product-summary__short-desc b{
  color:var(--text-primary);font-weight:600;
}

/* Trust badges — 2-col grid */
.ids-product-summary__trust{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin-bottom:20px;
}
.ids-trust-badge{
  display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:8px;padding:10px 12px;
  font-size:13px;font-weight:500;color:var(--text-secondary);
}
.ids-trust-badge span{font-size:15px;flex-shrink:0}

/* Product info accordion section */
.ids-product-info{margin-top:40px}

/* Full description as one clean readable block (replaces auto-split accordions) */
.ids-product-description{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:28px 32px;
  margin-bottom:24px;
}
.ids-product-description__heading{
  font-size:20px;font-weight:700;color:var(--text-primary);
  margin:0 0 18px;padding-bottom:14px;
  border-bottom:1px solid var(--border);
  letter-spacing:-0.01em;
}
.ids-product-description__content{
  color:var(--text-secondary);font-size:15px;line-height:1.75;
  word-break:break-word;overflow-wrap:break-word;
}
.ids-product-description__content > *:first-child{margin-top:0}
.ids-product-description__content > *:last-child{margin-bottom:0}
.ids-product-description__content h1,
.ids-product-description__content h2,
.ids-product-description__content h3,
.ids-product-description__content h4{
  color:var(--text-primary);font-weight:700;
  margin:28px 0 12px;line-height:1.35;letter-spacing:-0.005em;
}
.ids-product-description__content h1,
.ids-product-description__content h2{font-size:18px}
.ids-product-description__content h3{font-size:16px}
.ids-product-description__content h4{font-size:15px}
.ids-product-description__content p{margin:0 0 12px;font-size:15px;line-height:1.75}
.ids-product-description__content ul,
.ids-product-description__content ol{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.ids-product-description__content li{
  display:flex;align-items:flex-start;gap:10px;
  font-size:14.5px;line-height:1.6;
}
.ids-product-description__content ul li::before{
  content:'✓';color:var(--green);font-weight:700;
  flex-shrink:0;margin-top:2px;font-size:14px;
}
.ids-product-description__content ol{counter-reset:idesc}
.ids-product-description__content ol li{counter-increment:idesc}
.ids-product-description__content ol li::before{
  content:counter(idesc) '.';color:var(--accent);font-weight:700;
  flex-shrink:0;min-width:20px;
}
.ids-product-description__content strong,
.ids-product-description__content b{color:var(--text-primary);font-weight:600}
.ids-product-description__content a{
  color:var(--accent);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.ids-product-description__content a:hover{opacity:0.85}
.ids-product-description__content img{max-width:100%;height:auto;border-radius:10px;margin:14px 0}
.ids-product-description__content table{
  width:100%;border-collapse:collapse;margin:14px 0;
  background:rgba(255,255,255,0.02);border-radius:8px;overflow:hidden;
}
.ids-product-description__content th,
.ids-product-description__content td{
  padding:10px 14px;font-size:14px;text-align:left;
  border-bottom:1px solid var(--border);
}
.ids-product-description__content th{
  font-weight:700;color:var(--text-primary);
  background:rgba(255,255,255,0.04);
}
.ids-product-description__content td{color:var(--text-secondary)}
.ids-product-description__content blockquote{
  border-left:3px solid var(--accent);padding:6px 14px;margin:14px 0;
  color:var(--text-muted);font-style:italic;
}
.ids-product-description__content hr{
  border:none;border-top:1px solid var(--border);margin:20px 0;
}
@media(max-width:700px){
  .ids-product-description{padding:20px 18px}
  .ids-product-description__heading{font-size:18px}
}

/* Product reviews section */
.ids-product-reviews{margin-top:48px;padding-top:40px;border-top:1px solid var(--border)}
.ids-reviews-heading{
  font-size:20px;font-weight:700;margin-bottom:28px;color:var(--text-primary);
}

/* Attributes table inside accordion */
.ids-attrs table{width:100%;border-collapse:collapse}
.ids-attrs .woocommerce-product-attributes-item__label,
.ids-attrs th{
  text-align:left;padding:10px 14px;width:38%;
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--text-muted);border-bottom:1px solid var(--border);
  background:rgba(255,255,255,0.02);
}
.ids-attrs .woocommerce-product-attributes-item__value,
.ids-attrs td{padding:10px 14px;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border);}
.ids-attrs tr:last-child th,.ids-attrs tr:last-child td{border-bottom:none}
.ids-attrs p{margin:0}

/* ── Nuclear override: remove ALL WooCommerce white backgrounds ── */
.woocommerce-tabs,
.woocommerce div.product .woocommerce-tabs,
.woocommerce-page div.product .woocommerce-tabs{background:transparent!important}
.woocommerce-tabs .panel,
.woocommerce-Tabs-panel,
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce-page div.product .woocommerce-tabs .panel{
  background:transparent!important;border:none!important;
  box-shadow:none!important;padding:0!important;margin:0!important;
}
.woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs{
  background:transparent!important;border:none!important;padding:0!important;
}
.woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:transparent!important;border:none!important;
}
/* Remove WC default borders and backgrounds from product wrapper */
.woocommerce div.product{background:transparent!important}
.woocommerce-product-details__short-description{background:transparent!important}
/* Reset any rogue white backgrounds from theme/plugin conflicts */
.woocommerce div.product .entry-summary *:not(button):not(input):not(select){
  background-color:transparent;
}

/* Hide description source element (template never renders, this is a belt-and-braces fallback) */
#ids-desc-source{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important}

/* Accordion for description */
.ids-accord-wrap{display:flex;flex-direction:column;gap:8px}
.ids-accord{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  overflow:hidden;
}
.ids-accord__head{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  width:100%!important;padding:14px 18px!important;
  background:transparent!important;border:none!important;border-bottom:1px solid transparent!important;
  cursor:pointer!important;text-align:left!important;
  color:var(--text-primary)!important;font-size:14px!important;font-weight:600!important;
  min-height:44px!important;transition:background .2s,color .2s!important;
  margin:0!important;line-height:1.4!important;box-shadow:none!important;
}
.ids-accord__head:hover{background:rgba(255,255,255,0.04)!important}
.ids-accord__head[aria-expanded="true"]{
  color:var(--accent)!important;border-bottom-color:var(--border)!important;
}
.ids-accord__chevron{
  width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;
  flex-shrink:0!important;display:block!important;
  transition:transform .3s ease;color:var(--text-muted);
  fill:none!important;
}
.ids-accord__head[aria-expanded="true"] .ids-accord__chevron{
  transform:rotate(180deg);color:var(--accent);
}
.ids-accord__body{
  display:grid!important;
  grid-template-rows:0fr!important;
  overflow:hidden!important;
  transition:grid-template-rows .3s ease!important;
}
.ids-accord__head[aria-expanded="true"]+.ids-accord__body{
  grid-template-rows:1fr!important;
}
.ids-accord__body > .ids-accord__content{
  min-height:0;overflow:hidden;
}
.ids-accord__content{
  padding:16px 18px;
  color:var(--text-secondary);font-size:14px;line-height:1.7;
  word-break:break-word;overflow-wrap:break-word;max-width:100%;
}
.ids-accord__content img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}
.ids-accord__content table{max-width:100%;display:block;overflow-x:auto}
.ids-accord__content h1,.ids-accord__content h2,.ids-accord__content h3,
.ids-accord__content h4,.ids-accord__content h5,.ids-accord__content h6{
  color:var(--text-primary);font-size:15px;font-weight:700;
  margin:14px 0 8px;line-height:1.4;
}
.ids-accord__content p{margin-bottom:10px}
.ids-accord__content p:last-child{margin-bottom:0}
.ids-accord__content ul,.ids-accord__content ol{
  list-style:none;padding:0;display:flex;flex-direction:column;gap:7px;margin-bottom:10px;
}
.ids-accord__content li{
  display:flex;align-items:flex-start;gap:8px;
  font-size:14px;line-height:1.5;
}
.ids-accord__content ul li::before{
  content:'•';color:var(--accent);font-weight:700;flex-shrink:0;margin-top:2px;
}
.ids-accord__content strong,.ids-accord__content b{
  color:var(--text-primary);font-weight:600;
}

@media(max-width:480px){
  .ids-product-summary__trust{grid-template-columns:1fr 1fr}
  .ids-trust-badge{font-size:12px;padding:8px 10px}
  .ids-product-tabs__btn{padding:10px 14px;font-size:13px}
  .ids-accord__head{font-size:13px;padding:12px 14px}
  .ids-accord__content{padding:14px}
}

/* ── Variable Product: Variation selects ── */
.variations_form .variations,
table.variations{width:100%!important;border:none!important;border-collapse:collapse!important;margin:0 0 16px!important}
table.variations tbody,.variations_form .variations tbody{display:block!important}
table.variations tr,.variations_form .variations tr{display:flex!important;flex-direction:column!important;margin-bottom:14px!important}
table.variations td,.variations_form .variations td{border:none!important;padding:0!important;display:block!important}
table.variations td.label,.variations_form .variations td.label{margin-bottom:5px!important}
table.variations label,.variations_form .variations label{
  font-size:12px!important;font-weight:700!important;color:var(--text-muted)!important;
  text-transform:uppercase!important;letter-spacing:0.5px!important;
  margin:0!important;display:block!important;line-height:1.4!important;
}
table.variations select,.variations_form .variations select{
  width:100%!important;height:48px!important;
  background:var(--bg-card)!important;
  border:1px solid var(--border)!important;border-radius:10px!important;
  color:var(--text-primary)!important;font-size:14px!important;
  font-family:'Poppins',sans-serif!important;
  padding:0 40px 0 14px!important;cursor:pointer!important;
  outline:none!important;margin:0!important;
  -webkit-appearance:none!important;appearance:none!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='1.5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important;
  transition:border-color var(--transition)!important;
}
table.variations select:focus,.variations_form .variations select:focus{
  border-color:var(--accent)!important;box-shadow:0 0 0 2px rgba(99,102,241,.2)!important;
}
table.variations select option,.variations_form .variations select option{
  background:var(--bg-elevated)!important;color:var(--text-primary)!important;
}
.reset_variations{
  font-size:12px!important;color:var(--text-muted)!important;
  display:inline-block!important;margin-top:6px!important;text-decoration:none!important;
}
.reset_variations:hover{color:var(--accent)!important}
.woocommerce-variation.single_variation{margin:8px 0 12px!important}
.woocommerce-variation-price .woocommerce-Price-amount{
  font-size:28px!important;font-weight:800!important;color:var(--accent)!important;
}
.woocommerce-variation-availability p{font-size:13px!important;font-weight:600!important;margin:0!important}

/* ══════════════════════════════════════════════════════════
   PURCHASE BAR — quantity stepper + Add to Cart + Buy Now
   Premium e-commerce row: stepper LEFT, CTA fills the rest.
══════════════════════════════════════════════════════════ */
/* SIMPLE product: qty + Add to Cart in one centered row (no vertical stretch) */
form.cart:not(.variations_form){
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  margin:0 0 14px;
}
form.cart:not(.variations_form) > .quantity{margin:0!important;flex:0 0 auto}
form.cart:not(.variations_form) .single_add_to_cart_button{flex:1 1 200px;margin:0!important}

/* VARIABLE product: let WC's structure stack naturally; only the inner
   add-to-cart row is flexed. align-items:center stops the button from
   stretching to match the empty variation price box (the giant empty box). */
form.variations_form.cart{display:block!important;margin:0 0 14px}
form.variations_form .woocommerce-variation-add-to-cart{
  display:flex!important;flex-wrap:wrap;align-items:center!important;gap:10px;
  margin-top:14px;
}
form.variations_form .woocommerce-variation-add-to-cart > .quantity{flex:0 0 auto;margin:0!important}
form.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button{
  flex:1 1 200px;margin:0!important;
}
/* HARD cap the add-to-cart button height — Nasa/Woodmart + flex-stretch were
   inflating it into a giant empty box. */
form.cart .single_add_to_cart_button,
.single_add_to_cart_button.button.alt{
  height:54px!important;min-height:54px!important;max-height:54px!important;
  line-height:1!important;align-self:center!important;
  padding:0 28px!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;
}
/* Kill the dead space: empty / pre-selection variation boxes + Nasa widgets */
.single_variation:empty{display:none!important}
.woocommerce-variation.single_variation{min-height:0!important;margin:0 0 4px!important}
.woocommerce-variation.single_variation:empty{display:none!important}
.single_variation_wrap{margin:0!important;min-height:0!important}
.woocommerce-variation-add-to-cart{min-height:0!important}
.woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled{opacity:1!important}
.nasa-variation-bulk-dsct,.nasa-not-in-sticky.hidden-tag,
.nasa-variation-bulk-dsct.hidden-tag{display:none!important}
/* Cart-area wrapper must never reserve extra height */
.ids-product-summary__cart-area{min-height:0!important}
.ids-product-summary__cart-area .single_variation_wrap > .woocommerce-variation{min-height:0!important}

/* Buy Now: always its own full-width row, both product types */
form.cart .ids-buy-now-btn{flex:1 1 100%;width:100%;margin:10px 0 0!important}

/* ── Quantity stepper — pill-shaped, integrated, premium ── */
.quantity{
  display:inline-flex;align-items:center;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:4px;height:56px;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.quantity:hover,.quantity:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(99,102,241,0.12);
}
.quantity .qty,
.quantity input[type=number]{
  width:48px;height:100%;text-align:center;
  background:transparent;
  border:none!important;outline:none;
  color:var(--text-primary);
  font-size:17px;font-weight:700;font-family:inherit;
  padding:0;border-radius:0;
  -moz-appearance:textfield;appearance:textfield;
}
.quantity .qty::-webkit-inner-spin-button,
.quantity .qty::-webkit-outer-spin-button,
.quantity input[type=number]::-webkit-inner-spin-button,
.quantity input[type=number]::-webkit-outer-spin-button{
  -webkit-appearance:none;margin:0;
}
.quantity input[type=number]:focus{box-shadow:none}

/* Stepper buttons (- / +) — covers both .quantity-btn and JS-built .ids-qty-btn */
.quantity-btn,
.quantity .ids-qty-btn,
.ids-qty-stepper .ids-qty-btn{
  width:40px;height:100%;
  background:var(--bg-elevated);
  border:none;
  color:var(--text-primary);
  font-size:20px;font-weight:600;line-height:1;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;
  transition:background var(--transition),color var(--transition),transform .15s ease;
}
.quantity-btn:hover,
.quantity .ids-qty-btn:hover,
.ids-qty-stepper .ids-qty-btn:hover{
  background:var(--accent);color:#fff;
}
.quantity-btn:active,
.quantity .ids-qty-btn:active,
.ids-qty-stepper .ids-qty-btn:active{transform:scale(0.94)}

/* ── Add to Cart button — premium gradient CTA ── */
.single_add_to_cart_button,
.woocommerce-buy-now-btn{
  height:56px;padding:0 28px;
  font-size:15px;font-weight:700;letter-spacing:0.3px;
  text-transform:uppercase;
  background:var(--gradient);color:#fff;
  border:none;border-radius:14px;
  cursor:pointer;font-family:'Poppins',sans-serif;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:
    0 8px 24px -8px var(--accent-glow),
    0 0 0 0 rgba(99,102,241,0);
  transition:transform .2s ease,box-shadow .25s ease,filter .2s ease;
  white-space:nowrap;position:relative;overflow:hidden;
}
.single_add_to_cart_button::before,
.woocommerce-buy-now-btn::before{
  content:'🛒';font-size:18px;line-height:1;
}
.single_add_to_cart_button:hover,
.woocommerce-buy-now-btn:hover{
  transform:translateY(-2px);
  filter:brightness(1.08);
  box-shadow:
    0 14px 38px -10px var(--accent-glow),
    0 0 0 1px rgba(255,255,255,0.08) inset;
}
.single_add_to_cart_button:active,
.woocommerce-buy-now-btn:active{transform:translateY(0);transition:transform .05s}
.single_add_to_cart_button:disabled{
  opacity:0.55;cursor:not-allowed;transform:none;filter:grayscale(0.3);
  box-shadow:none;
}
.single_add_to_cart_button.loading{pointer-events:none;opacity:0.7}
.single_add_to_cart_button.loading::after{
  content:'';width:16px;height:16px;
  border:2px solid rgba(255,255,255,0.3);
  border-top-color:#fff;border-radius:50%;
  animation:ids-spin .7s linear infinite;
}
@keyframes ids-spin{to{transform:rotate(360deg)}}

/* Buy Now — secondary outlined variant of the same height/shape */
.ids-buy-now-btn{
  height:56px;padding:0 28px;
  font-size:14.5px;font-weight:700;letter-spacing:0.4px;text-transform:uppercase;
  color:var(--text-primary);
  background:transparent;
  border:1.5px solid var(--border-hover);
  border-radius:14px;
  cursor:pointer;font-family:'Poppins',sans-serif;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  transition:border-color .2s ease,color .2s ease,background .2s ease,transform .2s ease;
}
.ids-buy-now-btn{text-decoration:none}
.ids-buy-now-btn:hover{
  border-color:var(--accent);
  color:var(--accent);
  background:rgba(99,102,241,0.06);
  transform:translateY(-1px);
}
.ids-buy-now-btn.is-busy{
  pointer-events:none;opacity:0.75;
  border-color:var(--accent);color:var(--accent);
}
/* PHP already prints the ⚡ glyph — no ::before duplicate */

@media(max-width:520px){
  form.cart{gap:8px}
  form.cart > .quantity{flex:0 0 100%}
  form.cart .single_add_to_cart_button,
  form.cart .ids-buy-now-btn{flex:1 1 100%}
  .quantity{width:auto;justify-content:flex-start}
  .single_add_to_cart_button,.woocommerce-buy-now-btn,.ids-buy-now-btn{
    height:54px;font-size:14px;
  }
}

.ids-product-summary__actions{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}

/* Product meta */
.product_meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-muted)}
.product_meta span{display:flex;gap:8px}
.product_meta a{color:var(--accent)}

/* Tabs */
.woocommerce-tabs{margin-top:48px}
.wc-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:32px;flex-wrap:wrap}
.wc-tabs li{margin:0}
.wc-tabs a{
  display:block;padding:12px 24px;font-size:14px;font-weight:600;
  color:var(--text-muted);border-bottom:2px solid transparent;
  transition:color var(--transition),border-color var(--transition);
}
.wc-tabs .active a,.wc-tabs a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.woocommerce-Tabs-panel{display:none;animation:fade-up 0.3s ease}
.woocommerce-Tabs-panel--active{display:block}
.woocommerce-product-details__short-description,.woocommerce-Tabs-panel p{
  color:var(--text-secondary);line-height:1.8;font-size:15px;margin-bottom:16px;
}
.woocommerce-Tabs-panel h2{font-size:20px;margin-bottom:20px}

/* Reviews */
.woocommerce-Reviews{}
.comment-form{margin-top:32px}
.comment-form-rating{margin-bottom:16px}
.stars a{color:var(--yellow);font-size:20px}
.comment-form-comment label,.comment-form-author label,.comment-form-email label{
  display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-secondary);
}
.comment-form input,.comment-form textarea{
  width:100%;background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-primary);
  font-size:14px;outline:none;transition:border-color var(--transition);
}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--accent)}
.comment-form textarea{min-height:120px;resize:vertical}
.form-submit .submit{
  background:var(--gradient);color:#fff;border:none;
  border-radius:var(--radius-sm);padding:10px 24px;
  font-size:14px;font-weight:600;cursor:pointer;
  transition:opacity var(--transition);
}
.form-submit .submit:hover{opacity:0.9}

/* Related / Upsells */
.related.products,.upsells.products,.cross-sells{margin-top:64px}
.ids-related-section{margin-top:60px!important}
.ids-related-title{font-size:22px;font-weight:700;margin-bottom:24px}
.related.products h2,.upsells.products h2,.cross-sells h2{
  font-size:24px;margin-bottom:28px;
}

/* ── Cart — modern card layout ── */
.ids-cart-page{}
.woocommerce-cart-form{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;
}
.shop_table{width:100%;border-collapse:collapse}
.shop_table th{
  text-align:left;padding:16px 18px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.6px;color:var(--text-muted);
  border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02);
}
.shop_table td{
  padding:18px;border-bottom:1px solid var(--border);
  vertical-align:middle;font-size:14px;color:var(--text-secondary);
}
.woocommerce-cart-form .shop_table tr:last-child td{border-bottom:none}
.shop_table .product-thumbnail img{
  width:56px;height:56px;border-radius:10px;object-fit:cover;
  border:1px solid var(--border);background:var(--bg-elevated);
}
.shop_table .product-name a{color:var(--text-primary);font-weight:600;text-decoration:none}
.shop_table .product-name a:hover{color:var(--accent)}
.shop_table .variation,.shop_table .product-name .variation{
  font-size:12px;color:var(--text-muted);margin-top:4px;
}
.shop_table .product-price .woocommerce-Price-amount,
.shop_table .product-subtotal .woocommerce-Price-amount{
  color:var(--accent);font-weight:700;
}
.shop_table .product-remove a{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  color:var(--text-muted);font-size:16px;text-decoration:none;
  background:rgba(255,255,255,0.04);border:1px solid var(--border);
  transition:color var(--transition),border-color var(--transition),background var(--transition);
}
.shop_table .product-remove a:hover{
  color:#fff;background:var(--red,#ef4444);border-color:var(--red,#ef4444);
}
.shop_table td.actions{padding:18px;background:rgba(255,255,255,0.02)}
.cart-collaterals{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}
.cart_totals,.cross-sells{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:28px;
}
.cart_totals h2,.cross-sells h2{font-size:18px;font-weight:700;margin-bottom:20px}
.cart_totals table{width:100%}
.cart_totals th,.cart_totals td{padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}
.cart_totals tr:last-child th,.cart_totals tr:last-child td{border-bottom:none}
.cart_totals .order-total th,.cart_totals .order-total td{padding-top:16px}
.cart_totals .order-total .woocommerce-Price-amount{color:var(--accent);font-size:22px;font-weight:800}
.cart_totals .wc-proceed-to-checkout{margin-top:22px}
.checkout-button{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:15px;text-align:center;
  background:var(--gradient);color:#fff;font-size:16px;font-weight:700;
  border-radius:12px;border:none;cursor:pointer;
  font-family:'Poppins',sans-serif;
  box-shadow:0 8px 24px -8px var(--accent-glow);
  transition:transform .2s ease,box-shadow .25s ease,filter .2s ease;
}
.checkout-button:hover{transform:translateY(-2px);filter:brightness(1.08);color:#fff;box-shadow:0 14px 36px -10px var(--accent-glow)}
.checkout-button::after{content:'→';font-size:18px}

/* Coupon row — fixed cut-off input */
.coupon{display:flex;gap:10px;align-items:stretch;flex-wrap:nowrap;width:100%;max-width:420px}
.coupon input,
.coupon input#coupon_code,
.coupon .input-text{
  flex:1 1 auto;min-width:0;
  background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:10px;padding:11px 16px;color:var(--text-primary);
  font-size:14px;outline:none;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.coupon input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(99,102,241,0.14)}
.coupon button,.button[name=apply_coupon]{
  flex:0 0 auto;white-space:nowrap;
  background:var(--bg-elevated);border:1px solid var(--border-hover);color:var(--text-primary);
  border-radius:10px;padding:11px 20px;font-size:14px;font-weight:600;cursor:pointer;
  transition:all var(--transition);
}
.coupon button:hover,.button[name=apply_coupon]:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:520px){
  .coupon{max-width:none;flex-wrap:wrap}
  .coupon input{flex:1 1 100%}
  .coupon button{flex:1 1 100%}
}
.update_cart{
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  border-radius:var(--radius-sm);padding:10px 18px;font-size:13px;cursor:pointer;
  transition:all var(--transition);
}
.update_cart:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}

/* ── Checkout ── */
.ids-checkout-grid{display:grid;grid-template-columns:1fr 420px;gap:40px;align-items:start}
.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3{
  font-size:18px;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--border);
}
.form-row{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.form-row label{font-size:13px;font-weight:600;color:var(--text-secondary)}
.form-row .required{color:var(--red)}
.form-row input,.form-row select,.form-row textarea{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);
  font-size:14px;outline:none;width:100%;
  transition:border-color var(--transition);
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--accent)}
.form-row select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}

#order_review{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:28px;
}
/* Sticky only on viewports tall/wide enough that it won't fight the sticky header or mobile keyboard */
@media (min-width:901px){
  #order_review{position:sticky;top:80px;}
}
#order_review h3{font-size:18px;margin-bottom:20px}
.shop_table.woocommerce-checkout-review-order-table{}
.shop_table.woocommerce-checkout-review-order-table .cart-subtotal td,
.shop_table.woocommerce-checkout-review-order-table .order-total td{
  text-align:right;
}
.shop_table.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount{
  color:var(--accent);font-size:18px;font-weight:800;
}

/* ══════════════════════════════════════════════════════════
   PAYMENT METHODS — universal compact single-row cards
   Works on the standard WC #payment wrapper AND on the custom
   page-shopping-cart.php template (page-id-262) which uses
   .wc_payment_methods / .wc_payment_method directly with its
   own embedded styles. Selectors are scoped to those classes
   so we override the inline page-template CSS by specificity.
   ══════════════════════════════════════════════════════════ */
ul.wc_payment_methods,.payment_methods.methods,
form.checkout .wc_payment_methods{
  list-style:none!important;display:flex!important;flex-direction:column!important;
  gap:8px!important;padding:0!important;margin:0 0 16px!important;
}
li.wc_payment_method,
.wc_payment_methods .wc_payment_method{
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:10px!important;
  display:flex!important;align-items:center!important;flex-wrap:wrap!important;
  gap:12px!important;
  padding:14px 18px!important;
  margin:0!important;min-height:0!important;
  cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
li.wc_payment_method:hover{border-color:rgba(255,255,255,.18)!important}
li.wc_payment_method:has(input:checked),
.wc_payment_methods .wc_payment_method:has(input:checked){
  border-color:var(--accent,#6366f1)!important;
  background:rgba(99,102,241,.07)!important;
}
/* Custom-styled radio button */
li.wc_payment_method > input[type=radio]{
  -webkit-appearance:none!important;appearance:none!important;
  flex-shrink:0!important;
  width:18px!important;height:18px!important;min-width:18px!important;
  margin:0!important;padding:0!important;
  border:2px solid var(--border-hover,rgba(255,255,255,.22))!important;
  border-radius:50%!important;background:transparent!important;
  cursor:pointer!important;position:relative!important;float:none!important;top:auto!important;
  transition:border-color .2s ease;
}
li.wc_payment_method > input[type=radio]:checked{
  border-color:var(--accent,#6366f1)!important;
}
li.wc_payment_method > input[type=radio]:checked::after{
  content:'';position:absolute;inset:3px;border-radius:50%;
  background:var(--accent,#6366f1);
}
/* The clickable label — gateway name + icons on the SAME row */
li.wc_payment_method > label{
  display:inline-flex!important;align-items:center!important;
  flex:1 1 auto!important;gap:10px!important;
  margin:0!important;padding:0!important;
  font-size:14.5px!important;font-weight:600!important;
  color:var(--text-primary,#fff)!important;
  background:transparent!important;cursor:pointer!important;
  min-height:0!important;line-height:1.2!important;
}
li.wc_payment_method > label img{
  max-height:22px!important;height:22px!important;width:auto!important;
  margin:0 0 0 auto!important;display:inline-block!important;border-radius:4px;
}
li.wc_payment_method > label img + img{margin-left:6px!important}
/* Gateway description box — full-width row beneath the label, only if open */
li.wc_payment_method .payment_box{
  flex-basis:100%!important;width:100%!important;
  margin:6px 0 0 30px!important;padding:0!important;
  background:transparent!important;border:none!important;
  color:var(--text-muted,#94a0b8)!important;
  font-size:13px!important;line-height:1.6!important;
}
li.wc_payment_method .payment_box::before{display:none!important}
li.wc_payment_method .payment_box p{margin:0!important}

/* ── Old #payment scoping kept for the standard WC checkout template ── */
#payment{margin-top:20px}
#payment .payment_methods{
  list-style:none!important;display:flex!important;flex-direction:column!important;
  gap:8px!important;margin:0 0 16px!important;padding:0!important;
}
#payment .payment_methods li{
  background:var(--bg-elevated)!important;
  border:1px solid var(--border)!important;
  border-radius:10px!important;
  padding:0!important;margin:0!important;
  cursor:pointer;transition:border-color .2s ease,background .2s ease;
  overflow:hidden;
}
#payment .payment_methods li:hover{border-color:var(--border-hover)!important}
#payment .payment_methods li:has(input:checked),
#payment .payment_methods li.wc_payment_method:has(input:checked){
  border-color:var(--accent)!important;
  background:rgba(99,102,241,0.06)!important;
}
/* The clickable row: radio + label + gateway icons, all on ONE line, ~52px tall */
#payment .payment_methods li > label{
  display:flex!important;align-items:center!important;gap:12px!important;
  cursor:pointer!important;font-weight:600!important;font-size:14.5px!important;
  color:var(--text-primary)!important;
  margin:0!important;padding:14px 16px!important;
  line-height:1.2!important;
}
/* WooCommerce radio input — compact custom dot */
#payment .payment_methods li input[type=radio]{
  -webkit-appearance:none;appearance:none;
  width:18px!important;height:18px!important;min-width:18px!important;
  margin:0!important;padding:0!important;
  border:2px solid var(--border-hover)!important;border-radius:50%!important;
  background:transparent!important;cursor:pointer;flex-shrink:0;
  position:relative;transition:border-color .2s ease;
  float:none!important;
}
#payment .payment_methods li input[type=radio]:checked{
  border-color:var(--accent)!important;
}
#payment .payment_methods li input[type=radio]:checked::after{
  content:'';position:absolute;inset:3px;border-radius:50%;
  background:var(--accent);
}
/* Gateway icon images inline at end of the row */
#payment .payment_methods li label img{
  height:22px!important;width:auto!important;
  margin:0 0 0 auto!important;display:inline-block!important;
  vertical-align:middle;border-radius:4px;
}
#payment .payment_methods li label img + img{margin-left:6px!important}
/* Expandable gateway description box */
#payment .payment_box{
  padding:0 16px 14px 46px!important;margin:0!important;
  color:var(--text-muted)!important;font-size:13px!important;line-height:1.6!important;
  background:transparent!important;border:none!important;
}
#payment .payment_box::before{display:none!important}
#payment .payment_box p{margin:0!important}

#place_order{
  width:100%;padding:15px;font-size:16px;font-weight:700;
  background:var(--gradient);color:#fff;border:none;
  border-radius:12px;cursor:pointer;font-family:'Poppins',sans-serif;
  transition:transform .2s ease,box-shadow .25s ease,filter .2s ease;
  box-shadow:0 8px 24px -8px var(--accent-glow);
}
#place_order:hover{transform:translateY(-2px);filter:brightness(1.07);box-shadow:0 14px 36px -10px var(--accent-glow)}
#place_order:active{transform:translateY(0)}

/* ── My Account ── */
.ids-account{display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:start}
.ids-account__nav{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;position:sticky;top:80px;
}
.woocommerce-MyAccount-navigation ul{list-style:none}
.woocommerce-MyAccount-navigation li a{
  display:flex;align-items:center;gap:10px;
  padding:14px 20px;font-size:14px;font-weight:500;
  color:var(--text-secondary);border-bottom:1px solid var(--border);
  transition:color var(--transition),background var(--transition);
}
.woocommerce-MyAccount-navigation li:last-child a{border-bottom:none}
.woocommerce-MyAccount-navigation li a:hover{color:var(--text-primary);background:rgba(255,255,255,0.04)}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--accent);background:rgba(99,102,241,0.08)}
.woocommerce-MyAccount-content{min-width:0}
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3{margin-bottom:20px}

/* Account tables */
.woocommerce-orders-table,.woocommerce-table{width:100%;border-collapse:collapse}
.woocommerce-orders-table th,.woocommerce-table th{
  text-align:left;padding:12px 16px;font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);
  border-bottom:1px solid var(--border);background:var(--bg-elevated);
}
.woocommerce-orders-table td,.woocommerce-table td{
  padding:14px 16px;border-bottom:1px solid var(--border);
  font-size:14px;color:var(--text-secondary);vertical-align:middle;
}
.woocommerce-orders-table tr:last-child td,.woocommerce-table tr:last-child td{border-bottom:none}
.woocommerce-orders-table__row:hover td,.woocommerce-table tr:hover td{background:rgba(255,255,255,0.02)}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status .wc-processing{
  background:rgba(34,197,94,0.1);color:var(--green);
  padding:3px 10px;border-radius:50px;font-size:12px;font-weight:600;
  border:1px solid rgba(34,197,94,0.3);
}
.woocommerce-orders-table a{color:var(--accent);transition:opacity var(--transition)}
.woocommerce-orders-table a:hover{opacity:0.8}

/* Account forms */
.woocommerce-EditAccountForm fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px;margin-bottom:20px}
.woocommerce-EditAccountForm legend{font-size:14px;font-weight:700;padding:0 10px;color:var(--text-primary)}

/* ── Mini Cart ── */
.widget_shopping_cart_content .total{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 0;border-top:1px solid var(--border);margin-top:12px;
  font-weight:700;
}
.widget_shopping_cart_content .total .woocommerce-Price-amount{color:var(--accent)}
.widget_shopping_cart_content .buttons{display:flex;gap:8px;margin-top:12px}
.widget_shopping_cart_content .button{
  flex:1;text-align:center;padding:10px;font-size:13px;font-weight:600;
  border-radius:var(--radius-sm);transition:all var(--transition);
}
.widget_shopping_cart_content .checkout{background:var(--gradient);color:#fff}
.widget_shopping_cart_content .cart{
  background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);
}
.widget_shopping_cart_content .cart:hover{border-color:var(--accent);color:var(--accent)}

/* ── Stock Status ── */
.in-stock{color:var(--green);font-size:13px;font-weight:600}
.out-of-stock{color:var(--red);font-size:13px;font-weight:600}

/* ── Sale Flash ── */
.woocommerce-badge-onsale,.onsale{
  background:var(--red);color:#fff;
  font-size:11px;font-weight:700;padding:3px 8px;
  border-radius:4px;text-transform:uppercase;
}

/* ── Responsive ── */
@media(max-width:900px){
  .ids-single-product{grid-template-columns:1fr;gap:32px}
  .ids-product-gallery{position:static}
  .cart-collaterals{grid-template-columns:1fr}
  .ids-checkout-grid{grid-template-columns:1fr}
  #order_review{position:static}
  .ids-account{grid-template-columns:1fr}
  .ids-account__nav{position:static}
}
@media(max-width:700px){
  /* Checkout */
  .ids-checkout-grid{gap:24px}
  #order_review{padding:20px}
  .woocommerce-billing-fields h3{font-size:16px;margin-bottom:16px;padding-bottom:10px}
  .form-row input,.form-row select{font-size:16px} /* prevent iOS zoom */
  #place_order{padding:14px;font-size:16px}

  /* Single product */
  .ids-product-summary__title{font-size:clamp(18px,5vw,26px)}
  .ids-product-summary__price .woocommerce-Price-amount{font-size:24px}
  .cart{gap:8px}
  .cart .single_add_to_cart_button,.cart .ids-buy-now-btn{
    flex-basis:100%;min-width:0;
  }
  .ids-product-gallery__thumbs{gap:6px}
  .ids-product-gallery__thumb{width:56px;height:56px}
}
@media(max-width:600px){
  .shop_table{font-size:13px}
  .shop_table th,.shop_table td{padding:10px 8px}
  .woocommerce-orders-table th:nth-child(n+4),.woocommerce-orders-table td:nth-child(n+4){display:none}
  /* Cart table - hide less important columns */
  .shop_table th.product-price,.shop_table td.product-price{display:none}
}
@media(max-width:480px){
  .ids-product-summary__price .woocommerce-Price-amount{font-size:22px}
  .quantity .qty{width:56px;font-size:15px}
  .quantity-btn{width:36px}
  .wc-tabs a{padding:10px 14px;font-size:13px}
}
