/*
Theme Name: Pescamania
Theme URI: https://pescamania.cl
Author: Pescamania
Description: Tema de bloques liviano para pescamania.cl: contenido de pesca y camping primero, tienda WooCommerce integrada.
Version: 0.9.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pescamania
WC requires at least: 9.0
WC tested up to: 11.2
*/

/* =========================================================================
   Base
   ========================================================================= */

:root {
	/* Bordes de los formularios de WooCommerce (pago, cuenta, carrito): gris claro en vez de su casi negro */
	--wc-form-border-color: #d6dad5;
	--wc-form-border-radius: 10px;
	--pm-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--pm-radius: var(--wp--custom--radius--card, 12px);
	--pm-shadow-sm: 0 1px 2px rgb(10 10 10 / 0.06), 0 2px 8px rgb(10 10 10 / 0.05);
	--pm-shadow-md: 0 10px 30px -10px rgb(10 10 10 / 0.25);
	--pm-topbar-h: 2.25rem;
}

:where(body) {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
	transition: color 0.2s ease;
}

::selection {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

:where(.wp-site-blocks) :focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

img {
	height: auto;
}

/* Los navegadores no heredan la fuente en botones y campos: así todo usa Poppins. */
button,
input,
select,
textarea,
optgroup {
	font-family: inherit;
}

/* =========================================================================
   Botones
   ========================================================================= */

.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--pm-ease), box-shadow 0.2s ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--pm-shadow-md);
}

.wp-element-button:active,
.wp-block-button__link:active {
	transform: translateY(0);
	box-shadow: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border-width: 2px;
	background: transparent;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-btn-arrow .wp-block-button__link::after,
.pm-link-arrow::after {
	content: "→";
	display: inline-block;
	margin-left: 0.5em;
	transition: transform 0.25s var(--pm-ease);
}

.pm-btn-arrow .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

.pm-btn-ghost .wp-block-button__link {
	color: var(--wp--preset--color--base) !important;
	border-color: rgb(255 255 255 / 0.7) !important;
}

.pm-btn-ghost .wp-block-button__link:hover {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--wp--preset--color--base) !important;
}

/* =========================================================================
   Encabezado
   ========================================================================= */

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--pm-topbar-h) * -1);
	z-index: 100;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: calc(var(--pm-topbar-h) * -1 + var(--wp-admin--admin-bar--height, 32px));
}

/* Sin espacio entre el encabezado y el contenido */
.wp-site-blocks > header.wp-block-template-part + * {
	margin-block-start: 0 !important;
}

.pm-topbar {
	height: var(--pm-topbar-h);
	padding-block: 0 !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	overflow: hidden;
}

.pm-topbar__items {
	line-height: 1;
}

.pm-topbar__items {
	gap: 0 !important;
}

.pm-topbar__items p {
	margin: 0;
	white-space: nowrap;
}

.pm-topbar__items p + p::before {
	content: "•";
	margin: 0 0.9rem;
	opacity: 0.55;
}

/* El efecto vidrio va en una capa de fondo (::before): si se pone en el propio encabezado, el menú móvil
   (posición fija) quedaría atrapado dentro del encabezado en vez de cubrir la pantalla. */
.pm-header {
	position: relative;
	isolation: isolate;
	background: transparent !important;
	border-bottom: 1px solid rgb(255 255 255 / 0.06);
}

.pm-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgb(10 10 10 / 0.92);
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
}

.pm-header__logo img {
	display: block;
	transition: opacity 0.2s ease;
}

.pm-header__logo a:hover img {
	opacity: 0.85;
}

/* Menú: subrayado animado */
.pm-nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.35rem;
	letter-spacing: 0.01em;
}

.pm-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--wp--preset--color--accent);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--pm-ease);
}

.pm-nav .wp-block-navigation-item__content:hover::after,
.pm-nav .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

/* Íconos del encabezado: todos de 42 x 42 y centrados */
.pm-header__actions {
	gap: 0.25rem !important;
}

.pm-header .pm-header__actions > *,
.pm-header .pm-icon-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 42px !important;
	height: 42px !important;
	box-sizing: border-box;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 50%;
	color: var(--wp--preset--color--base);
	line-height: 0;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pm-header__actions > *:hover,
.pm-icon-btn:hover {
	background: rgb(255 255 255 / 0.1);
	color: var(--wp--preset--color--accent);
}

.pm-header__actions > * a,
.pm-header__actions > * button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0 !important;
	margin: 0;
	border: 0;
	background: none !important;
	color: inherit !important;
	box-shadow: none !important;
	transform: none !important;
}

.pm-header__actions svg {
	width: 22px !important;
	height: 22px !important;
	display: block;
}

.pm-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--contrast) !important;
	font-weight: 700;
	top: -4px;
	right: -4px;
}

.pm-header .wc-block-mini-cart__quantity-badge {
	position: relative;
	display: inline-flex;
}

.pm-header .wp-block-navigation__responsive-container-open {
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
}

.pm-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 2rem;
}

.pm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.75rem;
	padding-block: 0.5rem;
}

/* Menú: mega menú "Marcas" (inc/marcas.php arma los enlaces). En escritorio, panel con una columna de texto y la
   grilla de logos en fichas blancas; en el menú del celular, solo los nombres y plegado hasta tocar "Marcas". */
@media (min-width: 600px) {
	.pm-nav .pm-marcas-menu {
		position: static;
	}

	.pm-nav .pm-marcas-menu > .pm-mega {
		left: 50% !important;
		top: calc(100% + 0.25rem) !important;
		display: grid !important;
		grid-template-columns: 13.5rem repeat(4, minmax(0, 8.75rem));
		gap: 0.75rem;
		width: max-content !important;
		max-width: calc(100vw - 2rem);
		min-width: 0 !important;
		box-sizing: border-box;
		padding: 1.25rem !important;
		border: 1px solid rgb(255 255 255 / 0.12) !important;
		border-radius: 16px;
		background: var(--wp--preset--color--contrast) !important;
		box-shadow: 0 30px 60px -20px rgb(0 0 0 / 0.65);
		transform: translate(-50%, 6px);
		transition: opacity 0.2s ease, transform 0.25s var(--pm-ease), visibility 0.2s;
	}

	.pm-nav .pm-marcas-menu:hover > .pm-mega,
	.pm-nav .pm-marcas-menu:focus-within > .pm-mega,
	.pm-nav .pm-marcas-menu > button[aria-expanded="true"] ~ .pm-mega {
		transform: translate(-50%, 0);
	}

	/* Puente invisible entre "Marcas" y el panel, para que no se cierre al bajar el mouse */
	.pm-nav .pm-marcas-menu > .pm-mega::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: 1rem;
	}

	.pm-mega__intro {
		grid-row: 1 / span 2;
		display: flex;
		flex-direction: column;
		padding: 0.35rem 1rem 0.35rem 0.25rem;
		border-right: 1px solid rgb(255 255 255 / 0.1);
		margin-right: 0.5rem;
	}

	.pm-mega__intro p {
		margin: 0;
	}

	.pm-mega__eyebrow {
		color: var(--wp--preset--color--accent);
		font-size: 0.72rem;
		font-weight: 700;
		letter-spacing: 0.14em;
		text-transform: uppercase;
	}

	.pm-mega__title {
		margin-top: 0.35rem !important;
		font-family: var(--wp--preset--font-family--heading);
		font-size: 1.25rem;
		font-weight: 700;
		line-height: 1.2;
	}

	.pm-mega__text {
		margin-top: 0.5rem !important;
		color: rgb(255 255 255 / 0.65);
		font-size: 0.85rem;
		line-height: 1.5;
	}

	.pm-mega__all {
		margin-top: auto;
		padding-top: 1rem;
		color: var(--wp--preset--color--accent) !important;
		font-size: 0.85rem;
		font-weight: 700;
		text-decoration: none;
	}

	.pm-mega__all:hover {
		text-decoration: underline;
	}

	.pm-nav .pm-mega .pm-mega__link {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		gap: 0.15rem;
		padding: 0.4rem !important;
		border-radius: 12px;
		transition: background-color 0.2s ease;
	}

	.pm-nav .pm-mega .pm-mega__link::after {
		content: none;
	}

	.pm-nav .pm-mega .pm-mega__link:hover {
		background: rgb(255 255 255 / 0.07);
	}

	.pm-mega__logo {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 3.75rem;
		margin-bottom: 0.4rem;
		padding: 0.6rem 0.75rem;
		box-sizing: border-box;
		border-radius: 8px;
		background: #fff;
		transition: transform 0.3s var(--pm-ease), box-shadow 0.3s var(--pm-ease);
	}

	.pm-mega__link:hover .pm-mega__logo {
		transform: translateY(-2px);
		box-shadow: 0 0 0 2px var(--wp--preset--color--accent);
	}

	.pm-mega__logo img {
		display: block;
		width: auto;
		height: auto;
		max-width: 100%;
		max-height: 100%;
	}

	.pm-mega__name {
		font-size: 0.9rem;
		font-weight: 700;
		line-height: 1.25;
	}

	.pm-mega__count {
		color: rgb(255 255 255 / 0.55);
		font-size: 0.78rem;
		font-weight: 500;
	}
}

@media (min-width: 600px) and (max-width: 1100px) {
	.pm-nav .pm-marcas-menu > .pm-mega {
		grid-template-columns: repeat(4, minmax(0, 8.75rem));
	}

	.pm-mega__intro {
		display: none !important;
	}
}

.pm-marca-texto {
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
}

/* Menú del celular: "Marcas" parte plegado y se abre al tocarlo (assets/js/menu.js); solo nombres */
@media (max-width: 599px) {
	/* "Marcas" y la flecha en una fila centrada; la lista abajo, a todo el ancho */
	.pm-header .is-menu-open li.pm-marcas-menu {
		flex-direction: row !important;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center !important;
	}

	.pm-header .pm-marcas-menu > .wp-block-navigation-submenu__toggle {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 2.5rem;
		height: 2.5rem;
		margin: 0 0 0 0.15rem !important;
		padding: 0 !important;
		border: 0;
		background: none;
		color: inherit;
		cursor: pointer;
	}

	.pm-header .pm-marcas-menu > .wp-block-navigation-submenu__toggle svg {
		display: block !important;
		width: 18px;
		height: 18px;
		stroke: currentColor;
		transform: none !important;
		transition: transform 0.25s var(--pm-ease);
	}

	/* WordPress gira la flecha porque da el submenú por abierto; aquí manda .pm-abierto */
	.pm-header .pm-marcas-menu.pm-abierto > .wp-block-navigation-submenu__toggle svg {
		transform: rotate(180deg) !important;
	}

	.pm-header .pm-marcas-menu > .pm-mega {
		display: none !important;
		padding: 0.25rem 0 0.75rem !important;
		border: 0 !important;
		background: none !important;
	}

	.pm-header .pm-marcas-menu.pm-abierto > .pm-mega {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		flex-basis: 100%;
	}

	.pm-header .pm-mega__intro,
	.pm-header .pm-mega__logo,
	.pm-header .pm-mega__count {
		display: none;
	}

	.pm-header .pm-mega .pm-mega__link {
		font-size: 1.1rem !important;
		padding-block: 0.4rem !important;
		opacity: 0.85;
	}
}

@media (max-width: 599px) {
	:root {
		--pm-topbar-h: 2.25rem;
	}

	.pm-topbar__items p:nth-child(n + 3),
	.pm-topbar__items p:nth-child(2)::before {
		display: none;
	}

	.pm-topbar__items p:nth-child(2) {
		margin-left: 0.9rem;
	}

	.pm-header__logo img {
		width: 138px !important;
	}

	/* Hamburguesa a la izquierda, logo al centro, íconos a la derecha */
	.pm-header__inner {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		gap: 0.25rem !important;
	}

	.pm-header__inner > .pm-nav {
		order: -1;
		justify-self: start;
	}

	.pm-header__inner > .pm-header__logo {
		justify-self: center;
	}

	.pm-header__inner > .pm-header__actions {
		justify-self: end;
	}

	.pm-header .pm-header__actions > *,
	.pm-header .pm-icon-btn {
		width: 38px !important;
		height: 38px !important;
	}
}

/* =========================================================================
   Secciones, títulos y animaciones
   ========================================================================= */

.pm-eyebrow {
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pm-eyebrow--line {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
}

.pm-eyebrow--line::before {
	content: "";
	width: 1.75rem;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}

.pm-highlight {
	color: var(--wp--preset--color--accent);
	background: linear-gradient(transparent 62%, rgb(46 219 83 / 0.22) 62%);
	padding-inline: 0.05em;
}

/* Aparición suave al hacer scroll (solo navegadores que lo soportan; los demás muestran todo normal). */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.pm-reveal {
			animation: pm-reveal linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 35%;
		}
	}
}

@keyframes pm-reveal {
	from {
		opacity: 0;
		transform: translateY(40px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes pm-fade-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* =========================================================================
   Portada (hero): slider con un slide de foto (apertura de temporada) y otro sobre ondas de agua que se abren
   desde el centro.
   Solo se animan transform y opacidad; el alto es fijo, así que no hay saltos (CLS 0).
   ========================================================================= */

.pm-hero {
	--pm-hero-ink: #0e1210;
	--pm-hero-green: #007032;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	display: grid;
	place-items: center;
	min-height: clamp(500px, 72vh, 640px);
	margin-block: 0;
	padding: 4rem max(16px, 1.25rem) 5rem;
	background: radial-gradient(110% 80% at 50% 100%, #e1ebe1 0%, #eef2ec 60%);
	color: var(--pm-hero-ink);
	text-align: center;
}

/* Ondas: anillos del mismo color del fondo con luz y sombra suaves (efecto relieve) que crecen y se desvanecen,
   como al tirar una piedra al agua. Idea de un CodePen de Emmijozzy; aquí se anima transform en vez de width/height,
   así lo hace la tarjeta gráfica sin recalcular la página. */
.pm-hero__ripples {
	position: absolute;
	inset: 0;
	z-index: -1;
	display: grid;
	place-items: center;
	pointer-events: none;
}

.pm-hero__ripples span {
	grid-area: 1 / 1;
	width: min(150vw, 1400px);
	aspect-ratio: 1;
	box-sizing: border-box;
	border: 16px solid #eef2ec;
	border-radius: 50%;
	box-shadow:
		inset 8px 8px 18px rgb(0 70 30 / 0.2),
		8px 8px 18px rgb(0 70 30 / 0.2),
		inset -8px -8px 18px rgb(255 255 255 / 0.95),
		-8px -8px 18px rgb(255 255 255 / 0.95);
	filter: blur(3px);
	opacity: 0;
	transform: scale(0.04);
	animation: pm-hero-ripple 10s cubic-bezier(0, 0.2, 0.8, 1) infinite;
	will-change: transform, opacity;
}

.pm-hero__ripples span:nth-child(2) { animation-delay: -2.5s; }
.pm-hero__ripples span:nth-child(3) { animation-delay: -5s; }
.pm-hero__ripples span:nth-child(4) { animation-delay: -7.5s; }

@keyframes pm-hero-ripple {
	0% {
		opacity: 1;
		transform: scale(0.04);
	}

	100% {
		opacity: 0;
		transform: scale(1);
	}
}

/* Movimiento reducido: los anillos quedan quietos, a distintos tamaños */
@media (prefers-reduced-motion: reduce) {
	.pm-hero__ripples span { opacity: 0.6; }
	.pm-hero__ripples span:nth-child(1) { transform: scale(0.25); }
	.pm-hero__ripples span:nth-child(2) { transform: scale(0.45); }
	.pm-hero__ripples span:nth-child(3) { transform: scale(0.65); opacity: 0.4; }
	.pm-hero__ripples span:nth-child(4) { display: none; }
}

.pm-hero__slides {
	display: grid;
	width: 100%;
	max-width: 780px;
}

.pm-hero__slide {
	grid-area: 1 / 1;
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 1rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px);
	transition: opacity 0.6s ease, transform 0.6s var(--pm-ease), visibility 0s linear 0.6s;
}

.pm-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity 0.6s ease 0.1s, transform 0.7s var(--pm-ease) 0.1s, visibility 0s;
}

.pm-hero__slide > * {
	margin: 0;
}

.pm-hero__eyebrow {
	color: var(--pm-hero-green);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pm-hero__title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(2.2rem, 5.6vw, 4.2rem);
	line-height: 0.98;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

.pm-hero__title span {
	color: var(--pm-hero-green);
}

.pm-hero__lead {
	max-width: 52ch;
	color: #48504b;
	font-size: clamp(1rem, 1.6vw, 1.1rem);
	line-height: 1.6;
}

.pm-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin-top: 0.5rem !important;
}

.pm-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 13rem;
	min-height: 2.75rem;
	padding: 0.5rem 2.75rem;
	border: 1.5px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.pm-hero__btn:hover {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-hero__btn--ghost {
	border-color: var(--pm-hero-ink);
	background: transparent;
	color: var(--pm-hero-ink);
}

.pm-hero__controls {
	position: absolute;
	left: 50%;
	bottom: 1rem;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.pm-hero__controls[hidden] {
	display: none;
}

.pm-hero__dot,
.pm-hero__arrow {
	display: grid;
	place-items: center;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--pm-hero-ink);
	cursor: pointer;
}

.pm-hero__arrow {
	width: 2.25rem;
	font-size: 1.4rem;
	opacity: 0.6;
}

.pm-hero__arrow:hover {
	opacity: 1;
}

/* La barra visible mide 4 px, pero el área para tocar es de 44 px. Encima va la barra verde de progreso. */
.pm-hero__dot {
	position: relative;
	width: 2.75rem;
}

.pm-hero__dot::before,
.pm-hero__dot::after {
	content: "";
	grid-area: 1 / 1;
	width: 2.25rem;
	height: 4px;
	border-radius: 999px;
	background: rgb(14 18 16 / 0.2);
}

.pm-hero__dot::after {
	background: var(--pm-hero-green);
	transform: scaleX(0);
	transform-origin: left;
}

.pm-hero__dot.is-active::after {
	animation: pm-hero-progress 6s linear forwards;
}

.pm-hero.is-paused .pm-hero__dot.is-active::after {
	animation-play-state: paused;
}

.pm-hero__dot:focus-visible,
.pm-hero__arrow:focus-visible,
.pm-hero__btn:focus-visible {
	outline: 2px solid var(--pm-hero-ink);
	outline-offset: 2px;
}

/* Slides con foto (data-foto): la foto cubre todo el hero con un velo oscuro y un acercamiento lento; mientras se
   ve, el hero va en modo oscuro (.is-oscuro): textos en blanco y controles claros. */
.pm-hero__foto {
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}

.pm-hero__foto::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(90% 75% at 50% 50%, rgb(8 10 9 / 0.62) 0%, rgb(8 10 9 / 0.35) 100%),
		linear-gradient(180deg, rgb(8 10 9 / 0.25) 0%, rgb(8 10 9 / 0) 30%, rgb(8 10 9 / 0.45) 100%);
}

.pm-hero__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 58% 40%;
	transform: scale(1.08);
	transition: transform 9s ease-out;
}

.pm-hero__foto.is-active {
	opacity: 1;
}

.pm-hero__foto.is-active img {
	transform: scale(1);
}

.pm-hero.is-oscuro {
	--pm-hero-ink: #fff;
	--pm-hero-green: #2edb53;
}

.pm-hero.is-oscuro .pm-hero__ripples {
	opacity: 0;
}

.pm-hero__ripples {
	transition: opacity 0.8s ease;
}

.pm-hero.is-oscuro .pm-hero__lead {
	color: rgb(255 255 255 / 0.86);
}

.pm-hero.is-oscuro .pm-hero__title,
.pm-hero.is-oscuro .pm-hero__lead {
	text-shadow: 0 2px 24px rgb(0 0 0 / 0.45);
}

.pm-hero.is-oscuro .pm-hero__dot::before {
	background: rgb(255 255 255 / 0.35);
}

/* Contador "Faltan N días" de la apertura de temporada */
.pm-hero__cuenta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.4rem !important;
	padding: 0.5rem 1.1rem;
	border: 1px solid rgb(255 255 255 / 0.35);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.1);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 1rem;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.pm-hero__cuenta::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #2edb53;
	box-shadow: 0 0 0 4px rgb(46 219 83 / 0.25);
}

.pm-hero__cuenta[hidden] {
	display: none;
}

/* Entrada de los textos: cada línea del slide activo sube y aparece, una tras otra. */
.pm-hero__slide.is-active > * {
	animation: pm-hero-entra 0.7s var(--pm-ease) both;
}

