/* ==========================================================================
   Preva × WooCommerce — maps the quiet-luxury skin onto native Woo blocks
   (legacy templates), so shop, PDP, cart and checkout are real WooCommerce.
   ========================================================================== */
.sn-brand .woocommerce, .sn-brand.woocommerce{ font-family:var(--sans); }

/* --- shop / archive grid --- */
.sn-shop-wrap{ padding:clamp(40px,5vw,72px) 7vw clamp(64px,9vw,110px); }
.sn-shop-wrap .woocommerce-result-count{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.sn-shop-wrap .woocommerce-ordering select{ border:1px solid var(--line); border-radius:var(--r); padding:10px 14px; font:inherit; font-size:.85rem; background:var(--paper); }
.sn-shop-wrap ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:44px 30px; list-style:none; margin:2rem 0 0; padding:0; }
/* WooCommerce's legacy clearfix ::before/::after become stray grid items (empty
   first/last cell that shifts the whole grid) when ul.products is display:grid. */
.sn-shop-wrap ul.products::before, .sn-shop-wrap ul.products::after{ content:none !important; display:none !important; }
.sn-brand .related.products ul.products::before, .sn-brand .related.products ul.products::after{ content:none !important; display:none !important; }
/* goodlifemeds-style loop cards (markup injected by the plugin); .sn-pc visuals live in brand.css */
/* Woo's default li.product width (~22%) + float collapse the card inside a grid track — reset everywhere. */
.sn-brand li.product.sn-pc{ width:auto !important; float:none !important; margin:0 !important; text-align:left; }
.sn-shop-wrap li.product{ text-align:left; }
.sn-brand .sn-pc-price{ margin:2px 0 15px; font-family:var(--sans); font-size:1.02rem; font-weight:500; color:var(--ink); }
.sn-brand .sn-pc-price del{ color:var(--muted); font-weight:300; margin-right:8px; }
.sn-brand .sn-pc-price ins{ text-decoration:none; }
.sn-shop-wrap .star-rating, .sn-shop-wrap .wc-block-components-product-rating{ display:none; }
/* the shop hero (.sn-phero) already carries the title + crumb — hide Woo's duplicates */
.sn-shop-wrap .woocommerce-breadcrumb, .sn-shop-wrap .woocommerce-products-header{ display:none !important; }
.sn-shop-wrap .woocommerce-result-count{ margin:0 0 14px !important; }
.sn-shop-wrap .woocommerce-ordering{ margin:0 0 clamp(24px,3vw,36px) !important; }
@media (max-width:760px){
  .sn-shop-wrap .woocommerce-result-count{ margin:0 0 8px !important; }
  .sn-shop-wrap .woocommerce-ordering{ display:block; width:100%; margin:2px 0 26px !important; }
  .sn-shop-wrap .woocommerce-ordering select{ width:100%; min-height:48px; }
  .sn-shop-wrap ul.products{ margin-top:4px !important; }
}

/* woo buttons → Preva */
.sn-brand a.button, .sn-brand button.button, .sn-brand .wp-block-button__link,
.sn-brand .wc-block-components-button, .sn-brand [type="submit"].button,
.sn-brand .single_add_to_cart_button{
  background:var(--ink) !important; color:var(--paper) !important; border:none !important; border-radius:100px !important;
  font-family:var(--sans) !important; font-size:.72rem !important; font-weight:600 !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  padding:15px 30px !important; transition:background .3s !important; box-shadow:none !important; line-height:1.2 !important; cursor:pointer;
}
.sn-brand a.button:hover, .sn-brand button.button:hover, .sn-brand .wp-block-button__link:hover,
.sn-brand .wc-block-components-button:hover, .sn-brand .single_add_to_cart_button:hover{ background:var(--brass) !important; color:var(--paper) !important; }
.sn-brand .added_to_cart{ display:inline-block; margin-left:12px; font-size:.72rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); border-bottom:1px solid var(--brass); }

