/**
 * Layout y componentes de página — Escuela de Magia Valladolid
 * Depende de tokens definidos en style.css
 */

/* --------------------------------------------------------------------------
   Header / Nav
   -------------------------------------------------------------------------- */

.emv-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: color-mix(in srgb, var(--emv-color-blanco) 92%, transparent);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--emv-color-border);
}

.emv-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--emv-space-sm);
	min-height: 4.25rem;
	padding-block: 0.25rem;
}

.emv-site-header__brand {
	display: flex;
	align-items: center;
	line-height: 0;
	margin: 0;
	padding: 0;
}

.emv-site-header__brand .custom-logo-link,
.emv-site-header__brand .emv-logo {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.emv-site-header__brand .custom-logo,
.emv-logo__img,
.emv-logo__svg {
	display: block;
	max-height: 5.75rem;
	width: auto;
	height: 5.75rem;
	margin: 0;
}

@media (min-width: 768px) {
	.emv-site-header__inner {
		min-height: 5rem;
		padding-block: 0.15rem;
	}

	.emv-site-header__brand .custom-logo,
	.emv-logo__img,
	.emv-logo__svg {
		max-height: 7rem;
		height: 7rem;
	}
}

.emv-logo--footer .emv-logo__img,
.emv-logo--footer .emv-logo__svg {
	max-height: 3.15rem;
	height: 3.15rem;
	width: auto;
	margin: 0;
	padding: 0;
}

.emv-logo--footer,
.emv-site-footer__brand .emv-logo,
.emv-site-footer__brand .emv-logo--image,
.emv-site-footer__brand .custom-logo-link {
	margin: 0;
	padding: 0;
	margin-inline: 0;
	padding-inline: 0;
}

@media (min-width: 768px) {
	.emv-logo--footer .emv-logo__img,
	.emv-logo--footer .emv-logo__svg {
		max-height: 3.9rem;
		height: 3.9rem;
	}
}

.emv-logo--image {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	text-decoration: none;
	margin: 0;
	padding: 0;
}

.emv-logo {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.emv-logo::after {
	content: '';
	position: absolute;
	top: -45%;
	bottom: -45%;
	left: 0;
	width: 92%;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(
		105deg,
		transparent 0%,
		rgba(255, 255, 255, 0) 12%,
		rgba(255, 255, 255, 0.4) 34%,
		rgba(255, 255, 255, 0.95) 50%,
		rgba(255, 255, 255, 0.4) 66%,
		rgba(255, 255, 255, 0) 88%,
		transparent 100%
	);
	transform: translateX(-160%) skewX(-20deg);
	opacity: 0;
}

.emv-logo.is-shining::after {
	animation: emv-logo-shine 1.05s ease-in-out;
}

@keyframes emv-logo-shine {
	0% {
		opacity: 0;
		transform: translateX(-160%) skewX(-20deg);
	}
	12% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: translateX(280%) skewX(-20deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.emv-logo::after {
		display: none;
	}
}

.emv-site-footer .emv-logo::after,
.emv-logo--footer::after {
	display: none;
}

.emv-logo__text {
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-black);
	text-transform: uppercase;
	letter-spacing: var(--emv-tracking-display);
	color: var(--emv-color-primary);
	text-decoration: none;
}

.emv-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 2px solid var(--emv-color-primary);
	border-radius: var(--emv-radius-md);
	background: var(--emv-color-blanco);
	color: var(--emv-color-primary);
}

.emv-nav-toggle__close {
	display: none;
}

.emv-nav-toggle[aria-expanded="true"] .emv-nav-toggle__open {
	display: none;
}

.emv-nav-toggle[aria-expanded="true"] .emv-nav-toggle__close {
	display: inline-flex;
}

.emv-site-header__panel {
	display: none;
	position: absolute;
	inset-inline: 0;
	top: 100%;
	padding: var(--emv-space-md) var(--emv-gutter) var(--emv-space-lg);
	background: var(--emv-color-blanco);
	border-bottom: 1px solid var(--emv-color-border);
	box-shadow: var(--emv-shadow-md);
}

.emv-site-header__panel.is-open {
	display: block;
}

.emv-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-2xs);
}

.emv-menu-link {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.5rem 0.25rem;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--emv-color-text);
}

.emv-menu-link:hover {
	color: var(--emv-color-azul-brillante);
}

.emv-menu-link--current,
.emv-menu-item--current > .emv-menu-link,
.emv-menu-item.current-menu-item > .emv-menu-link,
.emv-menu-item.current-menu-ancestor > .emv-menu-link,
.emv-menu-item.current-menu-parent > .emv-menu-link,
.emv-menu-item.current_page_item > .emv-menu-link,
.emv-menu-item.current_page_ancestor > .emv-menu-link,
.emv-menu-item.current_page_parent > .emv-menu-link {
	color: var(--emv-color-azul-brillante);
}

.emv-menu-item--has-children {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem;
}

.emv-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	margin: 0;
	margin-inline-start: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--emv-color-primary);
	cursor: pointer;
}

.emv-submenu-toggle:hover,
.emv-submenu-toggle:focus-visible {
	background: transparent;
	color: var(--emv-color-primary-dark);
}

.emv-sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 var(--emv-space-sm);
	flex-basis: 100%;
	display: none;
}

.emv-menu-item--has-children.is-open > .emv-sub-menu {
	display: block;
}

.emv-site-header__cta {
	margin: var(--emv-space-md) 0 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--emv-space-sm);
}

.emv-header-cart-slot[hidden] {
	display: none !important;
}

.emv-header-cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--emv-radius-md);
	border: 2px solid color-mix(in srgb, var(--emv-color-primary) 22%, var(--emv-color-border));
	background: var(--emv-color-blanco);
	color: var(--emv-color-primary);
	text-decoration: none;
	transition:
		background-color var(--emv-transition-fast),
		border-color var(--emv-transition-fast),
		color var(--emv-transition-fast);
}

.emv-header-cart:hover,
.emv-header-cart:focus-visible {
	background: var(--emv-color-espuma);
	border-color: var(--emv-color-primary);
	color: var(--emv-color-primary-dark);
}

.emv-header-cart__count {
	position: absolute;
	top: -0.35rem;
	inset-inline-end: -0.35rem;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
	font-family: var(--emv-font-display);
	font-size: 0.7rem;
	font-weight: var(--emv-fw-bold);
	line-height: 1.25rem;
	text-align: center;
}

body.emv-nav-open {
	overflow: hidden;
}

@media (min-width: 1024px) {
	.emv-nav-toggle {
		display: none;
	}

	.emv-site-header__panel {
		display: flex;
		position: static;
		align-items: center;
		justify-content: flex-end;
		gap: var(--emv-space-md);
		padding: 0;
		border: 0;
		box-shadow: none;
		background: transparent;
		flex: 1;
	}

	.emv-primary-nav {
		margin-inline: auto;
	}

	.emv-menu,
	#menu-menu-principal {
		flex-direction: row;
		align-items: center;
		gap: var(--emv-space-sm);
		margin: 0;
	}

	.emv-menu-link {
		padding-inline: 0.2rem;
	}

	.emv-menu-item--has-children {
		position: relative;
	}

	.emv-sub-menu {
		position: absolute;
		top: 100%;
		inset-inline-start: 0;
		min-width: 14rem;
		padding: var(--emv-space-2xs);
		background: var(--emv-color-blanco);
		border: 1px solid var(--emv-color-border);
		border-radius: var(--emv-radius-md);
		box-shadow: var(--emv-shadow-md);
		flex-basis: auto;
	}

	.emv-site-header__cta {
		margin: 0;
	}

	.emv-site-header__cta .emv-btn {
		padding: 0.4rem 0.75rem;
		min-height: 2.4rem;
		font-size: var(--emv-fs-xs);
	}
}

/* --------------------------------------------------------------------------
   Layout pages
   -------------------------------------------------------------------------- */

.emv-main {
	outline: none;
}

.emv-layout {
	display: grid;
	gap: var(--emv-space-xl);
	padding-block: var(--emv-space-xl);
}

@media (min-width: 1024px) {
	.emv-layout--sidebar {
		grid-template-columns: minmax(0, 1fr) 18rem;
		align-items: start;
	}
}

.emv-page-header {
	margin-bottom: var(--emv-space-lg);
}

.emv-page-title {
	color: var(--emv-color-primary);
}

.emv-entry-content > * + * {
	margin-top: var(--emv-space-sm);
}

hr.style-hr {
	border: 0;
	height: 1px;
	margin-block: var(--emv-space-lg);
	background-image: linear-gradient(
		to right,
		transparent,
		color-mix(in srgb, var(--emv-color-azul-brillante) 75%, transparent),
		transparent
	);
}

.emv-breadcrumbs {
	margin-bottom: var(--emv-space-md);
	font-size: var(--emv-fs-sm);
}

.emv-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--emv-space-2xs);
	list-style: none;
	margin: 0;
	padding: 0;
}

.emv-breadcrumbs__item:not(:last-child)::after {
	content: "/";
	margin-inline-start: var(--emv-space-2xs);
	color: var(--emv-color-text-muted);
}

/* --------------------------------------------------------------------------
   Home — Hero (imagen pegada a la derecha, detrás del texto)
   -------------------------------------------------------------------------- */

.emv-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--emv-color-blanco);
	padding-block: var(--emv-space-xl);
	min-height: 22rem;
}

.emv-hero__media {
	position: relative;
	z-index: 0;
	width: 100%;
	min-height: 16rem;
	margin-bottom: var(--emv-space-lg);
	border-radius: 0;
	overflow: hidden;
	background: linear-gradient(66deg, #060877 0%, #050afa 100%);
}

.emv-hero__placeholder {
	width: 100%;
	height: 100%;
	min-height: inherit;
	background: linear-gradient(66deg, #060877 0%, #050afa 100%);
}

.emv-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	object-position: center right;
}

.emv-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	align-items: center;
}

.emv-hero__content {
	position: relative;
	max-width: 42rem;
	padding-inline-start: 0;
}

.emv-hero__title {
	font-size: var(--emv-fs-4xl);
	color: var(--emv-color-primary-dark);
	max-width: none;
	text-wrap: balance;
}

@media (min-width: 768px) {
	.emv-hero {
		display: flex;
		align-items: center;
		min-height: clamp(28rem, 68vh, 40rem);
		padding-block: var(--emv-space-2xl);
	}

	.emv-hero__media {
		position: absolute;
		inset-block: 0;
		inset-inline-end: 0;
		width: min(58vw, 46rem);
		height: 100%;
		min-height: 100%;
		margin: 0;
		z-index: 0;
	}

	/* Fundido blanco → imagen (queda “detrás” del texto). */
	.emv-hero__media::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background: linear-gradient(
			90deg,
			var(--emv-color-blanco) 0%,
			color-mix(in srgb, var(--emv-color-blanco) 88%, transparent) 18%,
			color-mix(in srgb, var(--emv-color-blanco) 35%, transparent) 42%,
			transparent 62%
		);
	}

	.emv-hero__img,
	.emv-hero__placeholder {
		min-height: 100%;
		height: 100%;
	}

	.emv-hero__grid {
		/* Hereda width/margin de .emv-container → misma línea que el logo */
		z-index: 2;
	}

	.emv-hero__content {
		max-width: min(42rem, 56%);
		padding-inline-start: 0;
		padding-inline-end: var(--emv-space-md);
	}
}

@media (min-width: 1024px) {
	.emv-hero__media {
		width: min(56vw, 52rem);
	}

	.emv-hero__content {
		max-width: min(48rem, 54%);
		padding-inline-start: 0;
	}
}

@media (min-width: 1280px) {
	.emv-hero__media {
		width: min(54vw, 56rem);
	}
}

.emv-experience__media,
.emv-experience__placeholder {
	border-radius: var(--emv-radius-lg);
	overflow: hidden;
	background: #0a0a0a;
}

.emv-experience__placeholder {
	position: relative;
	aspect-ratio: 16 / 9;
	min-height: 0;
}

.emv-experience__play {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	margin: 0;
	cursor: pointer;
	background: #0a0a0a;
	color: inherit;
	appearance: none;
}

.emv-experience__poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--emv-transition-fast), filter var(--emv-transition-fast);
}

.emv-experience__play:hover .emv-experience__poster,
.emv-experience__play:focus-visible .emv-experience__poster {
	transform: scale(1.03);
	filter: brightness(0.85);
}

.emv-experience__play-btn {
	position: absolute;
	inset: 50% auto auto 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	transform: translate(-50%, -50%);
	border-radius: var(--emv-radius-full);
	background: color-mix(in srgb, var(--emv-color-primary) 92%, black);
	color: var(--emv-color-on-primary);
	box-shadow: var(--emv-shadow-md);
	pointer-events: none;
	transition: transform var(--emv-transition-fast), background-color var(--emv-transition-fast);
}

.emv-experience__play:hover .emv-experience__play-btn,
.emv-experience__play:focus-visible .emv-experience__play-btn {
	transform: translate(-50%, -50%) scale(1.08);
	background: var(--emv-color-primary-dark);
}

.emv-experience__play:focus-visible {
	outline: 3px solid var(--emv-color-primary);
	outline-offset: 3px;
}

.emv-experience__video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	position: absolute;
	inset: 0;
}

.emv-pillars__grid {
	list-style: none;
	margin: 0;
	padding: 0;
}

.emv-pillar {
	text-align: center;
	font-size: 14px;
}

.emv-pillar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	margin-bottom: var(--emv-space-sm);
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary);
	box-shadow: var(--emv-shadow-sm);
}

.emv-pillar__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	margin: 0 0 var(--emv-space-2xs);
	font-size: var(--emv-fs-lg);
	line-height: 1.15;
	color: var(--emv-color-primary);
}

.emv-pillar__title-line {
	display: block;
}

.emv-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: var(--emv-space-sm);
	margin-bottom: var(--emv-space-lg);
}

.emv-section-title {
	margin: 0;
}

.emv-section-link {
	display: inline-flex;
	align-items: center;
	gap: var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--emv-color-primary);
}

.emv-courses__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: stretch;
}

.emv-courses__grid > li {
	display: flex;
	height: 100%;
}

.emv-courses__grid .emv-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.emv-courses__grid .emv-card__body {
	flex: 1 1 auto;
}

.emv-card__title {
	font-size: var(--emv-fs-lg);
	margin: 0;
}

.emv-card__title a {
	text-decoration: none;
	color: inherit;
}

.emv-experience__grid {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: center;
}

.emv-experience__features {
	list-style: none;
	margin: 0;
	padding: 0;
}

.emv-experience__feature {
	display: flex;
	align-items: flex-start;
	gap: var(--emv-space-2xs);
	font-weight: var(--emv-fw-bold);
}

