/* ==========================================================================
   Supernormal × WooCommerce — maps the SN aesthetic onto native Woo blocks
   so shop, PDP, cart and checkout are real WooCommerce, brand-skinned.
   ========================================================================== */
.sn-brand .woocommerce, .sn-brand.woocommerce{ font-family:var(--font); }

/* --- shop / archive grid --- */
.sn-shop-wrap{ padding:clamp(36px,5vw,64px) 6vw clamp(56px,8vw,96px); }
.sn-shop-wrap .wc-block-product-template,
.sn-shop-wrap .wp-block-woocommerce-product-template,
.sn-shop-wrap ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:28px 24px; list-style:none; margin:0; padding:0; }
.sn-shop-wrap li.product, .sn-shop-wrap .wc-block-product{ margin:0 !important; width:auto !important; text-align:left; }
.sn-shop-wrap li.product a img, .sn-shop-wrap .wc-block-grid__product-image img,
.sn-shop-wrap .wc-block-components-product-image img{ border-radius:var(--r); border:1px solid var(--line); background:#f4f1ea; aspect-ratio:4/5; object-fit:cover; transition:transform .5s cubic-bezier(.23,1,.32,1); }
.sn-shop-wrap li.product:hover img{ transform:translateY(-6px); box-shadow:0 30px 54px -34px rgba(0,0,0,.4); }
.sn-shop-wrap .woocommerce-loop-product__title,
.sn-shop-wrap .wc-block-components-product-name{ font-size:1.3rem !important; font-weight:400 !important; letter-spacing:-.02em; color:var(--ink) !important; margin:14px 0 4px !important; padding:0 !important; }
.sn-shop-wrap .price, .sn-shop-wrap .wc-block-components-product-price{ color:var(--ink) !important; font-weight:600 !important; font-size:1.05rem !important; }
.sn-shop-wrap .price del{ color:var(--muted) !important; font-weight:400; }
.sn-shop-wrap .price ins{ text-decoration:none; }
.sn-shop-wrap .wc-block-components-product-rating{ display:none; }

/* woo button → SN pill everywhere */
.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:#fff !important; border:none !important; border-radius:999px !important;
  font-size:.74rem !important; font-weight:600 !important; letter-spacing:.09em !important; text-transform:uppercase !important;
  padding:14px 26px !important; transition:background .25s, transform .25s !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(--coral) !important; color:#fff !important; transform:translateY(-2px);
}
.sn-brand .added_to_cart{ margin-left:12px; font-size:.74rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; border-bottom:2px solid var(--ink); }