/* --- single product (PDP) --- */
.sn-pdp-wrap{ max-width:1280px; margin:0 auto; padding:clamp(48px,6vw,80px) clamp(48px,7vw,96px) clamp(64px,9vw,110px); }
.sn-brand .woocommerce-breadcrumb{ font-family:var(--sans); font-size:.72rem !important; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) !important; margin:0 0 30px !important; }
.sn-brand .woocommerce-breadcrumb a{ color:var(--muted); } .sn-brand .woocommerce-breadcrumb a:hover{ color:var(--brass); }
.sn-brand.single-product div.product{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(44px,5vw,80px); align-items:start; border:none !important; }
.sn-brand.single-product img{ max-width:100%; height:auto; }
.sn-brand.single-product .woocommerce-product-gallery{ position:sticky; top:104px; background:var(--cream); border:1px solid var(--line); border-radius:var(--r); padding:clamp(32px,5vw,64px); float:none !important; width:auto !important; margin:0 !important; }
.sn-brand.single-product .woocommerce-product-gallery img{ border-radius:var(--r); }
.sn-brand.single-product .woocommerce-product-gallery__trigger{ display:none; }
.sn-brand.single-product .sn-pdp-eyebrow{ display:block; font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--brass); margin-bottom:12px; }
.sn-brand.single-product .product_title{ font-family:var(--serif) !important; font-size:clamp(2.6rem,4.6vw,3.8rem) !important; font-weight:500 !important; letter-spacing:-.01em; margin:4px 0 10px !important; padding:0; }
.sn-brand.single-product .woocommerce-product-details__short-description{ color:var(--muted); font-size:1.04rem; font-weight:300; line-height:1.7; max-width:48ch; }
.sn-brand.single-product p.price, .sn-brand.single-product .price{ color:var(--ink) !important; font-family:var(--sans); font-size:1.6rem !important; font-weight:500 !important; margin:24px 0 6px !important; }
.sn-brand.single-product .price del{ color:var(--muted) !important; font-weight:300; font-size:1.2rem; margin-right:10px; }
.sn-brand.single-product .price ins{ text-decoration:none; }
.sn-brand.single-product form.cart{ margin:26px 0 8px; display:flex; gap:14px; align-items:stretch; flex-wrap:wrap; }
.sn-brand.single-product form.cart .quantity input{ width:76px; min-height:50px; border:1px solid var(--line); border-radius:var(--r); padding:0 12px; font:inherit; font-size:1rem; text-align:center; background:var(--paper); }
.sn-brand.single-product .single_add_to_cart_button{ flex:1; min-width:210px; justify-content:center; padding:18px 30px !important; }
.sn-brand.single-product .variations{ margin:14px 0 4px; }
.sn-brand.single-product .variations tbody, .sn-brand.single-product .variations tr{ display:block; }
.sn-brand.single-product .variations td, .sn-brand.single-product .variations th{ display:block; width:auto; padding:0; text-align:left; }
.sn-brand.single-product .variations label{ font-family:var(--sans); font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:10px; }
.sn-brand.single-product .variations select{ border:1px solid var(--line); border-radius:10px; padding:16px 18px; font:inherit; font-size:1rem; line-height:1.5; min-height:58px; height:auto; background:var(--paper); min-width:240px; box-sizing:border-box; }
.sn-brand.single-product .woocommerce-variation-price .price{ font-size:1.5rem !important; margin:16px 0 0 !important; }
.sn-brand.single-product .reset_variations{ font-size:.8rem; color:var(--muted); }

/* tabs */
.sn-brand .woocommerce-tabs{ grid-column:1 / -1; margin-top:clamp(48px,6vw,72px); }
.sn-brand .woocommerce-tabs ul.tabs{ list-style:none; margin:0 0 28px; padding:0; display:flex; gap:32px; border-bottom:1px solid var(--line); }
.sn-brand .woocommerce-tabs ul.tabs::before{ display:none; }
.sn-brand .woocommerce-tabs ul.tabs li{ background:none !important; border:none !important; padding:0 0 16px !important; margin:0 !important; border-radius:0 !important; }
.sn-brand .woocommerce-tabs ul.tabs li::before,.sn-brand .woocommerce-tabs ul.tabs li::after{ display:none !important; }
.sn-brand .woocommerce-tabs ul.tabs li a{ font-family:var(--sans); font-size:.76rem !important; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--muted) !important; padding:0 !important; }
.sn-brand .woocommerce-tabs ul.tabs li.active a{ color:var(--ink) !important; }
.sn-brand .woocommerce-tabs .panel{ margin:0 !important; padding:0; color:#403c33; font-weight:300; line-height:1.8; max-width:72ch; }
.sn-brand .woocommerce-tabs h2{ display:none; }

/* related */
.sn-brand .related.products, .sn-brand .up-sells{ grid-column:1 / -1; margin-top:clamp(56px,7vw,90px); border-top:1px solid var(--line); padding-top:clamp(44px,5vw,72px); }
.sn-brand .related.products > h2, .sn-brand .up-sells > h2{ font-family:var(--serif); font-size:clamp(2rem,3vw,2.6rem); font-weight:500; margin-bottom:38px; }
.sn-brand .related.products ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; list-style:none; margin:0; padding:0; text-align:left; }

