:root{ --wc-gap:24px; }

/* Shop wrapper */
.woo-wrap{ padding-top:34px; padding-bottom:60px; }
.woocommerce-products-header__title, .woocommerce .page-title, h1.entry-title{
  font-family:var(--font-display); font-size:clamp(26px,4vw,40px); margin:0 0 8px;
}
.woocommerce-result-count{ color:var(--muted); font-size:13px; }
.woocommerce-ordering select{ border:1px solid var(--line); border-radius:999px; padding:8px 14px; font-family:var(--font-body); }

/* Product grid -> cards */
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--wc-gap); list-style:none; margin:0; padding:0; }
@media(max-width:1000px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); gap:14px; } }
.woocommerce ul.products li.product{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; margin:0; padding:0 0 14px; text-align:left; position:relative;
  transition:box-shadow .25s, transform .25s;
}
.woocommerce ul.products li.product:hover{ box-shadow:0 12px 34px rgba(56,28,46,.12); transform:translateY(-4px); }
.woocommerce ul.products li.product a img{ margin:0 0 12px; border-radius:0; width:100%; aspect-ratio:1/1; object-fit:cover; }
.woocommerce ul.products li.product .loop-brand{ display:block; padding:0 14px; font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:var(--accent); font-weight:600; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--font-body); font-size:14px; font-weight:500; color:var(--ink); padding:4px 14px 0; line-height:1.4; }
.woocommerce ul.products li.product .price{ display:block; padding:6px 14px 0; color:var(--ink); font-weight:600; font-family:var(--font-body); }
.woocommerce ul.products li.product .price del{ color:var(--muted); font-weight:400; opacity:.7; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }
.woocommerce ul.products li.product .button{ margin:12px 14px 0; }
.woocommerce span.onsale{ background:var(--champagne); color:var(--ink); border-radius:999px; font-weight:600; min-height:auto; padding:4px 10px; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt{
  background:var(--accent); color:#fff; border-radius:999px; padding:12px 22px;
  font-family:var(--font-body); font-weight:600; font-size:14px; border:none; transition:background .2s, transform .15s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover{
  background:var(--accent-dark); transform:translateY(-1px);
}
.woocommerce .button.btn-outline, .btn-outline{ background:transparent; color:var(--accent); border:1.5px solid var(--accent); }

/* Single product */
.woocommerce div.product{ padding:34px 0 60px; }
.woocommerce div.product .product_title{ font-family:var(--font-display); font-size:clamp(24px,3.4vw,36px); color:var(--ink); }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--ink); font-weight:700; font-size:24px; }
.woocommerce div.product p.price del{ color:var(--muted); font-weight:400; }
.woocommerce .woocommerce-tabs ul.tabs li.active{ border-bottom-color:transparent; }
.woocommerce .woocommerce-tabs ul.tabs li a{ color:var(--ink); }
.woocommerce div.product .woocommerce-product-gallery img{ border-radius:var(--radius); }
.woocommerce .quantity .qty{ border:1px solid var(--line); border-radius:8px; padding:8px; }