/* --- single product (PDP) --- */
.sn-pdp-wrap{ padding:clamp(28px,3.5vw,52px) 6vw clamp(56px,8vw,96px); }
.sn-brand .woocommerce-breadcrumb{ font-size:.78rem !important; color:var(--muted) !important; margin:0 0 26px !important; letter-spacing:.02em; }
.sn-brand .woocommerce-breadcrumb a{ color:var(--muted); } .sn-brand .woocommerce-breadcrumb a:hover{ color:var(--coral); }
.sn-brand.single-product div.product{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,5vw,72px); align-items:start; }
.sn-brand.single-product .woocommerce-product-gallery{ position:sticky; top:96px; background:var(--cream); border-radius:var(--r); padding:clamp(28px,4vw,52px); float:none !important; width:auto !important; margin:0 !important; }
.sn-brand.single-product .woocommerce-product-gallery img{ border-radius:14px; }
.sn-brand.single-product .woocommerce-product-gallery__trigger{ display:none; }
.sn-brand.single-product .product_title{ font-size:clamp(2.4rem,4.6vw,3.4rem) !important; margin:6px 0 8px !important; padding:0; letter-spacing:-.03em; }
.sn-brand.single-product .woocommerce-product-details__short-description{ color:var(--muted); font-size:1.02rem; line-height:1.55; max-width:46ch; }
.sn-brand.single-product p.price, .sn-brand.single-product .price{ color:var(--ink) !important; font-size:1.7rem !important; font-weight:600 !important; margin:22px 0 6px !important; }
.sn-brand.single-product .price del{ color:var(--muted) !important; font-weight:400; font-size:1.2rem; margin-right:10px; }
.sn-brand.single-product .price ins{ text-decoration:none; }
.sn-brand.single-product form.cart{ margin:22px 0 8px; display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; }
.sn-brand.single-product form.cart .quantity input{ width:76px; height:100%; min-height:48px; border:1.5px solid var(--line); border-radius:14px; padding:0 12px; font:inherit; font-size:1rem; text-align:center; }
.sn-brand.single-product .single_add_to_cart_button{ flex:1; min-width:200px; justify-content:center; padding:17px 26px !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-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
.sn-brand.single-product .variations select{ border:1.5px solid var(--line); border-radius:12px; padding:12px 16px; font:inherit; font-size:1rem; background:#fff; min-width:220px; }
.sn-brand.single-product .woocommerce-variation-price .price{ font-size:1.5rem !important; margin:14px 0 0 !important; }
.sn-brand.single-product .reset_variations{ font-size:.8rem; color:var(--muted); }

/* woo tabs → clean SN */
.sn-brand .woocommerce-tabs{ grid-column:1 / -1; margin-top:clamp(40px,5vw,64px); }
.sn-brand .woocommerce-tabs ul.tabs{ list-style:none; margin:0 0 24px; padding:0 0 0; display:flex; gap:28px; 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 14px !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-size:.82rem !important; font-weight:600; letter-spacing:.1em; 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:#33322e; line-height:1.7; max-width:70ch; }
.sn-brand .woocommerce-tabs h2{ display:none; }

/* related products */
.sn-brand .related.products, .sn-brand .up-sells{ grid-column:1 / -1; margin-top:clamp(48px,6vw,80px); border-top:1px solid var(--line); padding-top:clamp(40px,5vw,64px); }
.sn-brand .related.products > h2, .sn-brand .up-sells > h2{ font-size:clamp(1.8rem,3vw,2.4rem); font-weight:400; letter-spacing:-.02em; margin-bottom:32px; }
.sn-brand .related.products ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; margin:0; padding:0; }

/* woo notices → SN */
.sn-brand .woocommerce-message, .sn-brand .woocommerce-info, .sn-brand .woocommerce-error{
  border-top:none !important; border-left:4px solid var(--coral); background:var(--cream); border-radius:12px; padding:16px 20px; font-size:.95rem; color:var(--ink);
}
.sn-brand .woocommerce-message::before, .sn-brand .woocommerce-info::before{ color:var(--coral); }

/* --- cart + checkout blocks --- */
.sn-commerce-wrap{ padding:clamp(40px,5vw,72px) 6vw clamp(56px,8vw,96px); max-width:1200px; margin:0 auto; }
.sn-brand .wc-block-cart__submit-button, .sn-brand .wc-block-components-checkout-place-order-button{
  background:var(--coral) !important; border-radius:999px !important; font-weight:600 !important; letter-spacing:.08em; text-transform:uppercase; font-size:.82rem !important; padding:18px !important;
}
.sn-brand .wc-block-components-totals-item__value, .sn-brand .wc-block-cart-items__row .wc-block-components-product-price{ font-weight:600; }
.sn-brand .wc-block-components-text-input input, .sn-brand .wc-block-components-country-input input,
.sn-brand .wc-block-checkout__form input, .sn-brand .wc-block-components-text-input.is-active label{ border-radius:12px; }
.sn-brand .wc-block-components-text-input input:focus{ outline-color:var(--coral); box-shadow:0 0 0 2px var(--coral); }
.sn-brand .is-large.wc-block-cart .wc-block-cart-items{ border-radius:var(--r); }

/* volume discount hint on PDP */
.sn-brand .sn-vol{ margin:18px 0 4px; display:flex; gap:8px; flex-wrap:wrap; }
.sn-brand .sn-vol span{ font-size:.74rem; font-weight:600; letter-spacing:.02em; color:#42413b; background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:7px 14px; }
.sn-brand .sn-vol span b{ color:var(--coral); }

/* PDP appended spec/coa/assurance from plugin */
.sn-brand .sn-pdp-extra{ grid-column:1 / -1; margin-top:8px; }
.sn-brand .sn-assure{ display:flex; flex-wrap:wrap; gap:10px 26px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:4px; }
.sn-brand .sn-assure span{ font-size:.85rem; color:#42413b; display:inline-flex; align-items:center; gap:9px; }
.sn-brand .sn-assure span::before{ content:""; width:16px; height:16px; border-radius:50%; background:var(--coral); -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z"/></svg>') center/78% no-repeat; mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z"/></svg>') center/78% no-repeat; }

@media (max-width:1000px){
  .sn-shop-wrap .wc-block-product-template, .sn-shop-wrap .wp-block-woocommerce-product-template, .sn-shop-wrap ul.products,
  .sn-brand .related.products ul.products{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:760px){
  .sn-brand.single-product div.product{ grid-template-columns:1fr; }
  .sn-brand.single-product .woocommerce-product-gallery{ position:static; }
  .sn-shop-wrap .wc-block-product-template, .sn-shop-wrap .wp-block-woocommerce-product-template, .sn-shop-wrap ul.products,
  .sn-brand .related.products ul.products{ grid-template-columns:1fr 1fr !important; }
}