/* notices */
.sn-brand .woocommerce-message, .sn-brand .woocommerce-info, .sn-brand .woocommerce-error{
  border-top:none !important; border-left:3px solid var(--brass); background:var(--cream); border-radius:var(--r); padding:18px 22px; font-size:.94rem; font-weight:300; color:var(--ink);
}
.sn-brand .woocommerce-message::before, .sn-brand .woocommerce-info::before{ color:var(--brass); }

/* ================= cart + checkout — editorial polish on the Woo block UI ================= */
.sn-commerce-wrap{ padding:clamp(40px,5vw,72px) 7vw clamp(64px,9vw,110px); max-width:1240px; margin:0 auto; }

/* step / section titles */
.sn-brand .wc-block-components-checkout-step__title, .sn-brand .wc-block-cart__totals-title,
.sn-brand .wc-block-components-order-summary__title, .sn-brand .wc-block-components-title{
  font-family:var(--serif) !important; font-size:1.35rem !important; font-weight:500 !important; letter-spacing:-.01em; color:var(--ink) !important; text-transform:none !important;
}
.sn-brand .wc-block-components-checkout-step__description{ color:var(--muted); font-weight:300; }
.sn-brand .wc-block-components-checkout-step__heading-content{ color:var(--muted); }

/* form fields */
.sn-brand .wc-block-components-text-input input, .sn-brand .wc-block-components-text-input textarea,
.sn-brand .wc-block-components-combobox input, .sn-brand .wc-block-components-select select,
.sn-brand .wc-block-components-country-input select, .sn-brand .wc-block-components-state-input select{
  border:1px solid var(--line) !important; border-radius:11px !important; background:var(--paper) !important; font-family:var(--sans) !important; color:var(--ink) !important;
}
.sn-brand .wc-block-components-text-input input, .sn-brand .wc-block-components-combobox input{ min-height:58px; }
.sn-brand .wc-block-components-text-input input:focus, .sn-brand .wc-block-components-combobox input:focus,
.sn-brand .wc-block-components-select select:focus{ outline:none !important; border-color:var(--brass) !important; box-shadow:0 0 0 1px var(--brass) !important; }
.sn-brand .wc-block-components-text-input label{ color:var(--muted); font-family:var(--sans); }
.sn-brand .wc-block-components-text-input.is-active label{ color:var(--brass); }
.sn-brand .wc-block-components-checkout-step{ border:none; }

/* line items + summary items */
.sn-brand .wc-block-cart-item__image img, .sn-brand .wc-block-components-order-summary-item__image img{
  border-radius:11px; border:1px solid var(--line); background:var(--panel);
}
.sn-brand .wc-block-cart-item__image img{ width:82px; }
.sn-brand .wc-block-components-product-name{ font-family:var(--serif) !important; font-size:1.16rem !important; font-weight:500 !important; color:var(--ink) !important; }
.sn-brand .wc-block-components-order-summary-item .wc-block-components-product-name{ font-size:1rem !important; overflow-wrap:normal; word-break:normal; hyphens:none; }
.sn-brand .wc-block-components-order-summary-item__total-price{ font-family:var(--sans); font-weight:500; color:var(--ink); }
.sn-brand .wc-block-components-order-summary-item__quantity .wc-block-components-product-badge{ background:var(--ink); color:var(--paper); }

/* quantity selector → pill */
.sn-brand .wc-block-components-quantity-selector{ border:1px solid var(--line) !important; border-radius:100px !important; overflow:hidden; max-width:120px; }
.sn-brand .wc-block-components-quantity-selector__button{ color:var(--ink) !important; }
.sn-brand .wc-block-cart-item__remove-link{ color:var(--muted) !important; }
.sn-brand .wc-block-cart-item__remove-link:hover{ color:var(--brass) !important; }

