/* =====================================================================
   WILLOW PR — WooCommerce brand styling
   Covers classic templates (product, shop, account) AND block cart/checkout.
   Uses brand tokens from style.css (--rose, --ink, etc.)
   ===================================================================== */

/* ---------- Shared buttons (classic) ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
	background: var(--rose) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 100px !important;
	font-family: var(--f-body) !important;
	font-weight: 600 !important;
	font-size: .98rem !important;
	padding: .85rem 1.7rem !important;
	line-height: 1.2 !important;
	box-shadow: var(--shadow-rose);
	transition: .25s ease;
	text-transform: none !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #place_order:hover {
	background: var(--rose-deep) !important;
	transform: translateY(-2px);
}
.woocommerce a.button.disabled,
.woocommerce button.button:disabled { opacity: .55; }

/* Secondary / ghost buttons (e.g. "Update cart", "Continue shopping") */
.woocommerce a.button.wc-backward,
.woocommerce button[name="update_cart"] {
	background: transparent !important;
	color: var(--ink) !important;
	border: 1.5px solid var(--rose-soft) !important;
	box-shadow: none;
}
.woocommerce a.button.wc-backward:hover,
.woocommerce button[name="update_cart"]:hover {
	border-color: var(--rose) !important;
	color: var(--rose-deep) !important;
	background: transparent !important;
}

/* ---------- Form fields (classic) ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .woocommerce-Input,
.woocommerce-page form .form-row input.input-text,
.woocommerce select,
.woocommerce .select2-container .select2-selection {
	border: 1px solid var(--line) !important;
	border-radius: 12px !important;
	padding: .8rem 1rem !important;
	background: var(--cream) !important;
	font-family: var(--f-body) !important;
	font-size: 1rem !important;
	min-height: 46px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .woocommerce-Input:focus {
	outline: none !important;
	border-color: var(--rose) !important;
	background: #fff !important;
}
.woocommerce form .form-row label { font-weight: 600; color: var(--ink); }

/* Login / account boxes */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce .woocommerce-form-login {
	border: 1px solid var(--line) !important;
	border-radius: var(--radius) !important;
	padding: 2rem !important;
	background: #fff;
}

/* ---------- Headings & prices ---------- */
.woocommerce div.product .product_title,
.woocommerce-page h1, .woocommerce h2, .woocommerce h3 { font-family: var(--f-display); color: var(--ink); }
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price,
.woocommerce-Price-amount { color: var(--rose-deep) !important; font-weight: 600; }
.woocommerce div.product p.price { font-family: var(--f-display); font-size: 1.7rem; }
.woocommerce div.product p.price del { color: var(--muted); font-weight: 400; }

/* ---------- Single product layout ---------- */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem,4vw,3.5rem); align-items: start; }
.woocommerce div.product div.images { margin: 0; }
.woocommerce div.product div.images img { border-radius: var(--radius); box-shadow: var(--shadow); }
.woocommerce div.product div.summary { margin: 0; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product form.cart { margin: 1.4rem 0; display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
.woocommerce .quantity input.qty {
	border: 1px solid var(--line); border-radius: 100px; background: var(--cream);
	padding: .7rem .4rem; width: 72px; text-align: center; font-weight: 600; min-height: 46px;
}
.woocommerce span.onsale {
	background: var(--rose) !important; color: #fff !important; border-radius: 100px;
	font-family: var(--f-body); font-weight: 600; min-height: auto; min-width: auto;
	padding: .35rem .85rem; line-height: 1; top: .8rem; left: .8rem;
}

/* Product tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.5rem; border-bottom: 1px solid var(--line); display: flex; gap: .5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--f-body); font-weight: 600; color: var(--muted);
	padding: .7rem 1rem; display: block; border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--rose-deep); border-bottom-color: var(--rose); }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.6rem; }

/* Constrain express payment buttons so they don't sprawl */
.wc-stripe-product-checkout-container,
.wc-block-components-express-payment,
.woocommerce div.product .wc-stripe-payment-request-wrapper { max-width: 360px; }

/* ---------- Shop / archive product grid ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: 1.6rem; margin: 0; }
.woocommerce ul.products li.product {
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	overflow: hidden; padding: 0 0 1.3rem !important; margin: 0 !important; width: auto !important;
	transition: .3s ease; text-align: left;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--shadow); transform: translateY(-5px); }
.woocommerce ul.products li.product a img { margin: 0 0 1rem; border-radius: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 1.3rem; font-size: 1.15rem; }
.woocommerce ul.products li.product .price { padding: 0 1.3rem; display: block; margin-top: .3rem; }
.woocommerce ul.products li.product .button { margin: 1rem 1.3rem 0; }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	border-top: 0 !important; border-radius: var(--radius-sm); padding: 1rem 1.3rem 1rem 3rem;
	background: var(--rose-tint); color: var(--ink); font-family: var(--f-body);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--rose); }
.woocommerce-error { background: #fbeaec; }

/* ---------- Cart / checkout tables (classic) ---------- */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: var(--radius); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { font-family: var(--f-body); font-weight: 600; color: var(--ink); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce a.remove { color: var(--rose-deep) !important; border-color: var(--rose-soft); }
.woocommerce a.remove:hover { background: var(--rose) !important; color: #fff !important; }

/* =====================================================================
   WooCommerce BLOCKS (cart & checkout built with blocks)
   ===================================================================== */
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
button.wc-block-components-button.contained {
	background: var(--rose) !important;
	color: #fff !important;
	border-radius: 100px !important;
	font-family: var(--f-body) !important;
	font-weight: 600 !important;
	box-shadow: var(--shadow-rose);
	border: 0 !important;
}
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--rose-deep) !important; }
.wc-block-components-button > .wc-block-components-button__text { color: #fff !important; }

/* Block: "Continue shopping" / ghost link buttons */
.wc-block-components-button.outlined {
	background: transparent !important; color: var(--ink) !important;
	border: 1.5px solid var(--rose-soft) !important; box-shadow: none;
}

/* Block form fields */
.wc-block-components-text-input input,
.wc-block-components-text-input.is-active input,
.wc-block-components-address-form input,
.wc-block-components-select select,
.wc-blocks-components-select__container {
	border: 1px solid var(--line) !important;
	border-radius: 12px !important;
	background: var(--cream) !important;
	font-family: var(--f-body) !important;
}
.wc-block-components-text-input input:focus { border-color: var(--rose) !important; background: #fff !important; box-shadow: none !important; }
.wc-block-components-text-input label { color: var(--muted) !important; }

/* Block totals & summary */
.wc-block-components-totals-item { font-family: var(--f-body); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-formatted-money-amount,
.wc-block-components-product-price { color: var(--rose-deep) !important; font-weight: 600; }
.wc-block-components-panel, .wc-block-cart__totals-title, .wc-block-checkout__sidebar { font-family: var(--f-body); }
.wc-block-cart-items__row, .wc-block-components-order-summary-item { border-color: var(--line) !important; }
.wc-block-components-sidebar .wc-block-components-totals-item { padding-block: .5rem; }

/* Block product titles */
.wc-block-cart-item__product-name a,
.wc-block-components-product-name { color: var(--ink) !important; font-weight: 600; }
.wc-block-cart-item__product-name a:hover { color: var(--rose-deep) !important; }

/* Quantity stepper (blocks) */
.wc-block-components-quantity-selector { border: 1px solid var(--line); border-radius: 100px; background: var(--cream); }
.wc-block-components-quantity-selector__button { color: var(--rose-deep); }

/* Express-payment divider tidy-up */
.wc-block-components-express-payment-continue-rule { color: var(--muted); }

@media (max-width: 768px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
}