.pm-hero__slide.is-active > :nth-child(2) { animation-delay: 0.12s; }
.pm-hero__slide.is-active > :nth-child(3) { animation-delay: 0.24s; }
.pm-hero__slide.is-active > :nth-child(4) { animation-delay: 0.36s; }

@keyframes pm-hero-entra {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pm-hero__slide.is-active > * {
		animation: none;
	}

	.pm-hero__foto img,
	.pm-hero__foto.is-active img {
		transform: none;
		transition: none;
	}
}

@keyframes pm-hero-progress {
	to {
		transform: scaleX(1);
	}
}

@media (max-width: 781px) {
	.pm-hero {
		min-height: 520px;
		padding-top: 3rem;
	}
}

/* =========================================================================
   Tarjetas de artículos
   ========================================================================= */

.pm-card {
	position: relative;
	height: 100%;
	overflow: hidden;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.35s var(--pm-ease), transform 0.35s var(--pm-ease), border-color 0.35s ease;
}

.pm-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pm-shadow-md);
	border-color: transparent;
}

.pm-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.pm-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.6s var(--pm-ease);
}

.pm-card:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

.pm-card .wp-block-post-title a {
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.35s var(--pm-ease);
}

.pm-card:hover .wp-block-post-title a {
	background-size: 100% 1px;
}

/* Toda la tarjeta es clickeable a través del título */
.pm-card .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pm-card .wp-block-post-terms {
	position: relative;
	z-index: 2;
}

.pm-card .wp-block-post-terms a {
	text-decoration: none;
}

/* =========================================================================
   Tarjetas de categoría
   ========================================================================= */

.pm-tile {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 260px;
	box-sizing: border-box;
	padding: 1.5rem;
	overflow: hidden;
	isolation: isolate;
	border-radius: 12px;
	color: var(--wp--preset--color--base);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

.pm-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgb(10 10 10 / 0.85) 0%, rgb(10 10 10 / 0.1) 60%);
}

.pm-tile__foto {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--pm-ease);
}

.pm-tile__nombre {
	margin: 0;
	color: inherit;
}

/* El acercamiento de la foto solo con mouse: en pantallas táctiles no hay "hover" que estorbe al primer toque. */
@media (hover: hover) {
	.pm-tile:hover .pm-tile__foto {
		transform: scale(1.08);
	}
}

.pm-tile:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* =========================================================================
   Tarjetas de producto (portada, tienda y relacionados)
   ========================================================================= */

/* Grilla de productos: 4 columnas en escritorio, 3 en tablet y 2 en celular */
.wc-block-product-template.is-flex-container {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40) !important;
}

.wc-block-product-template.is-flex-container > li {
	width: auto !important;
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.wc-block-product-template.is-flex-container {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.wc-block-product-template.is-flex-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem !important;
	}
}

.pm-product {
	position: relative;
	height: 100%;
	padding: 0.75rem 0.75rem 1rem;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.35s var(--pm-ease), transform 0.35s var(--pm-ease), border-color 0.35s ease;
}

.pm-product:hover {
	transform: translateY(-4px);
	box-shadow: var(--pm-shadow-md);
	border-color: transparent;
}

.pm-product .wc-block-components-product-image {
	margin: 0 !important;
	overflow: hidden;
	border-radius: calc(var(--pm-radius) - 4px);
	background: var(--wp--preset--color--surface);
}

.pm-product .wc-block-components-product-image img {
	aspect-ratio: 1;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform 0.6s var(--pm-ease);
}

.pm-product:hover .wc-block-components-product-image img {
	transform: scale(1.06);
}

.pm-product .wp-block-post-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.6em;
}

.pm-product .wp-block-post-title a {
	text-decoration: none;
}

.pm-product .wc-block-components-product-price {
	margin-top: auto;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 1.15rem !important;
}

.pm-product .wc-block-components-product-price del {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
	font-size: 0.85em;
	margin-right: 0.35em;
}

.pm-product .wc-block-components-product-price ins {
	text-decoration: none;
	color: var(--wp--preset--color--sale);
}

.pm-product .wc-block-components-product-button {
	width: 100%;
	margin-top: 0.75rem !important;
}

.pm-product .wc-block-components-product-button .wp-element-button,
.pm-product .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	justify-content: center;
	font-size: 0.875rem !important;
	padding: 0.65em 1em !important;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-product .wc-block-components-product-button .wp-element-button:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

/* Celular (2 columnas): el botón en una sola línea, con letra y márgenes más chicos */
@media (max-width: 680px) {
	.pm-product .wc-block-components-product-button .wp-element-button,
	.pm-product .wc-block-components-product-button .wp-block-button__link {
		gap: 0.35rem;
		padding: 0.7em 0.55em !important;
		font-size: 0.75rem !important;
		white-space: nowrap;
	}
}

/* Ícono de carrito en "Añadir al carrito" (no en "Ver producto" de los agotados) */
.pm-product .wc-block-components-product-button .wp-element-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.wc-block-product:not(.outofstock) .pm-product .wc-block-components-product-button .wp-element-button::before {
	content: "";
	flex: none;
	width: 1.15em;
	height: 1.15em;
	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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h2.6l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.6a1.6 1.6 0 0 0 1.6-1.2l1.7-7.3H6'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h2.6l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.6a1.6 1.6 0 0 0 1.6-1.2l1.7-7.3H6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Agregando al carrito (assets/js/drawer.js): el ícono pasa a ser un anillo que gira */
.pm-product .wc-block-components-product-button .wp-element-button.pm-loading {
	pointer-events: none;
	cursor: progress;
}

.wc-block-product:not(.outofstock) .pm-product .wc-block-components-product-button .wp-element-button.pm-loading::before {
	box-sizing: border-box;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	background: none;
	-webkit-mask: none;
	mask: none;
	animation: pm-spin 0.7s linear infinite;
}

/* Agregado: el botón se pone verde con un check un momento (assets/js/drawer.js) */
.pm-product .wc-block-components-product-button .wp-element-button.pm-added {
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
}

.wc-block-product:not(.outofstock) .pm-product .wc-block-components-product-button .wp-element-button.pm-added::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E");
	animation: pm-check-in 0.35s var(--pm-ease) both;
}

@keyframes pm-check-in {
	from {
		transform: scale(0.4);
		opacity: 0;
	}
}

/* Sin el enlace "Ver carrito" que WooCommerce agrega bajo el botón (el contador del carrito ya lo confirma) */
.pm-product .wc-block-components-product-button .added_to_cart,
.pm-product .wc-block-components-product-button__button + a.wc-forward {
	display: none !important;
}

/* Etiqueta de oferta */
.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--sale) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--wp--custom--radius--button) !important;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 0.75rem !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 0.4em 0.85em !important;
	line-height: 1.2 !important;
	box-shadow: 0 4px 12px rgb(225 29 39 / 0.35);
}

.pm-product .wc-block-components-product-sale-badge {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	right: auto;
	z-index: 2;
	margin: 0 !important;
}

/* Productos agotados: tarjeta en gris con la etiqueta "Sin stock" (y sin la de oferta) */
.wc-block-product.outofstock .pm-product {
	background: var(--wp--preset--color--surface);
}

.wc-block-product.outofstock .pm-product .wc-block-components-product-image img {
	filter: grayscale(1);
	opacity: 0.55;
}

.wc-block-product.outofstock .pm-product .wp-block-post-title a,
.wc-block-product.outofstock .pm-product .wc-block-components-product-price,
.wc-block-product.outofstock .pm-product .wc-block-components-product-price ins {
	color: var(--wp--preset--color--muted);
}

.wc-block-product.outofstock .pm-product .wc-block-components-product-sale-badge {
	display: none;
}

.wc-block-product.outofstock .pm-product::after {
	content: "Sin stock";
	position: absolute;
	top: 1.25rem;
	left: 1.25rem;
	z-index: 2;
	padding: 0.4em 0.85em;
	border-radius: var(--wp--custom--radius--button);
	background: var(--wp--preset--color--contrast-soft);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 0.75rem;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	pointer-events: none;
}

.wc-block-product.outofstock .pm-product .wc-block-components-product-button .wp-element-button {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--line);
}

.wc-block-product.outofstock .pm-product .wc-block-components-product-button .wp-element-button:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* =========================================================================
   Tienda: categorías como chips
   ========================================================================= */

.pm-chips {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	padding: 0 0 0.5rem !important;
	margin: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, #000 92%, transparent);
	mask-image: linear-gradient(90deg, #000 92%, transparent);
}

.pm-chips::-webkit-scrollbar {
	display: none;
}

.pm-chips li {
	flex: none;
	margin: 0;
}

.pm-chips a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.pm-chips a:hover,
.pm-chips .current-cat > a {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-chips .children {
	display: none;
}

.pm-chips--wrap {
	flex-wrap: wrap;
	overflow: visible;
	-webkit-mask-image: none;
	mask-image: none;
	padding: 0.25rem 0 0 !important;
}

.pm-chips--wrap a {
	padding: 0.35rem 0.8rem;
	font-size: 0.8rem;
}

/* Encabezado de categorías, marcas y tienda: compacto para que los productos se vean sin bajar.
   Título más chico, descripción recortada con "Leer más" (assets/js/catalogo.js) y una sola barra con
   el conteo y "Ordenar" (las categorías van en los filtros). En el celular el conteo queda corto ("1–12 de 156"). */
.pm-archive-title {
	margin-block: 0.5rem 0.25rem !important;
	font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem) !important;
	line-height: 1.1;
}

.pm-archive-desc {
	--pm-desc-lineas: 1;
	display: flex;
	align-items: flex-end;
	gap: 0.75rem;
	margin-block: 0 !important;
}

.pm-archive-desc p {
	display: -webkit-box;
	flex: 1;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--pm-desc-lineas);
}

.pm-archive-desc p + p {
	display: none;
}

.pm-archive-desc.pm-abierta {
	display: block;
}

.pm-archive-desc.pm-abierta p {
	display: block;
	margin-bottom: 0.5rem;
}

.pm-leer-mas {
	flex: none;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.pm-leer-mas:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}

.pm-archive-bar {
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 1rem !important;
}

.pm-archive-bar .woocommerce-result-count,
.pm-archive-bar .wp-block-woocommerce-product-results-count,
.pm-archive-bar .wp-block-woocommerce-catalog-sorting {
	flex: none;
	margin: 0 !important;
}

@media (max-width: 600px) {
	.pm-archive-desc {
		--pm-desc-lineas: 2;
		font-size: 0.95rem;
	}

	.pm-archive-bar {
		flex-wrap: wrap !important;
		gap: 0.75rem !important;
	}

	.pm-rc-largo {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}

/* "Ordenar": botón con el mismo estilo que "Filtros" y menú propio (assets/js/catalogo.js). El selector de Woo sigue
   en la página, escondido, y es el que ordena. */
.wc-block-catalog-sorting .woocommerce-ordering {
	position: relative;
	margin: 0;
}

.pm-orden__nativo {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0;
	pointer-events: none;
}

.pm-orden {
	position: relative;
}

.pm-orden__boton {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	box-sizing: border-box;
	max-width: 100%;
	height: 46px;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.pm-orden__boton:hover,
.pm-orden__boton[aria-expanded="true"] {
	border-color: var(--wp--preset--color--contrast);
}

.pm-orden__boton:focus-visible,
.pm-orden__lista [role="option"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}

.pm-orden__boton svg {
	flex: none;
}

.pm-orden__texto {
	overflow: hidden;
	text-overflow: ellipsis;
}

.pm-orden__etiqueta {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}

.pm-orden__boton::after {
	content: "";
	flex: none;
	width: 0.45rem;
	height: 0.45rem;
	margin-left: 0.2rem;
	border: solid currentColor;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translateY(-25%);
	transition: transform 0.2s ease;
}

.pm-orden__boton[aria-expanded="true"]::after {
	transform: rotate(-135deg) translateY(-25%);
}

.pm-orden__lista {
	position: absolute;
	z-index: 30;
	top: calc(100% + 0.4rem);
	right: 0;
	min-width: 15rem;
	margin: 0;
	padding: 0.35rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	box-shadow: var(--pm-shadow-md);
	list-style: none;
}

.pm-orden__lista[hidden] {
	display: none;
}

.pm-orden__lista [role="option"] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.75rem;
	padding: 0 0.85rem;
	border-radius: 8px;
	font-size: 0.95rem;
	white-space: nowrap;
	cursor: pointer;
}

.pm-orden__lista [role="option"]:hover {
	background: var(--wp--preset--color--surface);
}

.pm-orden__lista [aria-selected="true"] {
	font-weight: 700;
}

/* Marca de la opción elegida */
.pm-orden__lista [aria-selected="true"]::after {
	content: "";
	flex: none;
	width: 0.35rem;
	height: 0.7rem;
	margin: 0 0.2rem 0.2rem 0;
	border: solid var(--wp--preset--color--accent-dark);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* En el celular el botón muestra solo el orden elegido ("Más nuevos"), para que quepa al lado de "Filtros". */
@media (max-width: 600px) {
	.pm-orden__etiqueta {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.pm-orden__boton {
		max-width: 11.5rem;
	}
}

/* Filtros de la tienda (bloque woocommerce/product-filters, en templates/archive-product.html).
   En todos los tamaños es un botón "Filtros" en la barra de arriba que abre un panel desde la izquierda. Dentro, cada
   filtro es una sección plegable (assets/js/catalogo.js) y el botón de abajo dice cuántos productos quedan
   ("Mostrar 12 productos", functions.php). Las opciones miden 44 px de alto para tocarlas cómodo con el dedo. */
.pm-filtros,
.pm-filtros * {
	min-width: 0;
}

.pm-filtros fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.pm-filtros .wc-block-product-filters__open-overlay {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	box-sizing: border-box;
	height: 46px;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.pm-filtros .wc-block-product-filters__open-overlay:hover {
	border-color: var(--wp--preset--color--contrast);
}

/* Con filtros puestos el botón se pinta negro, para que se note que la lista está filtrada. */
.pm-filtros:has(.wc-block-product-filter-removable-chips__item) .wc-block-product-filters__open-overlay {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Panel. Con el panel abierto, el resto de la página se oscurece y se desenfoca un poco: los productos se actualizan
   detrás a cada clic y así no distraen. */
.pm-filtros.is-overlay-opened .wc-block-product-filters__overlay {
	background-color: rgb(10 10 10 / 0.55);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

.pm-filtros .wc-block-product-filters__overlay-dialog {
	display: flex;
	flex-direction: column;
	width: min(25rem, 100%);
	max-width: 100%;
	background: var(--wp--preset--color--base);
}

.pm-filtros .wc-block-product-filters__overlay-header {
	display: flex;
	flex-direction: row !important;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pm-filtros__cabecera {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading, inherit);
	font-size: 1.25rem;
	font-weight: 700;
}

.pm-filtros .wc-block-product-filters__close-overlay {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.pm-filtros .wc-block-product-filters__overlay-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1rem 1.25rem 2rem;
	overflow-y: auto;
}

/* Cada sección va en un rectángulo con borde; abierta, una línea separa el título de las opciones. */
.pm-filtros .wc-block-product-filters__overlay-content > * {
	flex: none;
	margin: 0 !important;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

.pm-filtros .wc-block-product-filters__overlay-footer {
	padding: 1rem 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

/* Con el panel cerrado (corrido a la izquierda), la sombra del pie asomaba en el borde de la pantalla. */
.pm-filtros:not(.is-overlay-opened) .wc-block-product-filters__overlay-footer {
	box-shadow: none;
}

.pm-filtros .wc-block-product-filters__apply {
	width: 100%;
	min-height: 3rem;
	font-weight: 700;
}

/* Filtros activos y "Limpiar filtros", arriba del panel; se esconde si no hay ninguno. */
.pm-filtros .wp-block-woocommerce-product-filter-active {
	padding: 0.85rem 1rem 1rem;
}

.pm-filtros .wp-block-woocommerce-product-filter-active:not(:has(.wc-block-product-filter-removable-chips__item)) {
	display: none;
}

.pm-filtros .wp-block-woocommerce-product-filter-active .pm-filtros__titulo {
	margin: 0 0 0.6rem !important;
	font-size: 0.95rem !important;
}

.pm-filtros__limpiar .wp-block-button__link {
	padding: 0.4rem 0.9rem;
	font-size: 0.85rem;
}

/* Secciones plegables: el título hace de botón (role="button", assets/js/catalogo.js) con una flecha; cerrada, solo
   se ve el título. */
.pm-filtros__titulo {
	margin: 0 !important;
	font-size: 1rem !important;
	font-weight: 700;
	letter-spacing: 0;
}

.pm-filtros .pm-filtros__titulo[role="button"] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 3.25rem;
	margin: 0 -1rem 0.5rem !important;
	padding: 0 1rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	cursor: pointer;
	user-select: none;
}

.pm-filtros .pm-cerrado > .pm-filtros__titulo[role="button"] {
	margin-bottom: 0 !important;
	border-bottom: 0;
}

.pm-filtros .pm-filtros__titulo[role="button"]::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	margin-right: 0.35rem;
	border: solid currentColor;
	border-width: 0 2px 2px 0;
	transform: rotate(-135deg) translateY(-25%);
	transition: transform 0.2s ease;
}

.pm-filtros .pm-cerrado > .pm-filtros__titulo[role="button"]::after {
	transform: rotate(45deg) translateY(-25%);
}

.pm-filtros .pm-filtros__titulo[role="button"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}

.pm-filtros .pm-cerrado > :not(.pm-filtros__titulo) {
	display: none !important;
}

.pm-filtros .wc-block-product-filters__overlay-content > :not(.pm-cerrado):not(.wp-block-woocommerce-product-filter-active) {
	padding-bottom: 0.75rem;
}

.pm-filtros .wc-block-product-filter-checkbox-list__item[hidden] {
	display: none !important;
}

/* Opciones de 44 px de alto, con casilla y letra más grandes. */
.pm-filtros .wc-block-product-filter-checkbox-list__item {
	margin: 0 !important;
}

.pm-filtros .wc-block-product-filter-checkbox-list__label {
	min-height: 2.75rem;
	align-items: center;
	gap: 0.75rem;
	font-size: 1rem;
	cursor: pointer;
}

.pm-filtros .wc-block-product-filter-checkbox-list__input-wrapper,
.pm-filtros .wc-block-product-filter-checkbox-list__input-wrapper::before,
.pm-filtros .wc-block-product-filter-checkbox-list__input {
	width: 1.25rem !important;
	height: 1.25rem !important;
}

.pm-filtros .wc-block-product-filter-checkbox-list__input-wrapper::before {
	box-sizing: border-box;
	border: 1px solid #9aa19c;
	border-radius: 4px;
	background: var(--wp--preset--color--base);
	opacity: 1;
}

/* Woo pone el check arriba a la izquierda con el tamaño de su casilla chica: se centra en la de 20 px. */
.pm-filtros .wc-block-product-filter-checkbox-list__mark {
	inset: 0 !important;
	width: 0.75rem !important;
	height: 0.75rem !important;
	margin: auto !important;
}

.pm-filtros .wc-block-product-filter-checkbox-list__count {
	color: var(--wp--preset--color--muted);
}

.pm-filtros .wc-block-product-filter-checkbox-list__show-more {
	min-height: 2.75rem;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: underline;
}

/* Precio. En el iPhone cada control recorta lo que sobresale de su caja, y Woo deja las manillas (16 px) pegadas al
   borde: la de la derecha salía cortada. La barra deja 0,75rem a cada lado y los controles se alargan medio botón,
   así las manillas quedan centradas en los extremos y dentro de su caja. */
.pm-filtros .wc-block-product-filter-price-slider__range {
	margin-inline: 0.75rem;
}

.pm-filtros .wc-block-product-filter-price-slider__range input[type="range"] {
	left: -8px;
	width: calc(100% + 16px);
}

.pm-filtros .wc-block-product-filter-price-slider__range input[type="range"].min::-webkit-slider-thumb,
.pm-filtros .wc-block-product-filter-price-slider__range input[type="range"].max::-webkit-slider-thumb {
	margin-left: 0;
}

.pm-filtros .wc-block-product-filter-price-slider__range input[type="range"].min::-moz-range-thumb,
.pm-filtros .wc-block-product-filter-price-slider__range input[type="range"].max::-moz-range-thumb {
	transform: none;
}

.pm-filtros .wc-block-product-filter-price-slider__content input[type="text"] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* En una marca, el filtro de marca sobra (solo tendría esa). */
.tax-product_brand .pm-filtros__marcas {
	display: none !important;
}

/* Barra de arriba: en escritorio el conteo a la izquierda y "Filtros" y "Ordenar" a la derecha, separada del
   encabezado por una línea; en el celular "Filtros" y "Ordenar" arriba y el conteo debajo. */
.pm-archive-bar .pm-filtros {
	order: 1;
	flex: none;
}

.pm-archive-bar .wp-block-woocommerce-product-results-count {
	order: 0;
	flex: 1 1 auto !important;
}

.pm-archive-bar .wp-block-woocommerce-catalog-sorting {
	order: 2;
}

@media (min-width: 601px) {
	.pm-archive-bar {
		margin-top: var(--wp--preset--spacing--30) !important;
		padding-top: var(--wp--preset--spacing--30);
		border-top: 1px solid var(--wp--preset--color--line);
	}
}

@media (max-width: 600px) {
	.pm-archive-bar .pm-filtros {
		order: 0;
	}

	.pm-archive-bar .wp-block-woocommerce-catalog-sorting {
		order: 1;
		margin-left: auto !important;
	}

	.pm-archive-bar .wp-block-woocommerce-product-results-count {
		order: 2;
		flex-basis: 100% !important;
		font-size: 0.875rem;
	}
}


/* Página "Todas las categorías" */
.pm-cat-card {
	height: 100%;
	overflow: hidden;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.35s var(--pm-ease), transform 0.35s var(--pm-ease);
}

.pm-cat-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pm-shadow-md);
}

.pm-cat-card__img {
	margin: 0 !important;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.pm-cat-card__img img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.6s var(--pm-ease);
}

.pm-cat-card:hover .pm-cat-card__img img {
	transform: scale(1.05);
}

.pm-cat-card h2 {
	margin: 0;
}

.pm-cat-card h2 a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.pm-cat-card h2 a::after {
	content: " →";
	color: var(--wp--preset--color--accent-dark);
}

/* Página de contacto */
.pm-contact-card {
	height: 100%;
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--40);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.35s var(--pm-ease), transform 0.35s var(--pm-ease), background-color 0.35s ease;
}

.pm-contact-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pm-shadow-md);
	background: var(--wp--preset--color--base);
}

.pm-contact-card h2 {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.pm-contact-card h2::before {
	content: "";
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background-color: var(--wp--preset--color--contrast);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.3rem;
}

.pm-contact-card--wa h2::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232edb53' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
}

.pm-contact-card--mail h2::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232edb53' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.pm-contact-card--map h2::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232edb53' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11a7 7 0 0 1 14 0c0 4.9-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.pm-contact-card p {
	margin: 0;
}

.pm-contact-card__value {
	margin-top: auto !important;
	padding-top: 0.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 1.2rem;
}

.pm-contact-card__value a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.pm-contact-card__value a::after {
	content: "→";
	margin-left: 0.4em;
	color: var(--wp--preset--color--accent-dark);
	display: inline-block;
	transition: transform 0.25s var(--pm-ease);
}

.pm-contact-card:hover .pm-contact-card__value a::after {
	transform: translateX(4px);
}

.pm-contact-social .wp-social-link {
	transition: transform 0.2s var(--pm-ease);
}

.pm-contact-social .wp-social-link:hover {
	transform: translateY(-3px);
}

.pm-shop-hero {
	border-radius: calc(var(--pm-radius) + 4px);
	overflow: hidden;
}

/* =========================================================================
   Ficha de producto
   ========================================================================= */

@media (min-width: 782px) {
	.pm-summary {
		position: sticky;
		top: 6.5rem;
		align-self: flex-start;
	}
}

.woocommerce-product-gallery {
	border-radius: var(--pm-radius);
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.woocommerce-product-gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: 0.5rem;
	padding: 0.5rem !important;
	background: var(--wp--preset--color--base);
}

.woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
}