/* totals / order-summary card */
.sn-brand .wc-block-cart__totals, .sn-brand .wp-block-woocommerce-checkout-order-summary-block,
.sn-brand .wc-block-components-sidebar{ background:var(--cream); border:1px solid var(--line); border-radius:18px; padding:clamp(22px,3vw,30px) clamp(22px,3vw,30px) clamp(24px,3vw,32px); }
.sn-brand .wc-block-components-totals-item__label{ color:var(--muted); }
.sn-brand .wc-block-components-totals-item__value{ font-weight:500; color:var(--ink); }
.sn-brand .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{ font-family:var(--sans); font-weight:500; color:var(--ink); }
.sn-brand .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ font-family:var(--serif); font-size:1.6rem; font-weight:500; color:var(--ink); }
.sn-brand .wc-block-components-panel__button{ font-family:var(--sans); color:var(--ink) !important; font-weight:500; }

/* payment methods */
.sn-brand .wc-block-components-radio-control__option{ border:1px solid var(--line); border-radius:12px; padding:16px 18px 16px 52px !important; margin-bottom:10px; }
.sn-brand .wc-block-components-radio-control__input{ left:18px !important; }
.sn-brand .wc-block-components-radio-control-accordion-option--checked,
.sn-brand .wc-block-components-radio-control__option:has(input:checked){ border-color:var(--brass); background:var(--cream); }
.sn-brand .wc-block-components-radio-control__label{ font-weight:500; color:var(--ink); }

/* buttons → pill */
.sn-brand .wc-block-cart__submit-button, .sn-brand .wc-block-components-checkout-place-order-button{
  background:var(--ink) !important; color:var(--paper) !important; border-radius:100px !important;
  font-family:var(--sans) !important; font-weight:600 !important; letter-spacing:.14em; text-transform:uppercase; font-size:.76rem !important; padding:22px !important;
}
.sn-brand .wc-block-cart__submit-button:hover, .sn-brand .wc-block-components-checkout-place-order-button:hover{ background:var(--brass) !important; }

/* PDP appended extras (plugin) — clean divider instead of a floating void */
.sn-brand.single-product .product_meta{ display:none; } /* "SKU: N/A · Category" — redundant with breadcrumb + eyebrow */
.sn-brand .sn-pdp-extra{ grid-column:1 / -1; margin-top:clamp(20px,3vw,36px); padding-top:clamp(28px,4vw,44px); border-top:none; }

@media (max-width:1000px){
  .sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:760px){
  /* Plain block stack on mobile — a grid track was rendering shorter than the gallery,
     letting the image overlap the title. Blocks can't overlap. */
  .sn-brand.single-product div.product{ display:block !important; padding:0 !important; }
  .sn-brand.single-product .woocommerce-product-gallery{ position:static !important; padding:clamp(24px,6vw,40px); margin:0 0 30px !important; }
  .sn-brand.single-product .summary{ margin:0 !important; }
  .sn-brand.single-product .product_title{ font-size:clamp(2.3rem,8vw,3rem) !important; margin-top:6px !important; line-height:1.08 !important; }
  .sn-brand .sn-pdp-extra{ margin-top:30px; padding-top:20px; border-top:none; }
  .sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ grid-template-columns:1fr 1fr !important; }
}

/* PDP spec table: contained panel matching the detail cards — the rules live INSIDE
   padding as short inset dividers, never naked rail-to-rail lines with text at their ends. */
.sn-brand .sn-pdp-extra .sn-specs{ background:var(--cream); border:1px solid var(--line); border-radius:16px; border-collapse:separate; border-spacing:0; margin-top:28px; }
.sn-brand .sn-pdp-extra .sn-specs tr, .sn-brand .sn-pdp-extra .sn-specs tr:last-child{ border:none; }
.sn-brand .sn-pdp-extra .sn-specs th{ width:260px; white-space:nowrap; padding:21px 32px 21px 40px; }
.sn-brand .sn-pdp-extra .sn-specs td{ padding:21px 40px 21px 0; }
.sn-brand .sn-pdp-extra .sn-specs tr + tr th, .sn-brand .sn-pdp-extra .sn-specs tr + tr td{ border-top:1px solid var(--line); }
@media (max-width:760px){
  .sn-brand .sn-pdp-extra .sn-specs th{ width:38%; white-space:normal; padding:16px 14px 16px 22px; }
  .sn-brand .sn-pdp-extra .sn-specs td{ padding:16px 22px 16px 0; }
}

