/*
 * Ecommerce Talks Live - International Edition (3 de noviembre de 2026)
 *
 * Copia de landing-etl-ai-evolution.css especifica de esta edicion.
 * Se duplica para no afectar a las landings anteriores, que comparten el original.
 * Cambios respecto al original: tarjetas de ponente sin foto (.box.no-photo), logo en el hero y fondos de agenda y ponentes redisenados.
 */

body, html {
	overflow-x: hidden;
	position: relative;
	
}

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

.evento-mayo .logos-section {
	padding: 0 0;
	margin-top: -130px;
	position: relative;
	z-index: 1;
}

.evento-mayo .logos-section .box {
	background: white;
	border-top-left-radius: 24px;
	border-top-right-radius: 24px;
	padding: 0 20px;
}


.evento-mayo .logos-section h2 {
	margin-bottom: 50px;
	color: #212529;
	font-family: Roboto;
	font-size: 36px;
	font-style: normal;
	font-weight: 900;
	line-height: 45px;
}

.evento-mayo .logos-section img {
	margin-bottom: 12px;
	margin-bottom: 0px;
	margin-top: 30px;
	margin-bottom: 30px;
}

.evento-mayo .logos-section .img-logo-doofinder {
	margin-top: 30px;
	margin-bottom: 30px;
}

.evento-mayo .logos-section .img-logo-doofinder img {
	width: 420px;
	margin-bottom: 0px;
}

.evento-mayo .logos-section .logos {
	overflow: hidden;
	padding: 30px 10px;
	white-space: nowrap;
	position: relative;
	background: white;
	border-top-left-radius: 24px;
	border-top-right-radius: 24px;
}

.evento-mayo .logos-section .logos h2 {
	margin-bottom: 50px;
}

.evento-mayo .logos-section .logos:hover .logos-slide {
	animation-play-state: paused;
}

.evento-mayo .logos-section .logos-slide {
	display: flex;
	gap: 60px;
	/* animation: slide 30s linear infinite; */
	/* width: max-content; */
	justify-content: center;
	flex-wrap: wrap;
}

@media (max-width:768px) {
	.evento-mayo .logos-section .logos-slide {
		gap: 20px;
/* 		animation: slide 20s linear infinite; */
	}
}

.evento-mayo .logos-section .logos-slide a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	min-width: 220px;
}

.evento-mayo .logos-section .logos-slide img {
	margin: 0;
	width: 230px;
	max-height: 100px;
	object-fit: contain;
}


.evento-mayo .logos-section .logos-slide img.odein {
	max-height: 30px;
}

.evento-mayo .video-background {
	position: absolute;
	top: 50%;
	left: 50%;
	min-height: 100%;
	width: auto;
	height: auto;
	z-index: -1;
	transform: translate(-50%, -50%);
}

.evento-mayo .hero {
	position: relative;
	z-index: 1;
	color: white;
	text-align: center;
	top: 50%;
	background-position: bottom center;
	background-size: cover;
	/* El degradado va ANTES de la foto: es el velo que garantiza el contraste del titulo.
	   Si se cambia la foto del hero, revisar que el texto siga leyendose. */
	background-image: linear-gradient(180deg, rgba(27, 24, 81, 0.55) 0%, rgba(27, 24, 81, 0.80) 100%),
		url('/main-files/uploads/2025/09/foto-madrid.jpg');
}

.evento-mayo .hero .inner {
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 130px 0;
	padding-bottom: 200px;
}

.evento-mayo .hero h1{
	margin-bottom: 30px;
	font-family: PlutoBold;
	font-weight: 700;
	font-style: normal;
	font-size: 32px;
	margin-bottom: 20px;
}



.evento-mayo .hero p{
	font-size: 22px;
}


.evento-mayo .hero .title {
	font-family: PlutoRegular, Adjusted Verdana Fallback;
	font-size: 48px;
}

.evento-mayo .hero .subtitle {
	
}


.evento-mayo .hero .subtitle{
	font-size: 25px;
	margin-bottom: 5px;
}

.evento-mayo .hero .description{
	font-size: 18px;
}

