/* Estilos que theme.json no cubre. Colores y tipografías viven en theme.json. */

/* ---------- Encabezado ---------- */

.carmine-topbar p {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
}

/* Franja superior con el mensaje en movimiento (assets/js/marquee.js
   duplica las frases para que el recorrido no tenga cortes). */
.carmine-topbar {
	overflow: hidden;
}

.carmine-topbar .carmine-marquee {
	flex-wrap: nowrap;
	gap: 0;
	width: max-content;
	margin: 0 auto;
}

/* marquee.js fija --carmine-marquee-slot: un tercio del ancho de la pantalla
   por mensaje (o lo que quepa en el celular). El padding es la separación
   mínima entre mensajes. */
.carmine-topbar .carmine-marquee > p {
	flex: none;
	box-sizing: border-box;
	justify-content: center;
	padding-inline: 2rem;
	white-space: nowrap;
}

.carmine-topbar .carmine-marquee > p {
	width: var(--carmine-marquee-slot, auto);
}

.carmine-topbar .carmine-marquee.is-ready {
	margin: 0;
	animation: carmine-marquee var(--carmine-marquee-duration, 30s) linear infinite;
}

.carmine-topbar:hover .carmine-marquee {
	animation-play-state: paused;
}

@keyframes carmine-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.carmine-topbar .carmine-marquee.is-ready {
		animation: none;
		margin: 0 auto;
	}

	.carmine-topbar .carmine-marquee > [aria-hidden="true"] {
		display: none;
	}
}

.carmine-topbar p::before {
	content: "";
	width: 1.35em;
	height: 1.35em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.5h12.5v10H1.5zM14 9h4.5l3.5 3.5v3H14z'/%3E%3Ccircle cx='5.5' cy='17.5' r='1.8'/%3E%3Ccircle cx='17.5' cy='17.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.5h12.5v10H1.5zM14 9h4.5l3.5 3.5v3H14z'/%3E%3Ccircle cx='5.5' cy='17.5' r='1.8'/%3E%3Ccircle cx='17.5' cy='17.5' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.carmine-header__row {
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}

.carmine-header__logo {
	margin: 0;
}

.carmine-search .wp-block-search__button {
	background: none;
	color: var(--wp--preset--color--contrast);
	border: 0;
	padding: 0.25rem;
}

.carmine-search .wp-block-search__button svg {
	width: 28px;
	height: 28px;
}

.carmine-cart .wc-block-mini-cart__button {
	color: var(--wp--preset--color--contrast);
	padding: 0.25rem;
}

.carmine-cart .wc-block-mini-cart__icon {
	width: 30px;
	height: 30px;
}

.carmine-nav__menu a:hover,
.carmine-nav__menu .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 0.3em;
}

/* La franja del menú (y su submenú) queda por encima del contenido, p. ej. de
   la lupa de la foto del producto, que WooCommerce pone con z-index 99. */
.carmine-nav {
	position: relative;
	z-index: 200;
}

/* Submenú de SHOP: se abre al pasar el cursor (o al tocar, ver nav.js) y
   queda pegado a la franja rosa (el color lo pone el bloque de navegación). */
.carmine-nav__menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
	top: calc(100% + 0.55rem);
	padding: 0.5rem 0;
	border: 0;
	box-shadow: 0 8px 20px rgb(0 0 0 / 8%);
}

/* Puente invisible entre "SHOP" y el submenú para que no se cierre al bajar
   el cursor. */
.carmine-nav__menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu > .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	inset: -0.6rem 0 100% 0;
}

.carmine-nav__menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.45rem 1.25rem;
}

.carmine-nav__menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--rosa-palido);
	text-decoration: none;
}

/* ---------- Banner principal ---------- */

.carmine-hero a {
	display: block;
}

.carmine-hero img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Fotos de la portada (3 columnas) ---------- */

.carmine-fotos .wp-block-image {
	margin: 0;
}

.carmine-fotos .wp-block-image a {
	display: block;
}

