/* ==========================================================================
   Expo Baby Fest — styles.css
   Estilos del tema. Paleta, tipografía y espaciados base viven en theme.json.
   Todas las clases se asignan a bloques nativos (Avanzado > Clase CSS adicional).
   ========================================================================== */

/* 1. Variables y base
   -------------------------------------------------------------------------- */
:root {
	--ebf-marino: var(--wp--preset--color--marino, #0D1636);
	--ebf-rosa: var(--wp--preset--color--rosa, #FD4C8D);
	--ebf-naranja: var(--wp--preset--color--naranja, #FE8536);
	--ebf-violeta: var(--wp--preset--color--violeta, #A151F0);
	--ebf-amarillo: var(--wp--preset--color--amarillo, #FEDB43);
	--ebf-blanco: #FFFFFF;
	--ebf-marino-hover: #1E2A5C;
	--ebf-rosa-tint: #FFF1F6;
	--ebf-naranja-tint: #FFF4EB;
	--ebf-violeta-tint: #F6EEFE;
	--ebf-amarillo-tint: #FFF7D1;
	--ebf-borde: #ECEEF3;
	--ebf-texto-suave: #3A4160;
	--ebf-sombra: 0 16px 32px rgba(13, 22, 54, .08);
	--ebf-section-y: clamp(72px, 9vw, 120px);
	--ebf-header-h: 140px;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--ebf-header-h) + 12px); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.wp-site-blocks > * { margin-block-start: 0; }
a { text-decoration-color: var(--ebf-rosa); text-underline-offset: 3px; text-decoration-thickness: 2px; }
a:hover { text-decoration-color: var(--ebf-violeta); }
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--ebf-violeta);
	outline-offset: 3px;
	border-radius: 8px;
}
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.ebf-icon { margin: 0; flex: none; }
.ebf-icon img { width: 20px; height: 20px; display: block; }

/* 2. Botones
   -------------------------------------------------------------------------- */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-decoration: none;
	transition: translate .2s ease, background-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.wp-block-button__link:hover { translate: 0 -2px; box-shadow: 0 10px 24px rgba(13, 22, 54, .18); }
.ebf-btn-primary .wp-block-button__link { background: var(--ebf-marino); color: var(--ebf-blanco); font-size: 1.125rem; padding: 1.1rem 2rem; }
.ebf-btn-primary .wp-block-button__link:hover { background: var(--ebf-marino-hover); color: var(--ebf-blanco); }
.ebf-btn-secondary .wp-block-button__link { background: var(--ebf-blanco); color: var(--ebf-marino); border: 2px solid var(--ebf-marino); font-size: 1.125rem; padding: calc(1.1rem - 2px) 1.875rem; }
.ebf-btn-secondary .wp-block-button__link:hover { background: var(--ebf-rosa-tint); color: var(--ebf-marino); }
.ebf-btn-yellow .wp-block-button__link { background: var(--ebf-amarillo); color: var(--ebf-marino); font-size: 1.125rem; padding: 1.1rem 2rem; }
.ebf-btn-yellow .wp-block-button__link:hover { background: #FFE677; color: var(--ebf-marino); }
.ebf-btn-sm .wp-block-button__link { font-size: 1rem; padding: .8rem 1.5rem; }
.ebf-btn-whatsapp .wp-block-button__link::before,
.ebf-btn-whatsapp-navy .wp-block-button__link::before,
.ebf-btn-llegar .wp-block-button__link::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: url("assets/icons/whatsapp-blanco.svg") center / contain no-repeat;
}
.ebf-btn-whatsapp-navy .wp-block-button__link::before { background-image: url("assets/icons/whatsapp.svg"); }
.ebf-btn-llegar .wp-block-button__link::before { background-image: url("assets/icons/llegar.svg"); }
.ebf-center { justify-content: center; }

/* 3. Header fijo
   -------------------------------------------------------------------------- */
.ebf-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--ebf-blanco);
	transition: box-shadow .25s ease;
}
.admin-bar .ebf-site-header { top: var(--wp-admin--admin-bar--height, 0); }
.ebf-scrolled .ebf-site-header { box-shadow: 0 1px 0 var(--ebf-borde), 0 8px 24px rgba(13, 22, 54, .06); }
.ebf-header { background: var(--ebf-blanco); padding-top: 10px; padding-bottom: 10px; }
.ebf-header .ebf-header__inner { gap: 24px; }
.ebf-logo { margin: 0; background: var(--ebf-blanco); animation: ebf-fade .8s ease both; }
.ebf-logo img { width: 100px; height: auto; display: block; }
.ebf-header .ebf-header__actions { gap: clamp(14px, 2vw, 28px); }
.ebf-nav { font-weight: 700; font-size: 1rem; gap: clamp(14px, 2vw, 28px); }
.ebf-nav .wp-block-navigation-item__content { text-decoration: none; padding: 6px 0; }
.ebf-nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-color: var(--ebf-rosa); }
.ebf-nav .wp-block-navigation__responsive-container-open,
.ebf-nav .wp-block-navigation__responsive-container-close {
	width: 48px;
	height: 48px;
	border: 2px solid var(--ebf-marino);
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ebf-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; background: var(--ebf-blanco); color: var(--ebf-marino); }
.ebf-nav .is-menu-open .wp-block-navigation__responsive-container-content { gap: 0; padding-top: 48px; }
.ebf-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--ebf-borde); }
.ebf-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.5rem; font-weight: 800; padding: 14px 0; }