.emv-experience__check {
	color: var(--emv-color-primary);
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.emv-experience__grid {
		grid-template-columns: 1fr 1.1fr;
	}
}

.emv-why-us {
	background: var(--emv-color-blanco);
}

.emv-why-us__inner {
	max-width: none;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.emv-why-us__body {
	width: 100%;
	max-width: none;
}

.emv-why-us__body .emv-eyebrow {
	margin-bottom: var(--emv-space-sm);
}

.emv-why-us__title {
	margin: 0 0 var(--emv-space-sm);
	max-width: 18ch;
	color: var(--emv-color-primary-dark);
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: var(--emv-lh-tight);
}

.emv-why-us__lead {
	margin: 0 0 var(--emv-space-lg);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

.emv-why-us__points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-md);
}

.emv-why-us__point {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--emv-space-sm);
	align-items: start;
}

.emv-why-us__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary);
	flex-shrink: 0;
}

.emv-why-us__point-body p {
	margin: 0 0 var(--emv-space-2xs);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-why-us__point-body p:last-child {
	margin-bottom: 0;
}

.emv-why-us__point-body strong {
	color: var(--emv-color-primary-dark);
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
}

.emv-why-us__sublist {
	list-style: none;
	margin: var(--emv-space-2xs) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.emv-why-us__sublist li {
	position: relative;
	padding-inline-start: 1rem;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

.emv-why-us__sublist li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 0.4rem;
	height: 0.4rem;
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-primary);
}

.emv-studio-method {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--emv-color-blanco);
}

.emv-studio-method__grid {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

.emv-studio-method__intro {
	max-width: 28rem;
}

.emv-studio-method__intro h2 {
	margin: 0 0 var(--emv-space-sm);
	color: var(--emv-color-primary-dark);
	max-width: 14ch;
}

.emv-studio-method__lead {
	margin: 0;
}

.emv-studio-method__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
	position: relative;
}

.emv-studio-method__item {
	position: relative;
	display: grid;
	grid-template-columns: 2.75rem 1fr;
	gap: var(--emv-space-sm);
	align-items: start;
	padding-bottom: var(--emv-space-lg);
	opacity: 0;
	transform: translateY(0.85rem);
	transition:
		opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc((var(--emv-step, 1) - 1) * 110ms);
}

.emv-studio-method__item:last-child {
	padding-bottom: 0;
}

.emv-studio-method.is-revealed .emv-studio-method__item,
.emv-no-js .emv-studio-method__item {
	opacity: 1;
	transform: none;
}

.emv-studio-method__marker {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--emv-radius-full);
	background: var(--emv-gradient-azul);
	color: var(--emv-color-on-primary);
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--emv-color-blanco) 88%, transparent);
	flex-shrink: 0;
}

.emv-studio-method__num {
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-lg);
	font-weight: var(--emv-fw-extrabold);
	line-height: 1;
	letter-spacing: var(--emv-tracking-display);
}

.emv-studio-method__body {
	padding-top: 0.35rem;
	min-width: 0;
}

.emv-studio-method__item-title {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xl);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-studio-method__item-text {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
	max-width: 36rem;
}

.emv-newsletter {
	padding-block: var(--emv-space-md) var(--emv-space-xl);
}

.emv-newsletter__panel {
	grid-template-columns: 1fr;
}

.emv-newsletter__panel.emv-course-highlight::after {
	content: none;
}

.emv-newsletter__body {
	width: 100%;
	max-width: 60rem;
	margin-inline: auto;
}

.emv-newsletter__lead {
	margin-bottom: var(--emv-space-md);
}

.emv-newsletter__form {
	width: 100%;
	text-align: start;
	display: grid;
	gap: var(--emv-space-md);
	position: relative;
	z-index: 1;
}

.emv-newsletter__honeypot {
	position: absolute;
	left: -5000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.emv-newsletter__field {
	display: grid;
	gap: var(--emv-space-2xs);
}

.emv-newsletter__label {
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-newsletter__legend {
	padding: 0;
	margin-bottom: var(--emv-space-sm);
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-md);
	font-weight: var(--emv-fw-regular);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-newsletter__input {
	width: 100%;
}

.emv-newsletter__groups {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.emv-newsletter__checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--emv-space-2xs);
}

.emv-newsletter__check {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 18%, var(--emv-color-border));
	border-radius: var(--emv-radius-md);
	background: color-mix(in srgb, var(--emv-color-blanco) 82%, transparent);
	cursor: pointer;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-newsletter__check:hover {
	border-color: color-mix(in srgb, var(--emv-color-primary) 40%, var(--emv-color-border));
	background: var(--emv-color-blanco);
}

.emv-newsletter__checkbox {
	margin-block: 0.2rem 0;
	width: 1.05rem;
	height: 1.05rem;
	accent-color: var(--emv-color-primary);
	flex-shrink: 0;
}

.emv-newsletter__help {
	margin: var(--emv-space-sm) 0 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

.emv-newsletter__submit-wrap {
	display: flex;
	justify-content: flex-start;
}

.emv-newsletter__frame {
	position: absolute;
	width: 0;
	height: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	pointer-events: none;
}

.emv-newsletter__success {
	margin-top: var(--emv-space-md);
	padding: var(--emv-space-md);
	border-radius: var(--emv-radius-md);
	background: color-mix(in srgb, var(--emv-color-blanco) 88%, transparent);
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 22%, transparent);
	text-align: center;
}

.emv-newsletter__success[hidden] {
	display: none;
}

.emv-newsletter__success-title {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xl);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	color: var(--emv-color-primary-dark);
}

.emv-newsletter__success-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: var(--emv-space-md) 0;
	color: var(--emv-color-primary-dark);
}

.emv-newsletter__success-svg {
	width: clamp(4.5rem, 12vw, 6.5rem);
	height: clamp(4.5rem, 12vw, 6.5rem);
}

.emv-newsletter__success-text {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-newsletter__panel.is-submitted .emv-newsletter__form,
.emv-newsletter__panel.is-submitted .emv-newsletter__lead {
	display: none;
}

@media (min-width: 900px) {
	.emv-studio-method__grid {
		grid-template-columns: minmax(16rem, 0.9fr) minmax(0, 1.25fr);
		gap: clamp(2.5rem, 6vw, 5rem);
		align-items: start;
	}

	.emv-studio-method__intro {
		position: sticky;
		top: 6.5rem;
		max-width: none;
	}

	.emv-studio-method__intro h2 {
		font-size: clamp(2rem, 2.8vw, 2.75rem);
		max-width: 13ch;
		line-height: var(--emv-lh-tight);
	}

	.emv-studio-method__item {
		grid-template-columns: 3.25rem 1fr;
		gap: var(--emv-space-md);
		padding-bottom: var(--emv-space-xl);
	}

	.emv-studio-method__marker {
		width: 3.25rem;
		height: 3.25rem;
	}

	.emv-studio-method__item:not(:last-child) .emv-studio-method__marker::after {
		height: calc(var(--emv-space-xl) - 6px);
	}

	.emv-studio-method__num {
		font-size: var(--emv-fs-xl);
	}

	.emv-studio-method__body {
		padding-top: 0.45rem;
	}

	.emv-studio-method__item-title {
		font-size: var(--emv-fs-2xl);
	}
}

@media (prefers-reduced-motion: reduce) {
	.emv-studio-method__item {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

.emv-social-proof.emv-section {
	position: relative;
	isolation: isolate;
	overflow: visible;
	background-color: var(--emv-color-blanco);
	background-image: none;
}

.emv-social-proof__grid {
	position: relative;
	z-index: 1;
	display: grid;
	gap: var(--emv-space-lg);
}

.emv-quote {
	margin: 0;
	padding: var(--emv-space-md);
	background: var(--emv-color-espuma);
	border-radius: var(--emv-radius-md);
}

.emv-quote__mark {
	display: inline-flex;
	color: var(--emv-color-primary);
	margin-bottom: var(--emv-space-2xs);
}

.emv-quote__cite {
	font-style: normal;
	font-weight: var(--emv-fw-bold);
	font-size: var(--emv-fs-sm);
	color: var(--emv-color-primary-dark);
}

.emv-quote--secret {
	margin: 0;
}

.emv-carousel__slide--secret[hidden] {
	display: none !important;
}

.emv-review-card__stars {
	display: flex;
	gap: 0.15rem;
	margin-bottom: var(--emv-space-2xs);
	color: var(--emv-color-azul-clarito);
	font-size: 1.15rem;
	line-height: 1;
}

.emv-star.is-on {
	color: var(--emv-color-primary);
	font-size: x-large;
}

.emv-review-card__quote {
	margin: 0;
}

.emv-review-card__quote p {
	margin: 0 0 var(--emv-space-sm);
}

.emv-review-card {
	position: relative;
	z-index: 1;
}

.emv-review-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--emv-space-2xs) var(--emv-space-sm);
	margin-top: var(--emv-space-sm);
	width: 100%;
	position: relative;
	z-index: 2;
}

.emv-review-card__link {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	position: relative;
	z-index: 2;
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	line-height: 1.3;
	text-decoration: underline;
	text-underline-offset: 0.18em;
	color: var(--emv-color-primary);
	pointer-events: auto;
}

.emv-review-card__link:hover {
	color: var(--emv-color-primary-dark);
}

.emv-testimonials .emv-section-title,
.emv-events .emv-section-title {
	margin: 0 0 var(--emv-space-sm);
	color: var(--emv-color-primary-dark);
	font-size: var(--emv-fs-xl);
	line-height: var(--emv-lh-tight);
	font-weight: var(--emv-fw-extrabold);
}

.emv-social-proof .emv-testimonials,
.emv-social-proof .emv-events {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
}

.emv-testimonials__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: auto;
	padding-top: var(--emv-space-md);
}

.emv-carousel__viewport {
	position: relative;
	perspective: 1400px;
	perspective-origin: center center;
}

.emv-carousel__track {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	transform-style: preserve-3d;
}

.emv-carousel__slide {
	grid-area: 1 / 1;
	transform-style: preserve-3d;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: rotateY(92deg);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 0;
	transition:
		transform 0.7s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.35s ease,
		visibility 0.7s;
}

.emv-carousel.is-reverse .emv-carousel__slide:not(.is-active) {
	transform: rotateY(-92deg);
}

.emv-carousel__slide.is-active {
	transform: rotateY(0deg);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

.emv-carousel__slide:not(.is-active) {
	pointer-events: none;
}

.emv-carousel__slide .emv-quote.emv-review-card {
	transform-style: preserve-3d;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	box-shadow: var(--emv-shadow-sm);
}

@media (prefers-reduced-motion: reduce) {
	.emv-carousel__viewport {
		perspective: none;
	}

	.emv-carousel__slide,
	.emv-carousel.is-reverse .emv-carousel__slide:not(.is-active) {
		transition: none;
		transform: none;
	}

	.emv-carousel__slide:not(.is-active) {
		opacity: 0;
		visibility: hidden;
	}

	.emv-carousel__slide.is-active {
		opacity: 1;
		visibility: visible;
	}
}

.emv-carousel__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--emv-space-sm);
	margin-top: var(--emv-space-sm);
}

.emv-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 2px solid var(--emv-color-primary);
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-blanco);
	color: var(--emv-color-primary);
}

.emv-carousel__btn:hover {
	background: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
}

.emv-icon--rotate-90 {
	transform: rotate(90deg);
}

.emv-icon--rotate-270 {
	transform: rotate(-90deg);
}

.emv-carousel__dots {
	display: flex;
	gap: var(--emv-space-2xs);
}

.emv-carousel__dot {
	width: 0.65rem;
	height: 0.65rem;
	padding: 0;
	border: 0;
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-azul-clarito);
	cursor: pointer;
}

.emv-carousel__dot.is-active {
	background: var(--emv-color-primary);
	transform: scale(1.2);
}

.emv-events__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
}

.emv-event {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--emv-space-sm);
	align-items: center;
	padding: var(--emv-space-sm) 0;
	border-bottom: 1px solid var(--emv-color-border);
}

.emv-event .emv-btn {
	grid-column: 1 / -1;
	justify-self: start;
}

.emv-event__date {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.25rem;
	padding: var(--emv-space-2xs) 0.4rem;
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary-dark);
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
	text-align: center;
	border-radius: var(--emv-radius-sm);
	line-height: 1.1;
}

.emv-event__date time {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.1rem;
}

.emv-event__day {
	font-size: 1.25rem;
	font-weight: var(--emv-fw-black);
	letter-spacing: 0;
	line-height: 1;
}

.emv-event__month {
	font-size: 0.7rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
}

.emv-event__body {
	min-width: 0;
}

.emv-event__title {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-snug);
}

.emv-event__title a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	text-decoration: none;
	color: var(--emv-color-text);
}

.emv-event__title a:hover {
	color: var(--emv-color-primary);
}

.emv-events__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: auto;
	padding-top: var(--emv-space-md);
}

.emv-index-events {
	padding-block: 0 var(--emv-space-xl);
	margin-bottom: var(--emv-space-lg);
	border-bottom: 1px solid var(--emv-color-border);
}

.emv-index-events .emv-section-head {
	margin-bottom: var(--emv-space-md);
}

.emv-event__meta {
	margin: 0;
	font-size: var(--emv-fs-sm);
}

.emv-icon--on-primary {
	color: var(--emv-color-on-primary);
}

@media (min-width: 1024px) {
	.emv-social-proof__grid {
		grid-template-columns: 1.1fr 1fr 0.9fr;
		align-items: stretch;
	}

	.emv-event {
		grid-template-columns: auto 1fr auto;
	}

	.emv-event .emv-btn {
		grid-column: auto;
		justify-self: end;
	}
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.emv-site-footer {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: var(--emv-space-2xl);
	background-color: #f9f9f9;
}

.emv-site-footer__top {
	position: relative;
	z-index: 1;
	padding-block: var(--emv-space-xl);
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

.emv-site-footer__col {
	min-width: 0;
}

.emv-site-footer__brand {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--emv-space-md);
	min-width: 0;
}

.emv-site-footer__brand .emv-social {
	justify-content: center;
	margin-inline: auto;
}

.emv-site-footer__brand .emv-logo--footer,
.emv-site-footer__brand .emv-logo,
.emv-site-footer__brand .emv-logo--image,
.emv-site-footer__brand .custom-logo-link {
	display: inline-flex;
	margin: 0 0 1.5rem;
	padding: 0;
}

@media (min-width: 768px) {
	.emv-site-footer__top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--emv-space-lg) var(--emv-space-xl);
	}
}

@media (min-width: 1024px) {
	.emv-site-footer__top {
		grid-template-columns: minmax(15rem, 1.5fr) 0.85fr 0.85fr 0.95fr 1.15fr;
		gap: var(--emv-space-md) var(--emv-space-lg);
	}

	.emv-site-footer__brand {
		min-width: 15rem;
	}
}