.carmine-fotos .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 455 / 564;
	object-fit: cover;
}

@media (max-width: 781px) {
	.carmine-fotos .wp-block-image img {
		aspect-ratio: 4 / 3;
	}
}

/* ---------- Tarjetas de producto ---------- */

.carmine-section > h2 {
	margin-bottom: var(--wp--preset--spacing--30);
}

.carmine-products {
	row-gap: var(--wp--preset--spacing--50);
}

.carmine-products .wc-block-components-product-image {
	margin-bottom: 0.6rem;
}

.carmine-products .wc-block-components-product-image img {
	aspect-ratio: 1;
	object-fit: cover;
}

.carmine-products .wp-block-post-title {
	margin: 0;
	font-weight: 400;
	line-height: 1.3;
}

.carmine-products .wc-block-components-product-price {
	margin: 0.1rem 0 0.4rem;
	color: var(--wp--preset--color--contrast);
}

.carmine-products .wp-block-button__link {
	padding: 0.1rem 0.9rem;
	border-radius: 6px;
	font-family: var(--wp--preset--font-family--serif);
	letter-spacing: 0.02em;
}

/* ---------- Ficha de producto ---------- */

.carmine-product__summary > * {
	margin-block: 0;
}

/* Título en mayúsculas espaciadas, alineado a la izquierda. */
.carmine-product__summary .carmine-product__title {
	margin-bottom: 0.6rem;
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Estrellas y número de reseñas (solo aparece cuando hay reseñas). */
.carmine-product__rating {
	margin-bottom: 0.3rem;
	font-size: var(--wp--preset--font-size--small);
}

.carmine-product__rating .wc-block-components-product-rating__stars {
	color: var(--wp--preset--color--contrast);
}

.carmine-product__summary .wp-block-woocommerce-product-price {
	padding: 0 0 1.2rem;
	border-bottom: 1px solid var(--wp--preset--color--borde);
	color: var(--wp--preset--color--contrast);
}

.carmine-product__summary .wp-block-woocommerce-product-price * {
	color: inherit;
}

/* En oferta: precio anterior tachado, precio actual y "Ahorra 10%". */
.carmine-product__summary .wp-block-woocommerce-product-price del {
	margin-right: 0.4rem;
	color: var(--wp--preset--color--gris);
}

.carmine-product__summary .wp-block-woocommerce-product-price ins {
	text-decoration: none;
}

.carmine-product__summary .carmine-saving {
	margin-left: 0.5rem;
	color: #b3261e;
	font-size: var(--wp--preset--font-size--small);
}

/* Etiquetas en mayúsculas espaciadas (COLOR, DESCRIPCIÓN). */
.carmine-label,
.carmine-add-to-cart table.variations th label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.carmine-label {
	padding: 1.2rem 0 0.4rem;
}

.carmine-add-to-cart {
	padding: 0 0 1rem;
}

.carmine-add-to-cart form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 1rem;
	margin: 0;
}

/* El clearfix de WooCommerce (::before/::after) cuenta como un elemento más de
   la fila y corre la cantidad hacia la derecha. */
.carmine-add-to-cart form.cart::before,
.carmine-add-to-cart form.cart::after,
.carmine-add-to-cart .woocommerce-variation-add-to-cart::before,
.carmine-add-to-cart .woocommerce-variation-add-to-cart::after {
	display: none !important;
}

/* En productos con variaciones: color (y demás opciones) primero, luego
   beneficios, cantidad y botón. */
.carmine-add-to-cart form.variations_form {
	flex-direction: column;
}

.carmine-add-to-cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.carmine-add-to-cart table.variations {
	width: 100%;
	margin: 1.2rem 0 0;
	border: 0;
}

.carmine-add-to-cart table.variations tr + tr th {
	padding-top: 1.2rem;
}

.carmine-add-to-cart table.variations th,
.carmine-add-to-cart table.variations td {
	display: block;
	padding: 0;
	text-align: left;
}