.woocommerce-product-gallery .flex-control-thumbs img {
	border-radius: 8px;
	border: 2px solid transparent;
	opacity: 0.6;
	transition: opacity 0.2s ease, border-color 0.2s ease;
}

.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover {
	opacity: 1;
	border-color: var(--wp--preset--color--accent);
}

.woocommerce-product-gallery__trigger {
	background: var(--wp--preset--color--base) !important;
	box-shadow: var(--pm-shadow-sm);
}

.pm-summary .wc-block-components-product-price,
.pm-summary .price {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	color: var(--wp--preset--color--contrast);
}

.pm-summary .wc-block-components-product-price ins {
	text-decoration: none;
	color: var(--wp--preset--color--sale);
}

.pm-summary .wc-block-components-product-price del {
	font-size: 0.6em;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

/* Formulario de compra */
.wc-block-add-to-cart-form form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin: 0;
	padding: 0 !important;
}

/* WooCommerce le pone ::before y ::after (clearfix) al formulario; en flex cuentan como elementos con su espacio
   y corrían la cantidad y el botón hacia el centro. */
.wc-block-add-to-cart-form form.cart::before,
.wc-block-add-to-cart-form form.cart::after {
	display: none !important;
}

/* Con 1 unidad en stock WooCommerce deja la cantidad como campo oculto: su caja vacía también ocupaba espacio. */
.wc-block-add-to-cart-form .quantity:has(input[type="hidden"]) {
	display: none;
}

.wc-block-add-to-cart-form .variations {
	width: 100%;
	margin-bottom: 0.5rem !important;
	border: 0;
}

.wc-block-add-to-cart-form .variations th,
.wc-block-add-to-cart-form .variations td {
	display: block;
	padding: 0 0 0.35rem;
	text-align: left;
	font-weight: 700;
}

.wc-block-add-to-cart-form .variations select {
	width: 100%;
	max-width: 22rem;
	min-height: 3rem;
	padding: 0 2.5rem 0 1rem;
	line-height: normal;
	font-weight: 600;
}

/* Opciones como botones (assets/js/producto.js). El select de WooCommerce queda oculto pero sigue funcionando. */
.wc-block-add-to-cart-form .variations select.pm-options-select {
	position: absolute;
	width: 1px;
	min-height: 0;
	height: 1px;
	padding: 0;
	opacity: 0;
	pointer-events: none;
}

/* Botones y "Limpiar" en la misma línea, sin el espacio vacío que dejaba el enlace oculto debajo. */
.wc-block-add-to-cart-form .variations td.value {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.9rem;
	padding-bottom: 0;
}

.wc-block-add-to-cart-form .variations tr:last-child {
	margin-bottom: 0;
}

.wc-block-add-to-cart-form .variations td.value .reset_variations {
	margin: 0;
	line-height: 1.2;
}

.wc-block-add-to-cart-form .woocommerce-variation-availability p {
	margin: 0.75rem 0 0.5rem;
}

.pm-options-chosen {
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.pm-options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.15rem;
}

.pm-option {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.5rem;
	min-height: 2.75rem;
	padding: 0 1.1rem;
	border: 1.5px solid #cfd4cd;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.pm-option:hover {
	border-color: var(--wp--preset--color--contrast);
}

.pm-option[aria-checked="true"] {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-option.is-out {
	color: var(--wp--preset--color--muted);
	text-decoration: line-through;
	cursor: not-allowed;
	opacity: 0.55;
}

.pm-option.is-out:hover {
	border-color: #cfd4cd;
}

.pm-option:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

.wc-block-add-to-cart-form .reset_variations {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

.wc-block-add-to-cart-form .variations tr {
	display: block;
	margin-bottom: 0.75rem;
}

.wc-block-add-to-cart-form .single_variation_wrap {
	width: 100%;
}

.wc-block-add-to-cart-form .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 0.75rem;
}

.wc-block-add-to-cart-form .single_add_to_cart_button {
	flex: 1;
	min-height: 3.25rem;
	font-size: 1.05rem !important;
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wc-block-add-to-cart-form .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

.wc-block-add-to-cart-form .single_add_to_cart_button.disabled {
	opacity: 0.5;
	transform: none;
	box-shadow: none;
}

.reset_variations {
	font-size: 0.875rem;
	margin-top: 0.35rem;
	display: inline-block;
}

/* Cantidad con − y + (assets/js/producto.js): botones grandes para tocar, número centrado y se puede escribir. */
.wc-block-add-to-cart-form .quantity.pm-qty {
	display: inline-flex;
	align-items: stretch;
	min-height: 3.25rem;
	overflow: hidden;
	border: 1px solid #cfd4cd;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	transition: border-color 0.15s ease;
}

.wc-block-add-to-cart-form .quantity.pm-qty:focus-within {
	border-color: var(--wp--preset--color--contrast);
}

.wc-block-add-to-cart-form .quantity .qty {
	width: 3rem;
	min-height: 3.25rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	background: transparent;
	text-align: center;
	font-weight: 700;
	font-size: 1.05rem;
	-moz-appearance: textfield;
	appearance: textfield;
}

.wc-block-add-to-cart-form .quantity .qty::-webkit-outer-spin-button,
.wc-block-add-to-cart-form .quantity .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.wc-block-add-to-cart-form .pm-qty__btn {
	display: grid;
	place-items: center;
	width: 3rem;
	min-height: 3.25rem;
	font-size: 1.4rem;
	line-height: 1;
	transition: background-color 0.15s ease, opacity 0.15s ease;
}

.wc-block-add-to-cart-form .pm-qty__btn:active:not(:disabled) {
	background: var(--wp--preset--color--line);
}

.wc-block-add-to-cart-form .pm-qty__btn:disabled {
	opacity: 0.3;
	cursor: default;
}

.wc-block-add-to-cart-form .pm-qty__btn:disabled:hover {
	background: none;
}

.wc-block-add-to-cart-form .pm-qty__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: -4px;
	border-radius: 999px;
}

/* "Añadir al carrito" de la ficha: mismo ícono, carga y check que en las tarjetas.
   !important porque otra regla lo dejaba en display: block y el ícono se veía como una rayita. */
.wc-block-add-to-cart-form .single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--pm-ease), box-shadow 0.2s ease;
}

.wc-block-add-to-cart-form .single_add_to_cart_button::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 1.2em;
	height: 1.2em;
	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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h2.6l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.6a1.6 1.6 0 0 0 1.6-1.2l1.7-7.3H6'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h2.6l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.6a1.6 1.6 0 0 0 1.6-1.2l1.7-7.3H6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.25s var(--pm-ease);
}

.wc-block-add-to-cart-form .single_add_to_cart_button:hover:not(.disabled)::before {
	transform: translateX(2px) rotate(-8deg);
}

.wc-block-add-to-cart-form .single_add_to_cart_button:active:not(.disabled) {
	transform: scale(0.98);
}

.wc-block-add-to-cart-form .single_add_to_cart_button.pm-loading {
	pointer-events: none;
	cursor: progress;
}

.wc-block-add-to-cart-form .single_add_to_cart_button.pm-loading::before {
	box-sizing: border-box;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	background: none;
	-webkit-mask: none;
	mask: none;
	animation: pm-spin 0.7s linear infinite;
}

.wc-block-add-to-cart-form .single_add_to_cart_button.pm-added {
	background: var(--wp--preset--color--accent-dark) !important;
	color: #fff !important;
}

.wc-block-add-to-cart-form .single_add_to_cart_button.pm-added::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E");
	animation: pm-check-in 0.35s var(--pm-ease) both;
}

/* Entrada de la ficha: la foto se asienta y los datos suben uno tras otro. La foto no parte transparente
   (es lo más grande de la pantalla y así PageSpeed no la cuenta tarde). */
@media (prefers-reduced-motion: no-preference) {
	.single-product .woocommerce-product-gallery {
		animation: pm-gallery-in 0.9s var(--pm-ease) both;
	}

	.single-product .pm-summary > * {
		animation: pm-fade-up 0.7s var(--pm-ease) both;
	}

	.single-product .pm-summary > :nth-child(2) { animation-delay: 0.05s; }
	.single-product .pm-summary > :nth-child(3) { animation-delay: 0.1s; }
	.single-product .pm-summary > :nth-child(4) { animation-delay: 0.15s; }
	.single-product .pm-summary > :nth-child(5) { animation-delay: 0.2s; }
	.single-product .pm-summary > :nth-child(6) { animation-delay: 0.25s; }
	.single-product .pm-summary > :nth-child(n + 7) { animation-delay: 0.3s; }

	/* La foto principal se acerca un poco al pasar el mouse (en escritorio) */
	@media (hover: hover) {
		.single-product .woocommerce-product-gallery__image img {
			transition: transform 0.6s var(--pm-ease);
		}

		.single-product .woocommerce-product-gallery__image:hover img {
			transform: scale(1.04);
		}
	}
}

@keyframes pm-gallery-in {
	from {
		transform: scale(0.97);
	}
}

/* Beneficios bajo el botón de compra: tarjeta blanca con borde fino, una fila por beneficio separadas por una línea,
   y cada ícono dentro de un círculo verde muy claro. */
.pm-trust {
	display: grid;
	margin: 0;
	padding: 0 !important;
	list-style: none;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	font-size: 0.9rem;
	line-height: 1.45;
}

.pm-trust li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0;
	padding: 0.8rem 1rem;
	color: var(--wp--preset--color--muted);
}

.pm-trust li + li {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-trust strong,
.pm-trust a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

.pm-trust a {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.pm-trust a:hover {
	color: var(--wp--preset--color--accent-dark);
}

.pm-trust li::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background-color: rgb(46 219 83 / 0.14);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.1rem;
}

.pm-trust__ship::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 10h4l3 3v3h-7z'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
}

.pm-trust__pay::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");
}

.pm-trust__chat::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
}

/* Pestañas de descripción */
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.5rem !important;
	padding: 0 !important;
	border: 0 !important;
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	border-radius: 999px !important;
}

.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.6rem 1.25rem !important;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600 !important;
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base) !important;
}

.woocommerce-tabs .panel {
	max-width: 760px;
}

.woocommerce-tabs .panel > h2:first-child {
	display: none;
}

/* Información adicional (peso, medidas, atributos) como ficha técnica: tarjeta con filas "dato · valor", sin cursiva
   ni franjas. !important porque WooCommerce pone la cursiva, los bordes y el fondo alternado con mucha especificidad. */
.woocommerce .woocommerce-tabs table.shop_attributes {
	width: 100%;
	max-width: 560px;
	margin: 0;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--pm-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--wp--preset--color--base);
}

.woocommerce .woocommerce-tabs table.shop_attributes tr {
	background: none !important;
}

.woocommerce .woocommerce-tabs table.shop_attributes th,
.woocommerce .woocommerce-tabs table.shop_attributes td {
	padding: 0.85rem 1.1rem !important;
	border: 0 !important;
	border-top: 1px solid var(--wp--preset--color--line) !important;
	background: none !important;
	vertical-align: middle;
	line-height: 1.4;
}

.woocommerce .woocommerce-tabs table.shop_attributes tr:first-child th,
.woocommerce .woocommerce-tabs table.shop_attributes tr:first-child td {
	border-top: 0 !important;
}

.woocommerce .woocommerce-tabs table.shop_attributes th {
	width: 40%;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	font-weight: 500;
	text-align: left;
}

.woocommerce .woocommerce-tabs table.shop_attributes td {
	color: var(--wp--preset--color--contrast);
	font-style: normal !important;
	font-weight: 600;
	text-align: right;
}

.woocommerce .woocommerce-tabs table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* Las filas de envío (peso y medidas del paquete) con un ícono chico para distinguirlas de los atributos */
.woocommerce .woocommerce-tabs table.shop_attributes .woocommerce-product-attributes-item--weight th::before,
.woocommerce .woocommerce-tabs table.shop_attributes .woocommerce-product-attributes-item--dimensions th::before {
	content: "";
	display: inline-block;
	width: 1rem;
	height: 1rem;
	margin-right: 0.5rem;
	vertical-align: -0.15rem;
	background: currentColor;
	opacity: 0.7;
}

.woocommerce .woocommerce-tabs table.shop_attributes .woocommerce-product-attributes-item--weight th::before {
	-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='2' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l2 12H4z'/%3E%3Ccircle cx='12' cy='5' r='2'/%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='2' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l2 12H4z'/%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce .woocommerce-tabs table.shop_attributes .woocommerce-product-attributes-item--dimensions th::before {
	-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='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 4.5v9L12 21l-8-4.5v-9z'/%3E%3Cpath d='M4 7.5l8 4.5 8-4.5M12 12v9'/%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='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 4.5v9L12 21l-8-4.5v-9z'/%3E%3Cpath d='M4 7.5l8 4.5 8-4.5M12 12v9'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* =========================================================================
   Formularios (búsqueda, checkout clásico, cantidades, variantes)
   ========================================================================= */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="number"],
input[type="password"],
select,
textarea {
	box-sizing: border-box;
	padding: 0.7rem 0.9rem;
	border: 1px solid #cfd4cd;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent-dark);
	box-shadow: 0 0 0 3px rgb(46 219 83 / 0.25);
}

.wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

.wp-block-search__input {
	border-radius: 999px !important;
	padding-inline: 1.2rem !important;
}

/* Bloques de carrito y checkout de WooCommerce */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	border-radius: 999px !important;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	min-height: 3.25rem;
	transition: background-color 0.2s ease, transform 0.2s var(--pm-ease), box-shadow 0.2s ease;
}

.wc-block-components-button:not(.is-link):hover {
	transform: translateY(-2px);
	box-shadow: var(--pm-shadow-md);
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select__select {
	border-radius: 10px !important;
}

.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus {
	border-color: var(--wp--preset--color--accent-dark) !important;
	box-shadow: 0 0 0 3px rgb(46 219 83 / 0.25) !important;
}

.wc-block-cart,
.wc-block-checkout {
	--pm-panel: var(--wp--preset--color--surface);
}

.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart-order-summary-block {
	border-color: var(--wp--preset--color--line) !important;
}

.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart-totals-block {
	background: var(--wp--preset--color--surface);
	border-radius: var(--pm-radius);
	padding: 1.25rem !important;
}

/* Avisos */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	border-radius: var(--pm-radius) !important;
}

/* Miga de pan */
.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
	color: var(--wp--preset--color--muted);
}

.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a {
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none;
}

.woocommerce-breadcrumb a:hover,
.wc-block-breadcrumbs a:hover {
	color: var(--wp--preset--color--contrast) !important;
}

/* Paginación (tienda, categorías, búsqueda y blog). Botones de 44 px (tamaño cómodo para el dedo), foco visible
   y la página actual marcada con aria-current. En el celular: "‹ Anterior · Página 2 de 13 · Siguiente ›". */
.wp-block-query-pagination {
	gap: 0.5rem !important;
	align-items: center;
}

.wp-block-query-pagination-numbers {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	margin: 0 0.5rem !important;
}

.wp-block-query-pagination-numbers .page-numbers {
	display: inline-grid;
	place-items: center;
	box-sizing: border-box;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s var(--pm-ease);
}

.wp-block-query-pagination-numbers a.page-numbers:hover {
	border-color: var(--wp--preset--color--contrast);
	transform: translateY(-1px);
}

.wp-block-query-pagination-numbers .page-numbers.current {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.wp-block-query-pagination-numbers .page-numbers.dots {
	min-width: 1.5rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--muted);
}

.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	box-sizing: border-box;
	height: 2.75rem;
	padding: 0 1.1rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Flechas dibujadas con el color del texto */
.wp-block-query-pagination-previous::before,
.wp-block-query-pagination-next::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border: solid currentColor;
	border-width: 0 0 2px 2px;
	transform: rotate(45deg);
}

.wp-block-query-pagination-next::after {
	transform: rotate(-135deg);
}

.wp-block-query-pagination-previous::before {
	margin-left: 0.15rem;
}

.wp-block-query-pagination-next::after {
	margin-right: 0.15rem;
}

.wp-block-query-pagination a:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}

.pm-pag-estado {
	display: none;
}

@media (max-width: 600px) {
	.wp-block-query-pagination {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr;
		grid-template-areas: "ant estado sig";
		padding-inline: 1rem;
	}

	.wp-block-query-pagination-previous {
		grid-area: ant;
		justify-self: start;
	}

	.wp-block-query-pagination-next {
		grid-area: sig;
		justify-self: end;
	}

	.wp-block-query-pagination-numbers {
		grid-area: estado;
		margin: 0 !important;
	}

	.wp-block-query-pagination-numbers .page-numbers {
		display: none;
	}

	.pm-pag-estado {
		display: block;
		color: var(--wp--preset--color--muted);
		font-size: 0.85rem;
		font-weight: 600;
		white-space: nowrap;
	}

	.wp-block-query-pagination-previous,
	.wp-block-query-pagination-next {
		gap: 0.3rem;
		padding: 0 0.8rem;
		font-size: 0.9rem;
	}
}

/* =========================================================================
   Artículos
   ========================================================================= */