@media (min-width: 1280px) {
	.emv-site-footer__top {
		grid-template-columns: minmax(16.5rem, 1.6fr) 0.85fr 0.85fr 0.95fr 1.15fr;
	}
}

.emv-footer-nav__title {
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
	margin: 0 0 var(--emv-space-sm);
}

.emv-footer-menu,
.emv-legal-menu,
.emv-footer-contact__list,
.emv-social {
	list-style: none;
	margin: 0;
	padding: 0;
}

.emv-footer-menu {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.emv-footer-menu .menu-item,
.emv-footer-menu > li {
	margin: 0;
	padding: 0;
	line-height: 1.05;
}


.emv-footer-menu a,
.emv-footer-contact__list a {
	text-decoration: none;
	color: var(--emv-color-text);
	font-size: var(--emv-fs-sm);
	line-height: 1.2;
}


.emv-footer-menu a {
	display: block;
	margin: 0;
	padding: 0;
	line-height: 1.05;
}

.emv-footer-menu a:hover,
.emv-footer-contact__list a:hover {
	color: var(--emv-color-primary-dark);
	font-weight: bold;
} 
	/**/
	.emv-legal-menu a {
		text-decoration: none;
		position: relative;
		display: inline-block;
		margin: 0;
		padding: 0;
		line-height: 1.05;
		transition: color 0.3s ease-in-out;
	}
	
	.emv-legal-menu a::before {
		content: "";
		position: absolute;
		left: 0;
		top: 100%;
		width: 100%;
		height: 2px;
		background-color: var(--emv-color-espuma);
		transform: scaleX(0);
		transform-origin: center;
		transition: transform 0.3s ease-in-out;
	}
	
	.emv-legal-menu a:hover {
		color: var(--emv-color-espuma);
		text-decoration: none;
	}
	
	.emv-legal-menu a:hover::before {
		transform: scaleX(1);
	}
	

.emv-footer-contact__list {
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
}

.emv-footer-contact__item {
	display: flex;
	align-items: flex-start;
	gap: var(--emv-space-2xs);
}

.emv-footer-contact__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.1rem;
	color: var(--emv-color-primary);
}

.emv-footer-contact__text {
	flex: 1;
	min-width: 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-social {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--emv-space-2xs);
	margin-top: 0;
	width: max-content;
	max-width: 100%;
}

.emv-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--emv-radius-full);
	background: #ececec;
	color: var(--emv-color-primary-dark);
	text-decoration: none;
	transition: background-color var(--emv-transition-fast), color var(--emv-transition-fast);
}

.emv-social__link:hover {
	background: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
}

.emv-footer-widgets {
	position: relative;
	z-index: 1;
	padding-bottom: var(--emv-space-lg);
}

.emv-site-footer__bottom {
	position: relative;
	z-index: 1;
	background: var(--emv-gradient-azul);
	color: var(--emv-color-blanco);
}

.emv-site-footer__bottom-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--emv-space-sm);
	padding-block: var(--emv-space-md);
	font-size: var(--emv-fs-sm);
	text-align: center;
}

.emv-site-footer__bottom a {
	color: var(--emv-color-blanco);
	text-decoration: none;
}

.emv-site-footer__bottom a:hover,
.emv-site-footer__bottom a:focus-visible {
	text-decoration: underline;
}

.emv-legal-nav {
	width: 100%;
}

.emv-legal-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--emv-space-2xs) var(--emv-space-sm);
}

.emv-legal-menu a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding-block: 0.25rem;
}

.emv-copyright {
	margin: 0;
	line-height: var(--emv-lh-snug);
	text-wrap: balance;
}

@media (min-width: 768px) {
	.emv-site-footer__bottom-inner {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: var(--emv-space-sm) var(--emv-space-md);
		padding-block: var(--emv-space-sm);
		text-align: start;
	}

	.emv-legal-nav {
		width: auto;
	}

	.emv-legal-menu {
		justify-content: flex-end;
	}

	.emv-legal-menu a {
		min-height: auto;
		padding-block: 0;
	}
}

/* --------------------------------------------------------------------------
   Comments / forms WP
   -------------------------------------------------------------------------- */

.emv-comments {
	margin-top: var(--emv-space-2xl);
	padding-top: var(--emv-space-xl);
	border-top: 1px solid var(--emv-color-border);
}

.emv-comment-list {
	list-style: none;
	margin: 0 0 var(--emv-space-lg);
	padding: 0;
}

.comment-form label {
	display: block;
	font-weight: var(--emv-fw-bold);
	margin-bottom: var(--emv-space-3xs);
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-sm);
	margin-bottom: var(--emv-space-sm);
}

.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--emv-space-2xs);
}

.search-form label {
	flex: 1 1 12rem;
}

.search-form input[type="search"] {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-sm);
}

.emv-404 {
	max-width: 40rem;
}

/* --------------------------------------------------------------------------
   The Events Calendar — Comprar Entrada
   -------------------------------------------------------------------------- */

.tribe-events{
padding-bottom: 30px;
}

.tribe-common .tribe-common-h7,
.tribe-common .tribe-common-h8 {
	color: var(--emv-color-primary-dark);
	font-size: var(--emv-fs-lg);
	line-height: var(--emv-lh-snug);
}

.tribe-event-date-start {
	display: inline-block;
	padding: 0.35rem 0.65rem;
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-espuma);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-snug);
	text-transform: uppercase;
	color: var(--emv-color-azul-brillante);
}

@media (min-width: 768px) {
	.tribe-common .tribe-common-h7,
	.tribe-common .tribe-common-h8 {
		font-size: var(--emv-fs-xl);
	}
}

.emv-event-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--emv-space-sm);
	margin-block: var(--emv-space-md) 0;
}

.emv-event-ticket-wrap {
	display: inline-flex;
	align-items: center;
	margin-bottom: 0;
}

.emv-event-actions .tribe-events-c-subscribe-dropdown,
.emv-event-actions .tribe-events-cal-links,
.tribe-events-single .tribe-events-c-subscribe-dropdown,
.tribe-events-single .tribe-events-cal-links {
	margin-bottom: 0;
}

.emv-event-ticket-btn.emv-btn.emv-btn--primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--emv-space-2xs);
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
	border: 2px solid transparent;
	border-radius: var(--emv-radius-md);
	background-color: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: none;
}

.emv-event-ticket-btn.emv-btn.emv-btn--primary:hover,
.emv-event-ticket-btn.emv-btn.emv-btn--primary:focus {
	background-color: var(--emv-color-primary-dark);
	color: var(--emv-color-on-primary);
	text-decoration: none;
}

.emv-event-ticket-btn__label {
	pointer-events: none;
}

.tribe-events-single .emv-event-actions .tribe-events-c-subscribe-dropdown,
.tribe-events-single .emv-event-actions .tribe-events-cal-links {
	margin-top: 0;
}

/* --------------------------------------------------------------------------
   Landing: Curso de Magia para Principiantes
   -------------------------------------------------------------------------- */

.emv-course-landing .emv-container,
.emv-contact-landing .emv-container,
.emv-teachers-landing .emv-container,
.emv-events-landing .emv-container,
.emv-generic-landing .emv-container,
.emv-courses-archive .emv-container {
	width: min(100% - (var(--emv-gutter) * 2), var(--emv-container-wide));
	max-width: none;
}

.emv-courses-archive__cta {
	margin-top: var(--emv-space-2xl);
	text-align: center;
	align-items: center;
}

.emv-page-hero,
.emv-course-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: var(--emv-space-xl);
	min-height: 22rem;
	background: var(--emv-color-blanco);
}

.emv-page-hero.emv-section,
.emv-course-hero.emv-section {
	padding-block: var(--emv-space-xl);
}

.emv-page-hero__media,
.emv-course-hero__media {
	position: relative;
	z-index: 0;
	width: 100%;
	min-height: 16rem;
	margin-bottom: var(--emv-space-lg);
	overflow: hidden;
	background: linear-gradient(66deg, #060877 0%, #050afa 100%);
}

.emv-page-hero__placeholder,
.emv-course-hero__placeholder {
	width: 100%;
	height: 100%;
	min-height: inherit;
	background: linear-gradient(66deg, #060877 0%, #050afa 100%);
}

.emv-page-hero__img,
.emv-course-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	object-position: center right;
}

.emv-page-hero__grid,
.emv-course-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	align-items: center;
}

.emv-page-hero__content,
.emv-course-hero__content {
	position: relative;
	max-width: 42rem;
	padding-inline-start: 0;
}

.emv-page-hero__title,
.emv-course-hero__title {
	color: var(--emv-color-primary-dark);
	text-wrap: balance;
}

.emv-page-hero .emv-lead,
.emv-course-hero .emv-lead {
	max-width: 40rem;
}

@media (min-width: 768px) {
	.emv-page-hero.emv-section,
	.emv-course-hero.emv-section {
		padding-block: var(--emv-space-2xl);
	}
}

@media (min-width: 900px) {
	.emv-page-hero,
	.emv-course-hero {
		display: block;
		padding-block: var(--emv-space-2xl);
		min-height: 28rem;
	}

	.emv-page-hero__media,
	.emv-course-hero__media {
		position: absolute;
		inset-block: 0;
		inset-inline-end: 0;
		width: min(52vw, 40rem);
		height: 100%;
		min-height: 100%;
		margin-bottom: 0;
		z-index: 0;
	}

	.emv-page-hero__media::before,
	.emv-course-hero__media::before {
		content: '';
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background: linear-gradient(
			90deg,
			var(--emv-color-blanco) 0%,
			color-mix(in srgb, var(--emv-color-blanco) 88%, transparent) 18%,
			color-mix(in srgb, var(--emv-color-blanco) 35%, transparent) 42%,
			transparent 62%
		);
	}

	.emv-page-hero__img,
	.emv-page-hero__placeholder,
	.emv-course-hero__img,
	.emv-course-hero__placeholder {
		min-height: 100%;
		height: 100%;
	}

	.emv-page-hero__grid,
	.emv-course-hero__grid {
		/* Misma línea que el logo / contacto: sin flex shrink */
		position: relative;
		z-index: 2;
		min-height: 28rem;
		display: grid;
		align-items: center;
	}

	.emv-page-hero__content,
	.emv-course-hero__content {
		max-width: 38rem;
		padding-inline-end: var(--emv-space-md);
	}
}

@media (min-width: 1100px) {
	.emv-page-hero__media,
	.emv-course-hero__media {
		width: min(50vw, 46rem);
	}

	.emv-page-hero__content,
	.emv-course-hero__content {
		max-width: 42rem;
	}
}

.emv-course-benefits {
	position: relative;
	isolation: isolate;
	background: 
		linear-gradient(180deg, #eef0ff 0%, #f7f8ff 48%, var(--emv-color-blanco) 100%);
}

.emv-course-learn {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
	background: var(--emv-color-blanco);
}

.emv-course-learn__inner {
	max-width: 48rem;
}

.emv-course-learn__lead {
	margin: 0 0 var(--emv-space-lg);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-learn__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
}

.emv-course-learn__item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--emv-space-sm);
	align-items: start;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-learn__check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary);
	flex-shrink: 0;
}

.emv-course-highlight-section {
	padding-block: var(--emv-space-md) var(--emv-space-xl);
}

.emv-course-highlight {
	position: relative;
	display: grid;
	gap: var(--emv-space-md);
	align-items: center;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(ellipse 80% 120% at 100% 0%, color-mix(in srgb, var(--emv-color-primary) 18%, transparent), transparent 55%),
		linear-gradient(135deg, var(--emv-color-espuma) 0%, var(--emv-color-blanco) 55%, color-mix(in srgb, var(--emv-color-espuma) 55%, white) 100%);
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 22%, transparent);
	border-radius: var(--emv-radius-lg);
}

.emv-course-highlight::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 0.35rem;
	background: linear-gradient(180deg, var(--emv-color-primary), var(--emv-color-primary-dark));
	border-radius: var(--emv-radius-lg) 0 0 var(--emv-radius-lg);
	z-index: 0;
}

.emv-course-highlight::after {
	content: "";
	position: absolute;
	inset-block-end: -2rem;
	inset-inline-end: -1.25rem;
	width: 14rem;
	height: 14rem;
	background-image: url("../images/logo_patro_EscuelaDeMagiaValladolid.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	opacity: 0.14;
	pointer-events: none;
	z-index: 0;
}

.emv-course-highlight__body,
.emv-course-highlight__cta {
	position: relative;
	z-index: 1;
}

.emv-course-highlight__eyebrow {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary);
}

.emv-course-highlight__title {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: clamp(1.25rem, 2.5vw, 1.65rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
	text-wrap: balance;
}

.emv-course-highlight__text {
	margin: 0;
	max-width: 45rem;
	margin-bottom: 10px;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-highlight__cta {
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (min-width: 768px) {
	.emv-course-highlight {
		grid-template-columns: 1fr auto;
		gap: var(--emv-space-lg);
		padding-inline: clamp(1.75rem, 3vw, 2.75rem);
	}

	.emv-course-highlight__cta {
		justify-self: stretch;
		align-self: stretch;
		height: 100%;
	}
}

#emv-course-online-learn-title,
#emv-course-online-benefits-title,
#emv-course-online-faq-title,
#emv-course-online-register-title,
#emv-course-benefits-title,
#emv-course-reviews-title,
#emv-course-faq-title,
#emv-course-register-title {
	color: var(--emv-color-primary-dark);
}

.emv-course-benefits__head {
	margin-bottom: var(--emv-space-lg);
}

.emv-course-benefits__intro {
	margin: var(--emv-space-sm) 0 0;
	max-width: 48rem;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-benefits__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--emv-space-sm);
}

@media (min-width: 768px) {
	.emv-course-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--emv-space-md);
	}
}

.emv-course-benefit {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--emv-space-sm);
	align-items: start;
	padding: var(--emv-space-md);
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	border-inline-start: 4px solid var(--emv-color-primary);
	box-shadow: var(--emv-shadow-sm);
	transition:
		transform 0.28s ease,
		box-shadow 0.28s ease,
		border-color 0.28s ease;
}

.emv-course-benefit:hover {
	transform: translateY(-3px);
	box-shadow: var(--emv-shadow-md, 0 12px 28px rgba(8, 23, 48, 0.12));
	border-inline-start-color: var(--emv-color-primary-dark);
}

.emv-course-benefit__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-azul-brillante);
	color: var(--emv-color-blanco);
	flex-shrink: 0;
}

.emv-course-benefit__body {
	min-width: 0;
}