/* "COLOR — Rojo": product.js agrega el nombre de la opción elegida. */
.carmine-add-to-cart .carmine-option-name {
	margin-left: 0.4rem;
	letter-spacing: normal;
	text-transform: none;
	font-weight: 400;
	color: var(--wp--preset--color--gris);
}

.carmine-add-to-cart .carmine-option-name:not(:empty)::before {
	content: "— ";
}

/* Beneficios del producto (descripción corta), con ícono. */
.carmine-benefits {
	display: grid;
	gap: 0.55rem;
	margin: 1.4rem 0 0.4rem;
	padding: 0;
	list-style: none;
	flex-basis: 100%;
}

.carmine-benefits li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.carmine-benefits li::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='m7.5 12.3 3 3 6-6.3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='m7.5 12.3 3 3 6-6.3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.carmine-add-to-cart .single_variation_wrap {
	margin-top: 0.6rem;
}

.carmine-add-to-cart .reset_variations {
	display: none !important;
}

.carmine-add-to-cart .woocommerce-variation-price {
	display: none;
}

/* Selector de cantidad (ficha de producto y carrito) */
:is(.carmine-add-to-cart, .woocommerce-cart-form) .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--wp--preset--color--borde-oscuro);
	border-radius: 8px;
	overflow: hidden;
}

:is(.carmine-add-to-cart, .woocommerce-cart-form) .quantity .qty {
	width: 2.5rem;
	padding: 0;
	border: 0;
	text-align: center;
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
}

.woocommerce-cart-form .quantity .qty {
	font-size: var(--wp--preset--font-size--medium);
}

.woocommerce-cart-form .carmine-qty-btn {
	width: 2.25rem;
	min-height: 2.4rem;
}

:is(.carmine-add-to-cart, .woocommerce-cart-form) .quantity .qty::-webkit-outer-spin-button,
:is(.carmine-add-to-cart, .woocommerce-cart-form) .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.carmine-qty-btn {
	width: 2.75rem;
	height: 100%;
	min-height: 2.75rem;
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
}

.carmine-qty-btn:hover {
	background: var(--wp--preset--color--arena);
}

/* Botón "Añadir al carrito" con borde, como en el diseño */
.carmine-add-to-cart .single_add_to_cart_button.button {
	flex: 1;
	min-width: 12rem;
	padding: 0.55rem 1.5rem;
	border: 1px solid var(--wp--preset--color--borde-oscuro);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--rosa);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
}

.carmine-add-to-cart .single_add_to_cart_button.button:hover {
	background: var(--wp--preset--color--rosa);
	border-color: var(--wp--preset--color--rosa);
	color: var(--wp--preset--color--base);
}

.carmine-add-to-cart .single_add_to_cart_button.disabled {
	opacity: 0.6;
}

/* Círculos de color */
.carmine-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0.4rem 0 0.6rem;
}

.carmine-swatch {
	width: 2.4rem;
	height: 2.4rem;
	padding: 0;
	border: 3px solid var(--wp--preset--color--base);
	border-radius: 50%;
	background: var(--swatch, var(--wp--preset--color--rosa-claro));
	box-shadow: 0 0 0 1px var(--wp--preset--color--borde);
	cursor: pointer;
}

.carmine-swatch:hover {
	box-shadow: 0 0 0 1px var(--wp--preset--color--borde-oscuro);
}

.carmine-swatch[aria-pressed="true"] {
	box-shadow: 0 0 0 1.5px var(--wp--preset--color--contrast);
}

.carmine-swatch:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

/* Opciones de texto (p. ej. tamaño): botones rectangulares. */
.carmine-swatch.carmine-swatch--text {
	width: auto;
	height: auto;
	padding: 0.55rem 1rem;
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	box-shadow: none;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
}

.carmine-swatch.carmine-swatch--text:hover {
	border-color: var(--wp--preset--color--borde-oscuro);
	box-shadow: none;
}

.carmine-swatch.carmine-swatch--text[aria-pressed="true"] {
	border-color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--contrast);
}