.wp-block-post-content > p:first-of-type {
	font-size: 1.2rem;
	line-height: 1.6;
	color: #2b302d;
}

.wp-block-post-content h2 {
	margin-top: 2.5rem;
}

.wp-block-post-content ul li::marker {
	color: var(--wp--preset--color--accent-dark);
}

/* =========================================================================
   Video de YouTube liviano
   ========================================================================= */

.pm-yt {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: var(--pm-radius);
	overflow: hidden;
	cursor: pointer;
	box-shadow: var(--pm-shadow-md);
}

.pm-yt img,
.pm-yt iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	transition: transform 0.6s var(--pm-ease), filter 0.3s ease;
}

.pm-yt:hover img {
	transform: scale(1.04);
	filter: brightness(0.85);
}

.pm-yt button {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 76px;
	height: 76px;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	cursor: pointer;
	box-shadow: 0 0 0 0 rgb(46 219 83 / 0.6);
	animation: pm-pulse 2.2s infinite;
	transition: transform 0.25s var(--pm-ease);
}

.pm-yt:hover button {
	transform: scale(1.08);
}

.pm-yt button::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	transform: translateX(3px);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 12px 0 12px 20px;
	border-color: transparent transparent transparent var(--wp--preset--color--contrast);
}

@keyframes pm-pulse {
	70% {
		box-shadow: 0 0 0 18px rgb(46 219 83 / 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgb(46 219 83 / 0);
	}
}

/* =========================================================================
   Portada: carrusel de más vendidos (patterns/mas-vendidos.php)
   ========================================================================= */

.pm-carrusel {
	padding-block: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
}

.pm-carrusel__in,
.pm-ytc__in,
.pm-marcas__in {
	box-sizing: border-box;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left, 1.25rem) var(--wp--style--root--padding-right, 1.25rem);
}

.pm-carrusel__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.pm-carrusel__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--accent-dark);
	font-size: 0.8rem;
	font-weight: 700;
}

.pm-carrusel h2 {
	margin: 0.25rem 0 0;
}

.pm-carrusel__nav {
	display: flex;
	gap: 0.5rem;
}

.pm-carrusel__nav[hidden] {
	display: none;
}

.pm-carrusel__arrow {
	width: 42px;
	height: 42px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.pm-carrusel__arrow:hover:not(:disabled) {
	border-color: var(--wp--preset--color--contrast);
}

.pm-carrusel__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

/* Las tarjetas son las de la tienda (.pm-product); aquí solo la grilla pasa a ser una fila deslizable */
.pm-carrusel .wc-block-product-template.wc-block-product-template__responsive {
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3rem) / 4);
	gap: 1rem;
	/* La fila se desliza (overflow), lo que corta todo lo que sobresale: con este margen alrededor caben la sombra
	   y el leve salto hacia arriba de la tarjeta al pasar el mouse. */
	margin: -1rem -1.25rem -1.25rem;
	padding: 1rem 1.25rem 2rem;
	scroll-padding-inline: 1.25rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.pm-carrusel .wc-block-product-template::-webkit-scrollbar {
	display: none;
}

.pm-carrusel .wc-block-product-template:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 4px;
}

.pm-carrusel .wc-block-product-template > li {
	scroll-snap-align: start;
}

.pm-carrusel__more {
	margin: 0.5rem 0 0;
	text-align: right;
	font-weight: 600;
}

.pm-carrusel__more a {
	color: var(--wp--preset--color--accent-dark);
}

@media (max-width: 960px) {
	.pm-carrusel .wc-block-product-template.wc-block-product-template__responsive {
		grid-auto-columns: calc((100% - 2rem) / 2.6);
	}
}

@media (max-width: 600px) {
	.pm-carrusel .wc-block-product-template.wc-block-product-template__responsive {
		grid-auto-columns: 62%;
		gap: 0.75rem;
	}

	.pm-carrusel__more {
		text-align: left;
	}
}

/* =========================================================================
   Portada: canal de YouTube (patterns/canal-youtube.php)
   ========================================================================= */

.pm-ytc {
	padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
}

.pm-ytc__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

.pm-ytc__avatar {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	box-shadow: 0 0 0 1px var(--wp--preset--color--line);
}

.pm-ytc__who h2 {
	margin: 0;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.1;
}

.pm-ytc__who p {
	margin: 0.3rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pm-ytc__who a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

.pm-ytc__who a:hover {
	text-decoration: underline;
}

/* Botón con los colores de YouTube */
.pm-ytc__sub {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-left: auto;
	padding: 0.8rem 1.4rem;
	border-radius: 999px;
	background: #ff0000;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s var(--pm-ease);
}

.pm-ytc__sub:hover {
	background: #cc0000;
	color: #fff;
	transform: translateY(-1px);
}

.pm-ytc__sub:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 3px;
}

.pm-ytc__sub svg {
	width: 1.6rem;
	height: auto;
	color: #fff;
}

.pm-ytc__intro {
	max-width: 62ch;
	margin: 1.25rem 0 2rem;
	color: #3a403c;
	font-size: 1.05rem;
	line-height: 1.6;
}

.pm-ytc__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.pm-ytc__title {
	margin: 0.9rem 0 0.2rem;
	font-size: 1.25rem;
	line-height: 1.3;
}

.pm-ytc__meta {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

/* Botón de reproducir como el de YouTube (en el resto del sitio sigue el círculo verde) */
.pm-yt--canal {
	box-shadow: none;
}

.pm-yt--canal button {
	width: 68px;
	height: 48px;
	border-radius: 14px;
	background: #ff0000;
	box-shadow: none;
	animation: none;
	transition: background-color 0.2s ease, transform 0.25s var(--pm-ease);
}

.pm-yt--canal:hover button {
	background: #cc0000;
}

.pm-yt--canal button::before {
	border-width: 10px 0 10px 17px;
	border-color: transparent transparent transparent #fff;
	transform: translateX(2px);
}

.pm-ytc__label {
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pm-ytc__list {
	display: grid;
	gap: 0.35rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
}

.pm-ytc__list li {
	margin: 0;
}

.pm-ytc__item {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr);
	gap: 0.85rem;
	align-items: start;
	width: 100%;
	padding: 0.45rem;
	border: 0;
	border-radius: 10px;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.pm-ytc__item:hover,
.pm-ytc__item[aria-current="true"] {
	background: var(--wp--preset--color--base);
}

.pm-ytc__item:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

.pm-ytc__thumb {
	display: block;
	overflow: hidden;
	border-radius: 8px;
	background: #000;
}

.pm-ytc__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.pm-ytc__text {
	display: grid;
	gap: 0.3rem;
	padding-top: 0.1rem;
}

.pm-ytc__name {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
}

.pm-ytc__all {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

@media (max-width: 900px) {
	.pm-ytc__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.pm-ytc__sub {
		order: 3;
		width: 100%;
		justify-content: center;
		margin-left: 0;
	}

	.pm-ytc__item {
		grid-template-columns: 140px minmax(0, 1fr);
	}
}

/* Portada: la sección del canal llega pegada al pie, sin franja blanca entre medio */
.home .wp-site-blocks > footer {
	margin-block-start: 0;
}

.home .wp-site-blocks > footer > footer.wp-block-group {
	margin-top: 0 !important;
}

/* =========================================================================
   Pie de página
   ========================================================================= */

footer .wp-block-social-links .wp-social-link {
	transition: transform 0.2s var(--pm-ease), color 0.2s ease;
}

footer .wp-block-social-links .wp-social-link:hover {
	transform: translateY(-3px);
	color: var(--wp--preset--color--accent);
}

footer .wp-block-list li {
	margin-bottom: 0.45rem;
}

footer .wp-block-list a {
	text-decoration: none;
	opacity: 0.85;
	transition: opacity 0.2s ease, color 0.2s ease;
}

footer .wp-block-list a:hover {
	opacity: 1;
}

/* =========================================================================
   Carrito lateral (mini carrito de WooCommerce): deslizamiento suave
   ========================================================================= */

.wc-block-components-drawer__screen-overlay {
	background-color: rgb(10 10 10 / 0.45) !important;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	transition: opacity 0.45s var(--pm-ease), backdrop-filter 0.45s ease !important;
}

.wc-block-components-drawer__screen-overlay--with-slide-in {
	animation: pm-overlay-in 0.45s var(--pm-ease) both !important;
}

.wc-block-components-drawer__screen-overlay--is-hidden {
	/* Cerrado no se ve, y así su movimiento al cargar la fuente no cuenta como salto (CLS) */
	visibility: hidden;
	backdrop-filter: blur(0);
	-webkit-backdrop-filter: blur(0);
}

.wc-block-components-drawer {
	box-shadow: -24px 0 60px -20px rgb(10 10 10 / 0.35);
	border-radius: 0;
	overflow: hidden;
}

/* Celular: el panel ocupa como máximo el 90% del ancho (se ve la página detrás, y se entiende que se puede cerrar) */
@media (max-width: 680px) {
	.wc-block-mini-cart__drawer,
	.wc-block-components-drawer {
		--drawer-width: 90vw;
		--neg-drawer-width: -90vw;
	}

	.wc-block-components-drawer {
		width: 90vw !important;
		max-width: 90vw !important;
	}
}

/* Nombre del producto en el carrito lateral: como título, sin subrayado ni verde */
.wc-block-mini-cart__items a.wc-block-components-product-name,
.wc-block-mini-cart__items .wc-block-components-product-name {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

.wc-block-mini-cart__items a.wc-block-components-product-name:hover {
	color: var(--wp--preset--color--accent-dark);
}

/* Sin la descripción corta de cada producto en el carrito lateral (las variaciones, como talla o color, sí se ven) */
.wc-block-mini-cart__items .wc-block-components-product-metadata__description {
	display: none;
}

/* Abrir: animación de entrada con desaceleración suave. */
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-components-drawer {
	animation: slidein 0.55s var(--pm-ease) both !important;
}

/* Cerrar: WooCommerce quita el panel de golpe, así que assets/js/drawer.js agrega .pm-drawer-closing,
   espera esta animación y recién entonces deja que WooCommerce lo cierre. */
.pm-drawer-closing {
	animation: pm-overlay-out 0.38s ease forwards !important;
	pointer-events: none;
}

.pm-drawer-closing .wc-block-components-drawer {
	animation: pm-drawer-out 0.38s cubic-bezier(0.55, 0, 0.75, 0.2) forwards !important;
}

@keyframes pm-drawer-out {
	from {
		transform: translateX(max(-100%, var(--neg-drawer-width)));
	}
	to {
		transform: translateX(0);
	}
}

@keyframes pm-overlay-out {
	to {
		opacity: 0;
		backdrop-filter: blur(0);
		-webkit-backdrop-filter: blur(0);
	}
}

/* Contenido del carrito: aparece en cascada justo después del panel */
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__title,
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__items,
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__footer,
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__empty-cart-wrapper {
	animation: pm-drawer-content 0.5s var(--pm-ease) both;
}

.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__title { animation-delay: 0.12s; }
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__items,
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__empty-cart-wrapper { animation-delay: 0.18s; }
.wc-block-components-drawer__screen-overlay--with-slide-in .wc-block-mini-cart__footer { animation-delay: 0.24s; }

.wc-block-mini-cart__title {
	font-family: var(--wp--preset--font-family--heading);
	letter-spacing: -0.01em;
}

.wc-block-mini-cart__footer {
	background: var(--wp--preset--color--surface);
	border-top: 1px solid var(--wp--preset--color--line);
}

.wc-block-components-drawer__close {
	transition: opacity 0.2s ease, transform 0.3s var(--pm-ease) !important;
}

.wc-block-components-drawer__close:hover {
	opacity: 1 !important;
	transform: rotate(90deg);
}

@keyframes pm-overlay-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes pm-drawer-content {
	from {
		opacity: 0;
		transform: translateX(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* =========================================================================
   Menú móvil: entra y sale deslizándose desde la izquierda (la hamburguesa está a la izquierda)
   ========================================================================= */

@media (max-width: 599px) {
	.pm-header .wp-block-navigation__responsive-container {
		display: flex !important;
		position: fixed;
		inset: 0;
		z-index: 100000;
		visibility: hidden;
		opacity: 0;
		transform: translateX(-100%);
		transition:
			transform 0.45s cubic-bezier(0.55, 0, 0.75, 0.2),
			opacity 0.35s ease,
			visibility 0s linear 0.45s;
	}

	.pm-header .wp-block-navigation__responsive-container.is-menu-open {
		visibility: visible;
		opacity: 1;
		transform: none;
		animation: none !important;
		transition:
			transform 0.55s var(--pm-ease),
			opacity 0.3s ease,
			visibility 0s;
	}

	.pm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		animation: pm-drawer-content 0.5s var(--pm-ease) both;
	}

	.pm-header .is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: 0.12s; }
	.pm-header .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 0.17s; }
	.pm-header .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 0.22s; }
	.pm-header .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 0.27s; }
	.pm-header .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 0.32s; }

	.pm-header .wp-block-navigation__responsive-container-close {
		transition: transform 0.3s var(--pm-ease), color 0.2s ease;
	}

	.pm-header .wp-block-navigation__responsive-container-close:hover {
		transform: rotate(90deg);
		color: var(--wp--preset--color--accent);
	}
}

/* =========================================================================
   Buscador (assets/js/buscador.js): en el celular ocupa toda la pantalla; en escritorio es un panel arriba al centro.
   ========================================================================= */

.pm-search-open,
.pm-search-open body {
	overflow: hidden;
}

.pm-search {
	position: fixed;
	inset: 0;
	z-index: 100000;
}

.pm-search[hidden] {
	display: none;
}

.pm-search__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(10 10 10 / 0.45);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.pm-search__panel {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--wp--preset--color--base);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.25s ease, transform 0.3s var(--pm-ease);
}

.pm-search.is-open .pm-search__backdrop,
.pm-search.is-open .pm-search__panel {
	opacity: 1;
	transform: none;
}