/* PDP in-depth detail cards */
.sn-brand .sn-detail-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(32px,4vw,48px); }
.sn-brand .sn-detail-card{ background:var(--cream); border:1px solid var(--line); border-radius:16px; padding:32px 40px; }
.sn-brand .sn-detail-card b{ font-family:var(--serif); font-size:1.2rem; font-weight:500; color:var(--ink); display:block; margin-bottom:10px; }
.sn-brand .sn-detail-card p{ font-size:.92rem; font-weight:300; line-height:1.65; color:var(--muted); margin:0 0 12px; }
.sn-brand .sn-detail-card .sn-morelink{ font-size:.72rem; }
@media (max-width:900px){ .sn-brand .sn-detail-grid{ grid-template-columns:1fr; } }

/* ============ post-audit fixes 2026-07-17 ============ */
/* Tablet window (721-980px): 3-up grids instead of squeezed 4-up */
@media (min-width:721px) and (max-width:980px){
  .sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ grid-template-columns:repeat(3,1fr) !important; }
}
/* Pagination: spaced, branded page numbers */
.sn-brand nav.woocommerce-pagination{ grid-column:1 / -1; margin:34px 0 10px; }
.sn-brand .woocommerce-pagination ul.page-numbers{ display:flex; gap:10px; list-style:none; margin:0; padding:0; justify-content:center; border:none; }
.sn-brand .woocommerce-pagination ul.page-numbers li{ border:none; }
.sn-brand .page-numbers li .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:var(--card,#fff); color:var(--ink); font-size:.92rem; text-decoration:none; }
.sn-brand .page-numbers li .page-numbers.current{ background:var(--ink); border-color:var(--ink); color:#fff; }
.sn-brand .page-numbers li .page-numbers:hover:not(.current){ border-color:var(--brass); color:var(--brass); }

/* ============ round-3: premium mobile/tablet PDP spacing 2026-07-17 ============ */
@media (max-width:760px){
  .sn-pdp-wrap{ padding:24px 24px 60px; }
  .sn-brand.single-product .summary{ display:block; }
  .sn-brand.single-product .sn-pdp-eyebrow{ font-size:.6rem; margin-bottom:14px; }
  .sn-brand.single-product .product_title{ margin-bottom:14px !important; }
  .sn-brand.single-product .woocommerce-product-details__short-description{ font-size:1rem; line-height:1.72; margin:16px 0 6px; max-width:none; }
  .sn-brand.single-product p.price, .sn-brand.single-product .price{ font-size:1.5rem !important; margin:24px 0 6px !important; }
  .sn-brand.single-product .woocommerce-variation-price .price{ margin:14px 0 2px !important; }
  .sn-brand.single-product form.cart{ margin:24px 0 8px; gap:12px; flex-direction:column; align-items:stretch; }
  .sn-brand.single-product form.cart .quantity input{ width:100%; min-height:54px; }
  .sn-brand.single-product .single_add_to_cart_button{ width:100%; flex:1 0 auto; min-width:0; padding:18px !important; }
  .sn-brand.single-product .variations{ margin:16px 0 6px; }
  .sn-brand.single-product .variations select{ width:100%; min-width:0; }
  /* variable products nest qty+button inside this wrapper — give them clear separation */
  .sn-brand.single-product .woocommerce-variation-add-to-cart{ display:flex; flex-direction:column; align-items:stretch; gap:18px; margin-top:8px; }
  .sn-brand.single-product .woocommerce-variation-add-to-cart .quantity{ margin:0; width:100%; }
  .sn-brand.single-product .single_variation_wrap .woocommerce-variation-price{ margin-bottom:6px; }
  .sn-brand .sn-vol{ margin:22px 0 4px; flex-wrap:wrap; gap:8px; }
  .sn-brand .sn-assure{ margin:20px 0 2px; flex-wrap:wrap; gap:8px 14px; }
  .sn-brand .sn-pdp-extra{ margin-top:36px !important; padding-top:28px !important; border-top:none !important; }
  .sn-brand .sn-detail-grid{ gap:14px; margin-top:22px; }
  .sn-brand .sn-detail-card{ padding:24px; }
  .sn-brand table.sn-specs{ margin:6px 0 4px; }
}