.carmine-add-to-cart select.carmine-swatch-select {
	position: absolute !important;
	width: 1px !important;
	min-width: 0 !important;
	height: 1px !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.carmine-product__description {
	padding: 0;
}

/* Sin descripción, el bloque no se dibuja: ocultar también su etiqueta */
.carmine-product__summary > .carmine-label:last-child {
	display: none;
}

.carmine-add-to-cart table.variations,
.carmine-add-to-cart table.variations td {
	margin-bottom: 0;
	padding-bottom: 0;
}

.carmine-add-to-cart .carmine-swatches {
	margin-bottom: 0;
}

/* Galería: miniaturas en columna a la izquierda */
.carmine-product__gallery .woocommerce-product-gallery {
	display: grid;
	grid-template-columns: 5.5rem 1fr;
	gap: 1rem;
	align-items: start;
	width: 100% !important;
	float: none !important;
	margin: 0;
}

.carmine-product__gallery .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) {
	grid-template-columns: 1fr;
}

.carmine-product__gallery .flex-viewport,
.carmine-product__gallery .woocommerce-product-gallery__wrapper {
	grid-column: -2;
	grid-row: 1;
}

.carmine-product__gallery .flex-control-thumbs {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.carmine-product__gallery .flex-control-thumbs li {
	width: 100% !important;
	margin: 0 !important;
}

.carmine-product__gallery .flex-control-thumbs img {
	display: block;
	aspect-ratio: 1;
	object-fit: cover;
	opacity: 0.6;
	cursor: pointer;
}

.carmine-product__gallery .flex-control-thumbs img.flex-active,
.carmine-product__gallery .flex-control-thumbs img:hover {
	opacity: 1;
}

/* Productos destacados al pie de la ficha */
.carmine-featured {
	margin-top: var(--wp--preset--spacing--60);
}

.carmine-featured .carmine-featured__line {
	width: 100%;
	height: 1px;
	margin: 0 0 var(--wp--preset--spacing--50);
	border: 0;
	opacity: 1;
}

.carmine-featured > h2 {
	margin: 0 0 var(--wp--preset--spacing--30);
}

/* ---------- Pie de página ---------- */

.carmine-footer__cols {
	align-items: stretch;
}

.carmine-footer__col {
	padding-left: var(--wp--preset--spacing--40);
	border-left: 1px solid var(--wp--preset--color--borde-oscuro);
	min-height: 14rem;
}

.carmine-footer__title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	margin-bottom: var(--wp--preset--spacing--30);
}

.carmine-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 2;
}

/* ---------- Carrito y checkout ---------- */

.carmine-cart-page .woocommerce,
.carmine-checkout-page form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 25rem);
	column-gap: var(--wp--preset--spacing--50);
	align-items: start;
}

.carmine-cart-page .woocommerce > .woocommerce-notices-wrapper,
.carmine-checkout-page form.checkout > .woocommerce-NoticeGroup {
	grid-column: 1 / -1;
}

.carmine-cart-page .woocommerce:has(.wc-empty-cart-message) {
	display: block;
	text-align: center;
}

/* Tablas */
.carmine-cart-page table.shop_table,
.carmine-checkout-page table.shop_table {
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	margin: 0;
}

.carmine-cart-page table.shop_table :is(th, td),
.carmine-checkout-page table.shop_table :is(th, td) {
	padding: 0.9rem 0.5rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--borde);
	vertical-align: middle;
}

.carmine-cart-page table.shop_table thead th {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: var(--wp--preset--color--gris);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.carmine-cart-page .product-thumbnail img {
	width: 5.5rem;
	aspect-ratio: 1;
	object-fit: cover;
}

.carmine-cart-page .product-name a {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--medium);
}

.carmine-cart-page .product-name dl.variation {
	margin: 0.2rem 0 0;
	color: var(--wp--preset--color--gris);
	font-size: var(--wp--preset--font-size--x-small);
}

