/* =====================================================================
   APFEM – Correcciones de accesibilidad (WCAG 2.1 AA)
   Subsanación Kit Digital – Sitio Web y Presencia en Internet
   ONMENU IBIZA S.L. – noviembre 2026
   Colores corporativos de partida: naranja #ff9223, azul #0075ac,
   marino #072130, crema #f2f0eb. Se conservan como fondo y se usan
   variantes accesibles solo cuando el color actúa como texto.
   ===================================================================== */

:root {
	--apfem-naranja-texto: #a35200; /* 5,58:1 sobre #fff · 4,83:1 sobre #f1eeec */
	--apfem-azul-texto:    #00628f; /* 6,68:1 sobre #fff · 5,78:1 sobre #f1eeec */
	--apfem-azul-claro:    #009ce6; /* 5,43:1 sobre #072130 */
	--apfem-marino:        #072130; /* 7,40:1 sobre el naranja #ff9223 */
}

/* ---------------------------------------------------------------------
   1. CONTRASTE (WCAG 1.4.3)
   El naranja corporativo (#ff9223) solo alcanza 2,24:1 sobre blanco.
   Cuando se usa como COLOR DE TEXTO se sustituye por una variante
   oscura del mismo tono. Los fondos naranjas no cambian.
   --------------------------------------------------------------------- */
:is(h1, h2, h3, h4, h5, h6, p, li, span, strong, b, em, a, time,
	.et_pb_text_inner, .post-meta, .et_pb_module_header):not(.et_pb_button):not(.et_pb_button *):not(.cmplz-btn):not(.et-l--footer *):not(.et-l--header *):not(.preset--module--divi-section--5ca0172d-92d0-465d-bd0d-1f5afa9d3ac6 *) {
	--gcid-primary-color: var(--apfem-naranja-texto);
	--gcid-1f1b4e15-7cc6-4e13-8154-74d77a956460: var(--apfem-naranja-texto);
	/* Crema #f2f0eb sobre azul #0075ac = 4,45:1 → blanco = 5,07:1 */
	--gcid-a93f2103-1d8b-43bb-b21d-81d84bba8b15: #ffffff;
}

/* Enlaces dentro de textos: azul corporativo oscurecido para garantizar 4,5:1
   también sobre los fondos claros (#f1eeec / #f2f0eb). */
:is(.et_pb_text_inner, .et_pb_post_content, .et_pb_blurb_description,
	.et_pb_toggle_content, .et_pb_tab_content, .entry-content, #cmplz-document) a:not(.et_pb_button) {
	--gcid-link-color: var(--apfem-azul-texto);
	--gcid-secondary-color: var(--apfem-azul-texto);
	--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2: var(--apfem-azul-texto);
}

/* Sección oscura (#072130, preset de sección "datos"): el azul corporativo
   como texto sobre marino da 3,26:1 → azul aclarado 5,43:1. */
.preset--module--divi-section--5ca0172d-92d0-465d-bd0d-1f5afa9d3ac6 :is(h1, h2, h3, h4, h5, h6, p, span, strong, .et_pb_module_header) {
	--gcid-secondary-color: var(--apfem-azul-claro);
	--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2: var(--apfem-azul-claro);
}

/* Títulos sobre imágenes con fondo naranja (diapositivas de Servicios):
   sombra de apoyo para asegurar la legibilidad sobre zonas claras de la foto. */
.et_pb_slide .et_pb_slide_title,
.et_pb_slide .et_pb_slide_content {
	text-shadow: 0 1px 2px rgba(0, 0, 0, .55), 0 0 14px rgba(0, 0, 0, .35);
}

