.elementor-kit-290{--e-global-color-primary:#003C7D;--e-global-color-secondary:#1479BE;--e-global-color-text:#1A2228;--e-global-color-accent:#FDD03A;--e-global-color-8f6e8c6:#FFFFFF;--e-global-color-a1c3e01:#DAE9F2;--e-global-color-a1c3e04:#F4F7FA;--e-global-color-a1c3e02:#556475;--e-global-color-a1c3e03:#47A9EC;--e-global-color-a1c3e05:#003C7DE0;--e-global-color-f5864f0:#003C7D26;--e-global-color-a1c3e06:#FFFFFF59;--e-global-color-dc4874d:#FFFFFF00;--e-global-typography-primary-font-family:"Plus Jakarta Sans";--e-global-typography-primary-font-size:58px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-line-height:1.1em;--e-global-typography-primary-letter-spacing:-1.2px;--e-global-typography-secondary-font-family:"Plus Jakarta Sans";--e-global-typography-secondary-font-size:42px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:-0.6px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"Plus Jakarta Sans";--e-global-typography-accent-font-size:17px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:none;--e-global-typography-accent-line-height:1.4em;--e-global-typography-a183f6c-font-family:"Plus Jakarta Sans";--e-global-typography-a183f6c-font-size:23px;--e-global-typography-a183f6c-font-weight:700;--e-global-typography-a183f6c-text-transform:none;--e-global-typography-a183f6c-line-height:1.3em;--e-global-typography-a183f6c-letter-spacing:-0.2px;--e-global-typography-1bb0d19-font-family:"Plus Jakarta Sans";--e-global-typography-1bb0d19-font-size:20px;--e-global-typography-1bb0d19-font-weight:600;--e-global-typography-1bb0d19-text-transform:none;--e-global-typography-1bb0d19-line-height:1.45em;--e-global-typography-16b7b8e-font-family:"Plus Jakarta Sans";--e-global-typography-16b7b8e-font-size:15px;--e-global-typography-16b7b8e-font-weight:600;--e-global-typography-16b7b8e-text-transform:none;--e-global-typography-16b7b8e-line-height:1.5em;--e-global-typography-c7e2a10-font-family:"Inter";--e-global-typography-c7e2a10-font-size:15px;--e-global-typography-c7e2a10-font-weight:400;--e-global-typography-c7e2a10-text-transform:none;--e-global-typography-c7e2a10-line-height:1.6em;--e-global-typography-c7e2a11-font-family:"Plus Jakarta Sans";--e-global-typography-c7e2a11-font-size:52px;--e-global-typography-c7e2a11-font-weight:800;--e-global-typography-c7e2a11-text-transform:none;--e-global-typography-c7e2a11-line-height:1em;--e-global-typography-c7e2a11-letter-spacing:-1px;background-color:var( --e-global-color-8f6e8c6 );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{background-color:var( --e-global-color-secondary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );color:var( --e-global-color-8f6e8c6 );border-radius:0px 0px 0px 0px;padding:15px 26px 15px 26px;}.elementor-kit-290 button:hover,.elementor-kit-290 button:focus,.elementor-kit-290 input[type="button"]:hover,.elementor-kit-290 input[type="button"]:focus,.elementor-kit-290 input[type="submit"]:hover,.elementor-kit-290 input[type="submit"]:focus,.elementor-kit-290 .elementor-button:hover,.elementor-kit-290 .elementor-button:focus{background-color:var( --e-global-color-primary );color:var( --e-global-color-8f6e8c6 );}.elementor-kit-290 e-page-transition{background-color:#FFBC7D;}.elementor-kit-290 a{color:var( --e-global-color-secondary );}.elementor-kit-290 a:hover{color:var( --e-global-color-primary );}.elementor-kit-290 h1{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-290 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-290 h3{color:var( --e-global-color-primary );font-family:var( --e-global-typography-a183f6c-font-family ), Sans-serif;font-size:var( --e-global-typography-a183f6c-font-size );font-weight:var( --e-global-typography-a183f6c-font-weight );text-transform:var( --e-global-typography-a183f6c-text-transform );line-height:var( --e-global-typography-a183f6c-line-height );letter-spacing:var( --e-global-typography-a183f6c-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-290{--e-global-typography-primary-font-size:46px;--e-global-typography-secondary-font-size:36px;--e-global-typography-a183f6c-font-size:22px;--e-global-typography-c7e2a11-font-size:46px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-290 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-290 h3{font-size:var( --e-global-typography-a183f6c-font-size );line-height:var( --e-global-typography-a183f6c-line-height );letter-spacing:var( --e-global-typography-a183f6c-letter-spacing );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-290{--e-global-typography-primary-font-size:36px;--e-global-typography-secondary-font-size:27px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:16px;--e-global-typography-a183f6c-font-size:20px;--e-global-typography-1bb0d19-font-size:18px;--e-global-typography-c7e2a11-font-size:40px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-290 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-290 h3{font-size:var( --e-global-typography-a183f6c-font-size );line-height:var( --e-global-typography-a183f6c-line-height );letter-spacing:var( --e-global-typography-a183f6c-letter-spacing );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Lácteos Galera · CSS del Kit. Solo lo que Elementor no expone como control; sin !important. */

/* Anclas del one-page: dejan sitio a la cabecera fija para que el titular no quede debajo. */
html { scroll-padding-top: 96px; }

/* Foco visible: ni Hello ni el kit lo traen (WCAG 2.4.7). Azul acción sobre fondos claros. */
body a:focus-visible,
body button:focus-visible,
body [role="tab"]:focus-visible,
body [tabindex]:focus-visible,
body input:focus-visible,
body select:focus-visible,
body textarea:focus-visible {
	outline: 3px solid var(--e-global-color-secondary);
	outline-offset: 3px;
}
/* En secciones oscuras (clase lg-oscuro en el contenedor), anillo amarillo de marca. */
body .lg-oscuro a:focus-visible,
body .lg-oscuro button:focus-visible,
body .lg-oscuro [role="tab"]:focus-visible,
body .lg-oscuro [tabindex]:focus-visible {
	outline-color: var(--e-global-color-accent);
}

/* Enlace «Ir al contenido» de Hello: el CSS que lo revela no carga con las plantillas de Elementor. */
body .skip-link.screen-reader-text:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	padding: 12px 18px;
	background-color: #FFFFFF;
	color: var(--e-global-color-primary);
	font-weight: 600;
	border-radius: 8px;
}