.pm-search__form {
	display: flex;
	flex: none;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pm-search__icon {
	flex: none;
	width: 1.4rem;
	height: 1.4rem;
	color: var(--wp--preset--color--muted);
}

.pm-search__input {
	flex: 1;
	min-width: 0;
	min-height: 2.75rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1.05rem;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
}

/* Sin el borde ni el brillo verde de los campos del tema: el panel ya marca dónde se escribe. */
.pm-search .pm-search__input,
.pm-search .pm-search__input:focus {
	min-height: 2.75rem;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	outline: 0;
	background: none;
}

.pm-search__input::-webkit-search-cancel-button {
	display: none;
}

.pm-search__close {
	flex: none;
	min-height: 2.75rem;
	padding: 0 0.25rem;
	border: 0;
	background: none;
	color: var(--wp--preset--color--accent-dark);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.pm-search__body {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	padding: 0.5rem 1rem 1.5rem;
}

.pm-search__label {
	margin: 0.75rem 0 0.6rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pm-search__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.pm-search__chips a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-size: 0.9rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.pm-search__chips a:hover {
	border-color: var(--wp--preset--color--contrast);
}

.pm-search__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pm-search__list li + li {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-search__list a {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-height: 4.5rem;
	padding: 0.5rem 0.25rem;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	border-radius: 10px;
}

.pm-search__list [aria-selected="true"] a,
.pm-search__list a:hover {
	background: var(--wp--preset--color--surface);
}

.pm-search__list img,
.pm-search__noimg {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
	object-fit: cover;
}

.pm-search__text {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
}

.pm-search__name {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 0.95rem;
	line-height: 1.3;
}

.pm-search__name mark {
	background: none;
	color: inherit;
	font-weight: 700;
}

.pm-search__price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.95rem;
	font-weight: 700;
}

.pm-search__price del {
	margin-right: 0.25rem;
	color: var(--wp--preset--color--muted);
	font-weight: 400;
	font-size: 0.85em;
}

.pm-search__price ins {
	color: var(--wp--preset--color--sale);
	text-decoration: none;
}

.pm-search__empty {
	margin: 1rem 0 0.25rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.95rem;
}

.pm-search__empty strong {
	color: var(--wp--preset--color--contrast);
}

.pm-search__empty a {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

/* Página de resultados sin productos (patterns/busqueda-vacia.php) */
.pm-noresults {
	margin: var(--wp--preset--spacing--30) 0 0;
}

.pm-noresults__card {
	box-sizing: border-box;
	max-width: 680px;
	margin-inline: auto;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	text-align: center;
}

.pm-noresults__icon {
	width: 52px;
	height: 52px;
	padding: 12px;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent-dark);
	box-shadow: 0 0 0 1px var(--wp--preset--color--line);
}

.pm-noresults__title {
	margin: 1rem 0 0.5rem;
	font-size: clamp(1.4rem, 3vw, 1.85rem);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.pm-noresults__text {
	max-width: 44ch;
	margin: 0 auto;
	color: var(--wp--preset--color--muted);
}

.pm-noresults__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin: 1.5rem 0 2rem;
}

.pm-noresults__wa,
.pm-noresults__shop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 3rem;
	padding: 0 1.4rem;
	border-radius: 999px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--pm-ease);
}

.pm-noresults__wa {
	background: #25d366;
	color: #0a0a0a;
}

.pm-noresults__wa:hover {
	background: #1ebe5b;
	color: #0a0a0a;
	transform: translateY(-1px);
}

.pm-noresults__wa svg {
	width: 1.35rem;
	height: 1.35rem;
}

.pm-noresults__shop {
	border: 1px solid var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.pm-noresults__shop:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-noresults__label {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pm-noresults__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pm-noresults__chips a {
	display: inline-block;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 0.9rem;
	text-decoration: none;
	transition: border-color 0.2s ease;
}

.pm-noresults__chips a:hover {
	border-color: var(--wp--preset--color--contrast);
}

/* Página 404 (patterns/pagina-404.php): misma tarjeta, con código, buscador y la tienda como botón principal */
.pm-404 {
	margin-top: 0;
}

.pm-404__code {
	margin: 1rem 0 0;
	color: var(--wp--preset--color--accent-dark);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pm-404 .pm-noresults__title {
	margin-top: 0.35rem;
}

.pm-404__search {
	display: flex;
	gap: 0.5rem;
	max-width: 30rem;
	margin: 1.5rem auto 0;
}

.pm-404__search input[type="search"] {
	flex: 1;
	min-width: 0;
	min-height: 3rem;
	box-sizing: border-box;
	padding: 0 1.1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.pm-404__search input[type="search"]:focus {
	border-color: var(--wp--preset--color--contrast);
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 2px;
}

.pm-404__search button {
	min-height: 3rem;
	padding: 0 1.4rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.pm-404__search button:hover {
	background: var(--wp--preset--color--accent-dark);
	color: var(--wp--preset--color--base);
}

.pm-404 .pm-noresults__actions {
	margin-top: 1rem;
}

.pm-404 .pm-noresults__shop {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-404 .pm-noresults__shop:hover {
	background: #2b302d;
}

.pm-404 .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.pm-noresults + .pm-carrusel {
	margin-top: var(--wp--preset--spacing--40);
}

@media (max-width: 600px) {
	.pm-noresults__card {
		padding-inline: 1rem;
	}

	.pm-noresults__wa,
	.pm-noresults__shop {
		box-sizing: border-box;
		width: 100%;
		padding-inline: 1rem;
		font-size: 0.95rem;
	}
}

.pm-search__all {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	margin-top: 0.75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	text-decoration: none;
}

.pm-search__all:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.pm-search__all[hidden] {
	display: none;
}

.pm-search.is-loading .pm-search__icon {
	animation: pm-spin 0.9s linear infinite;
}

@media (min-width: 782px) {
	.pm-search__panel {
		width: min(640px, calc(100% - 2rem));
		height: auto;
		max-height: min(80vh, 720px);
		margin: 8vh auto 0;
		overflow: hidden;
		border-radius: 16px;
		box-shadow: 0 30px 80px -20px rgb(0 0 0 / 0.45);
	}

	.pm-search__form {
		padding: 0.6rem 1.25rem;
	}

	.pm-search__body {
		padding: 0.5rem 1.25rem 1.25rem;
	}
}

/* =========================================================================
   Portada: marcas (patterns/marcas.php)
   ========================================================================= */

.pm-marcas {
	padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--base);
}

.pm-marcas__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--accent-dark);
	font-size: 0.8rem;
	font-weight: 700;
}

.pm-marcas h2 {
	margin: 0.25rem 0 1.25rem;
}

.pm-marcas__grid {
	display: grid;
	grid-template-columns: repeat(var(--pm-marcas-n, 6), minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pm-marcas__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	height: 100%;
	box-sizing: border-box;
	padding: 1.25rem 1rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	background: #fff;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	transition: border-color 0.2s ease, transform 0.3s var(--pm-ease), box-shadow 0.3s var(--pm-ease);
}

.pm-marcas__card:hover {
	border-color: var(--wp--preset--color--contrast);
	transform: translateY(-3px);
	box-shadow: 0 16px 30px -18px rgb(0 0 0 / 0.35);
}

.pm-marcas__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 4rem;
}

/* Sin agrandar: los logos chicos (Saitama) se ven a su tamaño real y no se pixelan */
.pm-marcas__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
}

.pm-marcas__count {
	font-size: 0.85rem;
	font-weight: 600;
}

.pm-marcas__card:hover .pm-marcas__count {
	color: var(--wp--preset--color--contrast);
}

/* En pantallas chicas, filas de 4 (o 2) y la última fila centrada */
@media (max-width: 960px) {
	.pm-marcas__grid {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	.pm-marcas__grid > li {
		flex: 0 0 calc((100% - 3rem) / 4);
	}
}

@media (max-width: 520px) {
	.pm-marcas__grid {
		gap: 0.75rem;
	}

	.pm-marcas__grid > li {
		flex-basis: calc((100% - 0.75rem) / 2);
	}

	.pm-marcas__logo {
		height: 3.25rem;
	}
}

/* =========================================================================
   Upsell al ir a pagar (assets/js/upsell.js): hoja que sube desde abajo en el celular, ventana al centro en escritorio.
   Animación: entra cada oferta, se tacha el precio normal, aparece el especial en rojo y salta la etiqueta de descuento.
   Los estados finales son los estilos base, así con movimiento reducido todo se ve sin animar.
   ========================================================================= */

.pm-upsell {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.pm-upsell__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(10 10 10 / 0.5);
	animation: pm-overlay-in 0.3s ease both;
}

.pm-upsell__panel {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-height: 92vh;
	overflow-y: auto;
	padding: 1.75rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
	border-radius: 20px 20px 0 0;
	background: var(--wp--preset--color--base);
	outline: 0;
	animation: pm-upsell-sheet 0.45s var(--pm-ease) both;
}

.pm-upsell__x {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--wp--preset--color--muted);
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}

.pm-upsell__eyebrow {
	margin: 0 0 0.25rem;
	color: var(--wp--preset--color--sale);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pm-upsell__title {
	margin: 0;
	padding-right: 2.5rem;
	font-size: 1.45rem;
	line-height: 1.15;
}

.pm-upsell__lead {
	margin: 0.35rem 0 1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pm-upsell__list {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pm-upsell__item {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.85rem;
	padding: 0.75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	transition: border-color 0.2s ease, background-color 0.2s ease;
	animation: pm-fade-up 0.5s var(--pm-ease) both;
	animation-delay: calc(0.15s + var(--i) * 0.12s);
}

.pm-upsell__item.is-added {
	border-color: var(--wp--preset--color--accent-dark);
	background: rgb(46 219 83 / 0.07);
}

.pm-upsell__item img,
.pm-upsell__noimg {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
	object-fit: cover;
}

.pm-upsell__name {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 0.3rem;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
}

.pm-upsell__prices {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0.5rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
}

/* Precio normal: una línea lo cruza de izquierda a derecha */
.pm-upsell__old {
	position: relative;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	font-weight: 600;
}

.pm-upsell__old::after {
	content: "";
	position: absolute;
	left: -2px;
	right: -2px;
	top: 50%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transform-origin: left;
	animation: pm-upsell-strike 0.4s ease-out both;
	animation-delay: calc(0.6s + var(--i) * 0.15s);
}

.pm-upsell__new {
	color: var(--wp--preset--color--sale);
	font-size: 1.2rem;
	font-weight: 800;
	animation: pm-upsell-pop 0.45s var(--pm-ease) both;
	animation-delay: calc(0.9s + var(--i) * 0.15s);
}

.pm-upsell__off {
	padding: 0.15rem 0.45rem;
	border-radius: 999px;
	background: var(--wp--preset--color--sale);
	color: #fff;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.72rem;
	font-weight: 700;
	animation: pm-upsell-badge 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
	animation-delay: calc(1.1s + var(--i) * 0.15s);
}

.pm-upsell__add {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 2.75rem;
	padding: 0 1rem;
	border: 1.5px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.85rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.pm-upsell__add:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-upsell__add.pm-loading::before {
	content: "";
	width: 0.9em;
	height: 0.9em;
	box-sizing: border-box;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: pm-spin 0.7s linear infinite;
}

.pm-upsell__add.pm-added,
.pm-upsell__add.pm-added:hover {
	border-color: var(--wp--preset--color--accent-dark);
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
	cursor: default;
}

.pm-upsell__add.pm-added::before {
	content: "";
	width: 1em;
	height: 1em;
	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='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%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='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E") center / contain no-repeat;
	animation: pm-check-in 0.35s var(--pm-ease) both;
}

.pm-upsell__foot {
	display: grid;
	gap: 0.5rem;
	margin-top: 1.25rem;
	text-align: center;
}

.pm-upsell__go {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.25rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pm-upsell__go:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-upsell__skip {
	padding: 0.5rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	text-decoration: none;
}

.pm-upsell__skip:hover {
	color: var(--wp--preset--color--contrast);
	text-decoration: underline;
}

.pm-upsell .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Cantidad fija de la oferta del carrito: una caja del mismo tamaño que la de − y +, para que la fila se alinee */
.pm-upsell-qty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 7.6rem;
	height: calc(2.6rem + 2px);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	font-weight: 600;
}

.pm-cart .wc-proceed-to-checkout a.checkout-button.is-busy {
	opacity: 0.7;
	pointer-events: none;
}

@keyframes pm-upsell-sheet {
	from {
		transform: translateY(100%);
	}
}

@keyframes pm-upsell-strike {
	from {
		transform: scaleX(0);
	}
}

@keyframes pm-upsell-pop {
	from {
		opacity: 0;
		transform: translateY(8px) scale(0.9);
	}
}

@keyframes pm-upsell-badge {
	from {
		opacity: 0;
		transform: scale(0.3);
	}
}

@media (min-width: 782px) {
	.pm-upsell {
		align-items: center;
	}

	.pm-upsell__panel {
		width: min(820px, calc(100% - 2rem));
		padding: 2rem;
		border-radius: 20px;
		box-shadow: 0 30px 80px -20px rgb(0 0 0 / 0.45);
		animation-name: pm-fade-up;
	}

	.pm-upsell__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1rem;
	}

	.pm-upsell__item {
		grid-template-columns: 1fr;
		align-content: start;
		justify-items: start;
		padding: 1rem;
	}

	.pm-upsell__item img,
	.pm-upsell__noimg {
		width: 100%;
		height: auto;
		aspect-ratio: 1;
	}

	.pm-upsell__add {
		justify-content: center;
		width: 100%;
	}

	.pm-upsell__foot {
		grid-template-columns: auto auto;
		justify-content: end;
		align-items: center;
		gap: 1rem;
	}

	.pm-upsell__go {
		order: 2;
		padding: 0 2.5rem;
	}
}

/* =========================================================================
   Celular: sin zoom al escribir
   iOS (y algunos Android) acercan la página al tocar un campo con letra menor a 16 px. Se sube a 16 px en pantallas
   táctiles, en vez de bloquear el zoom (el zoom con los dedos sigue funcionando, que es importante para leer).
   ========================================================================= */

@media (hover: none) and (pointer: coarse) {
	input:not([type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"], [type="hidden"]),
	select,
	textarea {
		font-size: 16px !important;
	}
}

/* =========================================================================
   Menos movimiento si el usuario lo pide
   ========================================================================= */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}
}

/* Pies de foto y de video sobre fondos oscuros: gris claro para que se lean (contraste mayor a 4,5:1) */
.has-contrast-background-color .wp-element-caption,
.has-contrast-soft-background-color .wp-element-caption {
	color: #b9c2bc;
}

/* =========================================================================
   Página de pago (estilo Shopify): datos y pago a la izquierda, resumen a la derecha
   ========================================================================= */

.pm-co-header__inner {
	min-height: 2.5rem;
}

.pm-co-header__secure {
	display: inline-flex;
	white-space: nowrap;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	color: #cfd4cd;
	font-weight: 500;
}

/* Candado (mismo ícono en el encabezado, el botón de pago y la nota de seguridad) */
.pm-co-header__secure::before,
.pm-co-secure::before,
.pm-checkout #place_order::before {
	content: "";
	width: 1em;
	height: 1em;
	flex: none;
	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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pm-co-footer {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-co-footer a {
	color: inherit;
}

.pm-checkout .wp-block-post-content,
.pm-checkout .entry-content {
	margin: 0;
	max-width: none;
}

/* Pedido recibido y "pagar pedido" (vuelta de Webpay): mismo encabezado, contenido centrado */
.pm-checkout .woocommerce:not(:has(> form.checkout)) {
	box-sizing: border-box;
	max-width: 760px;
	margin: 0 auto;
	padding: 2.5rem 1.25rem 3.5rem;
}

/* Rejilla: 2 columnas iguales; el fondo gris de la derecha llega hasta el borde de la pantalla */
.pm-checkout:has(form.checkout) {
	background: linear-gradient(90deg, var(--wp--preset--color--base) 50%, var(--wp--preset--color--surface) 50%);
}

.pm-checkout .woocommerce:has(> form.checkout) {
	/* WooCommerce le pone max-width: 1000px; aquí debe ocupar todo el ancho para calzar con el fondo partido */
	max-width: none !important;
	width: 100%;
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-rows: repeat(10, auto) 1fr;
	align-items: start;
}

.pm-checkout form.checkout {
	display: contents;
}

.pm-checkout .woocommerce:has(> form.checkout) > *,
.pm-checkout form.checkout > * {
	grid-column: 1;
	justify-self: end;
	box-sizing: border-box;
	width: min(100%, 620px);
	margin: 0;
	padding-inline: 1.5rem 3.5rem;
}

/* Columna derecha: resumen (con el envío) y debajo el medio de pago. Ya no es fija al hacer scroll: con el pago
   adentro es más alta que la pantalla y no se alcanzaría el botón. */
.pm-checkout form.checkout > .pm-co-side {
	grid-column: 2;
	grid-row: 1 / -1;
	justify-self: start;
	width: min(100%, 620px);
	padding: 2.5rem 1.5rem 3rem 3.5rem;
}

.pm-checkout #customer_details {
	padding-top: 1.75rem;
}

.pm-checkout .pm-co-payment {
	margin-top: 2rem;
	padding-top: 0.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-checkout #customer_details {
	padding-bottom: 3rem;
}

.pm-checkout .col2-set .col-1,
.pm-checkout .col2-set .col-2 {
	float: none;
	width: auto;
	max-width: none;
	padding: 0;
}

/* Títulos de sección */
.pm-checkout .woocommerce-billing-fields > h3,
.pm-checkout .woocommerce-additional-fields > h3,
.pm-checkout .pm-co-h,
.pm-checkout #order_review_heading {
	margin: 1.75rem 0 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.2;
}

.pm-checkout #order_review_heading {
	margin-top: 0;
	font-size: 1.15rem;
}

/* "¿Ya eres cliente?" como una línea discreta (sin caja de aviso) */
.pm-checkout .woocommerce-form-login-toggle .wc-block-components-notice-banner,
.pm-checkout .woocommerce-form-login-toggle .woocommerce-info {
	margin: 1.5rem 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pm-checkout .woocommerce-form-login-toggle .wc-block-components-notice-banner__content {
	padding: 0;
}

.pm-checkout .woocommerce-form-login-toggle svg,
.pm-checkout .woocommerce-form-login-toggle .woocommerce-info::before {
	display: none;
}

.pm-checkout .woocommerce-form-login-toggle a {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

/* Acceso desde el pago: tarjeta alineada con "¿Ya eres cliente?" (la fila tiene relleno lateral; el borde va dentro) */
.pm-checkout .woocommerce:has(> form.checkout) > form.woocommerce-form-login {
	display: grid;
	gap: 0.9rem;
	box-sizing: border-box;
	width: calc(min(100%, 620px) - 5rem);
	margin: 1rem 3.5rem 0 1.5rem;
	padding: 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
}

.pm-checkout form.woocommerce-form-login > p:first-child {
	margin: 0 0 0.25rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	line-height: 1.5;
}

.pm-checkout form.woocommerce-form-login .form-row {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.pm-checkout form.woocommerce-form-login .clear {
	display: none;
}

.pm-checkout form.woocommerce-form-login .password-input {
	position: relative;
	display: block;
}

.pm-checkout form.woocommerce-form-login .show-password-input {
	position: absolute;
	top: 50%;
	right: 0.85rem;
	z-index: 2;
	transform: translateY(-50%);
}

/* "Recuérdame" arriba y el botón "Ingresar" a todo el ancho */
.pm-checkout form.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.9rem;
}

.pm-checkout form.woocommerce-form-login .woocommerce-form-login__rememberme {
	position: static;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	color: var(--wp--preset--color--contrast);
	font-size: 0.9rem;
	pointer-events: auto;
	cursor: pointer;
}

.pm-checkout form.woocommerce-form-login .woocommerce-form-login__submit {
	width: 100%;
	min-height: 3.25rem;
	margin: 0;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pm-checkout form.woocommerce-form-login .woocommerce-form-login__submit:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.pm-checkout form.woocommerce-form-login .lost_password {
	margin: 0;
	font-size: 0.85rem;
	text-align: center;
}

.pm-checkout form.woocommerce-form-login .lost_password a {
	color: var(--wp--preset--color--muted);
}

@media (max-width: 999px) {
	.pm-checkout .woocommerce:has(> form.checkout) > form.woocommerce-form-login {
		width: auto;
		max-width: calc(640px - 2.5rem);
		margin: 1rem 1.25rem 0;
	}
}

/* El cupón vive en el resumen: el aviso y el formulario originales de WooCommerce quedan ocultos */
.pm-checkout .woocommerce-form-coupon-toggle,
.pm-checkout form.checkout_coupon {
	display: none !important;
}

/* Campos: rejilla de 2 columnas, etiqueta arriba, campos altos y letra de 16 px (el iPhone no hace zoom) */
.pm-checkout .woocommerce-billing-fields__field-wrapper,
.pm-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.9rem 0.75rem;
}

.pm-checkout .form-row {
	grid-column: 1 / -1;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.pm-checkout #billing_email_field { order: -10; }
.pm-checkout #billing_first_name_field,
.pm-checkout #shipping_first_name_field { order: 1; }
.pm-checkout #billing_last_name_field,
.pm-checkout #shipping_last_name_field { order: 2; }
.pm-checkout #billing_rut_field { order: 3; }
.pm-checkout #billing_phone_field { order: 4; }
.pm-checkout #billing_state_field,
.pm-checkout #shipping_state_field { order: 5; }
.pm-checkout #billing_city_field,
.pm-checkout #shipping_city_field { order: 6; }
.pm-checkout #billing_address_1_field,
.pm-checkout #shipping_address_1_field { order: 7; }

.pm-checkout #billing_first_name_field,
.pm-checkout #billing_last_name_field,
.pm-checkout #billing_rut_field,
.pm-checkout #billing_phone_field,
.pm-checkout #shipping_first_name_field,
.pm-checkout #shipping_last_name_field {
	grid-column: auto / span 1;
}

/* Solo se vende en Chile: el selector de país (con una sola opción) se oculta; su valor se sigue enviando */
.pm-checkout #billing_country_field,
.pm-checkout #shipping_country_field {
	display: none !important;
}

.pm-checkout .form-row label {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.85rem;
	font-weight: 500;
	line-height: 1.3;
}

.pm-checkout .form-row label .required,
.pm-checkout .form-row label abbr.required {
	display: none;
}

.pm-checkout .form-row label .optional {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

.pm-checkout .form-row .input-text,
.pm-checkout .form-row select,
.pm-checkout .select2-container .select2-selection--single {
	width: 100%;
	min-height: 3rem;
	border: 1px solid #cfd4cd;
	border-radius: 10px;
	font-size: 1rem;
}

.pm-checkout .form-row textarea.input-text {
	min-height: 5.5rem;
	resize: vertical;
}

.pm-checkout .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: 3.25rem;
}

.pm-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	padding-left: 0.9rem;
	line-height: 1.3;
	color: var(--wp--preset--color--contrast);
}

.pm-checkout .select2-container .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 0.5rem;
	height: 100%;
}

.pm-checkout .select2-container--focus .select2-selection--single,
.pm-checkout .select2-container--open .select2-selection--single {
	border-color: var(--wp--preset--color--accent-dark);
	box-shadow: 0 0 0 3px rgb(46 219 83 / 0.25);
}

/* El contenedor de select2 debe medir lo mismo que la caja (52 px): select2 abre el panel justo debajo del contenedor,
   y si es más bajo el panel tapa el borde inferior del campo. */
.pm-checkout .form-row .select2-container {
	display: block;
	width: 100% !important;
}

/* Panel del desplegable separado del campo, con esquinas redondeadas y sombra (hacia abajo o hacia arriba) */
.woocommerce-checkout .select2-dropdown {
	border: 1px solid #cfd4cd !important;
	border-radius: 10px !important;
	overflow: hidden;
	box-shadow: var(--pm-shadow-md);
}

.woocommerce-checkout .select2-dropdown--below {
	margin-top: 6px;
}

.woocommerce-checkout .select2-dropdown--above {
	margin-top: -6px;
}

.pm-checkout .select2-container--open .select2-selection--single {
	border-radius: 10px !important;
}

/* Mismo peso que la regla de WooCommerce (.woocommerce-page .select2-container ...), que le quitaba el margen de arriba */
.woocommerce-checkout .select2-container .select2-search--dropdown {
	padding: 0.5rem;
}

.woocommerce-checkout .select2-container .select2-search--dropdown .select2-search__field {
	min-height: 2.5rem;
	padding: 0.4rem 0.75rem;
	border: 1px solid #cfd4cd;
	border-radius: 8px;
	font-size: 1rem;
}

.woocommerce-checkout .select2-results__option {
	padding: 0.55rem 0.9rem;
}

.woocommerce-checkout .select2-results__option--highlighted[aria-selected],
.woocommerce-checkout .select2-results__option--highlighted[data-selected] {
	background: var(--wp--preset--color--accent-dark);
}

/* Etiquetas flotantes: la etiqueta va dentro del campo y sube al hacer clic o al escribir (ahorra una línea por campo).
   Solo CSS: el campo "tiene texto" cuando su placeholder no se ve (functions.php le pone uno a todos). */
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text, select) {
	position: relative;
}

.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text, select) > label {
	position: absolute;
	top: 0.95rem;
	left: calc(0.9rem + 1px);
	z-index: 1;
	max-width: calc(100% - 2.5rem);
	margin: 0;
	overflow: hidden;
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	white-space: nowrap;
	text-overflow: ellipsis;
	pointer-events: none;
	transform-origin: left top;
	transition: top 0.18s var(--pm-ease), font-size 0.18s var(--pm-ease), color 0.18s ease;
}

.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row .input-text {
	height: 3.25rem;
	padding: 1.35rem 0.9rem 0.35rem !important;
	line-height: 1.3;
}

.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row textarea.input-text {
	height: auto;
	min-height: 5.5rem;
	padding-top: 1.6rem !important;
}

/* Arriba: con el foco, con texto, y siempre en los selectores (muestran "Elige una opción…") */
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text:focus) > label,
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text:not(:placeholder-shown)) > label,
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.woocommerce-input-wrapper > select) > label {
	top: 0.45rem;
	font-size: 0.72rem;
}

.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text:focus) > label,
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.select2-container--focus, .select2-container--open) > label {
	color: var(--wp--preset--color--accent-dark);
}

.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row.woocommerce-invalid > label {
	color: var(--wp--preset--color--sale);
}

/* El ejemplo del placeholder (ej. RUT) aparece recién al escribir, para no chocar con la etiqueta */
.pm-checkout .form-row:not(:has(.input-text:focus)) .input-text::placeholder {
	color: transparent;
}

.pm-checkout .form-row .input-text::placeholder {
	color: #9aa19c;
	opacity: 1;
}

/* Selectores (Comuna): el texto elegido baja para dejar espacio a la etiqueta */
.pm-checkout .form-row:has(select) .select2-container .select2-selection--single {
	align-items: flex-end;
	padding-bottom: 0.45rem;
}

.pm-checkout .form-row:has(select) .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 2rem 0 0.9rem !important;
	line-height: 1.3 !important;
}

.pm-checkout .form-row:has(select) > .woocommerce-input-wrapper > select {
	height: 3.25rem;
	padding: 1.3rem 0.9rem 0.3rem;
}