.emv-course-benefit__title {
	margin: 0 0 var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-base);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-course-benefit__text {
	margin: 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

@media (prefers-reduced-motion: reduce) {
	.emv-course-benefit {
		transition: none;
	}

	.emv-course-benefit:hover {
		transform: none;
	}
}

.emv-course-reviews__grid {
	list-style: none;
	margin: 0;
	padding: 0;
}

.emv-course-quote {
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
	padding: var(--emv-space-lg);
	background: var(--emv-color-espuma);
	border-radius: var(--emv-radius-md);
}

.emv-course-quote__icon {
	display: inline-flex;
	color: var(--emv-color-primary);
}

.emv-course-quote__body {
	margin: 0;
}

.emv-course-quote__body p {
	margin: 0 0 var(--emv-space-sm);
	font-size: var(--emv-fs-lg);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-quote__body footer {
	margin: 0;
}

.emv-course-quote__body cite {
	font-family: var(--emv-font-display);
	font-style: normal;
	font-weight: var(--emv-fw-bold);
	font-size: var(--emv-fs-sm);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-course-faq__inner {
	max-width: 52rem;
}

.emv-course-faq__list {
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-2xs);
}

.emv-faq {
	background: color-mix(in srgb, var(--emv-color-blanco) 70%, transparent);
	border-radius: var(--emv-radius-md);
	box-shadow: var(--emv-shadow-sm);
	overflow: hidden;
}

.emv-faq:hover {
	background: var(--emv-color-blanco);
}

.emv-faq__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--emv-space-sm);
	padding: var(--emv-space-md);
	cursor: pointer;
	list-style: none;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
	transition: color var(--emv-transition-fast);
}

.emv-faq__summary::-webkit-details-marker {
	display: none;
}

.emv-faq__summary:hover {
	color: var(--emv-color-primary);
}

.emv-faq__chevron {
	display: inline-flex;
	flex-shrink: 0;
	transition: transform 0.35s ease;
}

.emv-faq[open] .emv-faq__chevron,
.emv-faq.is-opening .emv-faq__chevron {
	transform: rotate(180deg);
}

.emv-faq.is-closing .emv-faq__chevron {
	transform: rotate(0deg);
}

.emv-faq__answer {
	overflow: hidden;
}

.emv-faq__answer-inner {
	padding: 0 var(--emv-space-md) var(--emv-space-md);
}

.emv-faq__answer-inner p {
	margin: 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-js .emv-faq__answer {
	transition:
		height 0.35s ease,
		opacity 0.3s ease;
}

.emv-js .emv-faq:not([open]):not(.is-closing) .emv-faq__answer {
	height: 0;
	opacity: 0;
}

.emv-js .emv-faq[open] .emv-faq__answer,
.emv-js .emv-faq.is-opening .emv-faq__answer,
.emv-js .emv-faq.is-closing .emv-faq__answer {
	opacity: 1;
}

.emv-js .emv-faq.is-closing .emv-faq__answer {
	opacity: 0;
}

@supports (interpolate-size: allow-keywords) {
	html {
		interpolate-size: allow-keywords;
	}

	.emv-faq::details-content {
		block-size: 0;
		overflow: hidden;
		opacity: 0;
		transition:
			block-size 0.35s ease,
			opacity 0.3s ease,
			content-visibility 0.35s allow-discrete;
	}

	.emv-faq[open]::details-content {
		block-size: auto;
		opacity: 1;
	}

	.emv-js .emv-faq__answer {
		transition: none;
	}

	.emv-js .emv-faq:not([open]):not(.is-closing) .emv-faq__answer,
	.emv-js .emv-faq[open] .emv-faq__answer,
	.emv-js .emv-faq.is-opening .emv-faq__answer,
	.emv-js .emv-faq.is-closing .emv-faq__answer {
		height: auto;
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.emv-faq__chevron,
	.emv-js .emv-faq__answer,
	.emv-faq::details-content {
		transition: none;
	}
}

.emv-course-cta__panel {
	/* max-width: 52rem; */
	margin-inline: auto;
	text-align: center;
	align-items: center;
}

.emv-course-cta__actions {
	justify-content: center;
	flex-wrap: wrap;
}

.emv-course-register__inner {
	max-width: min(100%, var(--emv-container-wide));
	width: 100%;
	margin-inline: auto;
}

.emv-course-register__eyebrow {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary);
}

.emv-course-register__lead {
	margin: var(--emv-space-2xs) 0 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
	text-align: center;
}

.emv-course-register__form {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.emv-course-register__form .tutor-student-registration-wrapper,
.emv-course-register__form .tutor-registration-wrap,
.emv-course-register__form .tutor-wrap,
.emv-course-register__form form {
	width: 100%;
	max-width: none;
}

/* Todos los campos Tutor del registro a ancho completo */
.emv-course-register__form .tutor-input-field,
.emv-course-register__form .tutor-password-strength-checker,
.emv-course-register__form .tutor-password-field,
.emv-course-register__form .tutor-form-wrap,
.emv-course-register__form .tutor-form-group {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

.emv-course-register__form .tutor-form-control,
.emv-course-register__form .tutor-input,
.emv-course-register__form input[type="text"],
.emv-course-register__form input[type="email"],
.emv-course-register__form input[type="password"],
.emv-course-register__form input[type="tel"],
.emv-course-register__form input[type="number"] {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	box-sizing: border-box !important;
}

/* Confirmación: forzar contenedor padre (suele venir en media columna o en flex) */
.emv-course-register__form *:has(> .tutor-input-field > input[name="password_confirmation"]) {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
	float: none !important;
	grid-column: 1 / -1;
}

.emv-course-register__form .tutor-input-field:has(input[name="password_confirmation"]) {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
	align-self: stretch !important;
}

.emv-course-register__form input[name="password_confirmation"] {
	width: 100% !important;
	max-width: 100% !important;
}

.emv-course-register__hint {
	margin: 0;
	padding: var(--emv-space-lg);
	background: var(--emv-color-espuma);
	border-radius: var(--emv-radius-md);
	color: var(--emv-color-text-muted);
	text-align: center;
}

.emv-course-register__chooser {
	display: grid;
	gap: var(--emv-space-sm);
	justify-items: center;
	width: 100%;
	max-width: min(100%, 64rem);
	margin-inline: auto;
	padding: var(--emv-space-lg);
	background: var(--emv-color-espuma);
	border-radius: var(--emv-radius-md);
}

.emv-course-register__chooser .emv-course-register__lead {
	margin: 0;
	max-width: 45rem;
}

.emv-course-register__chooser .emv-label {
	margin-bottom: 0;
	font-size: var(--emv-fs-md);
	justify-self: stretch;
}

.emv-course-register__chooser .emv-select {
	justify-self: stretch;
}

#emv-presencial-course-select {
	width: 100%;
	min-height: 4rem;
	padding: 1rem 1.25rem;
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-xl);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
	background: var(--emv-gradient-azul-clarito);
	border-color: var(--emv-color-primary-light);
}

#emv-presencial-course-select:hover,
#emv-presencial-course-select:focus {
	border-color: var(--emv-color-primary);
	background: var(--emv-gradient-azul-clarito);
}

/* Formulario Tutor — registro de curso */
.emv-course-register .tutor-registration-wrap,
.emv-course-register .tutor-student-registration-wrapper {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.emv-course-register .tutor-registration-wrap > h2,
.emv-course-register .tutor-registration-wrap > h3,
.emv-course-register .tutor-registration-wrap > h4,
.emv-course-register .tutor-student-registration-wrapper > h2,
.emv-course-register .tutor-student-registration-wrapper > h3,
.emv-course-register .tutor-student-registration-wrapper > h4,
.emv-course-register .tutor-registration-wrap .tutor-fs-5,
.emv-course-register .tutor-registration-wrap .tutor-fs-6 {
	display: none;
}

.emv-course-register .tutor-input-field,
.emv-course-register .tutor-form-wrap,
.emv-course-register .tutor-form-group {
	margin-bottom: var(--emv-space-sm);
}

.emv-course-register .tutor-form-control,
.emv-course-register .tutor-input,
.emv-course-register input[type="text"],
.emv-course-register input[type="email"],
.emv-course-register input[type="password"],
.emv-course-register input[type="tel"] {
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-blanco);
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-md);
	color: var(--emv-color-text);
	transition: border-color var(--emv-transition-fast);
}

.emv-course-register .tutor-form-control:focus,
.emv-course-register .tutor-input:focus,
.emv-course-register input:focus {
	outline: none;
	border-color: var(--emv-color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--emv-color-primary) 18%, transparent);
}

.emv-course-register label,
.emv-course-register .tutor-form-label {
	display: block;
	margin-bottom: var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-course-register .tutor-btn:not(.tutor-btn-link),
.emv-course-register button[type="submit"]:not(.tutor-btn-link),
.emv-course-register input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--emv-space-3xs);
	min-height: 2.75rem;
	margin-top: var(--emv-space-sm);
	padding: 0.75rem 1.35rem;
	border: 2px solid transparent;
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-primary);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-on-primary);
	cursor: pointer;
	transition: background-color var(--emv-transition-fast), transform var(--emv-transition-fast);
}

.emv-course-register .tutor-btn:not(.tutor-btn-link):hover,
.emv-course-register button[type="submit"]:not(.tutor-btn-link):hover,
.emv-course-register input[type="submit"]:hover {
	background: var(--emv-color-primary-dark);
}

.emv-course-register .tutor-btn.tutor-btn-link {
	display: inline;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-md);
	font-weight: var(--emv-fw-regular);
	letter-spacing: normal;
	line-height: var(--emv-lh-snug);
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-color: color-mix(in srgb, var(--emv-color-primary) 55%, transparent);
	color: var(--emv-color-primary);
	cursor: pointer;
	transition: color var(--emv-transition-fast), text-decoration-color var(--emv-transition-fast);
}

.emv-course-register .tutor-btn.tutor-btn-link:hover,
.emv-course-register .tutor-btn.tutor-btn-link:focus-visible {
	background: none;
	color: var(--emv-color-primary-dark);
	text-decoration-color: currentColor;
}

.emv-course-register .tutor-alert,
.emv-course-register .tutor-notice {
	margin-bottom: var(--emv-space-sm);
	padding: var(--emv-space-sm);
	border-radius: var(--emv-radius-sm);
	font-size: var(--emv-fs-sm);
}

/* Registro destacado — Curso Principiantes (sin plegado) */
.emv-course-register--collapsible {
	padding-block: var(--emv-space-md) var(--emv-space-xl);
}

.emv-course-register--collapsible .emv-course-register__inner {
	max-width: min(100%, var(--emv-container-wide));
}