.carmine-cart-page a.remove {
	color: var(--wp--preset--color--gris) !important;
	font-size: 1.4rem;
	font-weight: 400;
}

.carmine-cart-page a.remove:hover {
	background: none;
	color: var(--wp--preset--color--cafe) !important;
}

.carmine-cart-page td.actions {
	border-bottom: 0 !important;
	text-align: right;
}

/* Recuadro de resumen (carrito) y de pedido (checkout) */
.carmine-cart-page .cart-collaterals .cart_totals,
.carmine-checkout-page #order_review,
.carmine-checkout-page #order_review_heading {
	box-sizing: border-box;
	float: none;
	width: 100%;
	padding: var(--wp--preset--spacing--40);
	border-radius: 12px;
	background: var(--wp--preset--color--rosa-palido);
}

.carmine-cart-page .cart-collaterals {
	position: sticky;
	top: 1rem;
}

.carmine-cart-page .cart_totals h2,
.carmine-checkout-page h3 {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
}

.carmine-cart-page .cart_totals table.shop_table,
.carmine-checkout-page #order_review table.shop_table {
	width: 100%;
}

.carmine-checkout-page #order_review table.shop_table :is(th, td):last-child {
	text-align: right;
}

.carmine-cart-page .cart_totals table.shop_table td {
	text-align: right;
}

.carmine-cart-page .cart_totals table.shop_table :is(th, td),
.carmine-checkout-page #order_review table.shop_table :is(th, td) {
	padding-inline: 0;
	border-bottom-color: var(--wp--preset--color--borde);
	background: none;
}

.carmine-cart-page .cart_totals th,
.carmine-checkout-page #order_review tfoot th {
	font-weight: 500;
}

.carmine-cart-page .order-total :is(th, td),
.carmine-checkout-page .order-total :is(th, td) {
	border-bottom: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--large);
}

.carmine-cart-page .woocommerce-shipping-totals td,
.carmine-checkout-page .woocommerce-shipping-totals td {
	font-size: var(--wp--preset--font-size--small);
}

/* Botones */
.carmine-cart-page .wc-proceed-to-checkout a.checkout-button,
.carmine-checkout-page #place_order {
	box-sizing: border-box;
	display: block;
	width: 100%;
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0.8rem 1.5rem;
	border: 0;
	border-radius: 8px;
	background: var(--wp--preset--color--rosa);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	text-align: center;
}

.carmine-cart-page .wc-proceed-to-checkout a.checkout-button:hover,
.carmine-checkout-page #place_order:hover {
	background: var(--wp--preset--color--cafe);
}

.carmine-cart-page button[name="update_cart"],
.carmine-cart-page .return-to-shop .button {
	padding: 0.5rem 1.25rem;
	border: 1px solid var(--wp--preset--color--borde-oscuro);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 400;
}

.carmine-cart-page button[name="update_cart"]:disabled {
	opacity: 0.45;
}

.carmine-cart-page .return-to-shop .button {
	border-color: var(--wp--preset--color--rosa);
	background: var(--wp--preset--color--rosa);
	color: var(--wp--preset--color--base);
}

.carmine-cart-page .cart-empty.woocommerce-info {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--large);
}

/* Checkout: datos a la izquierda, pedido y pago a la derecha */
.carmine-checkout-page #customer_details {
	grid-column: 1;
	grid-row: 2 / span 3;
}

.carmine-checkout-page #customer_details :is(.col-1, .col-2) {
	float: none;
	width: 100%;
	max-width: none;
}

.carmine-checkout-page #customer_details .col-2 {
	margin-top: var(--wp--preset--spacing--40);
}

.carmine-checkout-page #order_review_heading {
	grid-column: 2;
	grid-row: 2;
	margin-bottom: 0;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) 0;
	border-radius: 12px 12px 0 0;
	background: var(--wp--preset--color--rosa-palido);
}

.carmine-checkout-page #order_review {
	grid-column: 2;
	grid-row: 3;
	padding-top: var(--wp--preset--spacing--20);
	border-radius: 0 0 12px 12px;
}