/* Campo con error: borde rojo */
.pm-checkout .woocommerce-invalid .input-text,
.pm-checkout .woocommerce-invalid .select2-selection {
	border-color: var(--wp--preset--color--sale) !important;
}

.pm-checkout .woocommerce-NoticeGroup-checkout {
	padding-top: 1.5rem;
}

/* "¿Enviar a una dirección diferente?", crear cuenta y casillas */
.pm-checkout #ship-to-different-address {
	margin: 1.5rem 0 0.75rem;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 500;
}

.pm-checkout #ship-to-different-address label,
.pm-checkout .woocommerce-account-fields label.checkbox {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.95rem;
	cursor: pointer;
}

.pm-checkout .woocommerce-account-fields {
	margin-top: 1rem;
}

.pm-checkout input[type="checkbox"],
.pm-checkout input[type="radio"] {
	width: 1.15rem;
	height: 1.15rem;
	margin: 0;
	accent-color: var(--wp--preset--color--accent-dark);
	cursor: pointer;
}

/* Medios de pago y métodos de envío como tarjetas: círculo a la izquierda, nombre y detalle, logo o precio a la derecha.
   Toda la tarjeta se puede tocar y la elegida queda marcada. */
.pm-checkout #payment {
	background: none;
	border-radius: 0;
}

.pm-checkout #payment ul.payment_methods,
.pm-checkout ul#shipping_method {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

.pm-checkout #payment ul.payment_methods::before,
.pm-checkout #payment ul.payment_methods::after {
	display: none;
}

.pm-checkout #payment li.wc_payment_method,
.pm-checkout ul#shipping_method li {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	column-gap: 0.9rem;
	margin: 0;
	padding: 1rem 1.1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.pm-checkout #payment li.wc_payment_method:hover,
.pm-checkout ul#shipping_method li:hover {
	border-color: #b9bfba;
}

.pm-checkout #payment li.wc_payment_method:has(> input:checked),
.pm-checkout ul#shipping_method li:has(> input:checked) {
	border-color: var(--wp--preset--color--accent-dark);
	background: rgb(46 219 83 / 0.08);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent-dark);
}

/* Círculo de selección propio */
.pm-checkout #payment li.wc_payment_method > input[type="radio"],
.pm-checkout ul#shipping_method li > input[type="radio"] {
	grid-row: 1 / span 2;
	display: grid;
	place-content: center;
	width: 1.3rem;
	height: 1.3rem;
	margin: 0;
	border: 2px solid #b9bfba;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	appearance: none;
	-webkit-appearance: none;
	transition: border-color 0.2s ease;
}

.pm-checkout #payment li.wc_payment_method > input[type="radio"]::before,
.pm-checkout ul#shipping_method li > input[type="radio"]::before {
	content: "";
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-dark);
	transform: scale(0);
	transition: transform 0.2s var(--pm-ease);
}

.pm-checkout #payment li.wc_payment_method > input[type="radio"]:checked,
.pm-checkout ul#shipping_method li > input[type="radio"]:checked {
	border-color: var(--wp--preset--color--accent-dark);
}

.pm-checkout #payment li.wc_payment_method > input[type="radio"]:checked::before,
.pm-checkout ul#shipping_method li > input[type="radio"]:checked::before {
	transform: scale(1);
}

.pm-checkout #payment li.wc_payment_method > input[type="radio"]:focus-visible,
.pm-checkout ul#shipping_method li > input[type="radio"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 3px;
}

/* Nombre en negrita; el logo o el precio a la derecha */
.pm-checkout #payment li.wc_payment_method > label,
.pm-checkout ul#shipping_method li > label {
	grid-column: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
}

/* Toda la tarjeta activa la opción (salvo que el medio de pago tenga campos propios, como una tarjeta) */
.pm-checkout #payment li.wc_payment_method:not(:has(.payment_box :is(input, select, textarea, iframe))) > label::after,
.pm-checkout ul#shipping_method li > label::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.pm-checkout #payment li.wc_payment_method > label img {
	flex: none;
	box-sizing: border-box;
	width: auto;
	max-height: 30px;
	margin: 0 0 0 auto;
	padding: 3px 7px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	background: var(--wp--preset--color--base);
}

/* Detalle debajo del nombre: siempre visible si es solo texto */
.pm-checkout #payment .payment_box {
	grid-column: 2;
	margin: 0.2rem 0 0 !important;
	padding: 0 !important;
	background: none !important;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	line-height: 1.4;
}

.pm-checkout #payment li.wc_payment_method:not(:has(.payment_box :is(input, select, textarea, iframe))) > .payment_box {
	display: block !important;
}

.pm-checkout #payment .payment_box::before {
	display: none !important;
}

.pm-checkout #payment .payment_box p {
	margin: 0;
}

/* El resumen deja de ser tabla: cada fila es una línea flexible (así la fila del envío puede usar todo el ancho) */
.pm-checkout #order_review table.shop_table,
.pm-checkout #order_review table.shop_table tbody,
.pm-checkout #order_review table.shop_table tfoot {
	display: block;
}

.pm-checkout #order_review table.shop_table tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	column-gap: 1rem;
}

.pm-checkout #order_review table.shop_table th,
.pm-checkout #order_review table.shop_table td {
	display: block;
}

.pm-checkout #order_review td.product-name {
	flex: 1;
	min-width: 0;
}

/* Envío: el título arriba y las opciones debajo, a todo el ancho */
.pm-checkout #order_review tr.woocommerce-shipping-totals th,
.pm-checkout #order_review tr.woocommerce-shipping-totals td {
	flex: 0 0 100%;
	text-align: left;
}

.pm-checkout #order_review tr.woocommerce-shipping-totals th {
	padding-bottom: 0.4rem;
	font-weight: 600;
}

.pm-checkout #order_review tr.woocommerce-shipping-totals td {
	padding-bottom: 0.75rem;
}

.pm-checkout ul#shipping_method li {
	padding: 0.85rem 1rem;
	font-size: 0.9rem;
}

.pm-checkout #order_review tr.woocommerce-shipping-totals td {
	white-space: normal;
}

.pm-ship__name {
	flex: 1 1 auto;
	min-width: 0;
}

.pm-ship__price {
	flex: none;
	max-width: 45%;
	font-weight: 700;
	text-align: right;
}

.pm-checkout ul#shipping_method li > input[type="hidden"] + label {
	grid-column: 1 / -1;
}

.pm-checkout .woocommerce-shipping-destination,
.pm-checkout .woocommerce-shipping-calculator {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.8rem;
}

.pm-checkout #payment .place-order {
	display: block;
	margin: 1.25rem 0 0 !important;
	padding: 0 !important;
}

.pm-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 1.25rem;
	font-size: 0.875rem;
}

.pm-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.6rem;
	line-height: 1.4;
}

.pm-checkout .woocommerce-terms-and-conditions {
	max-height: 14rem;
	overflow: auto;
	margin-bottom: 1rem;
	padding: 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	font-size: 0.8rem;
}

/* Botón de pago: ancho completo, grande y del color de la marca */
.pm-checkout #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	float: none;
	width: 100%;
	min-height: 3.6rem;
	padding: 0.9rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--pm-ease), box-shadow 0.2s ease;
}

.pm-checkout #place_order:hover {
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--pm-shadow-md);
}

.pm-co-secure {
	margin: 0.85rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.8rem;
	text-align: center;
}

.pm-co-secure::before {
	display: inline-block;
	margin-right: 0.35em;
	vertical-align: -0.12em;
}

/* Sin opciones de envío (functions.php): tarjeta con un camión, en el resumen o en la sección "Envío" del celular */
.pm-ship-empty {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1rem;
	border: 1px dashed #cfd4cd;
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	text-align: left;
}

.pm-ship-empty::before {
	content: "";
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: rgb(46 219 83 / 0.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 10h4l3 3v3h-7z'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E") center / 1.3rem no-repeat;
}

.pm-ship-empty p {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	line-height: 1.45;
}

.pm-ship-empty strong {
	display: block;
	margin-bottom: 0.15rem;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

.pm-ship-empty a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Productos solo para retiro (mu-plugin pescamania-solo-retiro): aviso en la ficha, el carrito y el pago */
.pm-solo-retiro {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin: 0 0 1.25rem;
	padding: 1rem;
	border: 1px solid #f0d08a;
	border-radius: 12px;
	background: #fff8e6;
	text-align: left;
}

.wc-block-add-to-cart-form + .pm-solo-retiro {
	margin: 0;
}

.pm-solo-retiro::before {
	content: "";
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: rgb(240 168 0 / 0.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a5a00' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3 9l1.5-5h15L21 9M3 9h18M3 9v11h18V9M9 20v-6h6v6'/%3E%3C/svg%3E") center / 1.3rem no-repeat;
}

.pm-solo-retiro p {
	margin: 0;
	color: #5c4a1f;
	font-size: 0.875rem;
	line-height: 1.45;
}

.pm-solo-retiro strong {
	display: block;
	margin-bottom: 0.15rem;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

.pm-checkout .pm-solo-retiro {
	max-width: 1100px;
	margin: 1.25rem auto;
}

/* =========================================================================
   Seguimiento de pedido (woocommerce/order/form-tracking.php y tracking.php del tema)
   ========================================================================= */

/* Alineado a la izquierda, bajo el título de la página */
.pm-track {
	max-width: 520px;
	margin: 0;
}

.pm-track--result {
	max-width: 760px;
}

.pm-track__card {
	padding: 1.75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: calc(var(--pm-radius) + 4px);
	background: var(--wp--preset--color--base);
	box-shadow: 0 18px 40px -28px rgb(10 10 10 / 0.25);
}

.pm-track__intro {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.pm-track__icon {
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: rgb(46 219 83 / 0.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 10h4l3 3v3h-7z'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E") center / 1.4rem no-repeat;
}

.pm-track__title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 1.2;
}

.pm-track__lead {
	margin: 0.25rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.95rem;
}

/* Campos con etiqueta flotante: la etiqueta vive dentro del campo y sube al escribir (como en el pago) */
.pm-float {
	position: relative;
	margin: 0 0 0.85rem;
}

.pm-track .pm-float .input-text {
	width: 100%;
	height: 3.4rem;
	padding: 1.35rem 1rem 0.4rem;
	border: 1px solid #d6dad5;
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	font-size: 1rem;
	box-shadow: none;
	outline: 0;
	transition: border-color 0.15s ease;
}

.pm-track .pm-float .input-text:focus {
	border-color: var(--wp--preset--color--contrast);
}

.pm-float label {
	position: absolute;
	top: 50%;
	left: 1rem;
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	pointer-events: none;
	transform: translateY(-50%);
	transform-origin: left top;
	transition: transform 0.15s ease, top 0.15s ease, font-size 0.15s ease;
}

.pm-float .input-text:focus + label,
.pm-float .input-text:not(:placeholder-shown) + label {
	top: 0.55rem;
	font-size: 0.75rem;
	transform: none;
}

.pm-float .input-text:focus + label {
	color: var(--wp--preset--color--contrast);
}

.pm-track__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	min-height: 3.25rem;
	margin-top: 0.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pm-track__submit:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-track__help {
	display: grid;
	gap: 0.4rem;
	margin: 1.5rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--wp--preset--color--line);
	list-style: none;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

.pm-track__help a,
.pm-track__again a,
.pm-track__notes a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Errores del formulario (pedido no encontrado, correo inválido) arriba de la tarjeta, al mismo ancho */
.woocommerce:has(> .pm-track) > .woocommerce-notices-wrapper,
.woocommerce:has(> .pm-track) > .woocommerce-error,
.woocommerce:has(> .pm-track) > .wc-block-components-notice-banner {
	max-width: 520px;
}

/* Resultado */
.pm-track__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem 1rem;
}

.pm-track__eyebrow {
	margin: 0 0 0.2rem;
	color: var(--wp--preset--color--accent-dark);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pm-track__status {
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 700;
}

.pm-track__status--info {
	background: #eef6ff;
	color: #1d4ed8;
}

.pm-track__status--ok {
	background: rgb(46 219 83 / 0.16);
	color: var(--wp--preset--color--accent-dark);
}

.pm-track__status--bad {
	background: #fdecea;
	color: #b42318;
}

/* Línea de avance: Recibido → En preparación → Despachado */
.pm-track__steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
}

.pm-track__steps li {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 0.5rem;
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	font-weight: 600;
	text-align: center;
	counter-increment: paso;
}

/* Tramo entre pasos */
.pm-track__steps li + li::after {
	content: "";
	position: absolute;
	top: 0.95rem;
	right: 50%;
	left: -50%;
	z-index: 0;
	height: 3px;
	border-radius: 3px;
	background: var(--wp--preset--color--line);
}

.pm-track__steps li.is-done::after,
.pm-track__steps li.is-current::after {
	background: var(--wp--preset--color--accent-dark);
}

.pm-track__steps li::before {
	content: counter(paso);
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border: 2px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--muted);
	font-weight: 700;
}

.pm-track__steps li.is-done::before {
	content: "";
	border-color: var(--wp--preset--color--accent-dark);
	background: var(--wp--preset--color--accent-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 1rem no-repeat;
}

.pm-track__steps li.is-current::before {
	border-color: var(--wp--preset--color--accent-dark);
	color: var(--wp--preset--color--accent-dark);
	box-shadow: 0 0 0 5px rgb(46 219 83 / 0.18);
}

.pm-track__steps li.is-done,
.pm-track__steps li.is-current {
	color: var(--wp--preset--color--contrast);
}

.pm-track__message {
	margin: 1.5rem 0 0;
	padding: 0.85rem 1rem;
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
	font-size: 0.95rem;
}

.pm-track__subtitle {
	margin: 1.75rem 0 0.75rem;
	font-size: 1.05rem;
}

.pm-track__notes {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0 0 0 1rem;
	border-left: 2px solid var(--wp--preset--color--line);
	list-style: none;
}

.pm-track__notes li {
	margin: 0;
}

.pm-track__notes time {
	color: var(--wp--preset--color--muted);
	font-size: 0.8rem;
	font-weight: 600;
}

.pm-track__notes p {
	margin: 0.15rem 0 0;
}

.pm-track__again {
	margin: 1.5rem 0 0;
	font-size: 0.9rem;
}

/* Detalle del pedido debajo de la tarjeta */
.pm-track--result .woocommerce-order-details,
.pm-track--result .woocommerce-customer-details {
	margin-top: 2rem;
}

.pm-track--result .woocommerce-order-details__title,
.pm-track--result .woocommerce-column__title {
	margin: 0 0 0.85rem;
	font-size: 1.15rem;
}

.pm-track--result table.shop_table {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	border-collapse: separate;
	overflow: hidden;
}

.pm-track--result table.shop_table th,
.pm-track--result table.shop_table td {
	padding: 0.8rem 1rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-track--result table.shop_table thead th {
	border-top: 0;
	background: var(--wp--preset--color--surface);
}

.pm-track--result table.shop_table tfoot th {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}

.pm-track--result table.shop_table tfoot tr:last-child th,
.pm-track--result table.shop_table tfoot tr:last-child td {
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
}

.pm-track--result .woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.pm-track--result .woocommerce-customer-details .woocommerce-columns::before,
.pm-track--result .woocommerce-customer-details .woocommerce-columns::after {
	display: none;
}

.pm-track--result .woocommerce-customer-details .woocommerce-column {
	float: none !important;
	width: auto !important;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

.pm-track--result .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	color: var(--wp--preset--color--muted);
	font-style: normal;
	line-height: 1.6;
}

@media (max-width: 600px) {
	.pm-track__card {
		padding: 1.25rem;
	}

	.pm-track--result .woocommerce-customer-details .woocommerce-columns {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Aviso bajo las notas: factura por WhatsApp */
.pm-co-hints {
	display: grid;
	gap: 0.55rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

.pm-co-hints li {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0;
}

.pm-co-hints li::before {
	content: "";
	flex: none;
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.1rem;
	background-repeat: no-repeat;
	background-size: contain;
}

.pm-co-hints__invoice::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007032' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6 2h9l4 4v16H6zM15 2v4h4M9 11h7M9 15h7M9 19h4'/%3E%3C/svg%3E");
}

.pm-co-hints a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* Resumen del pedido */
.pm-co-toggle {
	display: none;
}

.pm-checkout #order_review table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}

.pm-checkout #order_review table.shop_table thead {
	display: none;
}

.pm-checkout #order_review table.shop_table th,
.pm-checkout #order_review table.shop_table td {
	padding: 0.5rem 0;
	border: 0;
	background: none;
	vertical-align: middle;
}

.pm-checkout #order_review .cart_item td {
	padding: 0.6rem 0;
}

/* Escritorio con más de 3 productos: lista plegable (assets/js/checkout.js). En el celular todo el resumen ya es
   plegable, así que ahí los productos se ven siempre al abrirlo. */
.pm-co-items-toggle {
	display: none;
}

@media (min-width: 1000px) {
	.pm-co-items-toggle {
		display: table-row;
	}

	.pm-checkout #order_review .pm-co-items-toggle td {
		flex: 1 1 100%;
		width: 100%;
		padding: 0 0 0.5rem;
	}

	.pm-co-items-toggle__btn {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		width: 100%;
		padding: 0.85rem 1rem;
		border: 1px solid var(--wp--preset--color--line);
		border-radius: 12px;
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--contrast);
		font: inherit;
		font-weight: 600;
		cursor: pointer;
		transition: border-color 0.15s ease;
	}

	.pm-co-items-toggle__btn:hover {
		border-color: #b9bfb7;
	}

	.pm-co-items-toggle__label {
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		color: var(--wp--preset--color--accent-dark);
		font-size: 0.9rem;
	}

	.pm-co-items-toggle__label::after {
		content: "";
		width: 0.45rem;
		height: 0.45rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform 0.25s var(--pm-ease);
	}

	.pm-co-items-toggle__btn[aria-expanded="true"] .pm-co-items-toggle__label::after {
		transform: translateY(2px) rotate(-135deg);
	}

	.pm-checkout #order_review .pm-co-items-collapsed tr.cart_item {
		display: none;
	}

	.pm-checkout #order_review table:not(.pm-co-items-collapsed) tr.cart_item {
		animation: pm-fade-up 0.35s var(--pm-ease) both;
	}
}

.pm-checkout #order_review tfoot th {
	text-align: left;
	font-weight: 400;
}

.pm-checkout #order_review tfoot td,
.pm-checkout #order_review td.product-total {
	text-align: right;
	white-space: nowrap;
}

.pm-checkout #order_review td.product-total {
	font-weight: 600;
}

.pm-checkout #order_review tfoot tr:first-child th,
.pm-checkout #order_review tfoot tr:first-child td {
	padding-top: 1.1rem;
}

.pm-checkout #order_review tr.order-total {
	margin-top: 0.5rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-checkout #order_review tr.order-total th,
.pm-checkout #order_review tr.order-total td {
	padding-top: 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700;
}

.pm-co-item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.35;
}

.pm-co-item__thumb {
	position: relative;
	flex: none;
	width: 64px;
	height: 64px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
}

.pm-co-item__thumb img {
	width: 100%;
	height: 100%;
	border-radius: 9px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.pm-co-item__qty {
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	min-width: 1.4rem;
	height: 1.4rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: #5f6661;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
}

/* Carga: mientras WooCommerce recalcula (cambio de comuna, envío o cupón) tapa el resumen y el pago. En vez de su
   velo con círculos grises: un velo suave que aparece de a poco y un anillo verde que gira. */
.pm-checkout .blockUI.blockOverlay {
	background: transparent !important;
	opacity: 1 !important;
	border-radius: var(--pm-radius);
}

.pm-checkout .blockUI.blockOverlay::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: rgb(255 255 255 / 0.55);
	animation: pm-fade-in 0.25s ease both;
}

.pm-checkout .blockUI.blockOverlay::before {
	z-index: 1;
	box-sizing: border-box;
	width: 1.75rem !important;
	height: 1.75rem !important;
	margin: -0.875rem 0 0 -0.875rem !important;
	border: 3px solid rgb(0 112 50 / 0.18);
	border-top-color: var(--wp--preset--color--accent-dark);
	border-radius: 50%;
	background: none !important;
	animation: pm-spin 0.7s linear infinite, pm-fade-in 0.25s ease both !important;
}

@keyframes pm-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes pm-fade-in {
	from {
		opacity: 0;
	}
}

/* Sección "Envío", total y cupón del celular: ocultos en escritorio (ver más abajo, en la vista de celular) */
.pm-co-shipping-mobile,
.pm-co-total-mobile,
.pm-co-coupon-mobile {
	display: none;
}

