/* ==========================================================================
   Ajustes de usabilidad sobre el diseño actual (sin cambiar su aspecto).
   Lo estructural (columnas, anchos, espacios) está en los ajustes de Elementor;
   aquí solo va lo que Elementor no permite configurar.
   ========================================================================== */

/* Zonas táctiles de al menos 44px en móvil y tablet */
@media (max-width: 1024px) {
	.elementor-menu-toggle {
		min-width: 44px;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.elementor-nav-menu--dropdown .elementor-item,
	.elementor-nav-menu--dropdown .elementor-sub-item {
		padding-top: 14px !important;
		padding-bottom: 14px !important;
	}
	.elementor-nav-menu--dropdown .sub-arrow {
		min-width: 44px;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	a.glink {
		display: inline-flex !important;
		min-width: 40px;
		min-height: 40px;
		align-items: center;
		justify-content: center;
	}
	.elementor-social-icon {
		min-width: 44px;
		min-height: 44px;
	}
}

/* Menú móvil: separadores y logo sin recortar */
@media (max-width: 1024px) {
	.elementor-nav-menu--dropdown .elementor-item { border-bottom: 1px solid rgba(8, 24, 58, 0.08); }
	.header-logo img { height: auto !important; max-height: none !important; object-fit: contain; }
}

/* Agenda: que el calendario no se corte en pantallas pequeñas */
@media screen and (max-width: 599px) {
	iframe[data-tec-events-ece-iframe="true"] { height: 560px !important; }
}
@media screen and (min-width: 600px) and (max-width: 1024px) {
	iframe[data-tec-events-ece-iframe="true"] { height: 840px !important; }
}

/* Textos legibles en móvil: sin justificar (evita huecos entre palabras) */
@media (max-width: 767px) {
	.elementor-widget-text-editor p,
	.eael-grid-post-excerpt p { text-align: left !important; }
}

/* Bloques de icono con enlace: toda la tarjeta es pulsable, no solo el texto */
.elementor-widget-icon-box .elementor-widget-container { position: relative; }
.elementor-widget-icon-box .elementor-icon-box-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.elementor-widget-icon-box .elementor-icon-box-description a { position: relative; z-index: 1; }

@media (max-width: 1024px) {
	/* Botón del buscador de la cabecera */
	#smv-search-btn { min-width: 44px; min-height: 44px; }
	/* Enlaces del pie: más altura para el dedo */
	[data-elementor-type="footer"] .elementor-icon-box-description a,
	[data-elementor-type="footer"] .elementor-widget-text-editor a {
		display: inline-block;
		padding: 8px 4px;
	}
	/* «Leer más» de las noticias */
	.eael-post-elements-readmore-btn { display: inline-block; padding: 10px 0; }
}

/* ---------- Márgenes laterales: nada pegado a los bordes ---------- */
/* Se aplica a todas las secciones (salvo el slider de la portada, que va a sangre). */
@media (max-width: 1024px) {
	.elementor .e-con.e-parent:not(.elementor-element-64e2e9a):not(.smv-slider-section) {
		--padding-left: 24px !important;
		--padding-right: 24px !important;
	}
}
@media (max-width: 767px) {
	.elementor .e-con.e-parent:not(.elementor-element-64e2e9a):not(.smv-slider-section) {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
	}
}

/* ---------- Cabecera en una sola fila ---------- */
@media (max-width: 1024px) {
	.elementor-element-c048e6c { --flex-wrap: nowrap !important; --gap: 8px !important; }
	.elementor-element-c048e6c > .elementor-widget-image { flex: 0 0 auto !important; }
}

/* ---------- Paneles de la portada: fondo suave, esquinas redondeadas, sin costuras ---------- */
.elementor-element-1e513e0,
.elementor-element-b05d8fd,
.elementor-element-b242bca {
	border: 0 !important;
	border-radius: 16px;
	background-color: #f4f6f9 !important;
	overflow: hidden;
}
.elementor-element-1e513e0 { padding: 20px !important; }
.elementor-element-b242bca { padding: 20px 16px 24px !important; }
@media (min-width: 1025px) {
	.elementor-element-831bbf1,
	.elementor-element-ed874b2 { --gap: 20px !important; gap: 20px !important; }
	.elementor-element-1e513e0,
	.elementor-element-819c151 { --width: calc(66.666% - 10px) !important; }
	.elementor-element-b05d8fd,
	.elementor-element-b242bca { --width: calc(33.333% - 10px) !important; }
}
@media (max-width: 1024px) {
	.elementor-element-831bbf1,
	.elementor-element-ed874b2 { --gap: 16px !important; gap: 16px !important; }
}
/* Alcalde: foto centrada con aire */
.elementor-element-b05d8fd { justify-content: center; padding: 20px !important; }
.elementor-element-ac7a380 .widget-image-caption { margin-top: 8px; font-size: 15px; }

/* ---------- Títulos de sección coherentes ---------- */
.elementor-element-a3ae119 .elementor-heading-title,
.elementor-element-a8ab566 .elementor-heading-title,
.elementor-element-d266a92 .elementor-heading-title,
.elementor-element-ac2f7d0 .elementor-heading-title {
	letter-spacing: -0.01em;
	line-height: 1.2;
}
@media (max-width: 767px) {
	.elementor-element-a3ae119 .elementor-heading-title,
	.elementor-element-a8ab566 .elementor-heading-title,
	.elementor-element-d266a92 .elementor-heading-title,
	.elementor-element-ac2f7d0 .elementor-heading-title { font-size: 22px !important; }
}

/* ---------- Noticias: tarjetas con el mismo aire que el resto ---------- */
.eael-grid-post .eael-grid-post-holder { border-radius: 16px; overflow: hidden; }
.eael-grid-post .eael-entry-wrapper { padding: 14px 4px 4px !important; }
/* Separación entre paneles apilados (tablet y móvil) */
@media (max-width: 1024px) {
	.elementor-element-b05d8fd,
	.elementor-element-b242bca { margin-top: 16px !important; }
}

/* Contacto: el horario (párrafos) centrado en tablet y móvil, como el resto de la caja */
@media (max-width: 1024px) {
	.elementor-element-e253aa8,
	.elementor-element-e253aa8 p { text-align: center !important; }
}
/* Aviso info: el texto nunca justificado */
.elementor-element-7fd346f .elementor-icon-box-description { text-align: left !important; }
.elementor-element-e253aa8 { --gap: 4px !important; gap: 4px !important; }
.elementor-element-e253aa8 p { margin: 0 !important; }

/* ---------- Acordeón de las áreas: cabecera y contenido redondeados ---------- */
.eael-adv-accordion .eael-accordion-list { border-radius: 12px; overflow: hidden; }
.eael-adv-accordion .eael-accordion-header { border-radius: 12px; transition: border-radius 0.2s ease; }
.eael-adv-accordion .eael-accordion-header.active { border-radius: 12px 12px 0 0; }
.eael-adv-accordion .eael-accordion-content { border-radius: 0 0 12px 12px; }

/* ---------- Slider de Elementor (prueba) con el aspecto del actual ---------- */
.smv-slider .smv-slide { text-shadow: 0 2px 14px rgba(8, 24, 58, 0.35); }
.smv-slide-eyebrow .elementor-heading-title {
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.4 !important;
}
.smv-slide-title .elementor-heading-title {
	color: #fff !important;
	font-size: clamp(46px, 6vw, 84px) !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.02em;
}
.smv-slide-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	padding: 8px 8px 8px 24px !important;
	background: #08183a !important;
	border: 2px solid #00c0ff !important;
	border-radius: 999px !important;
	color: #fff !important;
	font-size: 16px;
	text-shadow: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.smv-slide-btn .elementor-button-content-wrapper { align-items: center; gap: 14px; }
.smv-slide-btn .elementor-button-text { line-height: 1; }
.smv-slide-btn .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #00c0ff;
}
.smv-slide-btn .elementor-button-icon svg { fill: #fff; width: 14px; height: 14px; }
.smv-slide-btn .elementor-button:hover { background: #fff !important; color: #08183a !important; }
.smv-slider .elementor-swiper-button {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #08183a;
	border: 1px solid rgba(255, 255, 255, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	top: auto !important;
	bottom: 24px;
	transform: none !important;
}
.smv-slider .elementor-swiper-button svg { fill: #fff; width: 16px; height: 16px; }
.smv-slider .elementor-swiper-button:hover { border-color: #00c0ff; }
.smv-slider .elementor-swiper-button-prev { left: auto !important; right: 84px !important; }
.smv-slider .elementor-swiper-button-next { right: 28px !important; }
.smv-slider .e-n-carousel { position: relative; }
.smv-slider .swiper-pagination { position: absolute !important; bottom: 36px !important; top: auto !important; left: 32px !important; width: auto !important; text-align: left; z-index: 5; margin: 0 !important; transform: none !important; }
.smv-slider .swiper-pagination-bullet {
	width: 14px;
	height: 14px;
	background: #08183a;
	border: 2px solid #00c0ff;
	opacity: 1;
}
.smv-slider .swiper-pagination-bullet-active { background: #00c0ff; }
@media (max-width: 767px) {
	.smv-slide-eyebrow .elementor-heading-title { font-size: 13px !important; letter-spacing: 0.1em; }
	.smv-slider .elementor-swiper-button { bottom: 20px; }
	.smv-slider .elementor-swiper-button-prev { right: 72px !important; }
	.smv-slider .elementor-swiper-button-next { right: 16px !important; }
	.smv-slider .swiper-pagination { bottom: 32px !important; left: 16px !important; }
}

/* Título de página sobre una galería (Fiestas Populares), como las cabeceras interiores */
.smv-slider-section { position: relative; }
.smv-gallery-title {
	position: absolute !important;
	left: max(24px, calc((100% - 1140px) / 2));
	bottom: 88px;
	z-index: 6;
	pointer-events: none;
	width: auto !important;
}
.smv-gallery-title .elementor-heading-title {
	color: #fff !important;
	font-size: 46px !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	text-shadow: 0 2px 16px rgba(8, 24, 58, 0.55);
}
@media (max-width: 767px) {
	.smv-gallery-title { left: 16px; bottom: 76px; }
	.smv-gallery-title .elementor-heading-title { font-size: 30px !important; }
}
.smv-slider-section:has(.smv-gallery-title) .smv-slide { position: relative; }
.smv-slider-section:has(.smv-gallery-title) .smv-slide::after {
	content: "";
	position: absolute;
	inset: 40% 0 0 0;
	background: linear-gradient(to bottom, rgba(8, 24, 58, 0) 0%, rgba(8, 24, 58, 0.65) 100%);
	pointer-events: none;
}

/* ---------- Formularios: campos claros, foco visible, botón coherente ---------- */
.elementor-form .elementor-field-group { margin-bottom: 4px; }
.elementor-form .elementor-field-group > label,
.elementor-form .elementor-field-label {
	font-size: 14px;
	font-weight: 600;
	color: #08183a;
	margin-bottom: 6px;
}
.elementor-form .elementor-mark-required .elementor-field-label::after { color: #c62828; }
.elementor-form .elementor-field-textual,
.elementor-form .elementor-select-wrapper select {
	min-height: 48px;
	padding: 12px 16px !important;
	font-size: 16px !important;
	color: #08183a;
	background: #fff !important;
	border: 1px solid #d3dbe8 !important;
	border-radius: 12px !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.elementor-form textarea.elementor-field-textual { min-height: 150px; line-height: 1.5; }
.elementor-form .elementor-field-textual::placeholder { color: #7a869a; }
.elementor-form .elementor-field-textual:focus,
.elementor-form .elementor-select-wrapper select:focus {
	outline: none;
	border-color: #0056b3 !important;
	box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.18);
}
.elementor-form .elementor-field-type-acceptance { font-size: 13px; color: #3b4a63; }
.elementor-form .elementor-field-type-acceptance input[type="checkbox"] { width: 20px !important; height: 20px !important; accent-color: #0056b3; }
.elementor-form .e-form__buttons .elementor-button,
.elementor-form .elementor-field-type-submit .elementor-button {
	min-height: 52px;
	padding: 14px 28px !important;
	border-radius: 999px !important;
	background: #08183a !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	transition: background 0.2s ease;
}
.elementor-form .elementor-field-type-submit .elementor-button-text::after { content: "  →"; }
.elementor-form .elementor-field-type-submit .elementor-button:hover { background: #0056b3 !important; }
.elementor-form .elementor-message {
	margin-top: 12px;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 15px;
}
.elementor-form .elementor-message-success { background: #e8f6ee; color: #1b5e3a; }
.elementor-form .elementor-message-danger { background: #fdecec; color: #8a1c1c; }
.elementor-form .elementor-error .elementor-field-textual { border-color: #c62828 !important; }
.elementor-form .elementor-message::before { display: none; }

/* Contacto: el formulario en un panel como el de «Información Directa» */
.elementor-element-3abbce3 {
	background: #f4f6f9;
	border-radius: 16px;
	padding: 32px !important;
}
@media (max-width: 767px) {
	.elementor-element-3abbce3 { padding: 24px 20px !important; margin-right: 0 !important; margin-bottom: 16px; }
}
@media (max-width: 767px) {
	.elementor-form .elementor-field-type-submit { flex-basis: 100% !important; max-width: 100% !important; }
	.elementor-form .elementor-field-type-submit .elementor-button { width: 100%; justify-content: center; }
}

/* ---------- Acordeón nativo de las áreas (sustituye a Essential Addons) ---------- */
.smv-area-acc .e-n-accordion-item { border: 0 !important; }
.smv-area-acc .e-n-accordion-item-title {
	padding: 12px 16px !important;
	background: rgba(8, 24, 58, 0.45) !important;
	backdrop-filter: blur(2px);
	border: 0 !important;
	border-radius: 12px;
	color: #fff !important;
	justify-content: flex-start !important;
	flex-direction: row !important;
	gap: 12px;
	transition: background 0.2s ease, border-radius 0.2s ease;
}
.smv-area-acc .e-n-accordion-item-title-icon { order: -1; }
.smv-area-acc .e-n-accordion-item-title-header { flex: 0 1 auto !important; }
.smv-area-acc .e-n-accordion-item-title:hover { background: rgba(8, 24, 58, 0.7) !important; }
.smv-area-acc .e-n-accordion-item[open] .e-n-accordion-item-title { border-radius: 12px 12px 0 0; background: #08183a !important; }
.smv-area-acc .e-n-accordion-item-title-text { color: #fff !important; font-size: 16px !important; font-weight: 600 !important; margin: 0; }
.smv-area-acc .e-n-accordion-item-title-icon svg,
.smv-area-acc .e-n-accordion-item-title-icon i { fill: #fff !important; color: #fff !important; width: 12px; height: 12px; font-size: 12px; }
.smv-area-acc .e-n-accordion-item > .e-con { border-radius: 0 0 12px 12px; overflow: hidden; border: 0 !important; }
.smv-area-acc .e-n-accordion-item > .e-con p { margin: 0 0 10px; font-size: 15px; color: #08183a; }
.smv-area-acc .e-n-accordion-item > .e-con p:last-child { margin-bottom: 0; }

/* ---------- Noticias de la portada (widget Entradas de Elementor Pro) ---------- */
.smv-news-grid .elementor-post { background: transparent; }
.smv-news-grid .elementor-post__thumbnail__link { margin-bottom: 14px !important; }
.smv-news-grid .elementor-post__thumbnail { border-radius: 16px; overflow: hidden; }
.smv-news-grid .elementor-post__thumbnail img { transition: transform 0.4s ease; }
.smv-news-grid .elementor-post:hover .elementor-post__thumbnail img { transform: scale(1.04); }
.smv-news-grid .elementor-post__title,
.smv-news-grid .elementor-post__title a { font-size: 16px !important; font-weight: 700 !important; line-height: 1.3 !important; color: #08183a !important; }
.smv-news-grid .elementor-post__excerpt p { font-size: 14px; line-height: 1.55; color: #3b4a63; margin-top: 8px; }
.smv-news-grid .elementor-post__read-more { font-size: 13px; font-weight: 600; color: #0056b3 !important; }
.smv-more-news .elementor-button {
	background: transparent !important;
	color: #0056b3 !important;
	border: 2px solid #00c0ff !important;
	border-radius: 999px !important;
	padding: 10px 26px !important;
	font-weight: 600;
}
.smv-more-news .elementor-button:hover { background: #00c0ff !important; color: #08183a !important; }

/* ---------- Recuadros destacados (sustituyen a Essential Addons) ---------- */
.smv-cta p { margin: 0; }
.smv-cta > .e-con { flex: 1 1 0 !important; min-width: 0; }
.smv-cta > .elementor-widget-button { flex: 0 0 auto !important; }
@media (max-width: 767px) { .smv-cta > .elementor-widget-button { align-self: flex-start; } }

/* Noticias de la portada: sin hueco entre el título y la rejilla */
.elementor-element-819c151 { grid-template-rows: auto !important; align-content: start !important; }
.smv-cta .elementor-button { white-space: nowrap; }

/* Enlace «Saltar al contenido»: invisible hasta que se navega con el teclado */
.smv-skip {
	position: absolute;
	left: 16px;
	top: -80px;
	z-index: 10000;
	padding: 12px 20px;
	background: #08183a;
	color: #fff !important;
	font-weight: 600;
	border-radius: 999px;
	text-decoration: none;
	transition: top 0.2s ease;
}
.smv-skip:focus { top: 16px; outline: 3px solid #00c0ff; outline-offset: 2px; }
#contenido:focus { outline: none; }

/* Subtítulos de sección de la portada: centrados como su título en todos los tamaños */
[class*="e-dad4ac2-"],
[class*="e-dfc7272-"] { text-align: center !important; width: 100%; }