.carmine-checkout-page .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--wp--preset--spacing--30);
}

.carmine-checkout-page .woocommerce-billing-fields__field-wrapper > :empty {
	display: none;
}

.carmine-checkout-page .woocommerce-billing-fields__field-wrapper > * {
	grid-column: 1 / -1;
}

.carmine-checkout-page .woocommerce-billing-fields__field-wrapper .form-row {
	width: auto;
	float: none;
	margin: 0 0 var(--wp--preset--spacing--30);
}

.carmine-checkout-page .woocommerce-billing-fields__field-wrapper :is(.form-row-first, .form-row-last) {
	grid-column: auto;
}

/* Campos (checkout y Mi cuenta) */
:is(.carmine-checkout-page, .woocommerce-account main) .form-row label {
	margin-bottom: 0.3rem;
	font-weight: 500;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

:is(.carmine-checkout-page, .woocommerce-account main) .form-row .required {
	color: var(--wp--preset--color--cafe);
	text-decoration: none;
}

:is(.carmine-checkout-page, .woocommerce-account main) :is(input.input-text, textarea, select),
:is(.carmine-checkout-page, .woocommerce-account main) .select2-container .select2-selection--single {
	width: 100%;
	min-height: 2.9rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--wp--preset--color--borde-oscuro);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.4;
}

:is(.carmine-checkout-page, .woocommerce-account main) .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
}

:is(.carmine-checkout-page, .woocommerce-account main) .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.6rem;
	transform: translateY(-50%);
}

:is(.carmine-checkout-page, .woocommerce-account main) :is(input.input-text, textarea):focus,
:is(.carmine-checkout-page, .woocommerce-account main) .select2-container--focus .select2-selection {
	border-color: var(--wp--preset--color--cafe);
	outline: 2px solid var(--wp--preset--color--rosa-claro);
	outline-offset: 0;
}

:is(.carmine-checkout-page, .woocommerce-account main) .woocommerce-invalid :is(input.input-text, .select2-selection) {
	border-color: #b3261e;
}

:is(.carmine-checkout-page, .woocommerce-account main) textarea {
	min-height: 7rem;
}

/* Pago */
.carmine-checkout-page #payment {
	margin-top: var(--wp--preset--spacing--30);
	border-radius: 0;
	background: none;
}

.carmine-checkout-page #payment ul.payment_methods {
	padding: 0 0 var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--borde);
}

.carmine-checkout-page #payment ul.payment_methods > li > label {
	font-weight: 500;
}

.carmine-checkout-page #payment div.payment_box {
	border-radius: 8px;
	background: var(--wp--preset--color--base);
}

.carmine-checkout-page #payment div.payment_box::before {
	border-bottom-color: var(--wp--preset--color--base);
}

.carmine-checkout-page #payment div.form-row.place-order {
	padding: var(--wp--preset--spacing--30) 0 0;
	margin: 0;
}

/* ---------- Mi cuenta ---------- */

.woocommerce-account main .woocommerce {
	max-width: 1000px;
	margin-inline: auto;
}

/* Acceso y "olvidé mi contraseña": formulario en un recuadro centrado */
.woocommerce-account main :is(form.woocommerce-form-login, form.woocommerce-form-register, form.lost_reset_password) {
	max-width: 26rem;
	margin: 0 auto var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40);
	border: 0;
	border-radius: 12px;
	background: var(--wp--preset--color--rosa-palido);
}

.woocommerce-account main .woocommerce > h2,
.woocommerce-account main #customer_login h2 {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	text-align: center;
}

.woocommerce-account main #customer_login.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: var(--wp--preset--spacing--40);
}

.woocommerce-account main #customer_login :is(.u-column1, .u-column2) {
	float: none;
	width: auto;
}