.pm-co-shipping-mobile .woocommerce-shipping-destination,
.pm-co-shipping-mobile .woocommerce-shipping-calculator {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

/* Cupón entre los productos y el subtotal: la tabla del resumen se "disuelve" (display: contents) y sus partes se
   ordenan con el cupón al medio. El cupón queda fuera de la tabla, así WooCommerce no lo borra al recalcular. */
.pm-checkout #order_review {
	display: flex;
	flex-direction: column;
}

.pm-checkout #order_review table.shop_table {
	display: contents;
}

.pm-checkout #order_review table.shop_table tbody {
	order: 1;
}

.pm-checkout #order_review .pm-co-coupon-wrap {
	order: 2;
}

.pm-checkout #order_review table.shop_table tfoot {
	order: 3;
}

/* Cupón: "¿Tienes un cupón de descuento? Ingrésalo aquí" y el campo se despliega (alto de 0 a su tamaño) */
.pm-co-coupon-wrap {
	margin-top: 0.75rem;
	padding: 1rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pm-co-coupon-toggle {
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font: inherit;
	font-size: 0.9rem;
	text-align: left;
	cursor: pointer;
}

.pm-co-coupon-toggle span {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pm-co-coupon-box {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows 0.35s var(--pm-ease), opacity 0.25s ease;
}

.pm-co-coupon-box__inner {
	min-height: 0;
	overflow: hidden;
}

.pm-co-coupon-wrap.is-open .pm-co-coupon-box {
	grid-template-rows: 1fr;
	opacity: 1;
}

.pm-co-coupon {
	display: flex;
	gap: 0.6rem;
	padding: 0.85rem 0 0.15rem;
}

.pm-co-coupon__msg {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--sale);
	font-size: 0.85rem;
}

.pm-co-coupon input {
	flex: 1;
	min-width: 0;
	min-height: 3rem;
	font-size: 1rem;
}

.pm-co-coupon__apply {
	padding: 0 1.25rem;
	border: 1px solid #cfd4cd;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pm-co-coupon__apply:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Celular y tablet: una columna, con el resumen plegable arriba */
@media (max-width: 999px) {
	.pm-checkout:has(form.checkout) {
		background: var(--wp--preset--color--base);
	}

	.pm-checkout .woocommerce:has(> form.checkout) {
		display: flex;
		flex-direction: column;
	}

	.pm-checkout .woocommerce:has(> form.checkout) > *,
	.pm-checkout form.checkout > * {
		justify-self: auto;
		width: 100%;
		max-width: 640px;
		margin-inline: auto;
		padding-inline: 1.25rem;
	}

	.pm-checkout .woocommerce-notices-wrapper {
		order: -2;
	}

	/* La columna derecha se abre: el resumen plegable sube al principio y el pago queda al final */
	.pm-checkout form.checkout > .pm-co-side {
		display: contents;
	}

	.pm-checkout .pm-co-summary {
		order: -1;
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--line);
		background: var(--wp--preset--color--surface);
	}

	.pm-checkout .pm-co-payment {
		box-sizing: border-box;
		width: 100%;
		max-width: 640px;
		margin: 0 auto;
		padding: 0.25rem 1.25rem 3rem;
	}

	/* Envío en el flujo principal (las opciones las trae assets/js/checkout.js desde el resumen plegado) */
	.pm-checkout .pm-co-shipping-mobile.has-options {
		display: block;
		box-sizing: border-box;
		width: 100%;
		max-width: 640px;
		margin: 0 auto;
		padding: 0.25rem 1.25rem 0;
	}

	.pm-checkout .pm-co-total-mobile,
	.pm-checkout .pm-co-coupon-mobile {
		display: block;
		box-sizing: border-box;
		width: 100%;
		max-width: 640px;
		margin: 0 auto;
		padding-inline: 1.25rem;
	}

	.pm-checkout .pm-co-total-mobile {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		margin-top: 1.25rem;
	}

	.pm-checkout .pm-co-total-mobile > * {
		padding-top: 1rem;
		border-top: 1px solid var(--wp--preset--color--line);
		font-family: var(--wp--preset--font-family--heading);
		font-size: 1.3rem;
		font-weight: 700;
	}

	.pm-checkout .pm-co-total-mobile > span {
		flex: 1;
	}

	.pm-checkout .pm-co-coupon-mobile .pm-co-coupon-wrap {
		margin-top: 1rem;
		padding: 0;
		border: 0;
	}

	.pm-checkout .pm-co-total-mobile + .pm-co-payment {
		margin-top: 1.5rem;
		border-top: 1px solid var(--wp--preset--color--line);
	}

	.pm-checkout #order_review tr.woocommerce-shipping-totals {
		display: none;
	}

	.pm-checkout #customer_details {
		padding-bottom: 0;
	}

	.pm-co-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		box-sizing: border-box;
		width: 100%;
		max-width: 640px;
		margin: 0 auto;
		padding: 1rem 1.25rem;
		border: 0;
		background: none;
		color: var(--wp--preset--color--accent-dark);
		font: inherit;
		font-weight: 600;
		cursor: pointer;
	}

	.pm-co-toggle__label {
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		font-size: 0.9rem;
		white-space: nowrap;
	}

	.pm-co-toggle__label::after {
		content: "";
		width: 0.45rem;
		height: 0.45rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform 0.25s var(--pm-ease);
	}

	.pm-co-open .pm-co-toggle__label::after {
		transform: translateY(2px) rotate(-135deg);
	}

	.pm-co-toggle__total {
		color: var(--wp--preset--color--contrast);
		font-family: var(--wp--preset--font-family--heading);
		font-size: 1.15rem;
		font-weight: 700;
	}

	.pm-checkout #order_review_heading {
		display: none;
	}

	.pm-checkout #order_review {
		display: none;
		box-sizing: border-box;
		max-width: 640px;
		margin: 0 auto;
		padding: 0 1.25rem 1.25rem;
	}

	.pm-co-open #order_review {
		display: block;
		animation: pm-fade-up 0.35s var(--pm-ease) both;
	}
}

@media (max-width: 480px) {
	.pm-checkout #billing_rut_field,
	.pm-checkout #billing_phone_field {
		grid-column: 1 / -1;
	}
}

/* =========================================================================
   Página del carrito (estilo Shopify): productos a la izquierda, resumen a la derecha
   ========================================================================= */

.pm-cart .pm-cart__title {
	margin-bottom: var(--wp--preset--spacing--40);
	font-size: clamp(2rem, 4vw, 2.75rem);
}

/* Mismo ancho que el título (1100 px, centrado). WooCommerce le pone max-width: 1000px a su contenedor. */
.pm-cart .wp-block-post-content > .woocommerce {
	width: 100%;
	max-width: none !important;
	margin: 0;
}

.pm-cart .woocommerce:has(> form.woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	grid-template-rows: auto 1fr;
	column-gap: 3rem;
	align-items: start;
}

.pm-cart .woocommerce:has(> form.woocommerce-cart-form) > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.pm-cart .woocommerce-cart-form {
	grid-column: 1;
}

.pm-cart .cart-collaterals {
	grid-column: 2;
	grid-row: 2 / span 2;
	position: sticky;
	top: calc(var(--pm-topbar-h) + 5.5rem);
	width: auto;
	float: none;
}

.pm-cart .cart-collaterals .cart_totals {
	float: none;
	width: auto;
	padding: 1.5rem;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--surface);
}

/* Lista de productos: una fila por producto (la tabla de WooCommerce pasa a ser una grilla) */
.pm-cart table.shop_table.cart,
.pm-cart table.shop_table.cart tbody {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.pm-cart table.shop_table.cart thead {
	display: none;
}

.pm-cart table.shop_table.cart tr.cart_item {
	display: grid;
	/* La columna de cantidad tiene ancho fijo: así la cantidad, "Eliminar" y el total quedan en la misma línea en
	   todas las filas, también en las de la oferta del carrito (cantidad fija, sin − y +). */
	grid-template-columns: 88px minmax(0, 1fr) 8rem 6.5rem;
	grid-template-areas:
		"thumb name qty total"
		"thumb price remove total";
	column-gap: 1.25rem;
	row-gap: 0.25rem;
	align-items: start;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pm-cart table.shop_table.cart tr.cart_item:first-child {
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-cart table.shop_table.cart td {
	display: block;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	text-align: left !important;
}

/* La vista angosta de WooCommerce agrega "Producto:", "Precio:"... antes de cada dato */
.pm-cart table.shop_table.cart td::before {
	display: none !important;
}

.pm-cart td.product-thumbnail {
	grid-area: thumb;
}

.pm-cart td.product-thumbnail img {
	display: block;
	width: 88px !important;
	max-width: none;
	height: 88px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	object-fit: contain;
}

.pm-cart td.product-name {
	grid-area: name;
	font-weight: 600;
	line-height: 1.35;
}

.pm-cart td.product-name a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.pm-cart td.product-name a:hover {
	color: var(--wp--preset--color--accent-dark);
}

.pm-cart td.product-name dl.variation {
	margin: 0.25rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	font-weight: 400;
	line-height: 1.35;
}

.pm-cart td.product-name dl.variation p {
	margin: 0;
	line-height: inherit;
}

.pm-cart td.product-price {
	grid-area: price;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pm-cart td.product-quantity {
	grid-area: qty;
	justify-self: center;
}

.pm-cart td.product-subtotal {
	grid-area: total;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-weight: 700;
	text-align: right !important;
}

/* Eliminar: ícono de basurero bajo la cantidad */
/* La celda ocupa toda la columna y centra el enlace: con su letra en 0 (el texto va en ::after) medía 17 px y
   "Eliminar" se salía hacia la derecha. */
.pm-cart td.product-remove {
	display: flex !important;
	grid-area: remove;
	justify-self: stretch;
	justify-content: center;
	width: auto !important;
	margin-top: 0.35rem !important;
}

.pm-cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	width: auto;
	height: auto;
	border-radius: 0;
	color: var(--wp--preset--color--muted) !important;
	font-size: 0 !important;
	line-height: 1;
	text-decoration: none;
}

.pm-cart td.product-remove a.remove::before {
	content: "";
	width: 1.1rem;
	height: 1.1rem;
	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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4.5h6V7M6.5 7l1 12.5h9l1-12.5M10 11v5M14 11v5'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4.5h6V7M6.5 7l1 12.5h9l1-12.5M10 11v5M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pm-cart td.product-remove a.remove::after {
	content: "Eliminar";
	font-size: 0.85rem;
}

.pm-cart td.product-remove a.remove:hover {
	background: none;
	color: var(--wp--preset--color--sale) !important;
}

/* Cantidad con − y + (assets/js/cart.js) */
.pm-cart .quantity.pm-qty {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid #cfd4cd;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
}

.pm-cart .quantity.pm-qty input.qty {
	width: 2.75rem;
	min-height: 2.6rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-align: center;
	font-size: 1rem;
	-moz-appearance: textfield;
}

.pm-cart .quantity.pm-qty input.qty::-webkit-outer-spin-button,
.pm-cart .quantity.pm-qty input.qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.pm-qty__btn {
	width: 2.4rem;
	min-height: 2.6rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1.15rem;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.pm-qty__btn:hover {
	background: var(--wp--preset--color--surface);
}

/* El carrito se actualiza solo: sin cupón (se ingresa en el pago) ni botón "Actualizar carrito" a la vista */
.pm-cart table.shop_table.cart tr:not(.cart_item) {
	display: block;
}

.pm-cart table.shop_table.cart td.actions {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

/* Resumen */
.pm-cart .cart_totals h2 {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
}

.pm-cart .cart_totals table.shop_table {
	display: block;
	margin: 0;
	border: 0;
	background: none;
}

.pm-cart .cart_totals table.shop_table tbody {
	display: block;
}

.pm-cart .cart_totals table.shop_table tr {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.4rem 0;
}

.pm-cart .cart_totals table.shop_table th,
.pm-cart .cart_totals table.shop_table td {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-weight: 400;
}

.pm-cart .cart_totals table.shop_table td::before {
	display: none !important;
}

/* En pantallas angostas WooCommerce oculta "Subtotal" y "Total" (los reemplaza por un texto que aquí se quitó) */
.pm-cart .cart_totals table.shop_table th {
	display: block !important;
}

/* El envío se elige en el pago */
.pm-cart .cart_totals tr.woocommerce-shipping-totals,
.pm-cart .cart_totals tr.shipping {
	display: none !important;
}

.pm-cart .cart_totals tr.order-total {
	margin-top: 0.5rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.pm-cart .cart_totals tr.order-total th,
.pm-cart .cart_totals tr.order-total td {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700 !important;
}

.pm-cart .cart_totals tr.order-total small.includes_tax {
	display: block;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	font-weight: 400;
	text-align: right;
}

.pm-cart .wc-proceed-to-checkout {
	padding: 0.5rem 0 0;
}

.pm-cart-note {
	margin: 0 0 1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

.pm-cart .wc-proceed-to-checkout a.checkout-button {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	width: 100%;
	min-height: 3.5rem;
	margin: 0;
	padding: 0.9rem 1.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--pm-ease), box-shadow 0.2s ease;
}

.pm-cart .wc-proceed-to-checkout a.checkout-button::before {
	content: "";
	flex: none;
	width: 1em;
	height: 1em;
	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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pm-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--pm-shadow-md);
}

.pm-cart-secure,
.pm-cart-continue {
	margin: 0.85rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	text-align: center;
}

.pm-cart-secure::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-right: 0.35em;
	vertical-align: -0.12em;
	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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pm-cart-continue a {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

/* Productos sugeridos (si hay) bajo la lista */
.pm-cart .cross-sells {
	float: none;
	width: auto;
	margin-top: var(--wp--preset--spacing--50);
}

/* Carrito vacío */
.pm-cart .wc-empty-cart-message,
.pm-cart .cart-empty {
	text-align: center;
}

.pm-cart .return-to-shop {
	text-align: center;
}

/* Celular: una columna; el resumen va después de los productos */
@media (max-width: 860px) {
	.pm-cart .woocommerce:has(> form.woocommerce-cart-form) {
		display: block;
	}

	.pm-cart .cart-collaterals {
		position: static;
		margin-top: 1.5rem;
	}

	.pm-cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name total"
			"thumb price price"
			"thumb qty remove";
		column-gap: 0.9rem;
		row-gap: 0.4rem;
	}

	.pm-cart td.product-thumbnail img {
		width: 72px !important;
		height: 72px;
	}

	.pm-cart td.product-quantity {
		justify-self: start;
	}

	.pm-cart td.product-remove {
		align-self: center;
		justify-content: flex-end;
		margin-top: 0 !important;
	}
}

/* =========================================================================
   Mi cuenta: acceso y registro en tarjetas; con sesión, menú lateral y contenido
   ========================================================================= */

.pm-account .pm-account__title {
	/* WooCommerce lo limita a 1000 px en las páginas de cuenta y quedaba desalineado del contenido */
	max-width: 1100px !important;
	margin-bottom: var(--wp--preset--spacing--40);
	font-size: clamp(2rem, 4vw, 2.75rem);
}

/* La página envuelve el shortcode en un párrafo: quedan <p> vacíos */
.pm-account .wp-block-post-content > p:empty,
.pm-account .wp-block-post-content > p.wp-block-paragraph:has(> .woocommerce) {
	margin: 0;
}

.pm-account .wp-block-post-content > p:empty {
	display: none;
}

.pm-account .woocommerce {
	width: 100%;
	max-width: none !important;
	margin: 0;
}

/* Campos (acceso, registro, direcciones, mis datos): etiqueta arriba, 52 px, letra de 16 px */
.pm-account form .form-row {
	float: none;
	width: auto;
	margin: 0 0 1rem;
	padding: 0;
}

.pm-account form .form-row label {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.85rem;
	font-weight: 500;
	line-height: 1.3;
}

.pm-account form .form-row label .required {
	display: none;
}

.pm-account form .input-text,
.pm-account form select {
	box-sizing: border-box;
	width: 100%;
	min-height: 3.25rem;
	border: 1px solid #cfd4cd;
	border-radius: 10px;
	font-size: 1rem;
}

.pm-account .password-input {
	position: relative;
	display: block;
}

.pm-account .show-password-input {
	position: absolute;
	top: 50%;
	right: 0.75rem;
	transform: translateY(-50%);
}

.pm-account form .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	cursor: pointer;
}

.pm-account input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	accent-color: var(--wp--preset--color--accent-dark);
}

.pm-account .woocommerce-Button,
.pm-account .woocommerce-button,
.pm-account form .button {
	box-sizing: border-box;
	min-height: 3.25rem;
	padding: 0.8rem 1.75rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--pm-ease);
}

.pm-account .woocommerce-Button:hover,
.pm-account .woocommerce-button:hover,
.pm-account form .button:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	transform: translateY(-1px);
}

/* Sin sesión: "Ingresar a tu cuenta" y "Crear cuenta" en dos tarjetas */
.pm-account #customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	max-width: 920px;
}

.pm-account #customer_login::before,
.pm-account #customer_login::after {
	display: none;
}

.pm-account #customer_login > div {
	float: none;
	width: auto;
	max-width: none;
	padding: 2rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

.pm-account #customer_login .u-column1 {
	background: var(--wp--preset--color--base);
	box-shadow: var(--pm-shadow-sm);
}

.pm-account #customer_login .u-column2 {
	background: var(--wp--preset--color--surface);
}

.pm-account #customer_login h2 {
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.4rem;
}

.pm-account #customer_login form {
	margin: 0;
	padding: 0;
	border: 0;
}

.pm-account #customer_login .woocommerce-form-login__submit,
.pm-account #customer_login .woocommerce-form-register .woocommerce-Button {
	width: 100%;
	margin-top: 0.75rem;
}

.pm-account #customer_login .woocommerce-form-login__submit {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.pm-account #customer_login .woocommerce-form-login__submit:hover {
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
}

.pm-account .woocommerce-LostPassword {
	margin: 1rem 0 0;
	font-size: 0.9rem;
	text-align: center;
}

.pm-account .woocommerce-LostPassword a,
.pm-account .woocommerce-privacy-policy-text a {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

.pm-account .woocommerce-form-register > p:not(.form-row),
.pm-account .woocommerce-privacy-policy-text {
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

/* Recuperar y cambiar contraseña: una sola tarjeta angosta */
.pm-account form.lost_reset_password {
	max-width: 480px;
	padding: 2rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

/* Con sesión: menú a la izquierda, contenido a la derecha. WooCommerce agrega ::before/::after (clearfix) al
   contenedor, y en una grilla ocupan una celda y corren el menú: se quitan. */
.pm-account .woocommerce::before,
.pm-account .woocommerce::after {
	display: none !important;
}

.pm-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 2.5rem;
	align-items: start;
}

.pm-account .woocommerce-MyAccount-navigation,
.pm-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

.pm-account .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pm-account .woocommerce-MyAccount-navigation-link {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none;
}

.pm-account .woocommerce-MyAccount-navigation-link a {
	text-decoration: none !important;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border-radius: 10px;
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.pm-account .woocommerce-MyAccount-navigation-link a:hover {
	background: var(--wp--preset--color--surface);
}

.pm-account .woocommerce-MyAccount-navigation-link.is-active a,
.pm-account .woocommerce-MyAccount-navigation-link.is-active a:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-weight: 700;
}

.pm-account .woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 0.5rem !important;
	padding-top: 0.5rem !important;
	border-top: 1px solid var(--wp--preset--color--line) !important;
}

.pm-account .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--wp--preset--color--muted);
}

/* Íconos del menú */
.pm-account .woocommerce-MyAccount-navigation-link a::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	background: currentColor;
	-webkit-mask: var(--pm-icon) center / contain no-repeat;
	mask: var(--pm-icon) center / contain no-repeat;
}