.evento-mayo .hero .btn {
   border-radius: 40px;
   border: 1px solid rgba(0, 0, 0, 0.00);
   background: #FFF031;
   padding: 9px 27px;
   color: #1B1851;
   text-align: center;
   font-family: Roboto;
   font-size: 15.4px;
   font-style: normal;
   font-weight: 700;
   line-height: 23px; /* 149.351% */
}

.evento-mayo .hero .btn:hover {
	background-color: #ffffff;
}

.evento-mayo .content-event {
	padding: 50px 0;
	background: white;
	position: relative;
	z-index: 1;

}

.evento-mayo .content-event .center{
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.evento-mayo .content-event ul li {
	font-size: 17px;
	line-height: 1.7em;
}

.evento-mayo .content-event p {
	color: #212529;
	font-family: Roboto;
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%; /* 25.16px */
}

.evento-mayo .content-event p.eyebrow {
	color: #8979FF;
	font-family: Roboto;
	font-size: 24px;
	font-style: normal;
	font-weight: 900;
	line-height: 28px; /* 116.667% */
	text-transform: uppercase;
}

.evento-mayo .content-event h2 {
	color: #212529;
	font-family: Roboto;
	font-size: 36px;
	font-style: normal;
	font-weight: 900;
	line-height: 45px; /* 125% */
}


.evento-mayo .speakers {
	padding: 50px 0;
	background: #4943C1;
}

.evento-mayo .speakers .box {
	padding: 10px;
	border-radius: 4px;
	margin-left: auto;
	margin-right: auto;
	height: 100%;
	display: flex;
	align-items: center;
	gap: 15px;
}
.evento-mayo .speakers img {
	border: 5px solid #fff;
	border-radius: 100%;
	margin-bottom: 5px;
	max-width: 175px;

}

.evento-mayo .speakers h2 {
	margin-bottom: 30px;
	color: #FFF;
	text-align: center;
	font-family: Roboto;
	font-size: 36px;
	font-style: normal;
	font-weight: 900;
	line-height: 45px;
}

.evento-mayo .speakers .name {
	color: #FFF;
	
	/* H4 */
	font-family: Roboto;
	font-size: 22px;
	font-style: normal;
	font-weight: 700;
	line-height: 28px; /* 116.667% */
	margin-bottom: 17px;
}

.evento-mayo .speakers .rol {
	color: #FFF;
	margin-bottom: 17px;
	/* Paragraph */
	font-family: Roboto;
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%; /* 25.16px */
}

.evento-mayo .speakers .company {
	margin-bottom: 0px;
	color: #FFF031;
	
	/* Caption */
	font-family: Roboto;
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%; /* 20.72px */
}

.evento-mayo .speakers .button-form {
	text-align: center;
	padding: 22px 0;
}

.evento-mayo .speakers .button-form a {
	border-radius: 40px;
	border: 1px solid rgba(0, 0, 0, 0.00);
	background: #FFF031;
	padding: 9px 27px;
	color: #1B1851;
	text-align: center;
	font-family: Roboto;
	font-size: 15.4px;
	font-style: normal;
	font-weight: 700;
	line-height: 23px;
}

.evento-mayo .speakers .button-form a:hover {
	background-color: #ffffff;
	
}


.evento-mayo .timming {
	background: #f5f5f5;
	padding: 50px 0;
}

.evento-mayo .timming .box {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.evento-mayo .timming h2 {
	color: #1B1851;
	
	/* H2 */
	font-family: Roboto;
	font-size: 36px;
	font-style: normal;
	font-weight: 900;
	line-height: 45px; /* 125% */
}
.evento-mayo .timming .box h2 {
	color: #1B1851;
	
	/* H2 */
	font-family: Roboto;
	font-size: 36px;
	font-style: normal;
	font-weight: 900;
	line-height: 45px; /* 125% */
}

.evento-mayo .timming .box p {
	color: #3A3A3A;
	font-family: Roboto;
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%;
}

.evento-mayo .timming .box ul li {
	color: #3A3A3A;
	font-family: Roboto;
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%;
}

.evento-mayo .timming img {
	border-radius: 12px;
}


.evento-mayo .custom-hs-contact-form .form-container .hs_submit input {
	background: #fff031;
	color: #000000;
}
.evento-mayo .custom-hs-contact-form .form-container .hs_submit input:hover {
	background: #000000; 
	color: white;
}

.evento-mayo .countdown {
	display: flex;
	gap: 10px;
	justify-content: center;
}

.evento-mayo .time-box {
	background-color: #fff031;
	padding: 20px;
	text-align: center;
	border-radius: 10px;
	color: #1e1e3f;
	font-size: 20px;
	width: 120px;
}

.evento-mayo .time-box span {
	font-size: 36px;
}

.evento-mayo .time-box p {
	margin-top: 10px;
	font-size: 0.6em;
	color: #1B1851;
}




/* ==========================================================================
   Estilos Doofinder para formulario Gravity Forms (.evento-mayo .form)
   - Oculta labels/legend, deja solo el placeholder como texto del campo
   - Paleta y tipografías tomadas de event-experience.css
   ========================================================================== */

.evento-mayo .form {
	--df-navy: #1B1851;
	--df-purple: #4943C1;
	--df-purple-light: #8979FF;
	--df-yellow: #FFF031;
	--df-text: #212529;
	--df-text-soft: #3A3A3A;
	--df-border: #E1E1EA;

	max-width: 640px;
	margin: 0 auto;
	padding: 40px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 10px 40px rgba(27, 24, 81, 0.08);
}

/* Cabecera del formulario (título + descripción) */
.evento-mayo .form .title {
	margin-bottom: 32px;
	text-align: center;
}

.evento-mayo .form .title h2 {
	color: var(--df-navy);
	font-family: Roboto, sans-serif;
	font-size: 32px;
	font-style: normal;
	font-weight: 900;
	line-height: 1.2;
	margin-bottom: 16px;
}

.evento-mayo .form .title p {
	color: var(--df-text-soft);
	font-family: Roboto, sans-serif;
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%;
	margin: 0 auto;
	max-width: 520px;
}

/* --------------------------------------------------------------------
   Ocultar labels y legend (accesibles para lectores de pantalla,
   invisibles en pantalla). El nombre del campo queda solo en el placeholder.
   -------------------------------------------------------------------- */
.evento-mayo .form .gfield_label,
.evento-mayo .form legend.gfield_label,
.evento-mayo .form .gform-field-label,
.evento-mayo .form .hidden_sub_label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Descripciones de campo, ej. "As shown in passport" */
.evento-mayo .form .gfield_description {
	color: var(--df-text-soft);
	font-family: Roboto, sans-serif;
	font-size: 13px;
	margin-top: 6px;
}

/* --------------------------------------------------------------------
   Estructura general
   -------------------------------------------------------------------- */
.evento-mayo .form .gform_fields {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.evento-mayo .form .gfield {
	width: 100%;
}

.evento-mayo .form fieldset.gfield {
	border: none;
	padding: 0;
	margin: 0;
}

/* Nombre (first / last) en fila */
.evento-mayo .form .ginput_complex.ginput_container_name {
	display: flex;
	gap: 15px;
	width: 100%;
}
.evento-mayo .form .ginput_complex.ginput_container_name > span {
	flex: 1;
}

/* --------------------------------------------------------------------
   Inputs y textarea
   -------------------------------------------------------------------- */
.evento-mayo .form input[type="text"],
.evento-mayo .form input[type="email"],
.evento-mayo .form input[type="tel"],
.evento-mayo .form input[type="number"] {
	width: 100%;
	padding: 14px 22px;
	border-radius: 40px;
	border: 1px solid var(--df-border);
	background: #fff;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	color: var(--df-navy);
	transition: border-color .3s ease, box-shadow .3s ease;
}

.evento-mayo .form textarea {
	width: 100%;
	height: 110px;
	padding: 16px 22px;
	border-radius: 20px;
	border: 1px solid var(--df-border);
	background: #fff;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	color: var(--df-navy);
	resize: vertical;
}

.evento-mayo .form input[type="text"]:focus,
.evento-mayo .form input[type="email"]:focus,
.evento-mayo .form input[type="tel"]:focus,
.evento-mayo .form textarea:focus {
	outline: none;
	border-color: var(--df-purple);
	box-shadow: 0 0 0 3px rgba(73, 67, 193, 0.15);
}

.evento-mayo .form input::placeholder,
.evento-mayo .form textarea::placeholder {
	color: rgba(27, 24, 81, 0.45);
	font-family: Roboto, sans-serif;
}

/* Mensaje general de error al fallar el envío (h2.gform_submission_error) */
.evento-mayo .form h2.gform_submission_error {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 24px 0;
	padding: 14px 20px;
	background: #FCEAEA;
	border: 1px solid #d3455b;
	border-radius: 12px;
	color: #d3455b;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	text-align: left;
}

.evento-mayo .form h2.gform_submission_error .gform-icon {
	flex-shrink: 0;
	font-size: 20px;
	color: #d3455b;
}

/* Validación de errores */
.evento-mayo .form .gfield_validation_message,
.evento-mayo .form .validation_message {
	color: #d3455b;
	font-size: 13px;
	font-family: Roboto, sans-serif;
	margin-top: 6px;
}
.evento-mayo .form .gfield_error input,
.evento-mayo .form .gfield_error textarea {
	border-color: #d3455b;
}

/* --------------------------------------------------------------------
   Footer / navegación entre páginas
   -------------------------------------------------------------------- */
.evento-mayo .form .gform-page-footer,
.evento-mayo .form .gform_page_footer {
	display: flex;
	justify-content: flex-end;
	gap: 15px;
	margin-top: 30px;
	padding: 0 !important;
	border: none !important;
}

/* Cuando hay botón "Previous", separar a extremos */
.evento-mayo .form .gform_page_footer:has(.gform_previous_button) {
	justify-content: space-between;
}

/* Botón principal: Next / Submit */
.evento-mayo .form input[type="submit"],
.evento-mayo .form .gform_button,
.evento-mayo .form .gform_next_button {
	border-radius: 40px;
	border: 1px solid transparent;
	background: var(--df-yellow);
	color: var(--df-navy);
	padding: 14px 36px;
	font-family: Roboto, sans-serif;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease;
}
.evento-mayo .form input[type="submit"]:hover,
.evento-mayo .form .gform_button:hover,
.evento-mayo .form .gform_next_button:hover {
	background: var(--df-navy);
	color: #fff;
}

/* Botón secundario: Previous (misma forma que Next/Submit, menos peso visual) */
.evento-mayo .form input[type="submit"].gform_previous_button,
.evento-mayo .form .gform_previous_button {
	border-radius: 40px !important;
	border: 1px solid var(--df-border) !important;
	background: transparent !important;
	color: var(--df-text-soft) !important;
	padding: 14px 36px !important;
	font-family: Roboto, sans-serif !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.evento-mayo .form input[type="submit"].gform_previous_button:hover,
.evento-mayo .form .gform_previous_button:hover {
	background: #f5f5f5 !important;
	border-color: var(--df-navy) !important;
	color: var(--df-navy) !important;
}

/* Barra de progreso, si Gravity Forms la muestra */
.evento-mayo .form .gf_progressbar_wrapper {
	margin-bottom: 30px;
}
.evento-mayo .form .gf_progressbar {
	background: #f0f0f5;
	border-radius: 20px;
	height: 8px;
	overflow: hidden;
}
.evento-mayo .form .gf_progressbar_percentage {
	background: var(--df-purple);
	height: 100%;
}

/* ==========================================================================
   Checkbox legal / consentimiento — Gravity Forms
   ========================================================================== */

/* Aseguramos que la label del checkbox de consentimiento SÍ se vea,
   aunque las demás labels del formulario estén ocultas */
.evento-mayo .form .gfield--type-consent .gfield_consent_label,
.evento-mayo .form .gfield_consent_label,
.evento-mayo .form .gchoice label,
.evento-mayo .form .ginput_container_consent label,
.evento-mayo .form .ginput_container_checkbox label {
	position: static !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	border: 0 !important;
	display: inline;
}

/* Contenedor del checkbox + texto */
.evento-mayo .form .ginput_container_consent,
.evento-mayo .form .gfield_checkbox .gchoice {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.evento-mayo .form .ginput_container_consent input[type="checkbox"],
.evento-mayo .form .gfield_checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin-top: 3px;
	accent-color: #4943C1; /* var(--df-purple) */
	cursor: pointer;
}

.evento-mayo .form .gfield_consent_label,
.evento-mayo .form .gchoice label {
	color: var(--df-text-soft, #3A3A3A);
	font-family: Roboto, sans-serif;
	font-size: 13px;
	line-height: 1.5;
	cursor: pointer;
}

.evento-mayo .form .gfield_consent_label a,
.evento-mayo .form .gchoice label a {
	color: var(--df-purple, #4943C1);
	text-decoration: underline;
}

.evento-mayo .form .event-experience-confirmation {
	text-align: center;
	padding: 20px 0;
}

.evento-mayo .form .event-experience-confirmation p {
	color: var(--df-navy, #1B1851);
	font-family: Roboto, sans-serif;
	font-size: 17px;
	line-height: 1.6;
	margin-bottom: 12px;
}

.evento-mayo .form .event-experience-confirmation p:first-child {
	font-size: 22px;
	font-weight: 900;
	margin-bottom: 20px;
}

.evento-mayo .form .event-experience-confirmation p:last-child {
	color: var(--df-purple, #4943C1);
	font-weight: 700;
	margin-top: 20px;
}

/* ==========================================================================
   Mensaje de confirmación del formulario (Gravity Forms) - Event Experience
   ========================================================================== */

.evento-mayo .form .gform_confirmation_wrapper,
.evento-mayo .form .gform_confirmation_message_124 {
	text-align: center;
	padding: 10px 0;
}

.evento-mayo .form .gform_confirmation_wrapper p,
.evento-mayo .form .gform_confirmation_message_124 p {
	color: var(--df-navy, #1B1851);
	font-family: Roboto, sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.6;
	margin-bottom: 16px;
}

/* Primera línea ("Thank you!...") en negrita y más grande, a modo de título */
.evento-mayo .form .gform_confirmation_wrapper p:first-child,
.evento-mayo .form .gform_confirmation_message_124 p:first-child {
	font-size: 24px;
	font-weight: 900;
	color: var(--df-navy, #1B1851);
	margin-bottom: 24px;
	position: relative;
	padding-bottom: 20px;
}

/* Pequeña línea decorativa bajo el título, en amarillo corporativo */
.evento-mayo .form .gform_confirmation_wrapper p:first-child::after,
.evento-mayo .form .gform_confirmation_message_124 p:first-child::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 4px;
	background: var(--df-yellow, #FFF031);
	border-radius: 2px;
}

/* Última línea ("The Doofinder Team") destacada en morado */
.evento-mayo .form .gform_confirmation_wrapper p:last-child,
.evento-mayo .form .gform_confirmation_message_124 p:last-child {
	color: var(--df-purple, #4943C1);
	font-weight: 700;
	font-size: 16px;
	margin-top: 24px;
	margin-bottom: 0;
}

.evento-mayo .custom-hs-contact-form .form-container .legal-consent-container .hs-form-booleancheckbox-display>span {
	color: #212529;
	font-family: Roboto;
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: 148%;
	letter-spacing: normal;
}

@media (max-width: 768px) {
	.evento-mayo .form .gform_confirmation_wrapper p:first-child,
	.evento-mayo .form .gform_confirmation_message_124 p:first-child {
		font-size: 20px;
	}
}

/* --------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------- */
@media (max-width: 768px) {
	.evento-mayo .form {
		padding: 24px;
		border-radius: 16px;
	}
	.evento-mayo .form .ginput_complex.ginput_container_name {
		flex-direction: column;
		gap: 10px;
	}
	.evento-mayo .form .gform-page-footer,
	.evento-mayo .form .gform_page_footer {
		flex-direction: column-reverse;
	}
}

/* --- Logos de partners: carrusel ----------------------------------------
 * Misma altura para todos, sea cual sea el tamano del original. 34 px a
 * peticion de Ivan (14/09/2026), que los pidio "un poco mas pequenos" que
 * los 44 px con los que se monto la landing.
 *
 * El carrusel se recupera de la edicion de junio: la animacion "slide" ya
 * existe en el CSS heredado, pero esta comentada arriba desde que los logos
 * pasaron a pintarse fijos y centrados. Aqui se reactiva SOLO para esta
 * edicion. Requiere que el set de logos este duplicado en el HTML: la
 * animacion desplaza un -50%, justo el ancho de la primera copia, y asi el
 * bucle encadena sin salto. El hover lo pausa (regla del CSS heredado).
 */
.etl-international .logos-section .logos-slide {
	gap: 48px;
	flex-wrap: nowrap;
	justify-content: flex-start;
	width: max-content;
	animation: slide 30s linear infinite;
}
.etl-international .logos-section .logos-slide img {
	height: 34px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.etl-international .logos-section .logos-slide a {
	display: inline-flex;
	align-items: center;
}
@media (max-width: 991px) {
	.etl-international .logos-section .logos-slide {
		gap: 32px;
		animation-duration: 22s;
	}
	.etl-international .logos-section .logos-slide img {
		height: 28px;
	}
}
@media (max-width: 575px) {
	.etl-international .logos-section .logos-slide img {
		height: 24px;
	}
}

/* Quien tenga activada la reduccion de movimiento del sistema ve los logos
   quietos, no un carrusel en marcha. */
@media (prefers-reduced-motion: reduce) {
	.etl-international .logos-section .logos-slide {
		animation: none;
	}
}

/* =========================================================================
 * AJUSTES PARA REPLICAR EL DISENO DE LA EDICION DE JUNIO (Black Friday)
 *
 * El CSS de esta plantilla, igual que el PHP, se reescribe en cada edicion.
 * Lo que se hereda aqui es el aspecto del evento del DMEXCO, no el de junio,
 * que es el que Pablo paso como referencia. Estas reglas devuelven ese aspecto.
 * Van al final y con la clase de la edicion, para no tocar el CSS heredado.
 * ========================================================================= */

/* --- Ponentes: fondo azul marino, no morado --- */
.etl-international .speakers {
	background: #1B1851;
}

/* --- Ficha de ponente: foto ARRIBA y texto debajo, centrado --- */
.etl-international .speakers .box {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
}

/* --- Borde amarillo corporativo en las fotos --- */
.etl-international .speakers img {
	border: 5px solid #FFF031;
	max-width: 200px;
}

/* --- Agenda: la CAJA es la que va en azul (el mismo #4943C1 del bloque de ponentes, texto blanco), sobre el gris de la seccion.
 *     El h2 de "Be part of..." queda fuera de .box y conserva su color. Texto alineado a la izquierda. --- */
.etl-international .timming .box {
	background: #4943C1;
	border-radius: 16px;
	padding: 40px;
	text-align: left;
}
.etl-international .timming .box h2,
.etl-international .timming .box p,
.etl-international .timming .box ul li,
.etl-international .timming .box strong,
.etl-international .timming .box b {
	color: #FFF;
}

.etl-international .timming img {
	border-radius: 12px;
}

@media (max-width: 767px) {
	.etl-international .timming .box {
		padding: 28px 20px;
	}
}

/* --- Hero: el titular es el logo de la edicion ---------------------------
 * Se replica el patron de la edicion "Magia", donde el hero llevaba el logo
 * del evento en vez de un titulo de texto. Aqui el <img> va DENTRO del <h1>,
 * asi que el h1 no lleva texto: se anula su tipografia para que no reserve
 * una linea en blanco. El ancho maximo (620 px) es el que deja el logo
 * legible sin comerse la cuenta atras.
 */
.etl-international .hero h1.title {
	font-size: 0;
	line-height: 0;
	margin-bottom: 10px;
}
.etl-international .hero h1.title img {
	display: block;
	width: 100%;
	max-width: 620px;
	height: auto;
	margin: 0 auto;
}
@media (max-width: 767px) {
	.etl-international .hero h1.title img {
		max-width: 320px;
	}
}

/* --- Saltos de linea de los titulares en movil ---------------------------
 * El tema esconde TODOS los <br> por debajo de 980 px (regla global de
 * static/css/theme.css, linea 208). En el titular del bloque de contenido eso
 * junta las dos frases y se lee "Ecommerce Talks LiveAI Evolution Edition".
 * Se restaura el salto solo en los titulares de esta landing.
 */
@media screen and (max-width: 980px) {
	.etl-international h2 br {
		display: inline;
	}
}

/* --- Video del bloque de introduccion -------------------------------------
 * Caja del reproductor de Vidzflow. El iframe se sirve sin dimensiones utiles,
 * asi que la relacion de aspecto la fija la caja y el iframe la rellena.
 * El radio es el mismo que el de la clase "rounded" de la foto a la que
 * sustituye, para que el bloque no cambie de aspecto.
 */
.etl-international .etl-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #1B1851;
}
.etl-international .etl-video iframe,
.etl-international .etl-video video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

/* El video es mas bajo que la columna de texto: centrado vertical para que no
   quede colgado arriba con un hueco debajo. */
@media (min-width: 768px) {
	.etl-international .content-event .row {
		align-items: center;
	}
}


/* Edicion International: ponentes aun sin foto (tbc) y titular en texto en lugar de logo */
.evento-mayo .speakers .box.no-photo {
	padding-top: 10px;
}




/* Edicion International: la segunda seccion (texto de presentacion) solapa el hero como lo hacia
   el carrusel de logos en otras ediciones: tarjeta blanca con esquinas superiores redondeadas. */
.etl-international .content-event {
	background: transparent;
	padding: 0;
	margin-top: -130px;
}

.etl-international .content-event .container {
	background: #fff;
	border-top-left-radius: 24px;
	border-top-right-radius: 24px;
}

/* Fichas "sorpresa": circulo con interrogacion en lugar de foto, con el mismo borde amarillo */
.etl-international .speakers .box.surprise .surprise-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 200px;
	max-width: 100%;
	border: 5px dashed #FFF031;
	border-radius: 100%;
	color: #FFF031;
	font-family: PlutoBold, Adjusted Verdana Fallback;
	font-size: 84px;
	line-height: 1;
}

/* Iniciales de un ponente confirmado sin foto: circulo continuo, no discontinuo como el de las sorpresas */
.etl-international .speakers .box .surprise-badge.initials {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 200px;
	max-width: 100%;
	border: 5px solid #FFF031;
	border-radius: 100%;
	color: #FFF031;
	font-family: PlutoBold, Adjusted Verdana Fallback;
	font-size: 64px;
	line-height: 1;
}

/* Fichas alineadas por arriba para que los textos arranquen a la misma altura */
.etl-international .speakers .box {
	justify-content: flex-start;
}

/* Cierre antes de la ubicacion: "Be part of Germany Meets Spain." */
.etl-international .timming .cta-join p {
	font-size: 20px;
	color: #3A3A3A;
	margin-bottom: 20px;
}

/* --- Ponentes (edicion International), estilo de referencia: fondo morado, foto en circulo a la
 *     IZQUIERDA con borde blanco y el texto a la derecha (nombre blanco en negrita, cargo blanco,
 *     empresa en amarillo). Las fichas "sorpresa" mantienen la interrogacion en el mismo circulo. --- */
.etl-international .speakers {
	background: #4943C1;
	padding: 70px 0 40px;
}

.etl-international .speakers h2 {
	font-size: 44px;
	line-height: 1.2;
	margin-bottom: 60px;
	text-transform: none;
}

.etl-international .speakers .box {
	flex-direction: row;
	justify-content: center;
	align-items: center;
	text-align: left;
	gap: 20px;
	height: auto;
}

.etl-international .speakers .box > div {
	flex: 0 1 210px;
}

.etl-international .speakers .box img,
.etl-international .speakers .box .surprise-badge {
	flex: 0 0 auto;
	width: 130px;
	height: 130px;
	max-width: none;
	border-width: 5px;
	border-color: #fff;
}

.etl-international .speakers .box .surprise-badge {
	font-size: 72px;
	color: #FFF031;
}

.etl-international .speakers .name {
	font-size: 24px;
	line-height: 1.15;
	margin-bottom: 14px;
}

.etl-international .speakers .rol {
	font-size: 18px;
	line-height: 1.3;
	margin-bottom: 14px;
}

.etl-international .speakers .company {
	font-size: 15px;
}

@media (max-width: 575px) {
	.etl-international .speakers h2 {
		font-size: 32px;
	}
	.etl-international .speakers .box {
		flex-direction: column;
		text-align: center;
		gap: 16px;
	}
	.etl-international .speakers .box img,
	.etl-international .speakers .box .surprise-badge {
		width: 130px;
		height: 130px;
		font-size: 56px;
	}
	.etl-international .speakers .mb-5 {
		margin-bottom: 2rem !important;
	}
	.etl-international .speakers h2 {
		margin-bottom: 36px;
	}
	.etl-international .speakers .box > div {
		flex-basis: auto;
	}
}

/* Tamano final del circulo de las fichas (misma especificidad que las reglas de .surprise / .initials,
   y al final del fichero para que gane). Escritorio 170 px, movil 130 px. */
.etl-international .speakers .box.surprise .surprise-badge,
.etl-international .speakers .box .surprise-badge.initials {
	width: 130px;
	height: 130px;
	border-width: 5px;
}

@media (max-width: 575px) {
	.etl-international .speakers .box.surprise .surprise-badge,
	.etl-international .speakers .box .surprise-badge.initials {
		width: 130px;
		height: 130px;
		font-size: 56px;
	}
}

/* Fotos de ponente: recorte cuadrado centrado hacia arriba para no cortar la cara */
.etl-international .speakers .box img {
	object-fit: cover;
	object-position: center 20%;
}

/* Agenda ordenada: cada sesion es un bloque con el mismo ritmo vertical.
   text-wrap: pretty para un borde irregular lo mas suave posible. */
.etl-international .timming .box {
	align-items: flex-start;
}

.etl-international .timming .box .session {
	margin-bottom: 28px;
}

.etl-international .timming .box .session:last-child {
	margin-bottom: 0;
}

.etl-international .timming .box .session p,
.etl-international .timming .box .session li {
	margin: 0 0 8px;
	text-wrap: pretty;
}

.etl-international .timming .box .session .session-title {
	margin-bottom: 8px;
	font-size: 18px;
}

.etl-international .timming .box .session ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Programa + foto: la foto se estira a la altura de la caja del programa (recorte con cover),
   para que las dos columnas terminen alineadas arriba y abajo. En movil vuelve a su altura natural. */
@media (min-width: 768px) {
	.etl-international .timming .row > .col-md-5 {
		display: flex;
	}

	.etl-international .timming .row > .col-md-5 img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

/* Programa y cierre (mapa) con fondo blanco */
.etl-international .timming {
	background: #fff;
}

/* Movil: ponentes de 2 en 2 (columna .col-6), ficha vertical con circulo mas pequeno y textos reducidos */
@media (max-width: 575px) {
	.etl-international .speakers .row > .col-6 {
		padding-left: 8px;
		padding-right: 8px;
	}
	.etl-international .speakers .box {
		gap: 12px;
		justify-content: flex-start;
		align-items: center;
		height: 100%;
	}
	.etl-international .speakers .box > div {
		flex: 0 1 auto;
	}
	.etl-international .speakers .box img,
	.etl-international .speakers .box.surprise .surprise-badge,
	.etl-international .speakers .box .surprise-badge.initials {
		width: 104px;
		height: 104px;
	}
	.etl-international .speakers .box.surprise .surprise-badge {
		font-size: 44px;
	}
	.etl-international .speakers .name {
		font-size: 18px;
		margin-bottom: 8px;
	}
	.etl-international .speakers .rol {
		font-size: 14px;
		margin-bottom: 8px;
	}
	.etl-international .speakers .company {
		font-size: 13px;
	}
	.etl-international .speakers .mb-5 {
		margin-bottom: 1.5rem !important;
	}
}