/* Enlaces dentro de un párrafo: subrayados, no solo por color (WCAG 1.4.1). */
body .elementor-widget-text-editor a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* Listas de iconos (contacto, pie): subrayado al pasar el ratón o con foco. */
body .elementor-icon-list-item a:hover .elementor-icon-list-text,
body .elementor-icon-list-item a:focus-visible .elementor-icon-list-text {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Botón de llamada de la cabecera en móvil: solo icono, pero el texto sigue en el DOM
   (nombre accesible). El widget Botón no tiene control para ocultar solo el texto. */
@media (max-width: 767px) {
	body .lg-solo-icono-movil .elementor-button-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

/* Movimiento reducido: Elementor no lo respeta solo en las entradas (el paralaje de Pro sí se desactiva). */
@media (prefers-reduced-motion: reduce) {
	body .elementor-invisible { visibility: visible; animation: none; }
	body .animated { animation: none; }
	body .lg-zoom img { transition: none; }
	body .lg-zoom:hover img { transform: none; }
	body .elementor-animation-float:hover,
	body .elementor-animation-grow:hover { transform: none; }
}

/* Joinchat 6.x: su ajuste de color solo tiñe la ventana; el verde del botón no da 3:1 con el icono. */
body .joinchat .joinchat__button { background-color: var(--e-global-color-secondary); }

/* Tablas de datos dentro de un Editor de texto (tabla de cookies): Elementor no tiene widget de tabla. */
body .elementor-widget-text-editor table {
	width: 100%;
	border-collapse: collapse;
	margin: 8px 0 16px;
	font-size: 15px;
	line-height: 1.5;
}
body .elementor-widget-text-editor caption {
	text-align: left;
	font-weight: 600;
	padding-bottom: 10px;
	color: var(--e-global-color-primary);
}
body .elementor-widget-text-editor th,
body .elementor-widget-text-editor td {
	padding: 12px 14px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--e-global-color-f5864f0);
}
body .elementor-widget-text-editor thead th {
	background-color: var(--e-global-color-a1c3e01);
	color: var(--e-global-color-primary);
	font-weight: 600;
}
body .elementor-widget-text-editor tbody th { font-weight: 600; white-space: nowrap; }
/* En móvil la tabla se desplaza en horizontal dentro de su ancho (tiene tabindex para hacerlo con teclado). */
@media (max-width: 767px) {
	body .elementor-widget-text-editor table { display: block; overflow-x: auto; }
	body .elementor-widget-text-editor th,
	body .elementor-widget-text-editor td { min-width: 150px; }
}

/* Zoom suave de la foto al pasar el ratón por su marco (clase lg-zoom en el contenedor).
   Elementor no tiene un hover de contenedor que actúe sobre la imagen de dentro. */
body .lg-zoom { overflow: hidden; }
body .lg-zoom img { transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
body .lg-zoom:hover img { transform: scale(1.06); }

/* Foto a sangre que llena su contenedor (clase lg-card-foto): el widget Imagen se coloca detrás del resto
   del contenido y cubre todo el marco. Sustituye a la foto de fondo para que la imagen tenga alt y zoom. */
body .lg-card-foto { position: relative; }
body .lg-card-foto > .elementor-widget-image {
	position: absolute;
	inset: 0;
	margin: 0;
	width: 100%;
}
body .lg-card-foto > .elementor-widget-image .elementor-widget-container,
body .lg-card-foto > .elementor-widget-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
body .lg-card-foto > .elementor-element:not(.elementor-widget-image) { position: relative; z-index: 1; }

/* Cabecera fija (clase lg-cabecera): al bajar 80 px, Pro añade elementor-sticky--effects; la barra se compacta
   y gana una sombra suave. El efecto existe en Pro, pero el estilo del estado fijo no tiene control. */
body .elementor-element.lg-cabecera {
	transition: padding 0.3s ease, box-shadow 0.3s ease;
}
body .elementor-element.lg-cabecera.elementor-sticky--effects {
	--padding-top: 6px;
	--padding-bottom: 6px;
	box-shadow: 0 8px 24px rgba(0, 60, 125, 0.1);
}
body .lg-cabecera .elementor-widget-image img { transition: max-width 0.3s ease; }
body .lg-cabecera.elementor-sticky--effects .elementor-widget-image img { max-width: 82%; }

/* Menú móvil (clase lg-menu): el desplegable ya se abre escalando en vertical (nativo); además los enlaces
   entran escalonados y el icono de cerrar gira al aparecer. Elementor no tiene control para esto. */
@media (max-width: 1024px) {
	body .lg-menu .elementor-nav-menu--dropdown .menu-item {
		opacity: 0;
		transform: translateY(-8px);
		transition: opacity 0.3s ease, transform 0.3s ease;
	}
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item {
		opacity: 1;
		transform: none;
	}
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item:nth-child(2) { transition-delay: 0.05s; }
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item:nth-child(3) { transition-delay: 0.1s; }
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item:nth-child(4) { transition-delay: 0.15s; }
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item:nth-child(5) { transition-delay: 0.2s; }
	body .lg-menu .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown .menu-item:nth-child(n+6) { transition-delay: 0.25s; }
	body .lg-menu .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close { animation: lg-girar 0.3s ease; }
}
@keyframes lg-girar {
	from { transform: rotate(-90deg); opacity: 0; }
	to { transform: rotate(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	body .lg-menu .elementor-nav-menu--dropdown .menu-item { opacity: 1; transform: none; transition: none; }
	body .lg-menu .elementor-menu-toggle__icon--close { animation: none; }
	body .elementor-element.lg-cabecera,
	body .lg-cabecera .elementor-widget-image img { transition: none; }
}/* End custom CSS */