.pm-account .woocommerce-MyAccount-navigation-link--dashboard { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 11 12 4l8.5 7M5.5 9.5V20h13V9.5M10 20v-5.5h4V20'/%3E%3C/svg%3E"); }
.pm-account .woocommerce-MyAccount-navigation-link--orders { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 7v10l8 4 8-4V7z'/%3E%3Cpath d='M4 7l8 4 8-4M12 11v10'/%3E%3C/svg%3E"); }
.pm-account .woocommerce-MyAccount-navigation-link--edit-address { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.pm-account .woocommerce-MyAccount-navigation-link--edit-account { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5c1.2-3.8 4-5.5 7.5-5.5s6.3 1.7 7.5 5.5'/%3E%3C/svg%3E"); }
.pm-account .woocommerce-MyAccount-navigation-link--customer-logout { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h4.5A1.5 1.5 0 0 1 20 5.5v13a1.5 1.5 0 0 1-1.5 1.5H14M10 16l-4-4 4-4M6 12h10'/%3E%3C/svg%3E"); }

.pm-account .woocommerce-MyAccount-content > p:first-of-type {
	margin-top: 0;
}

.pm-account .woocommerce-MyAccount-content a:not(.button) {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

/* Pedidos */
.pm-account table.shop_table {
	width: 100%;
	border: 1px solid var(--wp--preset--color--line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--pm-radius);
	overflow: hidden;
}

.pm-account table.shop_table th,
.pm-account table.shop_table td {
	padding: 0.85rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: middle;
}

.pm-account table.shop_table thead th {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.pm-account table.shop_table tbody tr:last-child td,
.pm-account table.shop_table tbody tr:last-child th {
	border-bottom: 0;
}

.pm-account table.shop_table .button,
.pm-account .woocommerce-orders-table .button {
	min-height: 2.25rem;
	padding: 0.4rem 1rem;
	font-size: 0.85rem;
}

/* Direcciones: dos tarjetas */
.pm-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.pm-account .woocommerce-Addresses::before,
.pm-account .woocommerce-Addresses::after {
	display: none;
}

.pm-account .woocommerce-Address {
	float: none;
	width: auto;
	max-width: none;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

.pm-account .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.pm-account .woocommerce-Address-title h2,
.pm-account .woocommerce-Address-title h3 {
	margin: 0 0 0.75rem;
	font-size: 1.1rem;
}

.pm-account .woocommerce-Address address {
	color: var(--wp--preset--color--muted);
	font-style: normal;
	line-height: 1.6;
}

/* Mis datos: nombre y apellido lado a lado */
/* Mis datos: el formulario en una tarjeta, con "Datos personales" y "Contraseña" separadas por una línea */
.pm-account .woocommerce-EditAccountForm {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 1rem;
	max-width: 720px;
	padding: 1.75rem 2rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
}

.pm-account .woocommerce-EditAccountForm > *:not(.form-row-first):not(.form-row-last) {
	grid-column: 1 / -1;
}

.pm-account .pm-form-title,
.pm-account .woocommerce-EditAccountForm legend {
	margin: 0 0 1.1rem;
	padding: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	font-weight: 700;
}

.pm-account .pm-form-sub {
	margin: -0.8rem 0 1.25rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

.pm-account .woocommerce-EditAccountForm fieldset {
	min-width: 0;
	margin: 0.75rem 0 0;
	padding: 1.5rem 0 0;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
}

.pm-account .woocommerce-EditAccountForm legend {
	float: left;
	width: 100%;
}

.pm-account .woocommerce-EditAccountForm legend + * {
	clear: both;
}

.pm-account .woocommerce-EditAccountForm fieldset > legend + *::before {
	content: "Déjalas en blanco si no quieres cambiarla.";
	display: block;
	margin: -0.6rem 0 1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
}

/* Textos de ayuda bajo un campo (ej. "Así será como se mostrará tu nombre...") */
.pm-account form .form-row > span > em,
.pm-account form .form-row .description {
	display: block;
	margin-top: 0.35rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.8rem;
	font-style: normal;
}

.pm-account .woocommerce-EditAccountForm > p:last-of-type {
	margin: 0.5rem 0 0;
}

.pm-account .woocommerce-EditAccountForm button[type="submit"] {
	min-width: 12rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.pm-account .woocommerce-EditAccountForm button[type="submit"]:hover {
	background: var(--wp--preset--color--accent-dark);
	color: #fff;
}

@media (max-width: 860px) {
	.pm-account #customer_login,
	.pm-account .woocommerce-Addresses,
	.pm-account .woocommerce-EditAccountForm {
		grid-template-columns: minmax(0, 1fr);
	}

	.pm-account #customer_login > div,
	.pm-account .woocommerce-EditAccountForm {
		padding: 1.5rem;
	}

	.pm-account .woocommerce-EditAccountForm button[type="submit"] {
		width: 100%;
	}

	/* Con sesión: el menú pasa a una barra horizontal que se desliza */
	.pm-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}

	.pm-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 0.5rem;
		margin: 0 -1.25rem;
		padding: 0 1.25rem 0.25rem;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.pm-account .woocommerce-MyAccount-navigation-link {
		flex: none;
	}

	.pm-account .woocommerce-MyAccount-navigation-link a {
		padding: 0.55rem 0.9rem;
		border: 1px solid var(--wp--preset--color--line);
		border-radius: 999px;
		white-space: nowrap;
	}

	.pm-account .woocommerce-MyAccount-navigation-link.is-active a {
		border-color: var(--wp--preset--color--contrast);
		background: var(--wp--preset--color--contrast);
		box-shadow: none;
		color: var(--wp--preset--color--base);
	}

	.pm-account .woocommerce-MyAccount-navigation-link--customer-logout {
		margin: 0;
		padding: 0;
		border: 0;
	}

	.pm-account table.shop_table thead {
		display: none;
	}

	.pm-account table.shop_table tr {
		display: block;
		padding: 0.5rem 0;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}

	.pm-account table.shop_table td,
	.pm-account table.shop_table th {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.35rem 1rem;
		border: 0;
		text-align: right;
	}

	/* WooCommerce oculta en pantallas angostas la primera columna (el número de pedido) */
	.pm-account table.shop_table tbody th {
		display: flex !important;
	}
}

/* =========================================================================
   Mi cuenta → Inicio (woocommerce/myaccount/dashboard.php): panel de la cuenta
   ========================================================================= */

.pm-dash {
	display: grid;
	gap: 1.25rem;
}

.pm-dash__hello {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.75rem 2rem;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--contrast) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='160' viewBox='0 0 420 160' fill='none' stroke='%232edb53' stroke-opacity='.18' stroke-width='2'%3E%3Cpath d='M0 120c60-40 120-40 180 0s120 40 180 0 60-20 60-20'/%3E%3Cpath d='M0 90c60-40 120-40 180 0s120 40 180 0 60-20 60-20'/%3E%3Cpath d='M0 60c60-40 120-40 180 0s120 40 180 0 60-20 60-20'/%3E%3C/svg%3E") right bottom / 420px auto no-repeat;
	color: var(--wp--preset--color--base);
}

.pm-dash__eyebrow {
	margin: 0 0 0.35rem;
	color: var(--wp--preset--color--accent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pm-dash__title {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.6rem, 3vw, 2.1rem);
	line-height: 1.1;
}

.pm-dash__meta {
	margin: 0.5rem 0 0;
	color: #cfd4cd;
	font-size: 0.9rem;
}

.pm-dash__meta span {
	margin: 0 0.35rem;
}

.pm-account .pm-dash__logout {
	flex: none;
	color: #cfd4cd !important;
	font-size: 0.85rem;
	font-weight: 500 !important;
}

.pm-account .pm-dash__logout:hover {
	color: var(--wp--preset--color--accent) !important;
}

.pm-dash__card {
	padding: 1.5rem 1.75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
}

.pm-dash__card-title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
}

.pm-dash__order-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.pm-account .pm-dash__order-number {
	color: var(--wp--preset--color--contrast) !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 700 !important;
	text-decoration: none;
}

.pm-dash__order-meta {
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pm-dash__order-meta span {
	margin: 0 0.35rem;
}

.pm-dash__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.pm-dash__thumbs li {
	position: relative;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
}

.pm-dash__thumbs img {
	width: 100%;
	height: 100%;
	border-radius: 9px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.pm-dash__thumb-qty {
	position: absolute;
	top: -0.45rem;
	right: -0.45rem;
	display: grid;
	place-items: center;
	min-width: 1.3rem;
	height: 1.3rem;
	padding: 0 0.3rem;
	box-sizing: border-box;
	border-radius: 999px;
	background: #5f6661;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
}

.pm-dash__thumbs-more {
	color: var(--wp--preset--color--muted);
	font-weight: 700;
}

.pm-dash__order-actions,
.pm-dash__empty {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.pm-dash__empty {
	justify-content: space-between;
	margin-top: 0;
}

.pm-dash__empty p {
	margin: 0;
	color: var(--wp--preset--color--muted);
}

.pm-account a.button.pm-dash__btn {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.55rem 1.4rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base) !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.95rem;
	font-weight: 700 !important;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--pm-ease);
}

.pm-account a.button.pm-dash__btn:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast) !important;
	transform: translateY(-1px);
}

.pm-account a.button.pm-dash__btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: inset 0 0 0 1px #cfd4cd;
}

.pm-account a.button.pm-dash__btn--ghost:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base) !important;
}

/* Accesos rápidos (tarjetas; otros módulos agregan las suyas con el filtro pescamania_account_cards) */
.pm-dash__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

@media (max-width: 520px) {
	.pm-dash__links {
		grid-template-columns: minmax(0, 1fr);
	}
}

.pm-account a.pm-dash__link {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast) !important;
	font-weight: 400 !important;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.25s var(--pm-ease), transform 0.25s var(--pm-ease);
}

.pm-account a.pm-dash__link:hover {
	border-color: transparent;
	box-shadow: var(--pm-shadow-md);
	transform: translateY(-2px);
}

.pm-dash__link-icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 12px;
	background: rgb(46 219 83 / 0.14);
	color: var(--wp--preset--color--accent-dark);
}

.pm-dash__link-icon::before {
	content: "";
	width: 1.3rem;
	height: 1.3rem;
	background: currentColor;
	-webkit-mask: var(--pm-icon) center / contain no-repeat;
	mask: var(--pm-icon) center / contain no-repeat;
}

.pm-dash__link-text {
	display: grid;
	gap: 0.1rem;
	min-width: 0;
}

.pm-dash__link-text strong {
	font-weight: 700;
}

.pm-dash__link-text span {
	overflow: hidden;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pm-dash__link--orders { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 7v10l8 4 8-4V7z'/%3E%3Cpath d='M4 7l8 4 8-4M12 11v10'/%3E%3C/svg%3E"); }
.pm-dash__link--edit-address { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.pm-dash__link--edit-account { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5c1.2-3.8 4-5.5 7.5-5.5s6.3 1.7 7.5 5.5'/%3E%3C/svg%3E"); }
.pm-dash__link--shop { --pm-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 11.2a1.5 1.5 0 0 1-1.5 1.3H7.7a1.5 1.5 0 0 1-1.5-1.3z'/%3E%3Cpath d='M9 8V6.5a3 3 0 0 1 6 0V8'/%3E%3C/svg%3E"); }

/* Estado del pedido como etiqueta de color (panel, lista de pedidos y detalle) */
.pm-status,
.pm-account .woocommerce-orders-table__cell-order-status {
	--pm-st-bg: #eef0ee;
	--pm-st-fg: #4a514c;
}

.pm-status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	background: var(--pm-st-bg);
	color: var(--pm-st-fg);
	font-size: 0.8rem;
	font-weight: 700;
	white-space: nowrap;
}

.pm-status::before {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: currentColor;
}

.pm-status--pending,
.pm-status--on-hold,
.woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status {
	--pm-st-bg: #fdf3d7;
	--pm-st-fg: #8a5a00;
}

.pm-status--processing,
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status {
	--pm-st-bg: #e3effd;
	--pm-st-fg: #1d4f91;
}

.pm-status--completed,
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status {
	--pm-st-bg: #e3f7e8;
	--pm-st-fg: #00702f;
}

.pm-status--cancelled,
.pm-status--failed,
.pm-status--refunded,
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status {
	--pm-st-bg: #fde8e9;
	--pm-st-fg: #a3161d;
}

/* En la lista de pedidos el estado es texto suelto: se dibuja la etiqueta con un fondo en la celda */
.pm-account .woocommerce-orders-table__cell-order-status {
	color: var(--pm-st-fg);
	font-weight: 700;
}

/* Direcciones: tarjetas a todo el ancho (WooCommerce les deja 48%) y "Editar" a la derecha */
.pm-account .woocommerce-Addresses .woocommerce-Address,
.pm-account .woocommerce-Addresses .u-column1,
.pm-account .woocommerce-Addresses .u-column2 {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

.pm-account .woocommerce-Address-title {
	align-items: center;
	margin-bottom: 0.75rem;
}

.pm-account .woocommerce-Address-title h2,
.pm-account .woocommerce-Address-title h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
}

.pm-account .woocommerce-Address-title a.edit {
	flex: none;
	padding: 0.3rem 0.85rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast) !important;
	font-size: 0.85rem;
	font-weight: 600 !important;
	text-decoration: none;
}

.pm-account .woocommerce-Address-title a.edit:hover {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base) !important;
}

.pm-account .woocommerce-MyAccount-content > p:has(+ .woocommerce-Addresses) {
	color: var(--wp--preset--color--muted);
}

/* Detalle de un pedido */
.pm-account .woocommerce-MyAccount-content > p:has(> mark.order-status) {
	padding: 1rem 1.25rem;
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--surface);
}

.pm-account mark.order-number,
.pm-account mark.order-date,
.pm-account mark.order-status {
	background: none;
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

.pm-account .woocommerce-order-details,
.pm-account .woocommerce-customer-details {
	margin-top: 1.75rem;
}

.pm-account .woocommerce-order-details__title,
.pm-account .woocommerce-column__title {
	margin: 0 0 0.85rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
}

.pm-account .woocommerce-table--order-details tfoot th {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}

.pm-account .woocommerce-table--order-details tfoot tr:last-child th,
.pm-account .woocommerce-table--order-details tfoot tr:last-child td {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

.pm-account .woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.pm-account .woocommerce-customer-details .woocommerce-columns::before,
.pm-account .woocommerce-customer-details .woocommerce-columns::after {
	display: none;
}

.pm-account .woocommerce-customer-details .woocommerce-column {
	float: none !important;
	width: auto !important;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
}

.pm-account .woocommerce-customer-details address {
	border: 0;
	padding: 0;
	color: var(--wp--preset--color--muted);
	font-style: normal;
	line-height: 1.6;
}

.pm-account .order-again .button {
	margin-top: 1rem;
}

@media (max-width: 860px) {
	.pm-dash__hello {
		flex-direction: column;
		align-items: flex-start;
		padding: 1.5rem;
		background-size: 300px auto;
	}

	.pm-dash__card {
		padding: 1.25rem;
	}

	.pm-dash__empty {
		flex-direction: column;
		align-items: flex-start;
	}

	.pm-account .woocommerce-customer-details .woocommerce-columns {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* =========================================================================
   Campos de formulario al estilo Shopify: borde gris; negro solo en el campo que se está editando
   ========================================================================= */

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.pm-checkout .select2-container .select2-selection--single {
	border-color: var(--wc-form-border-color);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.pm-checkout .select2-container--focus .select2-selection--single,
.pm-checkout .select2-container--open .select2-selection--single {
	outline: none;
	border-color: var(--wp--preset--color--contrast) !important;
	box-shadow: 0 0 0 1px var(--wp--preset--color--contrast) !important;
}

.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid .select2-selection {
	border-color: var(--wp--preset--color--sale) !important;
}

/* La etiqueta flotante del campo activo en negro (antes verde), igual que el borde */
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.input-text:focus) > label,
.pm-checkout :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-form-login) .form-row:has(.select2-container--focus, .select2-container--open) > label {
	color: var(--wp--preset--color--contrast);
}

/* Avisos (agregado al carrito, errores): WooCommerce les pone el foco para los lectores de pantalla y el navegador
   dibujaba un marco verde alrededor. El aviso igual se anuncia; solo se quita el marco. */
.wc-block-components-notice-banner:focus,
.wc-block-components-notice-banner:focus-visible,
.woocommerce-message:focus,
.woocommerce-error:focus,
.woocommerce-info:focus,
.woocommerce-notices-wrapper [tabindex="-1"]:focus,
.woocommerce-NoticeGroup:focus {
	outline: none !important;
	box-shadow: none !important;
}

/* Pago: sin espacio en blanco entre la última sección y el pie */
.wp-site-blocks > footer:has(.pm-co-footer) {
	margin-block-start: 0;
}

/* =========================================================================
   Landing de temporada (/temporada/, patterns/landing-temporada.php)
   Portada delgada con foto, una sección por marca con sus ofertas, lo que hay que saber y cierre con WhatsApp.
   ========================================================================= */

.pm-lp-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: grid;
	place-items: center;
	min-height: clamp(280px, 38vh, 360px);
	margin-block: 0;
	padding: 2.5rem max(16px, 1.25rem);
	color: #fff;
	text-align: center;
}

.pm-lp-hero__foto {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 58% 45%;
}

.pm-lp-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(90% 90% at 50% 50%, rgb(8 10 9 / 0.62) 0%, rgb(8 10 9 / 0.4) 100%);
}

.pm-lp-hero__in {
	display: grid;
	justify-items: center;
	gap: 0.75rem;
	max-width: 720px;
}

.pm-lp-hero__in > * {
	margin: 0;
	animation: pm-hero-entra 0.7s var(--pm-ease) both;
}

.pm-lp-hero__in > :nth-child(2) { animation-delay: 0.12s; }
.pm-lp-hero__in > :nth-child(3) { animation-delay: 0.24s; }
.pm-lp-hero__in > :nth-child(4) { animation-delay: 0.36s; }

.pm-lp-hero__eyebrow,
.pm-lp-eyebrow {
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pm-lp-hero__eyebrow {
	color: var(--wp--preset--color--accent);
}

.pm-lp-hero__title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(2rem, 5vw, 3.4rem);
	line-height: 1;
	text-wrap: balance;
	text-shadow: 0 2px 24px rgb(0 0 0 / 0.45);
}

.pm-lp-hero__title span {
	color: var(--wp--preset--color--accent);
}

.pm-lp-hero__lead {
	max-width: 52ch;
	color: rgb(255 255 255 / 0.88);
	font-size: clamp(0.95rem, 1.5vw, 1.05rem);
	line-height: 1.55;
	text-shadow: 0 2px 18px rgb(0 0 0 / 0.45);
}

.pm-lp-seccion {
	margin-block: 0 !important;
	padding: var(--wp--preset--spacing--50) max(16px, 1.25rem);
}

.pm-lp-seccion--gris {
	background: var(--wp--preset--color--surface);
}

.pm-lp-seccion__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-bottom: 1.25rem !important;
}

.pm-lp-eyebrow {
	margin: 0 0 0.25rem;
	color: var(--wp--preset--color--accent-dark);
}

.pm-lp-seccion__title {
	margin: 0;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.pm-lp-seccion__marca {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

/* Con más de 4 productos se ven 4 y "Ver los N productos" (assets/js/landing.js). */
.pm-lp-productos .wc-block-product-template.is-plegada > li:nth-child(n + 5) {
	display: none;
}

.pm-lp-ver-mas {
	display: block;
	margin: 1.25rem auto 0;
	padding: 0.7rem 1.6rem;
	border: 1.5px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.pm-lp-ver-mas:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.pm-lp-in {
	box-sizing: border-box;
	max-width: 1240px;
	margin-inline: auto;
}

.pm-lp-info__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.pm-lp-info__item {
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--pm-radius);
	background: var(--wp--preset--color--base);
}

.pm-lp-info__item strong {
	display: block;
	margin-bottom: 0.35rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.35rem;
}

.pm-lp-info__item span {
	color: var(--wp--preset--color--muted);
	font-size: 0.95rem;
	line-height: 1.55;
}

.pm-lp-info__item a {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}

.pm-lp-cierre {
	margin-block: 0;
	padding: var(--wp--preset--spacing--50) max(16px, 1.25rem);
	background: var(--wp--preset--color--contrast);
	color: #fff;
	text-align: center;
}

.pm-lp-cierre__title {
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: clamp(1.5rem, 3vw, 2rem);
}

.pm-lp-cierre__lead {
	margin: 0 0 1.25rem;
	color: #b8bdb9;
}

.pm-lp-cierre__ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem 1.5rem;
}

.pm-lp-cierre__wa {
	display: inline-flex;
	padding: 0.8rem 1.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

.pm-lp-cierre__link {
	color: #fff;
}

@media (max-width: 680px) {
	.pm-lp-info__grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pm-lp-hero__in > * {
		animation: none;
	}
}

/* Ficha de producto: la marca con su logo (inc/marcas.php, filtro de core/post-terms) */
.pm-marca-ficha {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	padding: 0.3rem 0.6rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	transition: border-color 0.2s ease;
}

.pm-marca-ficha:hover {
	border-color: var(--wp--preset--color--contrast);
}

.pm-marca-ficha img {
	display: block;
	width: auto;
	max-width: 120px;
	height: 26px;
	object-fit: contain;
}
