/* Base WooCommerce compartida: controles, mensajes y accesibilidad. */

.woocommerce #main,
.woocommerce-page #main {
	min-height: 60vh;
}

.woocommerce a,
.woocommerce a:visited {
	color: var(--ldb-black);
}

.woocommerce a:hover {
	color: var(--ldb-pink);
}

.woocommerce div.product form.cart .quantity .qty,
.woocommerce-cart .quantity .qty {
	min-height: 48px;
	border: var(--ldb-border-thin) solid var(--ldb-black);
	border-radius: var(--ldb-radius-sm);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	min-height: 48px;
	font-family: var(--ldb-font-functional);
	border: var(--ldb-border-thin) solid var(--ldb-black);
	border-radius: var(--ldb-radius-sm);
	color: var(--ldb-cream);
	background: var(--ldb-black);
	font-weight: 800;
	text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	color: var(--ldb-black);
	background: var(--ldb-pink);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--ldb-radius-sm);
	border-color: var(--ldb-black);
	background: var(--ldb-yellow);
	color: var(--ldb-black);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	color: var(--ldb-black);
}

.ldb-commerce-flow #main article {
	width: min(100% - 2rem, var(--ldb-container));
	margin-inline: auto;
	padding-block: clamp(2rem, 5vw, 4.5rem);
}

.ldb-commerce-flow #main article > .entry-header,
.ldb-commerce-flow #main article > .page-header {
	margin-bottom: var(--ldb-space-sm);
}

.ldb-commerce-flow #main h1 {
	margin: 0;
	font-family: var(--ldb-font-display);
	font-size: clamp(3rem, 8vw, 6.75rem);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.ldb-commerce-intro {
	display: flex;
	align-items: baseline;
	gap: var(--ldb-space-md);
	margin: 0 0 clamp(1.5rem, 4vw, 3rem);
	padding-bottom: var(--ldb-space-md);
	border-bottom: var(--ldb-border-thin) solid var(--ldb-black);
}

.ldb-commerce-intro p {
	margin: 0;
}

.ldb-commerce-intro__kicker {
	flex: 0 0 auto;
	padding: 0.35rem 0.7rem;
	border: var(--ldb-border-thin) solid var(--ldb-black);
	background: var(--ldb-yellow);
	font-size: var(--ldb-text-xs);
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wc-block-components-button,
.wc-block-components-button:not(.is-link) {
	min-height: 52px;
	border: var(--ldb-border-thin) solid var(--ldb-black);
	border-radius: var(--ldb-radius-sm);
	background: var(--ldb-black);
	box-shadow: none;
	color: var(--ldb-cream);
	font-family: var(--ldb-font-functional);
	font-size: var(--ldb-text-sm);
	font-weight: 900;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible {
	background: var(--ldb-pink);
	color: var(--ldb-black);
}

.wc-block-components-button.is-link {
	min-height: 44px;
	border: 0;
	background: transparent;
	color: var(--ldb-black);
	font-weight: 800;
	text-transform: none;
}

.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-select select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	min-height: 52px;
	border: var(--ldb-border-thin) solid var(--ldb-black);
	border-radius: var(--ldb-radius-sm);
	background: #ffffff;
	color: var(--ldb-black);
	font: 600 var(--ldb-text-base) / 1.3 var(--ldb-font-functional);
}

.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--ldb-pink);
	box-shadow: 0 0 0 2px var(--ldb-pink);
	outline: 0;
}

.wc-block-components-checkbox input[type="checkbox"],
.wc-block-components-radio-control__input,
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"] {
	accent-color: var(--ldb-pink);
}

.wc-block-components-notice-banner,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	padding: 1rem 1rem 1rem 3.25rem;
	border: var(--ldb-border-thin) solid var(--ldb-black);
	border-left-width: 8px;
	border-radius: var(--ldb-radius-sm);
	background: var(--ldb-yellow);
	box-shadow: none;
	color: var(--ldb-black);
}

.wc-block-components-notice-banner::before {
	content: "i";
	position: absolute;
	top: 0.9rem;
	left: 1rem;
	display: grid;
	place-items: center;
	width: 1.45rem;
	height: 1.45rem;
	border: 2px solid currentcolor;
	border-radius: 50%;
	font-weight: 900;
}

.wc-block-components-notice-banner.is-success,
.woocommerce-message {
	border-left-color: #147a42;
	background: #e8f7ee;
}

.wc-block-components-notice-banner.is-error,
.woocommerce-error {
	border-left-color: var(--ldb-error);
	background: #fff1ef;
}

.wc-block-components-notice-banner.is-error::before {
	content: "!";
}

.wc-block-components-validation-error,
.wc-block-components-validation-error p,
.woocommerce-invalid label,
.woocommerce-invalid .required {
	color: var(--ldb-error);
	font-weight: 750;
}

.wc-block-components-text-input.has-error input,
.wc-block-components-select.has-error select,
.woocommerce-invalid input.input-text,
.woocommerce-invalid select {
	border-color: var(--ldb-error);
	box-shadow: 0 0 0 1px var(--ldb-error);
}

@media (max-width: 640px) {
	.ldb-commerce-flow #main article {
		width: min(100% - 1rem, var(--ldb-container));
		padding-block: 1.75rem 3rem;
	}

	.ldb-commerce-flow #main h1 {
		font-size: clamp(2.8rem, 18vw, 4.4rem);
	}

	.ldb-commerce-intro {
		display: grid;
		gap: var(--ldb-space-sm);
	}

	.ldb-commerce-intro__kicker {
		justify-self: start;
	}
}