.emv-course-register--collapsible .emv-course-register__panel {
	display: grid;
	gap: var(--emv-space-lg);
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.emv-course-register--collapsible .emv-course-register__panel::before {
	content: none;
}

.emv-course-register--collapsible .emv-course-register__head,
.emv-course-register--collapsible .emv-course-register__form-wrap {
	position: relative;
	z-index: 1;
}

.emv-course-register--collapsible .emv-course-register__head {
	display: grid;
	gap: var(--emv-space-sm);
	max-width: none;
}

.emv-course-register--collapsible .emv-course-register__eyebrow {
	margin: 0;
}

.emv-course-register--collapsible .emv-course-register__title {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: clamp(1.35rem, 2.8vw, 1.85rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-course-register--collapsible .emv-course-register__lead {
	margin: 0;
	text-align: start;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-course-register--collapsible .emv-course-register__form {
	max-width: none;
}

.emv-course-register--collapsible .tutor-registration-wrap,
.emv-course-register--collapsible .tutor-student-registration-wrapper {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.emv-course-register--collapsible .tutor-registration-wrap form,
.emv-course-register--collapsible .tutor-student-registration-wrapper form {
	width: 100%;
	max-width: none;
}

/* --------------------------------------------------------------------------
   Landing: Contacto
   -------------------------------------------------------------------------- */

.emv-contact-main {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
	background:linear-gradient(180deg, #eef0ff 0%, #f7f8ff 40%, var(--emv-color-blanco) 100%);
}

/* --------------------------------------------------------------------------
   Textos legales
   -------------------------------------------------------------------------- */

.emv-legal-landing .emv-contact-main {
	background: linear-gradient(
		180deg,
		#eef0ff 0%,
		#f7f8ff 8%,
		var(--emv-color-blanco) 16%
	);
}

.emv-legal-content {
	max-width: 64rem;
	margin-inline: auto;
}

.emv-legal-content__header {
	margin-bottom: var(--emv-space-lg);
}

.emv-legal-content__header h1 {
	margin: 0;
	color: var(--emv-color-primary-dark);
}

.emv-legal-content__body {
	color: var(--emv-color-text);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-normal);
}

.emv-legal-content__body > *:first-child {
	margin-top: 0;
}

.emv-legal-content__body > *:last-child {
	margin-bottom: 0;
}

.emv-legal-content__body h2 {
	margin: var(--emv-space-xl) 0 var(--emv-space-sm);
	color: var(--emv-color-primary-dark);
	font-size: var(--emv-fs-xl);
	line-height: var(--emv-lh-tight);
}

.emv-legal-content__body h3 {
	margin: var(--emv-space-lg) 0 var(--emv-space-2xs);
	color: var(--emv-color-primary-dark);
	font-size: var(--emv-fs-lg);
	line-height: var(--emv-lh-tight);
}

.emv-legal-content__body p {
	margin: 0 0 var(--emv-space-sm);
}

.emv-legal-content__body a {
	color: var(--emv-color-primary);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.emv-legal-content__body a:hover {
	color: var(--emv-color-primary-dark);
}

.emv-legal-content__body ul,
.emv-legal-content__body ol {
	margin: 0 0 var(--emv-space-sm);
	padding-inline-start: 1.35rem;
}

.emv-legal-content__body ul {
	list-style: disc;
}

.emv-legal-content__body ol {
	list-style: decimal;
}

.emv-legal-content__body li {
	margin: 0 0 var(--emv-space-2xs);
	padding-inline-start: 0.15rem;
}

.emv-legal-content__body li::marker {
	color: var(--emv-color-primary);
}

.emv-legal-content__body ul ul,
.emv-legal-content__body ol ol,
.emv-legal-content__body ul ol,
.emv-legal-content__body ol ul {
	margin-top: var(--emv-space-2xs);
	margin-bottom: 0;
}

.emv-legal-content__body table {
	width: 100%;
	margin: 0 0 var(--emv-space-md);
	border-collapse: collapse;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	background: var(--emv-color-blanco);
	border: 1px solid var(--emv-color-border);
	border-radius: var(--emv-radius-md);
	overflow: hidden;
}

.emv-legal-content__body thead th {
	background: color-mix(in srgb, var(--emv-color-espuma) 80%, var(--emv-color-blanco));
	color: var(--emv-color-primary-dark);
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
	text-align: left;
}

.emv-legal-content__body th,
.emv-legal-content__body td {
	padding: 0.75rem 0.9rem;
	border-bottom: 1px solid var(--emv-color-border);
	vertical-align: top;
}

.emv-legal-content__body tr:last-child th,
.emv-legal-content__body tr:last-child td {
	border-bottom: 0;
}

.emv-legal-content__body figure.wp-block-table,
.emv-legal-content__body .wp-block-table {
	margin: 0 0 var(--emv-space-md);
	overflow-x: auto;
}

.emv-legal-content__body .wp-block-table table {
	margin-bottom: 0;
}

.emv-events-main {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
	background: var(--emv-gradient-azul-clarito);
	background-size: 100% auto;
}

.emv-events-main:has(.emv-events-main__panel--tec) {
	padding-top: 0;
}

.emv-contact-main__grid {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

.emv-events-main__grid {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

@media (min-width: 900px) {
	.emv-contact-main__grid {
		grid-template-columns: minmax(16rem, 0.9fr) minmax(0, 1.35fr);
		gap: var(--emv-space-xl) var(--emv-space-2xl);
	}
}

.emv-contact-aside {
	gap: var(--emv-space-md);
}

.emv-contact-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
}

.emv-contact-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--emv-space-sm);
	align-items: start;
	padding: var(--emv-space-md);
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	border-inline-start: 4px solid var(--emv-color-primary);
	box-shadow: var(--emv-shadow-sm);
}

.emv-contact-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.75rem;
	height: 2.75rem;
	color: var(--emv-color-primary);
	flex-shrink: 0;
}

.emv-contact-card__label {
	margin: 0 0 var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-contact-card__text {
	margin: 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-contact-card__text a {
	color: var(--emv-color-text);
	text-decoration: none;
}

.emv-contact-card__text a:hover {
	color: var(--emv-color-primary);
}

.emv-contact-form-panel {
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	box-shadow: var(--emv-shadow-sm);
	padding: var(--emv-space-lg);
}

.emv-events-main__intro {
	max-width: 48rem;
}

.emv-events-main__panel {
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	box-shadow: var(--emv-shadow-sm);
	padding: var(--emv-space-lg);
}

.emv-events-main__panel--tec {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
	margin-top: 0;
	overflow-x: auto;
}

.emv-events-main__panel--tec .tribe-events {
	padding-bottom: 0;
	margin-top: 0;
	background: transparent;
}

.emv-events-landing .tribe-events .tribe-events-l-container,
.emv-events-landing .tribe-events-header,
.emv-events-landing .tribe-events-calendar-list,
.emv-events-landing .tribe-events-calendar-month,
.emv-events-landing .tribe-events-calendar-day,
.emv-events-landing .tribe-events-pro-photo,
.emv-events-landing .tribe-events-pro-map,
.emv-events-landing .tribe-events-pro-week {
	background-color: transparent;
}

/* ~20% del margin-top por defecto de TEC (--tec-spacer-8 / --tec-spacer-9) */
.emv-events-landing .tribe-events .tribe-events-header.tribe-events-header--has-event-search {
	margin-top: calc(var(--tec-spacer-8, 40px) * 0.2);
}

.emv-events-landing .tribe-common--breakpoint-medium.tribe-events .tribe-events-header.tribe-events-header--has-event-search {
	margin-top: calc(var(--tec-spacer-9, 48px) * 0.2);
}

.emv-events-landing .tribe-common--breakpoint-medium.tribe-events .tribe-events-l-container {
	padding-top: calc(var(--tec-spacer-11, 64px) * 0.5);
	padding-bottom: 0;
}

.emv-events-landing .tribe-events-l-container.tribe-common-l-container,
.emv-events-landing .tribe-events .tribe-events-l-container {
	padding-bottom: 0;
}

/* Badge de fecha en listado TEC = mismo estilo que el home */
.emv-events-landing .tribe-events-calendar-list__event-date-tag.emv-event__date {
	align-self: center;
	width: auto;
	min-width: 3.25rem;
	margin: 0;
	padding: var(--emv-space-2xs) 0.4rem;
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary-dark);
	border: 0;
	box-shadow: none;
}

.emv-events-landing .tribe-events-calendar-list__event-date-tag.emv-event__date time {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	color: inherit;
}

.emv-events-landing .tribe-events-calendar-list__event-date-tag .emv-event__day,
.emv-events-landing .tribe-events-calendar-list__event-date-tag .emv-event__month {
	display: block;
	margin: 0;
	padding: 0;
	color: inherit;
	background: none;
	border: 0;
}

.emv-events-landing .tribe-events-calendar-list__event-date-tag .emv-event__day {
	font-family: var(--emv-font-display);
	font-size: 1.25rem;
	font-weight: var(--emv-fw-black);
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
}

.emv-events-landing .tribe-events-calendar-list__event-date-tag .emv-event__month {
	font-family: var(--emv-font-display);
	font-size: 0.7rem;
	font-weight: var(--emv-fw-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
}

.emv-events-main__panel .emv-events {
	margin: 0;
}

.emv-events-main__panel .emv-section-title {
	margin-top: 0;
}

/* Separador delante de títulos TEC en /eventos/ (listado) */
.emv-events-landing hr.style-hr:has(+ .tribe-events-calendar-list__event-title),
.tribe-events hr.style-hr:has(+ .tribe-events-calendar-list__event-title) {
	display: block;
	margin-block: var(--emv-space-md) var(--emv-space-sm);
	width: 100%;
}

.emv-events-landing .tribe-events-calendar-list__event-row:first-child hr.style-hr:has(+ .tribe-events-calendar-list__event-title),
.emv-events-landing .tribe-events-calendar-list__month-separator + .tribe-events-calendar-list__event-row hr.style-hr:has(+ .tribe-events-calendar-list__event-title),
.tribe-events .tribe-events-calendar-list__event-row:first-child hr.style-hr:has(+ .tribe-events-calendar-list__event-title),
.tribe-events .tribe-events-calendar-list__month-separator + .tribe-events-calendar-list__event-row hr.style-hr:has(+ .tribe-events-calendar-list__event-title) {
	display: none;
}

.emv-contact-form-panel__inner > h2:first-child {
	margin-top: 0;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xl);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-contact-form-panel__inner > p {
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-contact-form-panel__inner > p strong {
	color: var(--emv-color-primary-dark);
}

.emv-contact-form-panel .wpcf7 {
	margin-top: var(--emv-space-md);
}

.emv-contact-form-panel .wpcf7-form p {
	margin: 0 0 var(--emv-space-sm);
}

.emv-contact-form-panel .wpcf7-form label {
	display: block;
	margin-bottom: var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-contact-form-panel .wpcf7-form input[type="text"],
.emv-contact-form-panel .wpcf7-form input[type="email"],
.emv-contact-form-panel .wpcf7-form input[type="tel"],
.emv-contact-form-panel .wpcf7-form input[type="url"],
.emv-contact-form-panel .wpcf7-form input[type="number"],
.emv-contact-form-panel .wpcf7-form select,
.emv-contact-form-panel .wpcf7-form textarea {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-blanco);
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-base);
	color: var(--emv-color-text);
	transition: border-color var(--emv-transition-fast);
}

.emv-contact-form-panel .wpcf7-form textarea {
	min-height: 8rem;
	resize: vertical;
}

.emv-contact-form-panel .wpcf7-form input:hover,
.emv-contact-form-panel .wpcf7-form select:hover,
.emv-contact-form-panel .wpcf7-form textarea:hover,
.emv-contact-form-panel .wpcf7-form input:focus,
.emv-contact-form-panel .wpcf7-form select:focus,
.emv-contact-form-panel .wpcf7-form textarea:focus {
	border-color: var(--emv-color-primary);
	outline: none;
}

.emv-contact-form-panel .wpcf7-form input:focus-visible,
.emv-contact-form-panel .wpcf7-form select:focus-visible,
.emv-contact-form-panel .wpcf7-form textarea:focus-visible {
	outline: var(--emv-focus-outline-width, 2px) solid var(--emv-color-primary);
	outline-offset: 2px;
}

.emv-contact-form-panel .wpcf7-submit,
.emv-contact-form-panel input.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
	border: 2px solid transparent;
	border-radius: var(--emv-radius-md);
	background-color: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--emv-transition-fast);
}

.emv-contact-form-panel .wpcf7-submit:hover,
.emv-contact-form-panel input.wpcf7-submit:hover {
	background-color: var(--emv-color-primary-dark);
}

.emv-contact-form-panel .wpcf7-not-valid-tip,
.emv-contact-form-panel .wpcf7-response-output {
	font-size: var(--emv-fs-sm);
}

.emv-contact-map__frame {
	overflow: hidden;
	border-radius: var(--emv-radius-md);
	box-shadow: var(--emv-shadow-sm);
	background: #e8e8e8;
}

.emv-contact-map__frame iframe {
	display: block;
	width: 100%;
	min-height: 18rem;
	height: 22rem;
	border: 0;
}

@media (min-width: 900px) {
	.emv-contact-map__frame iframe {
		height: 26rem;
	}
}

.emv-contact-directions {
	margin-top: var(--emv-space-lg);
	padding: var(--emv-space-lg);
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	border-inline-start: 4px solid var(--emv-color-primary);
	box-shadow: var(--emv-shadow-sm);
}

.emv-contact-directions__title {
	margin: 0 0 var(--emv-space-2xs);
	color: var(--emv-color-primary-dark);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-lg);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
}

.emv-contact-directions__hint {
	margin: 0 0 var(--emv-space-md);
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

.emv-contact-directions__row {
	display: grid;
	gap: var(--emv-space-sm);
}

@media (min-width: 640px) {
	.emv-contact-directions__row {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: stretch;
	}
}

.emv-contact-directions__input {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.65rem 0.9rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-md);
	background: var(--emv-color-blanco);
	color: var(--emv-color-text);
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-base);
	line-height: 1.3;
	transition: border-color var(--emv-transition-fast);
}

.emv-contact-directions__input:focus {
	outline: none;
	border-color: var(--emv-color-primary);
	box-shadow: var(--emv-focus-ring);
}

.emv-contact-directions__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--emv-space-3xs);
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Landing: Cursos Presenciales
   -------------------------------------------------------------------------- */

.emv-presencial-info {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
	background: var(--emv-color-blanco);
}

.emv-presencial-info__grid {
	display: grid;
	gap: var(--emv-space-md);
}

@media (min-width: 768px) {
	.emv-presencial-info__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--emv-space-lg);
	}
}

.emv-presencial-card {
	padding: var(--emv-space-lg);
	background: var(--emv-gradient-azul-clarito);
	background-size: 100% auto;
	border-radius: var(--emv-radius-md);
	border-inline-start: 4px solid var(--emv-color-primary);
	box-shadow: var(--emv-shadow-sm);
}

.emv-presencial-card__title {
	margin: 0 0 var(--emv-space-md);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-lg);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-presencial-card__meta,
.emv-presencial-card__levels {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-xs);
}

.emv-presencial-card__meta li,
.emv-presencial-card__levels li {
	font-size: var(--emv-fs-base);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-presencial-card__meta strong,
.emv-presencial-card__levels strong {
	color: var(--emv-color-primary-dark);
}

.emv-presencial-card__schedules {
	list-style: none;
	margin: var(--emv-space-2xs) 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-2xs);
}

.emv-presencial-card__subtitle {
	margin: var(--emv-space-md) 0 var(--emv-space-xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary);
}

.emv-presencial-location {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
}

.emv-presencial-location .emv-section-head {
	margin-bottom: var(--emv-space-lg);
}

.emv-presencial-location__grid {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

@media (min-width: 900px) {
	.emv-presencial-location__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: var(--emv-space-2xl);
	}
}

.emv-presencial-location__map {
	margin-bottom: var(--emv-space-md);
}

.emv-presencial-location__address {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--emv-space-xs);
	align-items: start;
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-presencial-location__pin {
	display: inline-flex;
	color: var(--emv-color-primary);
	margin-top: 0.15rem;
}

.emv-presencial-location__map iframe {
	min-height: 14rem;
	height: 16rem;
}

@media (min-width: 900px) {
	.emv-presencial-location__map iframe {
		height: 18rem;
	}
}

.emv-presencial-location__copy {
	padding-top: 0;
}

.emv-presencial-location__copy p {
	margin: 0 0 var(--emv-space-md);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-presencial-location__copy p:last-child {
	margin-bottom: 0;
}

#emv-presencial-benefits-title,
#emv-presencial-info-title,
#emv-presencial-location-title,
#emv-presencial-faq-title,
#emv-presencial-register-title {
	color: var(--emv-color-primary-dark);
}

#emv-clases-what-title,
#emv-clases-benefits-title,
#emv-clases-formats-title,
#emv-clases-audience-title,
#emv-clases-faq-title,
#emv-clases-register-title,
#emv-clases-alt-title {
	color: var(--emv-color-primary-dark);
}

.emv-clases-format-card {
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
}

.emv-clases-format-card__arrow {
	display: inline-flex;
	color: var(--emv-color-primary);
}

.emv-clases-format-card__action {
	margin: var(--emv-space-sm) 0 0;
}

/* --------------------------------------------------------------------------
   Landing: Profesores
   -------------------------------------------------------------------------- */

.emv-teachers-prose {
	max-width: 48rem;
}

.emv-teachers-prose p {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-teachers-story {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
	background: var(--emv-gradient-azul-clarito);
	background-size: 100% auto;
}

#emv-teachers-story-title,
#emv-teachers-mission-title,
#emv-teachers-uniques-title,
#emv-teachers-reviews-title,
#emv-teachers-team-title {
	color: var(--emv-color-primary-dark);
}

.emv-teachers-split {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

@media (min-width: 900px) {
	.emv-teachers-split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
		gap: var(--emv-space-2xl);
	}
}

.emv-teachers-split__col .emv-section-head {
	margin-bottom: var(--emv-space-md);
}

.emv-teachers-split__mission p,
.emv-teachers-split__text p {
	margin: 0 0 var(--emv-space-sm);
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-teachers-split__text p:last-child {
	margin-bottom: 0;
}

.emv-teachers-split__text strong {
	color: var(--emv-color-primary-dark);
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	font-size: var(--emv-fs-sm);
}

.emv-teachers-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--emv-space-md);
	align-items: stretch;
}

@media (min-width: 768px) {
	.emv-teachers-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--emv-space-lg);
	}
}

.emv-teacher-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--emv-space-sm);
	height: 100%;
	padding: var(--emv-space-lg);
	background: var(--emv-color-blanco);
	border-radius: var(--emv-radius-md);
	border-block-end: 4px solid var(--emv-shadow-sm);
	box-shadow: var(--emv-shadow-sm);
	text-align: center;
}