.woocommerce-account main .woocommerce-form-login__rememberme {
	display: block;
	margin-bottom: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce-account main .lost_password,
.woocommerce-account main form.lost_reset_password > p:first-child {
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce-account main :is(.woocommerce-button, button.button, a.button) {
	padding: 0.65rem 1.5rem;
	border: 0;
	border-radius: 8px;
	background: var(--wp--preset--color--rosa);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

.woocommerce-account main :is(.woocommerce-button, button.button, a.button):hover {
	background: var(--wp--preset--color--cafe);
	color: var(--wp--preset--color--base);
}

.woocommerce-account main :is(form.woocommerce-form-login, form.lost_reset_password) button.button {
	width: 100%;
}

/* Mostrar contraseña: ícono de ojo en SVG (la fuente de íconos de WooCommerce no carga) */
.woocommerce form .password-input {
	position: relative;
	display: block;
}

.woocommerce form .show-password-input {
	position: absolute;
	top: 50%;
	right: 0.75rem;
	width: 1.3rem;
	height: 1.3rem;
	transform: translateY(-50%);
	background: var(--wp--preset--color--gris);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	cursor: pointer;
}

.woocommerce form .show-password-input.display-password {
	background: var(--wp--preset--color--cafe);
}

.woocommerce form .show-password-input::after {
	display: none;
}

/* Con sesión iniciada: menú a la izquierda, contenido a la derecha */
.woocommerce-account main .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 14rem minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}

.woocommerce-account main :is(.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) {
	float: none;
	width: auto;
}

.woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: var(--wp--preset--spacing--20);
	list-style: none;
	border-radius: 12px;
	background: var(--wp--preset--color--rosa-palido);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--medium);
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: 8px;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	background: var(--wp--preset--color--base);
	text-decoration: none;
}

.woocommerce-account main table.shop_table {
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
}

.woocommerce-account main table.shop_table :is(th, td) {
	padding: 0.8rem 0.5rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--borde);
}

.woocommerce-account main .woocommerce-Address {
	padding: var(--wp--preset--spacing--30);
	border-radius: 12px;
	background: var(--wp--preset--color--rosa-palido);
}

/* ---------- Páginas de texto (Sobre nosotros, Términos, Privacidad, FAQ) ---------- */

.page .wp-block-post-content > :is(p, ul, ol, details),
.page .wp-block-post-content .carmine-faq p {
	font-size: var(--wp--preset--font-size--medium);
}

.wp-block-post-content :is(ul, ol).wp-block-list {
	padding-left: 1.25rem;
}

.wp-block-post-content .wp-block-list li + li {
	margin-top: 0.5rem;
}

.wp-block-post-content a {
	color: var(--wp--preset--color--cafe);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wp-block-post-content :is(.wp-block-button__link, .wp-element-button) {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

/* Preguntas frecuentes como desplegables */
.carmine-faq {
	margin: 0;
	border-bottom: 1px solid var(--wp--preset--color--borde);
}

.carmine-faq:first-of-type {
	border-top: 1px solid var(--wp--preset--color--borde);
}

.carmine-faq summary {
	position: relative;
	padding: 1.1rem 2.5rem 1.1rem 0;
	list-style: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--large);
}

.carmine-faq summary::-webkit-details-marker {
	display: none;
}

.carmine-faq summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--wp--preset--color--cafe);
	font-size: 1.5rem;
	line-height: 1;
}

.carmine-faq[open] summary::after {
	content: "−";
}

.carmine-faq > :not(summary) {
	margin: 0 0 1.1rem;
}

/* Contáctanos */
.carmine-contact {
	max-width: 60rem;
}

.wp-block-post-content .wp-block-button__link {
	font-size: var(--wp--preset--font-size--medium);
	padding: 0.7rem 1.75rem;
}

.carmine-contact .wp-block-column {
	overflow-wrap: anywhere;
	padding: var(--wp--preset--spacing--30);
	border-radius: 12px;
	background: var(--wp--preset--color--rosa-palido);
	text-align: center;
}

.carmine-contact h2 {
	margin-top: 0;
}

