/* ---------------------------------------------------------------------------
   Cart, checkout, account, order-received.
   WooCommerce blocks supply the behaviour; this file only dresses them to
   match the storefront. Nothing here changes what Woo calculates.
   ------------------------------------------------------------------------ */

.woocommerce-cart .yl-main, .woocommerce-checkout .yl-main, .woocommerce-account .yl-main { padding-block: clamp(2rem, 4vw, 3.4rem) var(--section); }

/* Page heading (theme-rendered) */
.yl-wc-head { max-width: var(--wrap); margin: 0 auto 1.6rem; padding-inline: var(--gut); }
.yl-wc-head h1 { font-size: var(--step-3); margin-bottom: 0.2em; }
.yl-wc-head p { color: var(--ink-soft); margin: 0; }

/* ── Shared block scaffolding ────────────────────────────────────────── */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-order-confirmation {
	max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut);
	color: var(--ink);
}
.wc-block-components-title, .wc-block-components-panel__button, .wc-block-components-totals-item__label {
	font-family: var(--font-sans);
}
.wc-block-components-title { font-size: var(--step-2) !important; font-family: var(--font-display) !important; }
.wc-block-cart__main, .wc-block-checkout__main { gap: 2rem; }

/* Panels + summaries look like the rest of the site */
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar { background: transparent; }
.wc-block-components-order-summary, .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar .wc-block-components-panel {
	border-color: var(--line-soft);
}
.wc-block-components-order-summary-item__description, .wc-block-components-product-name { color: var(--ink); font-weight: 500; text-decoration: none; }
.wc-block-components-product-price, .wc-block-components-totals-item__value { font-variant-numeric: tabular-nums; }
.wc-block-components-totals-footer .wc-block-components-totals-item__value,
.wc-block-components-totals-footer .wc-block-components-totals-item__label { font-size: var(--step-1); font-family: var(--font-display); }

/* Inputs */
.wc-block-components-text-input input, .wc-block-components-textarea,
.wc-block-components-select__container select, .wc-blocks-components-select__select,
.wc-block-components-text-input input[type='text'], .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border-radius: 10px !important; border: 1px solid var(--line) !important; background: var(--paper) !important;
	color: var(--ink) !important; font-family: var(--font-sans) !important;
}
.wc-block-components-text-input input:focus { box-shadow: 0 0 0 3px color-mix(in oklab, var(--pine) 18%, transparent) !important; border-color: var(--pine) !important; }
.wc-block-components-text-input label, .wc-block-components-checkbox label, .wc-block-components-radio-control__label { font-size: var(--step--1); color: var(--ink-soft); }

/* Buttons */
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	background: var(--pine) !important; color: var(--paper) !important; border: 0 !important;
	border-radius: 999px !important; padding: 0.95em 1.8em !important; font-weight: 500 !important;
	transition: background 0.18s var(--ease), transform 0.18s var(--ease) !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--pine-deep) !important; transform: translateY(-1px); }
.wc-block-components-button.is-link { color: var(--pine) !important; text-decoration: underline; }
.wc-block-cart__submit { position: sticky; bottom: 0; }

/* Sticky "proceed to checkout" summary card on cart */
.wc-block-cart__submit-container { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--radius-lg); padding: 1rem; }

/* Cart line items */
.wc-block-cart-items__row { border-color: var(--line-soft) !important; }
.wc-block-cart-item__image img { border-radius: 10px; background: var(--stone); }
.wc-block-cart-item__quantity .wc-block-cart-item__remove-link { color: var(--ink-soft); font-size: var(--step--1); }

/* Express payment + payment methods */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__event-buttons,
.wc-block-components-express-payment--cart { border: 1px dashed var(--line); border-radius: var(--radius); }
.wc-block-components-radio-control__option { border-color: var(--line-soft) !important; }
.wc-block-components-radio-control__option-checked { border-color: var(--pine) !important; }

/* Order received / account */
.woocommerce-order, .woocommerce-account .woocommerce { max-width: 900px; margin-inline: auto; padding-inline: var(--gut); }
.woocommerce-order-overview, .woocommerce-order-details, .woocommerce-customer-details {
	background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--radius-lg); padding: 1.2rem 1.4rem;
}
.woocommerce-order-overview { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; padding: 1.4rem; }
.woocommerce-order-overview li { margin: 0; font-size: var(--step--1); color: var(--ink-soft); }
.woocommerce-order-overview li strong { display: block; color: var(--ink); font-size: var(--step-0); }
.woocommerce-table { width: 100%; border-collapse: collapse; }
.woocommerce-table th, .woocommerce-table td { text-align: left; padding: 0.6rem 0.3rem; border-bottom: 1px solid var(--line-soft); }

/* Classic shortcode fallback (if a page ever uses [woocommerce_cart]) */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 0.7rem 0.4rem; border-bottom: 1px solid var(--line-soft); text-align: left; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
	padding: 0.75rem 0.95rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); width: 100%;
}
.woocommerce .button, .woocommerce button.button.alt, .woocommerce #place_order {
	background: var(--pine); color: var(--paper); border-radius: 999px; padding: 0.85em 1.6em; border: 0;
}
.woocommerce .button:hover { background: var(--pine-deep); }
.woocommerce-info { border-left-color: var(--sage); }