.emv-teacher-card__portrait {
	display: flex;
	justify-content: center;
	width: 100%;
}

.emv-teacher-card__photo {
	display: block;
	width: 12.5rem;
	height: 12.5rem;
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
	box-shadow: var(--emv-shadow-sm);
	border: 3px solid #eef0ff;
}

.emv-teacher-card__photo--fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(145deg, #050afa 0%, #0d1cab 100%);
	color: var(--emv-color-blanco);
}

.emv-teacher-card__identity {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
}

.emv-teacher-card__name {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-lg);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-teacher-card__role {
	margin: 0;
	font-size: var(--emv-fs-sm);
	color: var(--emv-color-primary);
	font-weight: var(--emv-fw-bold);
}

.emv-teacher-card__bio {
	margin: 0;
	font-size: var(--emv-fs-base);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
	text-align: left;
	width: 100%;
	flex: 1 1 auto;
}

.emv-teacher-card__bio > *:first-child {
	margin-top: 0;
}

.emv-teacher-card__bio > *:last-child {
	margin-bottom: 0;
}

.emv-teacher-card__bio p {
	margin: 0 0 var(--emv-space-2xs);
}

.emv-teacher-card__classes {
	width: 100%;
	text-align: left;
	margin-top: auto;
}

.emv-teacher-card__classes-label {
	margin: var(--emv-space-2xs)0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-teacher-card__social {
	margin-top: var(--emv-space-2xs);
	flex-wrap: wrap;
}

.emv-teacher-card__social .emv-social__link {
	width: 2.25rem;
	height: 2.25rem;
	background: #eef0ff;
}

.emv-teacher-card__tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: flex-start;
}

.emv-teacher-card__tags li {
	padding: 0.35rem 0.65rem;
	border-radius: var(--emv-radius-sm);
	background: #eef0ff;
	color: var(--emv-color-primary-dark);
	font-size: var(--emv-fs-xs);
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
}

.emv-teachers-cta__panel {
	margin-inline: auto;
	text-align: center;
	align-items: center;
}

.emv-teachers-cta__actions {
	justify-content: center;
}

.emv-btn--on-dark-outline {
	background: transparent;
	border-color: var(--emv-color-blanco);
	color: var(--emv-color-blanco);
}

.emv-btn--on-dark-outline:hover {
	background: var(--emv-color-blanco);
	color: var(--emv-color-primary);
}

/* --------------------------------------------------------------------------
   Landing: La Escuela
   -------------------------------------------------------------------------- */

.emv-school-hero__motto,
.emv-why-us__motto {
	position: relative;
	margin: var(--emv-space-sm) 0 0;
	padding-inline-start: 1rem;
	border-inline-start: 3px solid var(--emv-color-primary);
	font-family: var(--emv-font-display);
	font-size: clamp(1.05rem, 2.2vw, 1.35rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
	text-wrap: balance;
	max-width: 28rem;
}

.emv-why-us__point-body .emv-why-us__motto {
	margin-top: var(--emv-space-2xs);
}

.emv-school-prose__inner {
	/* Mismo ancho útil que emv-container (como emv-teachers-story). */
	max-width: none;
}

.emv-school-landing .emv-section-title,
#emv-school-history-title,
#emv-school-understand-title,
#emv-school-method-title,
#emv-school-learn-title,
#emv-school-space-title,
#emv-school-beyond-title {
	color: var(--emv-color-primary-dark);
}

.emv-school-split {
	display: grid;
	gap: var(--emv-space-xl);
	align-items: start;
}

@media (min-width: 900px) {
	.emv-school-split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--emv-space-2xl);
	}
}

.emv-school-split__col .emv-section-head {
	margin-bottom: var(--emv-space-md);
	text-align: start;
}

.emv-school-prose__content {
	display: grid;
	gap: var(--emv-space-sm);
	width: 100%;
	max-width: none;
}

.emv-school-prose__content > * {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-school-prose__highlight {
	position: relative;
	margin-block: var(--emv-space-md) !important;
	padding: 0 0 var(--emv-space-md);
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	text-align: center;
	font-family: var(--emv-font-display);
	font-size: clamp(1.2rem, 2.6vw, 1.55rem) !important;
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
	text-wrap: balance;
}

.emv-school-prose__highlight::before {
	content: none;
}

.emv-school-prose__highlight::after {
	content: "";
	position: absolute;
	inset-inline: 50%;
	inset-block-end: 0;
	width: 3.5rem;
	height: 3px;
	transform: translateX(-50%);
	border-radius: var(--emv-radius-full);
	background: linear-gradient(90deg, var(--emv-color-primary), var(--emv-color-primary-dark));
}

.emv-school-prose__highlight strong {
	font-weight: inherit;
	color: inherit;
}

.emv-school-lines {
	list-style: none;
	margin: 0 0 var(--emv-space-sm);
	padding: 0;
	display: grid;
	gap: 0.55rem;
}

.emv-school-lines li {
	position: relative;
	padding-inline-start: 1.1rem;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-school-lines li::before {
	content: "";
	position: absolute;
	inset-block-start: 0.55em;
	inset-inline-start: 0;
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: var(--emv-color-primary);
}

.emv-school-method__head {
	margin-bottom: var(--emv-space-lg);
}

.emv-school-method__intro {
	margin-bottom: var(--emv-space-xl);
	width: 100%;
}

.emv-school-method__list {
	list-style: none;
	margin: 0 0 var(--emv-space-xl);
	padding: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: none;
	position: relative;
}

.emv-school-method__list::before {
	content: "";
	position: absolute;
	inset-block: 1.35rem 1.35rem;
	inset-inline-start: 1.6rem;
	width: 2px;
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--emv-color-primary) 55%, transparent) 0%,
		var(--emv-color-primary) 20%,
		var(--emv-color-primary-dark) 80%,
		color-mix(in srgb, var(--emv-color-primary-dark) 40%, transparent) 100%
	);
	z-index: 0;
}

.emv-school-method__item {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	gap: var(--emv-space-md);
	align-items: start;
	padding: 0 0 var(--emv-space-lg);
	background: transparent;
	border: 0;
}

.emv-school-method__item:last-child {
	padding-bottom: 0;
}

.emv-school-method__marker {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: var(--emv-radius-full);
	background: var(--emv-gradient-azul);
	color: var(--emv-color-on-primary);
	box-shadow:
		0 0 0 7px var(--emv-color-blanco),
		0 10px 24px color-mix(in srgb, var(--emv-color-primary-dark) 18%, transparent);
	flex-shrink: 0;
}

.emv-school-method__num {
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-extrabold);
	letter-spacing: 0.04em;
	line-height: 1;
}

.emv-school-method__body {
	position: relative;
	min-width: 0;
	padding: var(--emv-space-md) var(--emv-space-lg);
	background: var(--emv-color-blanco);
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 14%, transparent);
	border-radius: var(--emv-radius-lg);
	box-shadow: var(--emv-shadow-sm);
}

.emv-school-method__body::before {
	content: "";
	position: absolute;
	inset-block-start: 1.35rem;
	inset-inline-start: -0.55rem;
	width: 0.7rem;
	height: 0.7rem;
	background: var(--emv-color-blanco);
	border-block-start: 1px solid color-mix(in srgb, var(--emv-color-primary) 14%, transparent);
	border-inline-start: 1px solid color-mix(in srgb, var(--emv-color-primary) 14%, transparent);
	transform: rotate(-45deg);
}

.emv-school-method__item-title {
	margin: 0 0 var(--emv-space-2xs);
	font-family: var(--emv-font-display);
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-school-method__item-text {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

@media (min-width: 768px) {
	.emv-school-method__list::before {
		inset-inline-start: 1.75rem;
	}

	.emv-school-method__item {
		grid-template-columns: 3.5rem minmax(0, 1fr);
		gap: var(--emv-space-lg);
		padding-bottom: var(--emv-space-xl);
	}

	.emv-school-method__marker {
		width: 3.5rem;
		height: 3.5rem;
	}

	.emv-school-method__num {
		font-size: var(--emv-fs-base);
	}

	.emv-school-method__body {
		padding: var(--emv-space-lg) clamp(1.25rem, 3vw, 2rem);
	}

	.emv-school-method__body::before {
		inset-block-start: 1.5rem;
	}
}

.emv-school-method__outro {
	width: 100%;
}

/* --------------------------------------------------------------------------
   Modal — Área privada
   -------------------------------------------------------------------------- */

.emv-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	place-items: center;
	padding: var(--emv-space-md);
}

.emv-modal[hidden] {
	display: none;
}

.emv-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--emv-color-negro-azulado, #081730) 72%, transparent);
	border: 0;
	cursor: pointer;
}

.emv-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 26rem);
	max-height: min(92vh, 40rem);
	overflow: auto;
	padding: clamp(1.35rem, 4vw, 2rem);
	border-radius: var(--emv-radius-lg);
	background: var(--emv-color-blanco);
	box-shadow: var(--emv-shadow-lg, 0 24px 48px rgba(8, 23, 48, 0.28));
}

.emv-modal__close {
	position: absolute;
	inset-block-start: 0.85rem;
	inset-inline-end: 0.85rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: var(--emv-radius-full);
	background: var(--emv-color-espuma);
	color: var(--emv-color-primary-dark);
	cursor: pointer;
}

.emv-modal__close:hover,
.emv-modal__close:focus-visible {
	background: color-mix(in srgb, var(--emv-color-primary) 16%, var(--emv-color-espuma));
	color: var(--emv-color-primary);
}

.emv-modal__head {
	display: grid;
	gap: var(--emv-space-2xs);
	margin-bottom: var(--emv-space-md);
	padding-inline-end: 2.5rem;
}

.emv-modal__eyebrow {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary);
}

.emv-modal__title {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
}

.emv-modal__lead {
	margin: 0;
	font-size: var(--emv-fs-md);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text);
}

.emv-modal__alert {
	margin: 0 0 var(--emv-space-md);
	padding: var(--emv-space-sm);
	border-radius: var(--emv-radius-sm);
	background: color-mix(in srgb, #c62828 12%, white);
	border: 1px solid color-mix(in srgb, #c62828 28%, transparent);
	color: #8b1e1e;
	font-size: var(--emv-fs-sm);
}

.emv-private-login .login-username,
.emv-private-login .login-password,
.emv-private-login .login-remember,
.emv-private-login .login-submit {
	display: block;
	margin: 0 0 var(--emv-space-sm);
}

.emv-private-login label {
	display: block;
	margin-bottom: var(--emv-space-3xs);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-xs);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-primary-dark);
}

.emv-private-login .login-remember label {
	display: inline-flex;
	align-items: center;
	gap: var(--emv-space-2xs);
	margin: 0;
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-regular);
	letter-spacing: normal;
	text-transform: none;
	color: var(--emv-color-text);
	cursor: pointer;
}

.emv-private-login input[type="text"],
.emv-private-login input[type="password"] {
	display: block;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	border: 2px solid var(--emv-color-border);
	border-radius: var(--emv-radius-sm);
	background: var(--emv-color-blanco);
	font-family: var(--emv-font-body);
	font-size: var(--emv-fs-md);
	color: var(--emv-color-text);
	box-sizing: border-box;
}

.emv-private-login input[type="text"]:focus,
.emv-private-login input[type="password"]:focus {
	outline: none;
	border-color: var(--emv-color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--emv-color-primary) 18%, transparent);
}

.emv-private-login #emv-private-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.75rem;
	margin-top: var(--emv-space-2xs);
	padding: 0.75rem 1.35rem;
	border: 2px solid transparent;
	border-radius: var(--emv-radius-md);
	background: var(--emv-color-primary);
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	color: var(--emv-color-on-primary);
	cursor: pointer;
}

.emv-private-login #emv-private-submit:hover,
.emv-private-login #emv-private-submit:focus-visible {
	background: var(--emv-color-primary-dark);
}

.emv-private-login__recover {
	margin: var(--emv-space-sm) 0 0;
	text-align: center;
}

.emv-private-login__recover a {
	font-size: var(--emv-fs-sm);
	color: var(--emv-color-primary);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.emv-private-login__recover a:hover,
.emv-private-login__recover a:focus-visible {
	color: var(--emv-color-primary-dark);
}

body.emv-modal-open {
	overflow: hidden;
}

.emv-site-header__cta .emv-btn {
	cursor: pointer;
}

/* --------------------------------------------------------------------------
   WooCommerce notices (acorde a marca EMV)
   -------------------------------------------------------------------------- */

/* Botón bloques carrito / checkout — hover EMV */
body.woocommerce .wc-block-components-button.wp-element-button,
body.woocommerce-page .wc-block-components-button.wp-element-button,
body.emv-woocommerce--cart .wc-block-cart__submit-button,
body.emv-woocommerce--checkout .wc-block-components-checkout-place-order-button,
.wc-block-components-button.wp-element-button.contained,
.wc-block-cart__submit-button.contained {
	background: var(--emv-color-primary) !important;
	background-color: var(--emv-color-primary) !important;
	color: var(--emv-color-on-primary) !important;
	border-color: transparent !important;
	box-shadow: none !important;
}

body.woocommerce .wc-block-components-button.wp-element-button:hover,
body.woocommerce .wc-block-components-button.wp-element-button:focus,
body.woocommerce-page .wc-block-components-button.wp-element-button:hover,
body.woocommerce-page .wc-block-components-button.wp-element-button:focus,
body.emv-woocommerce--cart .wc-block-cart__submit-button:hover,
body.emv-woocommerce--cart .wc-block-cart__submit-button:focus,
body.emv-woocommerce--checkout .wc-block-components-checkout-place-order-button:hover,
body.emv-woocommerce--checkout .wc-block-components-checkout-place-order-button:focus,
.wc-block-components-button.wp-element-button.contained:hover,
.wc-block-components-button.wp-element-button.contained:focus,
.wc-block-cart__submit-button.contained:hover,
.wc-block-cart__submit-button.contained:focus {
	background: var(--emv-color-primary-dark) !important;
	background-color: var(--emv-color-primary-dark) !important;
	color: var(--emv-color-on-primary) !important;
	border-color: transparent !important;
	box-shadow: none !important;
	opacity: 1 !important;
	filter: none !important;
}

body.woocommerce .woocommerce-notices-wrapper,
body.woocommerce-page .woocommerce-notices-wrapper {
	width: min(100% - (var(--emv-gutter) * 2), var(--emv-container));
	margin: 0 auto var(--emv-space-md);
}

body.woocommerce .woocommerce-message,
body.woocommerce-page .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-message {
	margin: 0 0 var(--emv-space-sm) !important;
	padding: 0.9rem 1.15rem !important;
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 22%, var(--emv-color-border)) !important;
	border-top: 3px solid var(--emv-color-primary) !important;
	border-radius: var(--emv-radius-md) !important;
	background: var(--emv-color-espuma) !important;
	color: var(--emv-color-primary-dark) !important;
	font-size: var(--emv-fs-md) !important;
	line-height: var(--emv-lh-snug) !important;
	box-shadow: var(--emv-shadow-sm) !important;
}

