/* =========================================================
   420 HUB — WooCommerce overrides
   Reuses tokens from main.css. Loaded after main.css and only
   when WooCommerce is active (see functions.php).
   ========================================================= */

/* Shop archive grid */
ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none !important; padding:0 !important; margin:0 0 30px !important; }
@media (max-width:960px){ ul.products{ grid-template-columns:repeat(3,1fr) !important; } }
@media (max-width:700px){ ul.products{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:460px){ ul.products{ grid-template-columns:1fr !important; } }

ul.products li.product{
	background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md);
	padding:0 0 18px; overflow:hidden; transition:transform .15s ease, box-shadow .15s ease; position:relative;
}
ul.products li.product:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
ul.products li.product a img{ width:100%; aspect-ratio:1/1; object-fit:cover; margin-bottom:14px; border-radius:0; }
ul.products li.product .woocommerce-loop-product__title{
	font-family:var(--font-display); font-weight:700; font-size:1rem; padding:0 16px; margin:0 0 6px; color:var(--ink);
}
ul.products li.product .price{ padding:0 16px; font-family:var(--font-display); font-weight:700; color:var(--sage-dark); font-size:1.05rem; }
ul.products li.product .price del{ color:var(--ink-soft); opacity:.6; margin-right:6px; }
ul.products li.product .price ins{ text-decoration:none; }
ul.products li.product .button{
	display:block; margin:14px 16px 0; text-align:center; background:var(--sage); color:#fff !important;
	border-radius:999px; padding:10px 16px; font-weight:700; font-size:.86rem;
}
ul.products li.product .button:hover{ background:var(--sage-dark); }
ul.products li.product .onsale{
	position:absolute; top:12px; left:12px; background:var(--gold); color:#2b210f; font-weight:800;
	font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; padding:5px 10px; border-radius:999px; z-index:2;
}
.cbd-product-badges{ display:flex; gap:6px; flex-wrap:wrap; padding:0 16px; margin-bottom:8px; }

.woocommerce-result-count, .woocommerce-ordering{ font-size:.88rem; color:var(--ink-soft); }
.woocommerce-ordering select{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:8px 12px; background:var(--card); }

/* Shop sidebar / filter widgets */
.widget_product_categories ul, .widget_layered_nav ul{ display:flex; flex-direction:column; gap:6px; }
.widget_product_categories a, .widget_layered_nav a{ font-weight:600; font-size:.9rem; }
.widget-area .widget{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:20px; margin-bottom:20px; }
.widget-area .widget-title{ font-family:var(--font-display); font-size:.95rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }

/* Single product */
.woocommerce div.product{ padding:20px 0 40px; }
.woocommerce div.product .product_title{ font-family:var(--font-display); }
.woocommerce div.product p.price{ font-family:var(--font-display); font-size:1.7rem; color:var(--sage-dark); font-weight:700; }
.woocommerce div.product .woocommerce-product-rating{ margin-bottom:14px; }
.woocommerce div.product form.cart{ margin-top:20px; }
.woocommerce div.product form.cart .button{
	background:var(--sage); color:#fff; border-radius:999px; padding:14px 28px; font-weight:700; border:none;
}
.woocommerce div.product form.cart .button:hover{ background:var(--sage-dark); }
.woocommerce div.product .quantity input.qty{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px; width:70px; text-align:center; }

.woocommerce-tabs ul.tabs{ display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:20px; }
.woocommerce-tabs ul.tabs li{ list-style:none; }
.woocommerce-tabs ul.tabs li a{ display:block; padding:12px 18px; font-weight:700; border-radius:var(--radius-sm) var(--radius-sm) 0 0; }
.woocommerce-tabs ul.tabs li.active a{ background:var(--sage-tint); color:var(--sage-dark); }

.cbd-product-facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:24px 0; }
.cbd-fact{ background:var(--sage-tint); border-radius:var(--radius-md); padding:16px; text-align:center; }
.cbd-fact span{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--sage-dark); font-weight:800; margin-bottom:4px; }
.cbd-fact b{ font-family:var(--font-display); font-size:1.15rem; }
@media (max-width:700px){ .cbd-product-facts{ grid-template-columns:1fr; } }

.cbd-coa-callout{ display:flex; align-items:center; gap:14px; background:var(--card); border:1.5px dashed var(--sage); border-radius:var(--radius-md); padding:18px 20px; margin:24px 0; }
.cbd-coa-callout .ic{ font-size:1.6rem; }

.related.products{ margin-top:50px; }
.related.products > h2{ font-family:var(--font-display); }

/* Cart / Checkout */
.woocommerce table.shop_table{ border-collapse:collapse; width:100%; border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.woocommerce table.shop_table th{ background:var(--paper-alt); text-align:left; padding:14px; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; }
.woocommerce table.shop_table td{ padding:14px; border-top:1px solid var(--line); }
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
	background:var(--sage); color:#fff; border-radius:999px; padding:12px 22px; font-weight:700; border:none;
}
.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{ background:var(--sage-dark); }
.woocommerce-checkout #payment{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:20px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select{
	border:1px solid var(--line); border-radius:var(--radius-sm); padding:11px 13px; width:100%;
}
.woocommerce-message, .woocommerce-info{
	background:var(--sage-tint); border:1px solid #cfe1d6; border-left:4px solid var(--sage); border-radius:var(--radius-sm);
	padding:14px 18px !important;
}
.woocommerce-error{ background:var(--danger-tint); border:1px solid #f0c8ba; border-left:4px solid var(--danger); border-radius:var(--radius-sm); padding:14px 18px !important; }

/* Age / legal notice injected above add-to-cart */
.cbd-age-warning{ font-size:.8rem; color:var(--ink-soft); background:var(--paper-alt); border-radius:var(--radius-sm); padding:10px 14px; margin:16px 0; }