/* ---------------------------------------------------------------------
   2. BANNER DE COOKIES (Complianz)
   "Aceptar": texto blanco sobre naranja = 2,24:1 → texto marino 7,40:1.
   Enlaces naranjas sobre blanco → naranja oscuro y subrayado.
   --------------------------------------------------------------------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover {
	color: var(--apfem-marino) !important;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-link,
#cmplz-cookiebanner-container .cmplz-cookiebanner a,
.cmplz-manage-consent-container a {
	color: var(--apfem-naranja-texto) !important;
	text-decoration: underline !important;
	text-underline-offset: .18em;
}
/* Área táctil de los enlaces del banner (antes ~12 px de alto) */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links .cmplz-link {
	display: inline-flex !important;
	align-items: center;
	min-height: 44px;
	padding: 0 6px;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links ul {
	flex-wrap: wrap;
	row-gap: 0;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn {
	min-height: 44px;
}
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ---------------------------------------------------------------------
   3. IDENTIFICACIÓN DE ENLACES (WCAG 1.4.1)
   Los enlaces dentro de párrafos se subrayan siempre, no solo por color.
   --------------------------------------------------------------------- */
:is(.et_pb_text_inner, .et_pb_post_content, .et_pb_blurb_description,
	.et_pb_toggle_content, .et_pb_tab_content, .entry-content,
	#cmplz-document) a:not(.et_pb_button):not(.et_pb_social_media_follow a) {
	text-decoration-line: underline !important;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
}
:is(.et_pb_text_inner, .et_pb_post_content, .entry-content) a:not(.et_pb_button):hover {
	text-decoration-thickness: 2px;
}

/* ---------------------------------------------------------------------
   4. FOCO VISIBLE (WCAG 2.4.7)
   Doble anillo (blanco + marino) visible sobre fondos claros y oscuros.
   --------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.et_pb_button:focus-visible {
	outline: 3px solid var(--apfem-marino) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 2px #ffffff !important;
}
.et-l--footer a:focus-visible,
.et-l--footer button:focus-visible,
.preset--module--divi-section--5ca0172d-92d0-465d-bd0d-1f5afa9d3ac6 a:focus-visible {
	outline-color: #ffffff !important;
	box-shadow: 0 0 0 2px var(--apfem-marino) !important;
}

/* ---------------------------------------------------------------------
   5. TAMAÑO DE LAS ÁREAS TÁCTILES (WCAG 2.5.8 · objetivo 44 × 44 px)
   --------------------------------------------------------------------- */

/* 5.1 Puntos de navegación de los carruseles (antes 10 × 10 px, 8 px de separación).
   El botón pasa a 44 × 44 px; el punto visible se dibuja dentro con ::before
   y la fila de puntos queda por encima de las diapositivas para no quedar tapada. */
.et_pb_group_carousel_dots {
	gap: 0 !important;
	position: relative;
	z-index: 3;
}
.et_pb_group_carousel .et_pb_group_carousel_dots .et_pb_group_carousel_dot {
	position: relative;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	opacity: 1 !important;
	cursor: pointer;
}
.et_pb_group_carousel .et_pb_group_carousel_dots .et_pb_group_carousel_dot::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	margin: -6px 0 0 -6px;
	border-radius: 50%;
	background: #8a8a8a;
	transition: background-color .2s, transform .2s;
}
.et_pb_group_carousel .et_pb_group_carousel_dots .et_pb_group_carousel_dot_active::before {
	background: #333333;
	transform: scale(1.25);
}

/* 5.2 Flechas de carruseles y sliders: mínimo 44 × 44 px */
.et_pb_group_carousel_arrow,
.et-pb-slider-arrows a,
.et-pb-controllers a {
	min-width: 44px;
	min-height: 44px;
}

/* 5.3 Menú: elementos del menú móvil y botón hamburguesa */
.et_mobile_menu li a,
.et_pb_menu .et_mobile_menu li a {
	min-height: 44px;
	display: flex !important;
	align-items: center;
	box-sizing: border-box;
}
.mobile_menu_bar,
.et_pb_menu__icon {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

/* 5.4 Pie de página: enlaces de contacto y legales con área táctil ampliada
   (inline-block + padding; el margen negativo evita alterar el interlineado). */
.et-l--footer .et_pb_text_inner a {
	display: inline-block;
	padding-top: 6px;
	padding-bottom: 6px;
	margin-top: -6px;
	margin-bottom: -6px;
}
.et-l--footer .et_pb_text_inner p {
	line-height: 2.4em;
}

/* 5.5 Botón "volver arriba" de Divi */
.et_pb_scroll_top.et-pb-icon {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* 5.6 Formularios */
.et_pb_contact_form input:not([type="checkbox"]):not([type="radio"]),
.et_pb_contact_form select,
.et_pb_contact_form textarea,
.et_pb_contact_form .et_pb_button,
.et_pb_search input,
.et_pb_search button {
	min-height: 44px;
}

/* ---------------------------------------------------------------------
   6. ZOOM / REFLOW (WCAG 1.4.4 · 1.4.10)
   Evita desbordamientos horizontales al ampliar el texto al 200 %.
   --------------------------------------------------------------------- */
.et_pb_text_inner,
.et_pb_module_header,
.et_pb_post_content {
	overflow-wrap: break-word;
}
/* Los carruseles en modo "bleed" dejaban diapositivas fuera de pantalla que
   provocaban desplazamiento horizontal (48 px en escritorio, 266 px en móvil).
   "clip" recorta sin crear contenedor de scroll (no afecta a elementos sticky). */
body {
	overflow-x: clip;
}

/* Preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------------------------------------------------------------------
   7. TABLAS DE LA POLÍTICA DE COOKIES
   --------------------------------------------------------------------- */
.apfem-tabla-wrap {
	overflow-x: auto;
	margin: 0 0 24px;
}
.apfem-tabla-cookies {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.5;
}
.apfem-tabla-cookies th,
.apfem-tabla-cookies td {
	border: 1px solid #cfc8c2;
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
	color: #333333;
}
.apfem-tabla-cookies th {
	background: #f1eeec;
	color: #000000;
	font-weight: 700;
}

/* ---------------------------------------------------------------------
   8. FORMULARIO DE CONTACTO Y MARCADOR DE POSICIÓN DEL MAPA
   Texto de los campos #999 sobre #f2f0eb = 2,5:1 → #333 (11,6:1);
   marcadores de posición (placeholder) #595959 (6,1:1).
   --------------------------------------------------------------------- */
.et_pb_contact_form .input,
.et_pb_contact_form input,
.et_pb_contact_form textarea,
.et_pb_contact_form select,
.et_pb_contact_captcha,
.et_pb_contact_captcha_question {
	color: #333333 !important;
}
.et_pb_contact_form .input::placeholder,
.et_pb_contact_form input::placeholder,
.et_pb_contact_form textarea::placeholder {
	color: #595959 !important;
	opacity: 1;
}
.cmplz-blocked-content-notice,
.cmplz-blocked-content-notice:hover {
	background-color: var(--apfem-marino) !important;
	color: #ffffff !important;
	min-height: 44px;
}

/* ---------------------------------------------------------------------
   9. CARRUSELES Y TESTIMONIOS CON ZOOM / PANTALLAS ESTRECHAS (WCAG 1.4.10)
   Las flechas de los carruseles a ancho completo se desplazaban 48 px
   fuera de la pantalla y los puntos no cabían en una fila: con el zoom
   al 200 % (o en móvil) quedaban fuera del área visible.
   --------------------------------------------------------------------- */
/* La clase .apfem-arrow-inside la añade el script del tema hijo solo a las flechas
   que quedan fuera del área visible. */
.et_pb_group_carousel .et_pb_group_carousel_arrow.apfem-arrow-inside {
	transform: translateY(-50%) !important;
	background: rgba(255, 255, 255, .85) !important;
	border-radius: 50%;
	z-index: 5;
}
.et_pb_group_carousel .et_pb_group_carousel_dots {
	flex-wrap: wrap;
	justify-content: center;
	max-width: 100%;
}
.et_pb_testimonial {
	max-width: 100%;
	box-sizing: border-box;
}

/* Banner de cookies: texto «Siempre activo» (verde #008000 sobre gris ≈ 4,5:1) → verde oscuro #006400 (6,4:1) */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-always-active {
	color: #006400 !important;
}

/* Puntos de carrusel: se apartan de las columnas de las flechas para que no queden tapados.
   En móvil, los carruseles con muchas diapositivas (9 o más puntos) usan puntos de 24 × 24 px
   (mínimo WCAG 2.5.8) para no ocupar varias filas; las flechas siguen disponibles. */
.et_pb_group_carousel .et_pb_group_carousel_dots {
	padding-left: 48px;
	padding-right: 48px;
	box-sizing: border-box;
}
@media (max-width: 767px) {
	.et_pb_group_carousel .et_pb_group_carousel_dots:has(> :nth-child(9)) {
		gap: 4px !important;
	}
	.et_pb_group_carousel .et_pb_group_carousel_dots:has(> :nth-child(9)) .et_pb_group_carousel_dot {
		width: 24px !important;
		height: 24px !important;
		min-width: 24px;
	}
	.et_pb_group_carousel .et_pb_group_carousel_dots:has(> :nth-child(9)) .et_pb_group_carousel_dot::before {
		width: 10px;
		height: 10px;
		margin: -5px 0 0 -5px;
	}
}

/* Bloques enlazados de Divi convertidos en enlaces accesibles por el script del tema hijo */
[data-apfem-link] {
	cursor: pointer;
}
.et-l--footer [data-apfem-link]:focus-visible {
	outline-color: #ffffff !important;
	box-shadow: 0 0 0 2px var(--apfem-marino) !important;
}