body.woocommerce .woocommerce-message::before,
body.woocommerce-page .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-message::before {
	display: none !important;
	content: none !important;
}

body.woocommerce .woocommerce-message a,
.woocommerce-notices-wrapper .woocommerce-message a {
	font-family: var(--emv-font-display);
	font-weight: var(--emv-fw-bold);
	text-transform: uppercase;
	letter-spacing: var(--emv-tracking-display);
	color: var(--emv-color-primary) !important;
}

body.woocommerce .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-info {
	border: 1px solid color-mix(in srgb, var(--emv-color-primary-light) 50%, var(--emv-color-border)) !important;
	border-top: 3px solid var(--emv-color-primary-light) !important;
	border-radius: var(--emv-radius-md) !important;
	background: color-mix(in srgb, var(--emv-color-espuma) 70%, white) !important;
	color: var(--emv-color-primary-dark) !important;
}

body.woocommerce .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-info::before {
	display: none !important;
	content: none !important;
}

body.woocommerce .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-error {
	border: 1px solid color-mix(in srgb, #c62828 28%, transparent) !important;
	border-top: 3px solid #c62828 !important;
	border-radius: var(--emv-radius-md) !important;
	background: color-mix(in srgb, #c62828 10%, white) !important;
	color: #8b1e1e !important;
}

body.woocommerce .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
	display: none !important;
	content: none !important;
}

/* --------------------------------------------------------------------------
   WooCommerce — ficha de producto (en main.css para garantizar carga)
   -------------------------------------------------------------------------- */

body.single-product #main-content,
body.emv-woocommerce--product #main-content,
body.emv-woocommerce--shop #main-content,
body.tax-product_cat #main-content,
body.tax-product_tag #main-content,
body.post-type-archive-product #main-content {
	background: var(--emv-gradient-azul-clarito);
}

/* Fallback: si el loop sale sin wrapper (h1/ul sueltos en body) */
body.emv-woocommerce--shop,
body.tax-product_cat,
body.tax-product_tag,
body.post-type-archive-product {
	background: var(--emv-gradient-azul-clarito);
}

body.emv-woocommerce--shop > .page-title,
body.emv-woocommerce--shop > .woocommerce-products-header,
body.emv-woocommerce--shop > .woocommerce-notices-wrapper,
body.emv-woocommerce--shop > .woocommerce-result-count,
body.emv-woocommerce--shop > .woocommerce-ordering,
body.emv-woocommerce--shop > ul.products,
body.emv-woocommerce--shop > .woocommerce-pagination,
body.tax-product_cat > .page-title,
body.tax-product_cat > .woocommerce-products-header,
body.tax-product_cat > .woocommerce-notices-wrapper,
body.tax-product_cat > .woocommerce-result-count,
body.tax-product_cat > .woocommerce-ordering,
body.tax-product_cat > ul.products,
body.tax-product_cat > .woocommerce-pagination,
body.tax-product_tag > .page-title,
body.tax-product_tag > .woocommerce-notices-wrapper,
body.tax-product_tag > .woocommerce-result-count,
body.tax-product_tag > .woocommerce-ordering,
body.tax-product_tag > ul.products,
body.post-type-archive-product > .page-title,
body.post-type-archive-product > .woocommerce-notices-wrapper,
body.post-type-archive-product > .woocommerce-result-count,
body.post-type-archive-product > .woocommerce-ordering,
body.post-type-archive-product > ul.products {
	width: min(100% - (var(--emv-gutter) * 2), var(--emv-container)) !important;
	max-width: var(--emv-container) !important;
	margin-inline: auto !important;
	box-sizing: border-box !important;
}

body.emv-woocommerce--shop > .page-title,
body.tax-product_cat > .page-title,
body.tax-product_tag > .page-title,
body.post-type-archive-product > .page-title {
	margin-block: var(--emv-space-xl) var(--emv-space-md) !important;
	font-family: var(--emv-font-display) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product .emv-woo-shell,
body.emv-woocommerce--product .emv-woo-shell,
body.emv-woocommerce--shop .emv-woo-shell,
body.tax-product_cat .emv-woo-shell,
body.tax-product_tag .emv-woo-shell,
body.post-type-archive-product .emv-woo-shell {
	padding-block: var(--emv-space-xl) var(--emv-space-2xl);
}

body.single-product .emv-woo-container,
body.emv-woocommerce--product .emv-woo-container,
body.single-product .emv-woo-product-wrap,
body.emv-woocommerce--product .emv-woo-product-wrap,
body.emv-woocommerce--shop .emv-woo-container,
body.tax-product_cat .emv-woo-container,
body.tax-product_tag .emv-woo-container,
body.post-type-archive-product .emv-woo-container {
	/* Igual que .emv-container en why-us__inner / studio-method__grid */
	width: min(100% - (var(--emv-gutter) * 2), var(--emv-container)) !important;
	max-width: none !important;
	margin-inline: auto !important;
}

body.single-product .emv-woo-product-wrap,
body.emv-woocommerce--product .emv-woo-product-wrap,
body.single-product .emv-woo-container,
body.emv-woocommerce--product .emv-woo-container {
	padding-top: var(--emv-space-lg);
}

/* La ficha .product: mismo ancho útil (por si queda fuera de .emv-container) */
body.single-product div.product,
body.single-product div.product.type-product,
body.emv-woocommerce--product div.product,
body.emv-woocommerce--product div.product.type-product,
body.woocommerce.single-product div.product,
body.woocommerce-page.single-product div.product {
	position: relative !important;
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: var(--emv-space-xl) !important;
	align-items: start !important;
	float: none !important;
	clear: both !important;
	box-sizing: border-box !important;
	width: min(100% - (var(--emv-gutter) * 2), var(--emv-container)) !important;
	max-width: var(--emv-container) !important;
	margin-block: 0 !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
}

/* Si ya va dentro del wrap, no volver a restar gutters */
body.single-product .emv-woo-product-wrap > div.product,
body.single-product .emv-woo-container > div.product,
body.emv-woocommerce--product .emv-woo-product-wrap > div.product,
body.emv-woocommerce--product .emv-woo-container > div.product {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

body.single-product div.product::before,
body.single-product div.product::after,
body.emv-woocommerce--product div.product::before,
body.emv-woocommerce--product div.product::after {
	display: none !important;
	content: none !important;
}

body.single-product div.product .images,
body.single-product div.product .summary,
body.single-product div.product .woocommerce-product-gallery,
body.single-product #content div.product .images,
body.single-product #content div.product .summary,
body.woocommerce div.product div.images,
body.woocommerce div.product div.summary,
body.woocommerce-page div.product div.images,
body.woocommerce-page div.product div.summary {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	clear: none !important;
}

body.single-product div.product .woocommerce-product-gallery,
body.single-product div.product div.images {
	padding: var(--emv-space-sm) !important;
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 14%, var(--emv-color-border)) !important;
	border-radius: var(--emv-radius-lg) !important;
	background: var(--emv-color-blanco) !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

body.single-product div.product .woocommerce-product-gallery img,
body.single-product div.product div.images img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	border-radius: var(--emv-radius-md) !important;
}

body.single-product div.product .summary.entry-summary,
body.single-product div.product div.summary {
	display: grid !important;
	gap: var(--emv-space-sm) !important;
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 16%, var(--emv-color-border)) !important;
	border-radius: var(--emv-radius-lg) !important;
	background:
		radial-gradient(ellipse 90% 80% at 100% 0%, color-mix(in srgb, var(--emv-color-primary) 10%, transparent), transparent 55%),
		var(--emv-color-blanco) !important;
	box-sizing: border-box !important;
}

body.single-product div.product .product_title,
body.single-product div.product h1.product_title {
	margin: 0 !important;
	font-family: var(--emv-font-display) !important;
	font-size: clamp(1.5rem, 3.2vw, 2.15rem) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	line-height: var(--emv-lh-tight) !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product div.product p.price,
body.single-product div.product span.price,
body.single-product div.product .summary .price {
	margin: 0 !important;
	font-family: var(--emv-font-display) !important;
	font-size: clamp(1.5rem, 2.8vw, 2rem) !important;
	font-weight: var(--emv-fw-bold) !important;
	color: var(--emv-color-primary) !important;
}

body.single-product div.product .woocommerce-product-details__short-description {
	margin: 0 !important;
	font-size: var(--emv-fs-md) !important;
	line-height: var(--emv-lh-snug) !important;
	color: var(--emv-color-text) !important;
}

body.single-product div.product form.cart {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	gap: var(--emv-space-sm) !important;
	margin-top: var(--emv-space-2xs) !important;
	padding: var(--emv-space-md) !important;
	border-radius: var(--emv-radius-md) !important;
	background: color-mix(in srgb, var(--emv-color-espuma) 70%, white) !important;
}

body.single-product div.product form.cart .quantity .qty {
	width: 4.75rem !important;
	min-height: 2.75rem !important;
	border: 2px solid var(--emv-color-border) !important;
	border-radius: var(--emv-radius-sm) !important;
	text-align: center !important;
}

body.single-product div.product form.cart .single_add_to_cart_button,
body.single-product div.product form.cart button.button.alt {
	flex: 1 1 12rem !important;
	min-height: 2.75rem !important;
	padding: 0.75rem 1.35rem !important;
	border: 0 !important;
	border-radius: var(--emv-radius-md) !important;
	background: var(--emv-color-primary) !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-sm) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	color: var(--emv-color-on-primary) !important;
}

body.single-product div.product form.cart .single_add_to_cart_button:hover,
body.single-product div.product form.cart button.button.alt:hover {
	background: var(--emv-color-primary-dark) !important;
}

body.single-product div.product .product_meta {
	margin-top: var(--emv-space-sm) !important;
	padding-top: var(--emv-space-md) !important;
	border-top: 1px solid var(--emv-color-border) !important;
	font-size: var(--emv-fs-sm) !important;
	color: var(--emv-color-text-muted) !important;
}

body.single-product div.product .woocommerce-tabs {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	float: none !important;
	clear: both !important;
	margin-top: var(--emv-space-xl) !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--emv-space-2xs) !important;
	margin: 0 0 var(--emv-space-md) !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs::after {
	display: none !important;
	content: none !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs li {
	border: 0 !important;
	background: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex !important;
	align-items: center !important;
	min-height: 2.5rem !important;
	padding: 0.55rem 1.1rem !important;
	border-radius: var(--emv-radius-full) !important;
	background: var(--emv-color-espuma) !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-xs) !important;
	font-weight: var(--emv-fw-bold) !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs li.active a,
body.single-product div.product .woocommerce-tabs ul.tabs li a:hover {
	background: var(--emv-color-primary) !important;
	color: var(--emv-color-on-primary) !important;
}

body.single-product div.product .woocommerce-tabs .panel {
	margin: 0 !important;
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	border: 1px solid color-mix(in srgb, var(--emv-color-primary) 14%, var(--emv-color-border)) !important;
	border-radius: var(--emv-radius-lg) !important;
	background: var(--emv-color-blanco) !important;
}

/* Oculta h2 "Descripción" automático de WooCommerce */
body.single-product #tab-description > h2:first-child,
body.single-product .woocommerce-Tabs-panel--description > h2:first-child,
body.emv-woocommerce--product #tab-description > h2:first-child {
	display: none !important;
}

/* Contenido de descripción del producto — estilo EMV */
body.single-product #tab-description,
body.single-product .woocommerce-Tabs-panel--description,
body.emv-woocommerce--product #tab-description {
	font-family: var(--emv-font-body) !important;
	font-size: var(--emv-fs-md) !important;
	line-height: var(--emv-lh-normal) !important;
	color: var(--emv-color-text) !important;
}

body.single-product #tab-description h2,
body.single-product #tab-description h3,
body.single-product .woocommerce-Tabs-panel--description h2,
body.single-product .woocommerce-Tabs-panel--description h3 {
	margin: var(--emv-space-md) 0 var(--emv-space-sm) !important;
	font-family: var(--emv-font-display) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	line-height: var(--emv-lh-tight) !important;
}