/* Cart & checkout */
.woocommerce table.shop_table{ border-radius:var(--radius); border-color:var(--line); }
.woocommerce-cart table.cart img{ width:70px; border-radius:8px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review{ border:1px solid var(--line); border-radius:var(--radius); padding:16px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-checkout select, .select2-container .select2-selection{ border:1px solid var(--line)!important; border-radius:10px!important; padding:10px 12px; font-family:var(--font-body); }
.woocommerce #payment, .woocommerce-checkout #payment{ background:var(--soft); border-radius:var(--radius); }

/* Messages */
.woocommerce-message, .woocommerce-info, .woocommerce-error{ border-top-color:var(--accent); }
.woocommerce-message::before, .woocommerce-info::before{ color:var(--accent); }

/* Breadcrumb */
.woocommerce-breadcrumb{ color:var(--muted); font-size:13px; margin-bottom:18px; }
.woocommerce-breadcrumb a{ color:var(--accent); }

/* Reveal */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ============================================================
   Luna Blue — exact EXIO card grid (overrides earlier loop rules)
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:26px !important;
  margin:0 0 34px !important;
  padding:0 !important;
  list-style:none !important;
}
@media (min-width:1500px){ .woocommerce ul.products, ul.products { grid-template-columns:repeat(5,1fr) !important; } }
@media (max-width:1024px){ .woocommerce ul.products, ul.products { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:560px){ .woocommerce ul.products, ul.products { grid-template-columns:1fr !important; } }

.woocommerce ul.products li.product,
ul.products li.product {
  width:auto !important; margin:0 !important; float:none !important;
  padding:0 !important; border:none !important; background:transparent !important;
  box-shadow:none !important; border-radius:0 !important; text-align:left !important; min-width:0;
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after { display:none !important; content:none !important; }

/* the inner card handles all the look via site.css */
.card-media, .card-body { text-decoration:none !important; color:inherit; }

/* hide WooCommerce's default sale flash — EXIO shows sale via struck price */
.woocommerce span.onsale { display:none !important; }

/* shop toolbar: result count + ordering */
.woocommerce .woocommerce-result-count { float:none; display:inline-block; color:var(--muted); font-size:13px; margin:0 0 18px; }
.woocommerce .woocommerce-ordering { float:right; margin:0 0 18px; }
.woocommerce .woocommerce-ordering select { border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-family:var(--font-body); background:#fff; }
.woocommerce-products-header__title, .woocommerce .page-title { margin-bottom:6px; }

/* Uniform card sizing: clamp name to 2 lines so every card is the same height */
.card-name{ min-height:2.6em; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-img{ aspect-ratio:1/1; }
.pd-img{ aspect-ratio:1/1; overflow:hidden; }
.pd-img img{ width:100%; height:100%; object-fit:cover; }
.pd-img video{ width:100%; height:100%; object-fit:cover; display:block; } .pd-thumb video{ width:100%; height:100%; object-fit:cover; }
.pd-thumb-video{ position:relative; }
.pd-thumb-video .pd-play{ position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:16px; background:rgba(56,28,46,.35); }
.pd-img video{ width:100%; height:100%; object-fit:cover; display:block; background:var(--soft); }

/* Quantity stepper — outlined pill, white fill (remove black shade) */
.qty, .pd-actions .qty{ background:#fff !important; border:1px solid var(--line) !important; border-radius:999px !important; overflow:hidden; }
.qty button, .qty [data-inc], .qty [data-dec]{ background:#fff !important; color:var(--ink) !important; border:none !important; box-shadow:none !important; }
.qty input, .qty .qty-input{ background:#fff !important; color:var(--ink) !important; border:none !important; box-shadow:none !important; -webkit-appearance:none; appearance:none; }
.qty button:hover{ color:var(--accent) !important; background:var(--soft) !important; }

/* WooCommerce block cart/checkout buttons -> brand plum pill */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout-actions-block button,
.wc-block-components-button.contained,
.wc-block-components-button:not(.is-link){
  background:var(--accent) !important; color:#fff !important;
  border-radius:999px !important; border:none !important;
  font-family:var(--font-body) !important; font-weight:600 !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-button:not(.is-link):hover{ background:var(--accent-dark) !important; }
.wc-block-components-button.is-link{ color:var(--accent) !important; }

/* Readable column width for standalone pages (legal, etc.) */
.page-content{ max-width:860px; margin-left:auto; margin-right:auto; }
.lb-legal{ max-width:100%; }

/* You may also like — always exactly 4 cards in a row */
.related-grid{ grid-template-columns:repeat(4,1fr) !important; }
@media (max-width:900px){ .related-grid{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:560px){ .related-grid{ grid-template-columns:1fr !important; } }

/* ============================================================
   Header: hamburger desktop-hidden, tablet/mobile only (≤1024px)
   ============================================================ */
@media (min-width:1025px){
  .nav-toggle{ display:none !important; }
  .site-header .nav{ display:flex !important; position:static !important; flex-direction:row !important;
    background:transparent !important; box-shadow:none !important; padding:0 !important; }
}
@media (max-width:1024px){
  .nav-toggle{ display:inline-grid !important; }
  .site-header .nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:2px; background:#fff; border-top:1px solid var(--line);
    box-shadow:0 12px 24px rgba(0,0,0,.08); padding:8px 0; z-index:60;
  }
  .site-header .nav.open{ display:flex; }
  .site-header .nav a{ padding:13px clamp(16px,4vw,56px); font-size:15px; }
}

/* ============================================================
   Account / Login — EXIO-style card
   ============================================================ */
.woocommerce-account .lb-auth,
.lb-auth{ max-width:420px; margin:8px auto 40px; }
.lb-auth .auth-tabs{ display:flex; border:1px solid var(--line); border-radius:999px; padding:4px; margin-bottom:24px; }
.lb-auth .auth-tab{ flex:1; text-align:center; padding:10px; border-radius:999px; cursor:pointer;
  font-weight:600; font-size:14px; color:var(--muted); border:none; background:transparent; font-family:inherit; }
.lb-auth .auth-tab.active{ background:var(--accent); color:#fff; }
.lb-auth .form-card{ padding:26px; }
.lb-auth .auth-title{ margin:0 0 16px; font-size:18px; font-family:var(--font-display); }
.lb-auth .field{ margin:0 0 14px; }
.lb-auth .field label{ display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:var(--ink); }
.lb-auth .field input,
.lb-auth .input-text{ width:100%; padding:12px 14px; font-size:15px; font-family:inherit;
  border:1px solid var(--line); border-radius:12px; box-sizing:border-box; background:#fff; }
.lb-auth .field input:focus{ outline:2px solid var(--accent); border-color:transparent; }
.lb-auth .field-inline{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin:0 0 16px; font-size:13px; }
.lb-auth .field-inline label{ display:flex; align-items:center; gap:7px; color:var(--muted); margin:0; }
.lb-auth .field-inline input{ width:auto; }
.lb-auth .lost-link{ color:var(--accent-dark); text-decoration:none; }
.lb-auth .auth-social{ display:flex; gap:10px; margin-top:14px; }
.lb-auth .auth-social .btn{ flex:1; opacity:.85; }
.lb-auth .auth-social .btn[disabled]{ cursor:not-allowed; }
/* hide default WooCommerce login page headings/columns styling that clashes */
.woocommerce-account .u-columns,
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2{ width:auto; float:none; }

/* ============================================================
   Custom Checkout (EXIO style) — map WooCommerce output
   ============================================================ */
.checkout-page{ padding-top:24px; }
.woocommerce-checkout .checkout-layout{ display:grid; grid-template-columns:1fr 380px; gap:32px; align-items:start; }
.woocommerce-checkout .checkout-main{ display:flex; flex-direction:column; gap:18px; }
.woocommerce-checkout .form-card.step{ padding:26px; }

/* Billing fields -> EXIO field look */
#customer_details .woocommerce-billing-fields__field-wrapper{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
#customer_details .form-row{ margin:0; padding:0; display:flex; flex-direction:column; }
#customer_details .form-row-wide{ grid-column:1 / -1; }
#customer_details .form-row label{ font-size:13px; font-weight:600; margin-bottom:6px; color:var(--ink); }
#customer_details .form-row label .required{ color:var(--accent); border:0; text-decoration:none; }
#customer_details .form-row .woocommerce-input-wrapper{ display:block; }
#customer_details .input-text,
#customer_details select,
#customer_details .select2-container .select2-selection--single{
  width:100%; box-sizing:border-box; padding:12px 14px; font-size:15px; font-family:inherit;
  border:1px solid var(--line); border-radius:12px; background:#fff; height:auto; color:var(--ink);
}
#customer_details .input-text:focus, #customer_details select:focus{ outline:2px solid var(--accent); border-color:transparent; }
#customer_details .select2-container--default .select2-selection--single{ display:flex; align-items:center; height:47px; }
#customer_details .select2-container--default .select2-selection--single .select2-selection__rendered{ padding:0; line-height:normal; color:var(--ink); }
#customer_details .select2-container--default .select2-selection--single .select2-selection__arrow{ height:45px; }
#customer_details .select2-container{ width:100% !important; }

/* Payment methods -> EXIO cards */
#payment .wc_payment_methods{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
#payment ul.wc_payment_methods li{ list-style:none; border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:#fff; transition:border-color .2s, box-shadow .2s; }
#payment ul.wc_payment_methods li:hover{ border-color:var(--accent); }
#payment ul.wc_payment_methods li input[type=radio]{ width:18px; height:18px; accent-color:var(--accent); vertical-align:middle; }
#payment ul.wc_payment_methods li label{ display:inline-flex; align-items:center; gap:10px; font-weight:700; font-size:15px; color:var(--ink); margin:0; cursor:pointer; }
#payment ul.wc_payment_methods li label img{ max-height:24px; width:auto; margin:0 0 0 2px; }
#payment ul.wc_payment_methods li.wc-selected-payment-method,
#payment ul.wc_payment_methods li:has(input:checked){ border-color:var(--accent); background:var(--soft); box-shadow:inset 0 0 0 1px var(--accent); }
#payment .payment_box{ background:transparent; margin:12px 0 0; padding:12px 0 0; border-top:1px dashed var(--line); font-size:13px; color:var(--muted); }
#payment .payment_box::before{ display:none; }
#payment .woocommerce-terms-and-conditions-wrapper{ margin:14px 0; font-size:12px; color:var(--muted); }
#payment .form-row.place-order{ padding:0; margin:14px 0 0; }
#place_order{
  width:100%; display:block; text-align:center; cursor:pointer;
  background:var(--accent); color:#fff; border:none; border-radius:999px;
  padding:15px 20px; font-size:16px; font-weight:700; font-family:inherit; transition:background .2s, transform .1s;
}
#place_order:hover{ background:var(--accent-dark); }
#place_order:active{ transform:scale(.99); }

/* Order summary column */
.checkout-summary h3{ display:flex; justify-content:space-between; align-items:baseline; }
.checkout-summary .sum-count{ font-size:13px; color:var(--muted); font-weight:500; }
.checkout-summary .promo{ margin:16px 0 6px; }
.checkout-summary .promo .btn{ padding:11px 18px; white-space:nowrap; }

/* Review order table -> summary rows */
.woocommerce-checkout-review-order-table{ width:100%; border:0; border-collapse:collapse; margin:6px 0 4px; font-size:14px; }
.woocommerce-checkout-review-order-table thead{ display:none; }
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th{ border:0; padding:8px 0; }
.woocommerce-checkout-review-order-table tbody .cart_item td{ vertical-align:top; border-bottom:1px solid var(--line); padding-bottom:12px; }
.woocommerce-checkout-review-order-table .product-name{ color:var(--ink); display:flex; align-items:center; gap:12px; font-weight:500; }
.woocommerce-checkout-review-order-table .product-name .lb-sum-thumb img{ width:54px; height:54px; object-fit:cover; border-radius:10px; display:block; }
.woocommerce-checkout-review-order-table .product-name .product-quantity{ color:var(--muted); font-weight:600; }
.woocommerce-checkout-review-order-table .product-total{ text-align:right; font-weight:700; white-space:nowrap; }
.woocommerce-checkout-review-order-table tfoot th{ text-align:left; font-weight:500; color:var(--muted); }
.woocommerce-checkout-review-order-table tfoot td{ text-align:right; font-weight:600; }
.woocommerce-checkout-review-order-table tfoot .order-total th{ color:var(--ink); font-family:var(--font-display); font-size:18px; font-weight:700; padding-top:14px; }
.woocommerce-checkout-review-order-table tfoot .order-total td{ color:var(--ink); font-size:19px; font-weight:800; padding-top:14px; }
.woocommerce-checkout-review-order-table tfoot tr{ border-top:1px solid transparent; }
.woocommerce-checkout-review-order-table tfoot .order-total{ border-top:1px solid var(--line); }
.woocommerce-checkout-review-order-table .shipping ul{ list-style:none; margin:0; padding:0; text-align:right; }
.woocommerce-checkout-review-order-table .shipping ul li{ margin:0; }
.woocommerce-checkout-review-order-table .shipping label{ font-weight:600; color:var(--ink); }

.summary-pay{ margin-top:16px; font-size:16px; padding:15px 20px; }
.checkout-summary .secure-row svg{ width:15px; height:15px; }

/* hide any leftover default coupon toggle */
.woocommerce-form-coupon-toggle{ display:none; }

@media (max-width:900px){
  .woocommerce-checkout .checkout-layout{ grid-template-columns:1fr; }
  .checkout-summary{ order:-1; }
  #customer_details .woocommerce-billing-fields__field-wrapper{ grid-template-columns:1fr; }
}

/* Hide default checkout clutter (login/coupon toggles, billing heading, country) */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout form.checkout_coupon,
#customer_details .woocommerce-billing-fields > h3,
#customer_details .woocommerce-shipping-fields > h3,
#billing_country_field{ display:none !important; }

/* Secure-row lock icon size */
.checkout-summary .secure-row{ margin-top:14px; }
.checkout-summary .secure-row svg{ width:15px !important; height:15px !important; flex:none; }

/* Checkout must always be visible — never hidden by scroll-reveal */
.woocommerce-checkout .reveal,
.woocommerce-checkout .form-card,
.woocommerce-checkout .checkout-summary,
.woocommerce-checkout .checkout-main > *{ opacity:1 !important; transform:none !important; }