/* Búsqueda general */
.carmine-search-results > li {
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--borde);
}

/* ---------- Avisos de WooCommerce ---------- */

:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	border-top-color: var(--wp--preset--color--rosa);
	border-radius: 8px;
	background: var(--wp--preset--color--rosa-palido);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--serif);
}

:is(.woocommerce-message, .woocommerce-info)::before {
	color: var(--wp--preset--color--cafe);
}

.woocommerce-error {
	border-top-color: #b3261e;
}

/* Avisos de WooCommerce 11 ("añadido al carrito", "carrito actualizado", errores).
   "body" les da prioridad sobre la hoja de WooCommerce, que carga después. */
body .wc-block-components-notice-banner {
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
}

body .wc-block-components-notice-banner:is(.is-success, .is-info) {
	background-color: var(--wp--preset--color--rosa-palido);
	border-color: var(--wp--preset--color--rosa);
}

body .wc-block-components-notice-banner:is(.is-success, .is-info) > svg {
	background-color: var(--wp--preset--color--cafe);
	fill: var(--wp--preset--color--base);
}

body .wc-block-components-notice-banner.is-error {
	background-color: #fdf3f2;
	border-color: #b3261e;
}

body .wc-block-components-notice-banner.is-error > svg {
	background-color: #b3261e;
	fill: var(--wp--preset--color--base);
}

body .wc-block-components-notice-banner a,
body .wc-block-components-notice-banner .wc-forward {
	color: var(--wp--preset--color--cafe);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	background: none;
	border: 0;
	padding: 0;
	font-weight: 500;
}

/* Campos válidos: sin el borde verde de WooCommerce, quedan con el borde normal */
body.woocommerce-checkout form .form-row.woocommerce-validated :is(input.input-text, select),
body.woocommerce-checkout form .form-row.woocommerce-validated .select2-container:not(.select2-container--open) .select2-selection,
body.woocommerce-account form .form-row.woocommerce-validated input.input-text {
	border-color: var(--wp--preset--color--borde-oscuro);
}

body.woocommerce-checkout form .form-row.woocommerce-invalid :is(input.input-text, select),
body.woocommerce-checkout form .form-row.woocommerce-invalid .select2-container:not(.select2-container--open) .select2-selection,
body.woocommerce-account form .form-row.woocommerce-invalid input.input-text {
	border-color: #b3261e;
}

body.woocommerce-checkout form .form-row.woocommerce-invalid label {
	color: #b3261e;
}

/* ---------- Celular ---------- */

@media (max-width: 781px) {
	.carmine-header__logo img {
		width: 160px !important;
	}

	.carmine-nav {
		padding-top: 0.25rem !important;
		padding-bottom: 0.25rem !important;
	}

	.carmine-product__gallery .woocommerce-product-gallery {
		grid-template-columns: 1fr;
	}

	.carmine-product__gallery .flex-control-thumbs {
		grid-row: 2;
		flex-direction: row;
	}

	.carmine-product__gallery .flex-control-thumbs li {
		width: 4.5rem !important;
	}

	.carmine-cart-page .woocommerce,
	.carmine-checkout-page form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.carmine-cart-page .cart-collaterals {
		position: static;
		margin-top: var(--wp--preset--spacing--40);
	}

	.carmine-checkout-page :is(#customer_details, #order_review_heading, #order_review) {
		grid-column: 1;
		grid-row: auto;
	}

	.carmine-checkout-page #order_review_heading {
		margin-top: var(--wp--preset--spacing--40);
	}

	.carmine-checkout-page .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	.carmine-checkout-page .woocommerce-billing-fields__field-wrapper :is(.form-row-first, .form-row-last) {
		grid-column: 1 / -1;
	}

	.carmine-cart-page table.shop_table_responsive tr td {
		padding-inline: 0;
	}

	.woocommerce-account main .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
	}

	.carmine-footer__col {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--borde);
		padding: var(--wp--preset--spacing--30) 0 0;
		min-height: 0;
	}
}