body.single-product #tab-description h2,
body.single-product .woocommerce-Tabs-panel--description h2 {
	font-size: clamp(1.35rem, 2.8vw, 1.75rem) !important;
	margin-top: var(--emv-space-sm) !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product #tab-description > h2:first-of-type,
body.single-product .woocommerce-Tabs-panel--description > h2:first-of-type {
	margin-top: 0 !important;
}

body.single-product #tab-description h3,
body.single-product .woocommerce-Tabs-panel--description h3 {
	font-size: clamp(1.1rem, 2.2vw, 1.35rem) !important;
	color: var(--emv-color-primary) !important;
}

body.single-product #tab-description p,
body.single-product .woocommerce-Tabs-panel--description p {
	margin: 0 0 var(--emv-space-sm) !important;
	font-size: var(--emv-fs-md) !important;
	line-height: var(--emv-lh-snug) !important;
	color: var(--emv-color-text) !important;
}

body.single-product #tab-description strong,
body.single-product .woocommerce-Tabs-panel--description strong {
	font-weight: var(--emv-fw-bold) !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product #tab-description ul,
body.single-product .woocommerce-Tabs-panel--description ul {
	list-style: none !important;
	margin: 0 0 var(--emv-space-md) !important;
	padding: var(--emv-space-md) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: var(--emv-space-xs) !important;
	border-radius: var(--emv-radius-md) !important;
	background: var(--emv-gradient-azul-clarito) !important;
	border-inline-start: 4px solid var(--emv-color-primary) !important;
}

body.single-product #tab-description ul li,
body.single-product .woocommerce-Tabs-panel--description ul li {
	margin: 0 !important;
	padding: 0 !important;
	font-size: var(--emv-fs-base) !important;
	line-height: var(--emv-lh-snug) !important;
	color: var(--emv-color-text) !important;
}

body.single-product #tab-description hr,
body.single-product .woocommerce-Tabs-panel--description hr {
	border: 0 !important;
	height: 1px !important;
	margin-block: var(--emv-space-lg) !important;
	background-image: linear-gradient(
		to right,
		transparent,
		color-mix(in srgb, var(--emv-color-azul-brillante) 75%, transparent),
		transparent
	) !important;
	background-color: transparent !important;
}

body.single-product #tab-description blockquote,
body.single-product .woocommerce-Tabs-panel--description blockquote {
	margin: 0 0 var(--emv-space-md) !important;
	padding: var(--emv-space-md) var(--emv-space-lg) !important;
	border: 0 !important;
	border-radius: var(--emv-radius-md) !important;
	background: color-mix(in srgb, var(--emv-color-espuma) 70%, white) !important;
	border-inline-start: 4px solid var(--emv-color-primary) !important;
	font-size: var(--emv-fs-md) !important;
	line-height: var(--emv-lh-snug) !important;
	color: var(--emv-color-text) !important;
}

body.single-product #tab-description blockquote p,
body.single-product .woocommerce-Tabs-panel--description blockquote p {
	margin: 0 0 var(--emv-space-xs) !important;
}

body.single-product #tab-description blockquote footer,
body.single-product .woocommerce-Tabs-panel--description blockquote footer {
	margin: 0 !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-sm) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	color: var(--emv-color-primary-dark) !important;
}

body.single-product #tab-description blockquote cite,
body.single-product .woocommerce-Tabs-panel--description blockquote cite {
	font-style: normal !important;
	color: inherit !important;
}

body.single-product #tab-description a:not(.button),
body.single-product .woocommerce-Tabs-panel--description a:not(.button) {
	color: var(--emv-color-primary) !important;
	font-weight: var(--emv-fw-bold) !important;
	text-decoration: underline !important;
	text-underline-offset: 0.15em !important;
}

body.single-product #tab-description a:not(.button):hover,
body.single-product #tab-description a:not(.button):focus-visible,
body.single-product .woocommerce-Tabs-panel--description a:not(.button):hover,
body.single-product .woocommerce-Tabs-panel--description a:not(.button):focus-visible {
	color: var(--emv-color-primary-dark) !important;
}

body.single-product div.product .related,
body.single-product div.product .upsells,
body.single-product div.product section.related,
body.single-product div.product section.upsells {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	float: none !important;
	clear: both !important;
	margin-top: var(--emv-space-2xl) !important;
	padding-top: var(--emv-space-xl) !important;
	border-top: 1px solid var(--emv-color-border) !important;
}

body.single-product div.product .related ul.products li.product .button,
body.single-product div.product .related ul.products li.product a.button,
body.single-product div.product .related ul.products li.product a.add_to_cart_button,
body.single-product div.product .upsells ul.products li.product .button,
body.single-product div.product .upsells ul.products li.product a.button,
body.single-product div.product .upsells ul.products li.product a.add_to_cart_button,
body.emv-woocommerce--product div.product .related ul.products li.product .button,
body.emv-woocommerce--product div.product .related ul.products li.product a.add_to_cart_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	align-self: stretch !important;
	box-sizing: border-box !important;
	width: calc(100% - (var(--emv-space-md) * 2)) !important;
	min-height: 2.5rem !important;
	margin: auto var(--emv-space-md) var(--emv-space-md) !important;
	padding: 0.55rem 1rem !important;
	border: 2px solid transparent !important;
	border-radius: var(--emv-radius-md) !important;
	background: var(--emv-color-primary) !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-sm) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1 !important;
	color: var(--emv-color-on-primary) !important;
	box-shadow: none !important;
	float: none !important;
	cursor: pointer !important;
	transition:
		background-color var(--emv-transition-fast),
		color var(--emv-transition-fast),
		transform var(--emv-transition-fast) !important;
}

body.single-product div.product .related ul.products li.product .button:hover,
body.single-product div.product .related ul.products li.product a.button:hover,
body.single-product div.product .related ul.products li.product a.add_to_cart_button:hover,
body.single-product div.product .upsells ul.products li.product .button:hover,
body.single-product div.product .upsells ul.products li.product a.add_to_cart_button:hover,
body.emv-woocommerce--product div.product .related ul.products li.product .button:hover,
body.emv-woocommerce--product div.product .related ul.products li.product a.add_to_cart_button:hover {
	background: var(--emv-color-primary-dark) !important;
	color: var(--emv-color-on-primary) !important;
	transform: translateY(-1px) !important;
}

body.single-product div.product .related ul.products li.product .button:focus-visible,
body.single-product div.product .related ul.products li.product a.add_to_cart_button:focus-visible,
body.single-product div.product .upsells ul.products li.product a.add_to_cart_button:focus-visible {
	outline: var(--emv-focus-outline-width) solid var(--emv-color-focus) !important;
	outline-offset: var(--emv-focus-outline-offset) !important;
}

body.single-product div.product .related ul.products li.product a.added_to_cart,
body.single-product div.product .upsells ul.products li.product a.added_to_cart {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--emv-space-2xs) !important;
	align-self: stretch !important;
	width: calc(100% - (var(--emv-space-md) * 2)) !important;
	min-height: 2.5rem !important;
	margin: 0 var(--emv-space-md) var(--emv-space-md) !important;
	padding: 0.55rem 1rem !important;
	border: 2px solid var(--emv-color-primary) !important;
	border-radius: var(--emv-radius-md) !important;
	background: transparent !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-sm) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display) !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1 !important;
	color: var(--emv-color-primary) !important;
	box-sizing: border-box !important;
}

body.single-product div.product .related ul.products li.product a.added_to_cart:hover,
body.single-product div.product .upsells ul.products li.product a.added_to_cart:hover {
	background: var(--emv-color-primary) !important;
	color: var(--emv-color-on-primary) !important;
}

@media (min-width: 900px) {
	body.single-product div.product,
	body.emv-woocommerce--product div.product,
	body.woocommerce.single-product div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
		gap: clamp(1.5rem, 4vw, 3rem) !important;
	}
}

/* --------------------------------------------------------------------------
   /cursos/ — listado editorial de productos (markup EMV propio)
   -------------------------------------------------------------------------- */

.emv-courses-archive__products {
	position: relative;
	padding: var(--emv-space-sm);
	border-radius: var(--emv-radius-md);
	background: var(--emv-gradient-azul-clarito);
	isolation: isolate;
}

.emv-courses-archive__products::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background:
		radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--emv-color-primary) 16%, transparent), transparent 42%),
		radial-gradient(circle at 88% 100%, color-mix(in srgb, var(--emv-color-primary-dark) 10%, transparent), transparent 46%);
	z-index: 0;
}

.emv-course-products {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: var(--emv-space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.emv-course-product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--emv-space-sm);
	align-items: stretch;
	padding: var(--emv-space-sm);
	border-radius: var(--emv-radius-md);
	background: color-mix(in srgb, var(--emv-color-blanco) 90%, transparent);
	outline: 1px solid color-mix(in srgb, var(--emv-color-primary) 12%, transparent);
	transition:
		transform var(--emv-transition-fast),
		outline-color var(--emv-transition-fast),
		background-color var(--emv-transition-fast);
}

@media (hover: hover) and (pointer: fine) {
	.emv-course-product:hover {
		transform: translateY(-2px);
		outline-color: color-mix(in srgb, var(--emv-color-primary) 34%, transparent);
		background: var(--emv-color-blanco);
	}

	.emv-course-product:hover .emv-course-product__img {
		transform: scale(1.05);
	}
}

.emv-course-product__media {
	display: block;
	overflow: hidden;
	border-radius: var(--emv-radius-sm);
	aspect-ratio: 16 / 10;
	background: var(--emv-color-espuma);
}

.emv-course-product__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.emv-course-product__img--placeholder {
	min-height: 9rem;
	background:
		linear-gradient(135deg, var(--emv-color-espuma), color-mix(in srgb, var(--emv-color-primary) 14%, white));
}

.emv-course-product__body {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--emv-space-2xs);
	min-width: 0;
}

.emv-course-product__title {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: clamp(0.95rem, 4.2vw, 1.2rem);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	line-height: var(--emv-lh-tight);
	color: var(--emv-color-primary-dark);
	text-wrap: balance;
}

.emv-course-product__title a {
	color: inherit;
	text-decoration: none;
}

.emv-course-product__title a:hover,
.emv-course-product__title a:focus-visible {
	color: var(--emv-color-primary);
}

.emv-course-product__excerpt {
	margin: 0;
	font-size: var(--emv-fs-sm);
	line-height: var(--emv-lh-snug);
	color: var(--emv-color-text-muted);
}

.emv-course-product__excerpt p {
	margin: 0 0 var(--emv-space-2xs);
}

.emv-course-product__excerpt p:last-child {
	margin-bottom: 0;
}

.emv-course-product__price {
	margin: 0;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-lg);
	font-weight: var(--emv-fw-bold);
	line-height: 1.15;
	color: var(--emv-color-primary);
}

.emv-course-product__price del {
	opacity: 0.55;
	font-size: 0.75em;
	font-weight: var(--emv-fw-regular);
	color: var(--emv-color-text-muted);
}

.emv-course-product__price ins {
	text-decoration: none;
	background: none;
}

.emv-course-product__actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--emv-space-2xs);
	margin-top: var(--emv-space-2xs);
	width: 100%;
}

.emv-course-product__actions > a.added_to_cart {
	display: none !important;
}

.emv-course-product__btn,
.emv-course-product__actions .button,
.emv-course-product__actions a.button:not(.emv-course-product__info-btn) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0.75rem 1rem !important;
	border: 2px solid transparent !important;
	border-radius: var(--emv-radius-md) !important;
	background: var(--emv-color-primary) !important;
	font-family: var(--emv-font-display) !important;
	font-size: var(--emv-fs-sm) !important;
	font-weight: var(--emv-fw-bold) !important;
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1 !important;
	color: var(--emv-color-on-primary) !important;
	box-shadow: none !important;
	float: none !important;
	text-align: center;
}

.emv-course-product__btn:hover,
.emv-course-product__actions > .button:hover,
.emv-course-product__actions > a.button:hover:not(.emv-course-product__info-btn) {
	background: var(--emv-color-primary-dark) !important;
	color: var(--emv-color-on-primary) !important;
}

.emv-course-product__info-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	width: 100%;
	padding: 0.75rem 1rem;
	border: 2px solid var(--emv-color-primary);
	border-radius: var(--emv-radius-md);
	background: transparent;
	font-family: var(--emv-font-display);
	font-size: var(--emv-fs-sm);
	font-weight: var(--emv-fw-bold);
	letter-spacing: var(--emv-tracking-display);
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	color: var(--emv-color-primary);
	text-align: center;
	white-space: normal;
}

.emv-course-product__info-btn:hover,
.emv-course-product__info-btn:focus-visible {
	background: var(--emv-color-primary);
	color: var(--emv-color-on-primary);
}

.emv-courses-archive__empty {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: var(--emv-space-md);
	color: var(--emv-color-text-muted);
}

.emv-courses-archive .emv-contact-main {
	padding-block: var(--emv-space-lg);
}

.emv-courses-archive__cta {
	margin-top: var(--emv-space-xl);
	padding-inline: var(--emv-space-sm);
}

.emv-courses-archive__cta .emv-cluster,
.emv-courses-archive__cta .emv-course-cta__actions {
	justify-content: center;
}

@media (min-width: 640px) {
	.emv-courses-archive__products {
		padding: var(--emv-space-lg);
		border-radius: var(--emv-radius-lg);
	}

	.emv-course-products {
		gap: var(--emv-space-md);
	}

	.emv-course-product {
		grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
		gap: var(--emv-space-lg);
		align-items: center;
		padding: var(--emv-space-md);
	}

	.emv-course-product__media {
		aspect-ratio: 1 / 1;
	}

	.emv-course-product__img--placeholder {
		min-height: 11rem;
	}

	.emv-course-product__body {
		align-items: flex-start;
	}

	.emv-course-product__title {
		font-size: clamp(1rem, 2.2vw, 1.25rem);
	}

	.emv-course-product__price {
		font-size: var(--emv-fs-xl);
	}

	.emv-course-product__actions {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		width: auto;
	}

	.emv-course-product__btn,
	.emv-course-product__actions .button,
	.emv-course-product__actions a.button:not(.emv-course-product__info-btn),
	.emv-course-product__info-btn {
		width: auto !important;
		padding-inline: 1.25rem !important;
		white-space: nowrap;
	}

	.emv-courses-archive .emv-contact-main {
		padding-block: var(--emv-space-2xl);
	}

	.emv-courses-archive__cta {
		margin-top: var(--emv-space-2xl);
		padding-inline: 0;
	}
}

@media (min-width: 1024px) {
	.emv-courses-archive__products {
		padding: var(--emv-space-xl);
	}

	.emv-course-product {
		grid-template-columns: minmax(0, 13rem) minmax(0, 1fr);
	}
}


/* =====================================================
   COOKIEYES - BOTÓN DE REVISIÓN DE COOKIES
   Fondo granate, icono cookie blanco y sin efecto hover
   ===================================================== */
/* cookieYes*/
.cky-btn.cky-btn-accept,
.cky-btn.cky-btn-reject,
.cky-btn.cky-btn-preferences {
    color: #FFFFFF !important;
    background-color: #050afa !important;
    border-color: #050afa !important;
}
.cky-notice-des a.cky-policy,
.cky-notice-des .cky-show-desc-btn {
    color: #ffffff !important;
    text-decoration: underline !important;
}

.cky-notice-des a.cky-policy:hover,
.cky-notice-des .cky-show-desc-btn:hover {
    color: #050afa !important;
    text-decoration: underline !important;
}
/* 1. Botón principal: conservar tamaño y posición */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left {
    background-color: #050afa !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
    -webkit-transform: none !important;
}

/* 2. Evitar cambios al pasar el cursor o interactuar */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:hover,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:focus,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:focus-visible,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:active {
	background:var(--emv-gradient-azul) !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
    -webkit-transform: none !important;
}

/* 3. Ocultar el icono original de CookieYes */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left svg,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left img,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left picture,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left .cky-revisit-icon {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* 4. Ocultar gráficos internos habituales del plugin */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left > span,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left > div {
    /* Ocultamos solo el contenido gráfico mediante
       las reglas específicas anteriores. */
}

/* 5. Dibujar la nueva cookie con contorno blanco */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left::after {
    content: "" !important;
    position: absolute !important;
    top: 10% !important;
    left: 10% !important;
    width: 80% !important;
    height: 80% !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background-color: transparent !important;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M37 21a7 7 0 0 1-8-9 7 7 0 0 1-10-5A18 18 0 1 0 41 27a7 7 0 0 1-4-6Z'/%3E%3Ccircle cx='15' cy='20' r='1.5'/%3E%3Ccircle cx='24' cy='31' r='1.5'/%3E%3Ccircle cx='13' cy='30' r='1.2'/%3E%3Ccircle cx='23' cy='17' r='1.2'/%3E%3C/svg%3E") !important;

    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;

    pointer-events: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

/* 6. Mantener el icono estable al pasar el cursor */
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:hover::after,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:focus::after,
.cky-btn-revisit-wrapper.cky-revisit-bottom-left:active::after {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
    animation: none !important;
}