/* 4. Secciones y títulos
   -------------------------------------------------------------------------- */
.ebf-section { position: relative; overflow: clip; padding-top: var(--ebf-section-y); padding-bottom: var(--ebf-section-y); }
.ebf-section > * { position: relative; z-index: 1; }
.ebf-section .ebf-intro { max-width: 680px; text-align: center; margin-bottom: clamp(32px, 4vw, 48px); }
.ebf-intro > * + * { margin-top: 12px; }
.ebf-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	font-weight: 700;
	font-size: .875rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ebf-intro .ebf-eyebrow { justify-content: center; }
.ebf-eyebrow::before { content: ""; width: 28px; height: 10px; border-radius: 999px; background: var(--ebf-rosa); flex: none; }
.ebf-eyebrow--naranja::before { background: var(--ebf-naranja); }
.ebf-eyebrow--violeta::before { background: var(--ebf-violeta); }
.ebf-eyebrow--amarillo::before { background: var(--ebf-amarillo); }
.ebf-section-title { margin: 0; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; }
.ebf-lead { font-size: clamp(1.125rem, 1.6vw, 1.1875rem); line-height: 1.45; }

/* 4b. Contenedor de la página de inicio (post-content a todo lo ancho)
   -------------------------------------------------------------------------- */
.ebf-landing > * { margin-block-start: 0; margin-block-end: 0; }
.ebf-landing { max-width: none; }

/* 5. Hero
   -------------------------------------------------------------------------- */
