/**
 * Cart, Checkout and My Account (classic WooCommerce shortcodes rendered by
 * Blocksy's page template), restyled to the brand. CSS only -- no WooCommerce
 * template overrides.
 */

/* Page title band: full-bleed near-black like every other page header. */
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .hero-section {
	position: relative;
	margin-bottom: clamp(40px, 5vw, 72px) !important;
	padding: clamp(48px, 5vw, 80px) 0 !important;
	background: var(--yhdr-black-1);
	box-shadow: 0 0 0 100vmax var(--yhdr-black-1);
	clip-path: inset(0 -100vmax);
}

:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .hero-section .page-title {
	color: var(--yhdr-white);
	font-family: var(--yhdr-font-heading);
	font-weight: 500;
	font-size: var(--yhdr-fs-h1);
	letter-spacing: var(--yhdr-tracking-tight);
	margin: 0;
}

:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) [data-vertical-spacing*="top"] { padding-top: 0 !important; }
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content { --theme-block-max-width: var(--yhdr-container-width); }

.woocommerce h2, .woocommerce h3 { font-family: var(--yhdr-font-heading); font-weight: 500; letter-spacing: -0.015em; }

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message {
	border: 1px solid var(--yhdr-rule) !important;
	border-left: 4px solid var(--yhdr-blue) !important;
	border-radius: 0 !important;
	background: var(--yhdr-surface) !important;
	color: var(--yhdr-text) !important;
	padding: 16px 20px !important;
}
.woocommerce-error { border-left-color: var(--yhdr-error) !important; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
.woocommerce .amount { white-space: nowrap; }
.woocommerce-message .button { float: right; }

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .checkout-button,
.woocommerce #place_order {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px !important;
	border: 1px solid var(--yhdr-blue) !important;
	border-radius: 0 !important;
	background: var(--yhdr-blue) !important;
	color: var(--yhdr-white) !important;
	font-family: var(--yhdr-font-heading) !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	text-decoration: none;
	transition: background-color 0.2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover { background: var(--yhdr-blue-dark) !important; border-color: var(--yhdr-blue-dark) !important; }
.woocommerce button.button:disabled,
.woocommerce button.button[disabled] { opacity: 0.45; }
.woocommerce .coupon button.button,
.woocommerce button[name="update_cart"] { background: transparent !important; color: var(--yhdr-black-1) !important; border-color: var(--yhdr-black-1) !important; }
.woocommerce .coupon button.button:hover,
.woocommerce button[name="update_cart"]:hover { background: var(--yhdr-black-1) !important; color: var(--yhdr-white) !important; }

/* Fields */
.woocommerce form .form-row label { font-size: 0.875rem; font-weight: 600; color: var(--yhdr-text); margin-bottom: 6px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .coupon input.input-text,
.woocommerce .select2-container .select2-selection--single {
	min-height: 52px;
	padding: 12px 16px !important;
	border: 1px solid var(--yhdr-rule) !important;
	border-radius: var(--yhdr-radius-input) !important;
	background: var(--yhdr-white);
	font-family: var(--yhdr-font-body);
	font-size: 1rem;
	color: var(--yhdr-text);
	box-shadow: none !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .coupon input.input-text:focus { outline: none; border-color: var(--yhdr-blue) !important; box-shadow: 0 0 0 3px rgba(95, 166, 219, 0.35) !important; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--yhdr-error) !important; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding: 0; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 50px; }
.woocommerce form .form-row .required { color: var(--yhdr-error); }

/* Tables (cart, order review, account orders) */
.woocommerce table.shop_table {
	border: 0 !important;
	border-top: 1px solid var(--yhdr-black-1) !important;
	border-radius: 0 !important;
	border-collapse: collapse !important;
}
.woocommerce table.shop_table th {
	font-family: var(--yhdr-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--yhdr-text-muted);
	padding: 16px 12px !important;
}
.woocommerce table.shop_table td { padding: 20px 12px !important; border-top: 1px solid var(--yhdr-rule) !important; color: var(--yhdr-text); }
.woocommerce table.shop_table td.product-name a { font-family: var(--yhdr-font-heading); font-weight: 500; font-size: 1.0625rem; color: var(--yhdr-text); text-decoration: none; }
.woocommerce table.shop_table td.product-name a:hover { color: var(--yhdr-blue); }
.woocommerce table.cart img { width: 96px; aspect-ratio: 4 / 3; object-fit: cover; }
.woocommerce table.shop_table .amount { font-variant-numeric: tabular-nums; }
.woocommerce a.remove { border-radius: 0 !important; color: var(--yhdr-error) !important; }
.woocommerce a.remove:hover { background: var(--yhdr-error) !important; color: var(--yhdr-white) !important; }
.woocommerce .cart .coupon { display: flex; gap: 8px; }

/* Totals boxes */
.woocommerce .cart_totals {
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--yhdr-rule);
	border-top: 4px solid var(--yhdr-blue);
	background: var(--yhdr-white);
}
.woocommerce .cart_totals h2 { font-size: 1.5rem; }
.woocommerce .cart_totals .order-total .amount,
.woocommerce-checkout .order-total .amount { font-family: var(--yhdr-font-heading); font-size: 1.375rem; font-weight: 500; }
.woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }

/* Checkout */
.woocommerce-checkout h3 { font-size: 1.5rem; margin-bottom: 20px; }
.woocommerce-checkout #payment { border-radius: 0 !important; background: var(--yhdr-surface) !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--yhdr-rule) !important; padding: 20px !important; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 12px 0; border-bottom: 1px solid var(--yhdr-rule); }
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { font-family: var(--yhdr-font-heading); font-weight: 500; color: var(--yhdr-text); }
.woocommerce-checkout #payment div.payment_box { border-radius: 0 !important; background: var(--yhdr-white) !important; color: var(--yhdr-text-body) !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--yhdr-white) !important; }
.woocommerce-checkout #payment .place-order { padding: 20px !important; }
.woocommerce-checkout #place_order { width: 100%; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: 0.8125rem; color: var(--yhdr-text-muted); }

/* Empty cart */
.wc-empty-cart-message .cart-empty {
	border: 0 !important;
	background: none !important;
	padding: 0 !important;
	font-family: var(--yhdr-font-heading);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	color: var(--yhdr-text) !important;
}
.wc-empty-cart-message .cart-empty::before { display: none; }
.woocommerce-cart .return-to-shop { margin-top: 24px; }

/* My Account */
.woocommerce-account .woocommerce:not(.ct-woo-unauthorized) {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: clamp(24px, 4vw, 64px);
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--yhdr-rule); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--yhdr-rule); }
.woocommerce-MyAccount-navigation a { display: block; padding: 14px 0; font-family: var(--yhdr-font-heading); font-weight: 500; color: var(--yhdr-text-muted); text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover { color: var(--yhdr-blue); }
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { float: none !important; width: auto !important; }

.ct-woo-unauthorized,
.woocommerce-account .u-columns { max-width: 560px; }
.woocommerce-account .u-columns.col2-set { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { width: auto !important; float: none !important; }
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
	margin: 0 !important;
	padding: clamp(24px, 3vw, 40px) !important;
	border: 1px solid var(--yhdr-rule) !important;
	border-top: 4px solid var(--yhdr-blue) !important;
	border-radius: 0 !important;
}
.woocommerce form.login .button { width: 100%; margin-top: 12px; }
.woocommerce .lost_password a { color: var(--yhdr-blue); }

@media (max-width: 800px) {
	.woocommerce-account .woocommerce:not(.ct-woo-unauthorized),
	.woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}