.ebf-hero { padding-top: clamp(16px, 3vw, 32px); padding-bottom: clamp(72px, 8vw, 110px); }
.ebf-section .ebf-hero__grid { gap: clamp(32px, 5vw, 64px); }
.ebf-hero__title { margin: 0; font-size: clamp(2.375rem, 5.4vw, 4.125rem); line-height: 1.07; letter-spacing: -.015em; }
.ebf-hero__lead { font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.45; max-width: 36ch; margin-top: 22px; }
.ebf-section .ebf-chips { gap: 10px; margin-top: 28px; }
.ebf-section .ebf-chip { gap: 8px; align-items: center; padding: 9px 16px 9px 12px; border-radius: 999px; background: var(--ebf-rosa-tint); }
.ebf-chip p { margin: 0; font-weight: 700; font-size: .9375rem; line-height: 1.2; }
.ebf-chip--naranja { background: var(--ebf-naranja-tint) !important; }
.ebf-chip--violeta { background: var(--ebf-violeta-tint) !important; }
.ebf-chip--amarillo { background: #FFF8D6 !important; }
.ebf-chip--blanco { background: var(--ebf-blanco) !important; }
.ebf-section .ebf-hero__ctas { gap: 14px; margin-top: 32px; }
.ebf-hero__grid > .wp-block-column:last-child { position: relative; }
.ebf-photo { margin: 0; }
.ebf-photo img { display: block; width: 100%; height: auto; }
.ebf-photo--hero img { aspect-ratio: 10 / 11; object-fit: cover; border-radius: 44px 44px 160px 44px; }

/* Entrada escalonada del hero (solo CSS) */
.ebf-hero .ebf-eyebrow { animation: ebf-up .7s ease both; }
.ebf-hero .ebf-hero__title { animation: ebf-up .8s ease both .1s; }
.ebf-hero .ebf-hero__lead { animation: ebf-up .8s ease both .3s; }
.ebf-hero .ebf-chips { animation: ebf-up .8s ease both .5s; }
.ebf-hero .ebf-hero__ctas { animation: ebf-up .8s ease both .7s; }
.ebf-hero .ebf-photo--hero { animation: ebf-fade 1s ease both .4s; }

/* 6. Cuenta regresiva
   -------------------------------------------------------------------------- */
.ebf-countdown { display: none; }
.ebf-js .ebf-countdown,
.block-editor-block-list__layout .ebf-countdown {
	display: block;
	position: absolute;
	left: -24px;
	bottom: -28px;
	background: var(--ebf-blanco);
	border-radius: 24px;
	padding: 18px 22px;
	box-shadow: 0 18px 40px rgba(13, 22, 54, .14);
	animation: ebf-up .8s ease both .9s;
}
.ebf-countdown__label { margin: 0 0 10px; font-weight: 700; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
.ebf-countdown .ebf-countdown__units { gap: 10px; }
.ebf-countdown__unit { text-align: center; min-width: 60px; }
.ebf-countdown__num {
	margin: 0;
	background: var(--ebf-marino);
	color: var(--ebf-blanco);
	border-radius: 14px;
	padding: 10px 6px;
	font-weight: 800;
	font-size: 1.75rem;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	overflow: hidden;
}
.ebf-cd-seg { background: var(--ebf-amarillo); color: var(--ebf-marino); }
.ebf-countdown__num.is-tick { animation: ebf-tick .45s ease; }
.ebf-countdown__txt { margin: 6px 0 0; font-size: .8125rem; }

/* 7. Barra de expositores (marquee)
   -------------------------------------------------------------------------- */
.ebf-marquee-section { padding-top: 40px; padding-bottom: 40px; background: #FAFAFC; border-top: 1px solid #EEF0F4; border-bottom: 1px solid #EEF0F4; }
.ebf-marquee__label { margin: 0 0 20px; text-align: center; font-weight: 700; font-size: .875rem; letter-spacing: .08em; text-transform: uppercase; }
.ebf-editor-note { display: none; }
.block-editor-block-list__layout .ebf-editor-note {
	display: block;
	font-size: .875rem;
	background: var(--ebf-amarillo-tint);
	border: 1px dashed var(--ebf-marino);
	border-radius: 12px;
	padding: 12px 16px;
}
.ebf-section .ebf-marquee {
	max-width: none;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.ebf-marquee .ebf-marquee__track { gap: 0; width: max-content; animation: ebf-marquee 40s linear infinite; }
.ebf-marquee:hover .ebf-marquee__track,
.ebf-marquee:focus-within .ebf-marquee__track { animation-play-state: paused; }
.ebf-marquee .ebf-marquee__group { gap: 24px; padding-right: 24px; flex: none; margin: 0; }
.ebf-logo-slot {
	flex: none;
	width: 260px;
	height: 160px;
	margin: 0;
	padding: 20px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ebf-blanco);
	border-radius: 22px;
	box-shadow: 0 1px 0 #E6E8EF, 0 4px 14px rgba(13, 22, 54, .05);
}
.ebf-logo-slot img { max-height: 110px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.ebf-logo-slot a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
/* En el editor: sin movimiento y con los logos visibles para poder reemplazarlos */
.block-editor-block-list__layout .ebf-marquee { -webkit-mask-image: none; mask-image: none; overflow: visible; }
.block-editor-block-list__layout .ebf-marquee__track { animation: none; width: auto; flex-direction: column; gap: 24px; }
.block-editor-block-list__layout .ebf-marquee__group { flex-wrap: wrap; }

/* 8. Qué encontrarás — tarjetas
   -------------------------------------------------------------------------- */
.ebf-section .ebf-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 18px; }
.ebf-card {
	background: var(--ebf-blanco);
	border: 1.5px solid var(--ebf-borde);
	border-radius: 28px;
	padding: 28px 24px;
	transition: translate .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ebf-card:hover { translate: 0 -4px; box-shadow: var(--ebf-sombra); border-color: var(--ebf-rosa); }
.ebf-card--naranja:hover { border-color: var(--ebf-naranja); }
.ebf-card--amarillo:hover { border-color: var(--ebf-amarillo); }
.ebf-card--violeta:hover { border-color: var(--ebf-violeta); }
.ebf-card--marino:hover { border-color: var(--ebf-marino); }
.ebf-card__icon { width: 56px; height: 56px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: var(--ebf-rosa); }
.ebf-card__icon img { width: 28px; height: 28px; }
.ebf-card__icon--naranja { background: var(--ebf-naranja); }
.ebf-card__icon--amarillo { background: var(--ebf-amarillo); }
.ebf-card__icon--violeta { background: #E9D9FC; }
.ebf-card__icon--marino { background: #FFE3EE; }
.ebf-card__title { margin: 20px 0 10px; font-size: 1.375rem; }
.ebf-card p { margin: 0; font-size: 1rem; line-height: 1.45; }

/* 9. Cómo funciona — pasos con línea animada
   -------------------------------------------------------------------------- */
.ebf-section .ebf-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; position: relative; }
.ebf-steps::before {
	content: "";
	position: absolute;
	top: 34px;
	left: 16.66%;
	right: 16.66%;
	height: 4px;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--ebf-rosa), var(--ebf-naranja), var(--ebf-amarillo));
	transform-origin: left center;
	z-index: 0;
}
.ebf-js .ebf-steps::before { transform: scaleX(0); transition: transform 1.4s cubic-bezier(.6, 0, .2, 1) .2s; }
.ebf-js .ebf-steps.is-visible::before { transform: scaleX(1); }
.ebf-step { text-align: center; padding: 0 12px; position: relative; z-index: 1; }
.ebf-step__num {
	width: 72px;
	height: 72px;
	margin: 0 auto;
	box-sizing: border-box;
	border-radius: 50%;
	border: 6px solid var(--ebf-blanco);
	box-shadow: 0 0 0 2px var(--ebf-rosa);
	background: var(--ebf-rosa);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.75rem;
	line-height: 1;
}
.ebf-step__num--naranja { background: var(--ebf-naranja); box-shadow: 0 0 0 2px var(--ebf-naranja); }
.ebf-step__num--amarillo { background: var(--ebf-amarillo); box-shadow: 0 0 0 2px var(--ebf-amarillo); }
.ebf-step__title { margin: 22px 0 8px; font-size: 1.375rem; }
.ebf-step p:last-child { margin: 0; font-size: 1.0625rem; }

/* 10. Registro + estilos del plugin [event_form]
   -------------------------------------------------------------------------- */
.ebf-registro { background: var(--ebf-amarillo-tint); }
.ebf-section .ebf-registro__grid { gap: clamp(32px, 5vw, 64px); max-width: 1100px; }
.ebf-section .ebf-benefits { gap: 10px; margin-top: 24px; }
.ebf-form-card {
	background: var(--ebf-blanco);
	border-radius: 32px;
	padding: clamp(24px, 4vw, 40px);
	box-shadow: 0 24px 60px rgba(13, 22, 54, .10);
}
.ebf-form-note { margin: 20px 0 0; font-size: .84375rem; line-height: 1.5; color: var(--ebf-texto-suave); }

.er-form { display: grid; gap: 18px; font-family: inherit; }
.er-field { display: grid; gap: 8px; }
.er-label { font-weight: 700; font-size: 1rem; color: var(--ebf-marino); }
.er-input {
	width: 100%;
	box-sizing: border-box;
	font: 400 1.0625rem/1.3 var(--wp--preset--font-family--nunito);
	color: var(--ebf-marino);
	background: var(--ebf-blanco);
	padding: 14px 18px;
	border: 2px solid #D7DAE3;
	border-radius: 16px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.er-input::placeholder { color: #6B7085; }
.er-input:focus, .er-input:focus-visible { outline: none; border-color: var(--ebf-violeta); box-shadow: 0 0 0 4px rgba(161, 81, 240, .25); }
.er-consent { display: flex; align-items: flex-start; gap: 12px; font-size: .9375rem; line-height: 1.4; color: var(--ebf-marino); cursor: pointer; }
.er-consent input[type="checkbox"] { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ebf-violeta); cursor: pointer; }
.er-consent input[type="checkbox"]:focus-visible { outline: 3px solid var(--ebf-violeta); outline-offset: 2px; }
.er-button {
	width: 100%;
	font: 700 1.125rem/1.2 var(--wp--preset--font-family--nunito);
	background: var(--ebf-marino);
	color: var(--ebf-blanco);
	border: 0;
	border-radius: 999px;
	padding: 18px 24px;
	cursor: pointer;
	transition: translate .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.er-button:hover { background: var(--ebf-marino-hover); translate: 0 -2px; box-shadow: 0 10px 24px rgba(13, 22, 54, .18); }
.er-button:focus-visible { outline: 3px solid var(--ebf-violeta); outline-offset: 3px; }
.er-button:disabled { opacity: .6; cursor: not-allowed; translate: none; }
.er-message { padding: 14px 18px; border-radius: 16px; font-size: 1rem; line-height: 1.45; color: var(--ebf-marino); }
.er-success { background: #E7F8EE; border: 2px solid #2E9E5B; }
.er-error { background: var(--ebf-rosa-tint); border: 2px solid var(--ebf-rosa); }

/* 11. Comunidad
   -------------------------------------------------------------------------- */
.ebf-community__box { background: var(--ebf-rosa-tint); border-radius: 40px; overflow: hidden; }
.ebf-community__box .ebf-community__grid { gap: 0; margin: 0; }
.ebf-community__grid > .wp-block-column:first-child { align-self: stretch; }
.ebf-photo--comunidad, .ebf-photo--comunidad img { height: 100%; }
.ebf-photo--comunidad img { min-height: 320px; object-fit: cover; }
.ebf-community__grid > .wp-block-column:last-child { padding: clamp(32px, 5vw, 64px); }
.ebf-community .wp-block-buttons { margin-top: 28px; }

/* 12. Para expositores
   -------------------------------------------------------------------------- */
.ebf-expositores { background: var(--ebf-marino); color: var(--ebf-blanco); }
.ebf-expositores h2, .ebf-expositores h3, .ebf-expositores p { color: var(--ebf-blanco); }
.ebf-expositores .ebf-intro { text-align: left; margin-left: 0 !important; max-width: 700px; }
.ebf-expositores .ebf-intro .ebf-eyebrow { justify-content: flex-start; }
.ebf-section .ebf-expo-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 18px; }
.ebf-expo-card {
	border: 1.5px solid rgba(255, 255, 255, .18);
	border-radius: 28px;
	padding: 30px 28px;
	transition: translate .25s ease, background-color .25s ease;
}
.ebf-expo-card:hover { translate: 0 -4px; background: rgba(255, 255, 255, .05); }
.ebf-expo-card::before { content: ""; display: block; width: 44px; height: 12px; border-radius: 999px; background: var(--ebf-rosa); }
.ebf-expo-card--naranja::before { background: var(--ebf-naranja); }
.ebf-expo-card--amarillo::before { background: var(--ebf-amarillo); }
.ebf-expo-card__title { margin: 20px 0 8px; font-size: 1.625rem; }
.ebf-expo-card p { margin: 0; font-size: 1.0625rem; }
.ebf-expositores .wp-block-buttons { margin-top: 40px; justify-content: flex-start; }

/* 13. Ubicación
   -------------------------------------------------------------------------- */
.ebf-section .ebf-ubicacion__grid { gap: clamp(32px, 5vw, 56px); }
.ebf-info-list { margin-top: 28px; display: grid; gap: 18px; }
.ebf-info-list > * { margin: 0 !important; }
.ebf-info-item { gap: 14px; }
.ebf-icon-tile { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: var(--ebf-naranja-tint); }
.ebf-icon-tile img { width: 22px; height: 22px; }
.ebf-icon-tile--rosa { background: var(--ebf-rosa-tint); }
.ebf-icon-tile--amarillo { background: #FFF8D6; }
.ebf-info-text p { margin: 0; font-size: 1.0625rem; line-height: 1.45; }
.ebf-info-text .ebf-info-label { font-weight: 700; font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; }
.ebf-ubicacion .wp-block-buttons { margin-top: 32px; }
.ebf-map { border-radius: 32px; overflow: hidden; aspect-ratio: 4 / 3; background: #F4F5F8; box-shadow: 0 0 0 1.5px var(--ebf-borde); }
.ebf-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* 14. Preguntas frecuentes (bloque Detalles)
   -------------------------------------------------------------------------- */
.ebf-preguntas { padding-top: clamp(48px, 6vw, 80px); }
.ebf-section .ebf-faq-list { max-width: 820px; display: grid; gap: 12px; }
.ebf-faq-list > * { margin: 0 !important; }
.ebf-faq { background: var(--ebf-blanco); border: 1.5px solid var(--ebf-borde); border-radius: 22px; padding: 0 24px; transition: border-color .2s ease; }
.ebf-faq:hover, .ebf-faq[open] { border-color: var(--ebf-violeta); }
.ebf-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 22px 0;
	font-weight: 700;
	font-size: 1.1875rem;
	line-height: 1.3;
}
.ebf-faq summary::-webkit-details-marker { display: none; }
.ebf-faq summary::after {
	content: "+";
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--ebf-violeta-tint);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.25rem;
	transition: transform .25s ease;
}
.ebf-faq[open] summary::after { transform: rotate(45deg); }
.ebf-faq p { margin: 0 0 22px; font-size: 1.0625rem; line-height: 1.5; }

/* 14b. Próximas ediciones
   -------------------------------------------------------------------------- */
.ebf-ediciones { background: var(--ebf-naranja); padding-top: clamp(56px, 7vw, 88px); padding-bottom: clamp(56px, 7vw, 88px); }
.ebf-ediciones, .ebf-ediciones h2, .ebf-ediciones h3, .ebf-ediciones p { color: var(--ebf-marino); }
.ebf-ediciones + .ebf-cta-final { padding-top: var(--ebf-section-y); }
.ebf-ediciones__head { margin-bottom: clamp(28px, 4vw, 40px); }
.ebf-eyebrow--marino::before { background: var(--ebf-marino); }
.ebf-section .ebf-editions { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr)); gap: 16px; }
.ebf-section .ebf-editions > * { margin: 0; }
.ebf-edition { border-radius: 24px; padding: 26px 22px; text-align: center; transition: translate .25s ease, box-shadow .25s ease, background-color .25s ease; }
.ebf-edition > * { margin: 0; }
.ebf-edition--actual { background: var(--ebf-blanco); }
.ebf-edition--actual:hover { translate: 0 -4px; box-shadow: 0 16px 32px rgba(13, 22, 54, .14); }
.ebf-edition--proxima { border: 2px solid var(--ebf-marino); }
.ebf-edition--proxima:hover { translate: 0 -4px; background: rgba(255, 255, 255, .18); }
.ebf-edition .ebf-edition__badge { margin: 0 auto 14px; width: fit-content; border-radius: 999px; padding: 4px 12px; font-weight: 700; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; border: 1.5px solid var(--ebf-marino); }
.ebf-edition--actual .ebf-edition__badge { background: var(--ebf-marino); color: var(--ebf-blanco); }
.ebf-edition__city { font-size: 1.5rem; line-height: 1.15; }
.ebf-edition .ebf-edition__date { margin-top: 8px; font-size: 1rem; line-height: 1.4; }
.ebf-deco-tr-edic::before { content: ""; position: absolute; top: 20px; right: 3%; width: 96px; height: 80px; background: url("assets/images/deco-e.svg") center / contain no-repeat; pointer-events: none; z-index: 0; animation: ebf-float 8s ease-in-out infinite; }

/* 15. CTA final
   -------------------------------------------------------------------------- */
.ebf-cta-final { padding-top: 0; }
.ebf-cta-box {
	position: relative;
	overflow: hidden;
	background: var(--ebf-naranja-tint);
	border-radius: 40px;
	padding: clamp(48px, 7vw, 96px) 24px;
	text-align: center;
}
.ebf-cta-box > * { position: relative; z-index: 1; }
.ebf-cta-box__title { margin: 0 auto; max-width: 18ch; font-size: clamp(2.125rem, 5vw, 3.75rem); line-height: 1.07; }
.ebf-cta-box .wp-block-buttons { margin-top: 32px; }

/* 16. Footer
   -------------------------------------------------------------------------- */
.ebf-footer { background: var(--ebf-blanco); border-top: 1px solid #EEF0F4; padding-top: 56px; }
.ebf-footer .ebf-footer__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 40px; }
.ebf-footer__logo { margin: 0; background: var(--ebf-blanco); }
.ebf-footer__logo img { width: 180px; height: auto; display: block; }
.ebf-footer__title { margin: 0 0 14px; font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ebf-footer__col p { margin: 0; font-size: 1rem; line-height: 1.5; }
.ebf-footer__col > * + * { margin-top: 10px; }
.ebf-contact-item { gap: 10px; align-items: center; }
.ebf-footer .ebf-social { gap: 10px; margin-top: 18px; }
.ebf-social__link { margin: 0; }
.ebf-social__link a {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 2px solid var(--ebf-marino);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background-color .2s ease, translate .2s ease;
}
.ebf-social__link a:hover { background: var(--ebf-rosa-tint); translate: 0 -2px; }
.ebf-social__link img { width: 20px; height: 20px; }
.ebf-footer__bottom { margin-top: 48px; background: var(--ebf-marino); color: var(--ebf-blanco); padding-top: 18px; padding-bottom: 18px; }
.ebf-footer__bottom p { margin: 0; font-size: .875rem; color: var(--ebf-blanco); }
.ebf-footer__bottom a { color: var(--ebf-blanco); text-decoration-color: var(--ebf-amarillo); }

/* 17. Plantilla legal (Aviso de privacidad)
   -------------------------------------------------------------------------- */
.ebf-legal, .ebf-page { padding-top: clamp(40px, 6vw, 80px); padding-bottom: clamp(64px, 8vw, 110px); }
.ebf-legal__title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 32px; }
.ebf-legal__content { font-size: 1.0625rem; line-height: 1.6; }
.ebf-legal__content h2 { font-size: 1.5rem; margin-top: 2.2em; }
.ebf-legal__content h3 { font-size: 1.25rem; margin-top: 1.8em; }
.ebf-legal__content li + li { margin-top: .4em; }

/* 18. Botón de registro fijo en móvil
   -------------------------------------------------------------------------- */
.ebf-mobile-cta { display: none; }

/* 19. Recursos gráficos decorativos (esquinas de sección)
   -------------------------------------------------------------------------- */
.ebf-deco-tr::before, .ebf-deco-tl::before, .ebf-deco-tr-dark::before,
.ebf-deco-bl::after, .ebf-deco-br::after, .ebf-deco-bl-dark::after {
	content: "";
	position: absolute;
	width: 120px;
	height: 100px;
	background: center / contain no-repeat;
	pointer-events: none;
	z-index: 0;
	animation: ebf-float 8s ease-in-out infinite;
}
.ebf-deco-tr::before { top: 32px; right: 3%; background-image: url("assets/images/deco-a.svg"); }
.ebf-deco-tl::before { top: 32px; left: 3%; background-image: url("assets/images/deco-c.svg"); }
.ebf-deco-tr-dark::before { top: 40px; right: 4%; background-image: url("assets/images/deco-c.svg"); }
.ebf-deco-bl::after { bottom: 24px; left: 2%; background-image: url("assets/images/deco-b.svg"); animation-delay: -3s; animation-duration: 10s; }
.ebf-deco-br::after { bottom: 24px; right: 3%; background-image: url("assets/images/deco-d.svg"); animation-delay: -4s; animation-duration: 9s; }
.ebf-deco-bl-dark::after { bottom: 32px; left: 3%; width: 90px; height: 75px; background-image: url("assets/images/deco-b.svg"); animation-delay: -2s; }
.ebf-cta-box.ebf-deco-tl::before { top: 20px; left: 24px; width: 96px; height: 80px; }
.ebf-cta-box.ebf-deco-br::after { bottom: 20px; right: 24px; width: 96px; height: 80px; }

/* 20. Scroll reveal (progressive enhancement: solo con html.ebf-js)
   -------------------------------------------------------------------------- */
.ebf-js .ebf-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .7s ease, transform .7s ease, translate .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.ebf-js .ebf-reveal.is-visible { opacity: 1; transform: none; }
.ebf-js .ebf-stagger > .ebf-reveal:nth-child(2) { transition-delay: .08s, .08s, 0s, 0s, 0s, 0s; }
.ebf-js .ebf-stagger > .ebf-reveal:nth-child(3) { transition-delay: .16s, .16s, 0s, 0s, 0s, 0s; }
.ebf-js .ebf-stagger > .ebf-reveal:nth-child(4) { transition-delay: .24s, .24s, 0s, 0s, 0s, 0s; }
.ebf-js .ebf-stagger > .ebf-reveal:nth-child(5) { transition-delay: .32s, .32s, 0s, 0s, 0s, 0s; }

/* 21. Keyframes
   -------------------------------------------------------------------------- */
@keyframes ebf-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes ebf-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ebf-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes ebf-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ebf-tick { from { opacity: 0; transform: translateY(-40%); } to { opacity: 1; transform: none; } }

/* 22. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.ebf-nav .wp-block-navigation__container { gap: 16px; }
}
@media (max-width: 781px) {
	:root { --ebf-header-h: 110px; }
	.ebf-logo img { width: 84px; }
	.ebf-header .ebf-header__actions { gap: 10px; }
	.ebf-btn-sm .wp-block-button__link { font-size: .9375rem; padding: .75rem 1.1rem; }
	.ebf-js .ebf-countdown, .block-editor-block-list__layout .ebf-countdown { position: relative; left: auto; bottom: auto; margin: -40px 12px 0; width: fit-content; max-width: calc(100% - 24px); }
	.ebf-countdown__unit { min-width: 54px; }
	.ebf-section .ebf-steps { grid-template-columns: 1fr; }
	.ebf-steps::before { display: none; }
	.ebf-deco-tr::before, .ebf-deco-tl::before, .ebf-deco-tr-dark::before,
	.ebf-deco-tr-edic::before { width: 64px; height: 54px; top: 10px; }
	.ebf-deco-bl::after, .ebf-deco-br::after, .ebf-deco-bl-dark::after { width: 72px; height: 60px; top: 12px; }
	.ebf-deco-bl::after, .ebf-deco-br::after, .ebf-deco-bl-dark::after { top: auto; bottom: 12px; }
	.ebf-logo-slot { width: 200px; height: 130px; }
	.ebf-logo-slot img { max-height: 88px; }
	.ebf-hero .wp-block-button, .ebf-hero .wp-block-button__link { width: 100%; }
	/* Botón de registro siempre al alcance en móvil */
	.ebf-mobile-cta { display: block; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 90; transition: transform .3s ease; }
	.ebf-js .ebf-mobile-cta { transform: translateY(160%); }
	.ebf-js.ebf-scrolled .ebf-mobile-cta, .ebf-scrolled .ebf-mobile-cta { transform: none; }
	.ebf-mobile-cta .wp-block-button, .ebf-mobile-cta .wp-block-button__link { width: 100%; box-shadow: 0 10px 30px rgba(13, 22, 54, .3); }
	.ebf-footer { padding-bottom: 0; }
	.ebf-footer__bottom { padding-bottom: 90px; }
}

/* 23. Movimiento reducido
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.ebf-js .ebf-reveal { opacity: 1; transform: none; }
	.ebf-js .ebf-steps::before { transform: none; }
	.ebf-marquee .ebf-marquee__track { flex-wrap: wrap; width: auto; justify-content: center; }
	.ebf-marquee__group + .ebf-marquee__group { display: none; }
	.ebf-section .ebf-marquee { -webkit-mask-image: none; mask-image: none; }
	.ebf-marquee .ebf-marquee__group { flex-wrap: wrap; justify-content: center; padding-right: 0; }
}
