/*
Theme Name: Astra — Raquel María Padrón Guerra
Theme URI: https://smartbytes.es
Template: astra
Author: Smartbytes
Author URI: https://smartbytes.es
Description: Tema hijo de Astra para la web de Raquel María Padrón Guerra, procuradora en Santa María de Guía (Las Palmas). Añade fuentes locales, estilos de marca, datos del despacho, datos estructurados y la franja del Kit Digital.
Version: 1.0.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-rpg
*/

/* ---------- Fuentes locales (sin conexión a Google Fonts) ---------- */
@font-face {
	font-family: "Cormorant Garamond";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-wght-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Cormorant Garamond";
	font-style: italic;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-wght-italic.woff2") format("woff2");
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2");
}

/* ---------- Marca (paleta corporativa accesible, verificada WCAG 2.1 AA) ---------- */
:root {
	--color-primary: #101A2B;         /* azul noche: 17,4:1 con blanco */
	--color-deep: #07111F;            /* azul profundo: hero y secciones de contraste */
	--color-gold: #B18A3A;            /* oro: logo, líneas, iconos; texto SOLO sobre azul (5,45:1) */
	--color-gold-text: #8A671F;       /* oro oscuro: texto dorado sobre blanco (5,2:1) y marfil (4,77:1) */
	--color-text: #111111;            /* texto principal: 18,9:1 */
	--color-text-secondary: #4B5563;  /* gris carbón: 7,56:1 sobre blanco */
	--color-bg: #FFFFFF;
	--color-bg-alt: #F7F5F0;          /* marfil */
	--color-border: #E4DED1;          /* solo separadores decorativos */
	--color-control-border: #4B5563;  /* borde de campos: 7,56:1 sobre blanco */
	--color-error: #B42318;           /* 6,6:1 sobre blanco */
	--color-ok: #1E7A3C;              /* 5,4:1 sobre blanco */

	--font-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--font-body: "Inter", Arial, sans-serif;

	--radius-small: 4px;
	--radius-medium: 8px;

	--focus-color: #101A2B;
	--focus-on-dark: #B18A3A;
}

body, button, input, select, textarea {
	font-family: var(--font-body);
}
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title {
	font-family: var(--font-heading);
	font-weight: 600;
	letter-spacing: 0;
}

/* Las direcciones de correo largas se parten antes que desbordar la pantalla (p. ej. a 768 px). */
a[href^="mailto:"] { overflow-wrap: anywhere; }

::selection { background: var(--color-primary); color: #fff; }

/* Foco visible para teclado (≥ 2 px, además del cambio de color). Se impone al punteado fino de Astra y de los plugins. */
body :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible,
body .elementor-button:focus-visible,
body .onetap-container-toggle .onetap-toggle:focus-visible {
	outline: 3px solid var(--focus-color) !important;
	outline-offset: 3px;
}
body .site-header :is(a, button):focus-visible,
body .site-footer :is(a, button):focus-visible,
body .rpg-oscuro :is(a, button):focus-visible { outline-color: var(--focus-on-dark) !important; }

/* Elementor oculta con visibility:hidden lo que aún no ha animado, y eso lo saca del orden del tabulador.
   Con opacidad 0 sigue siendo alcanzable con el teclado; al recibir el foco se muestra de inmediato. */
.elementor-invisible { visibility: visible !important; opacity: 0; }
.elementor-invisible:focus-within { opacity: 1; }

/* Enlace para saltar al contenido: visible al recibir el foco. */
.skip-link.screen-reader-text:focus {
	background: var(--color-gold);
	color: var(--color-primary);
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	padding: .9rem 1.25rem;
	left: 1rem;
	top: 1rem;
	z-index: 100000;
	font-weight: 700;
	text-decoration: underline;
}

/* ---------- Cabecera (azul noche, logo en blanco y oro) ---------- */
.site-header .custom-logo-link { display: inline-block; line-height: 0; }
.site-header .site-title { font-size: clamp(1.3rem, 2.2vw, 1.6rem); line-height: 1.1; margin: 0; font-weight: 600; }
.site-header .site-title a,
.site-header .site-title a:hover { color: #fff; }
.site-header .site-description {
	font-family: var(--font-body);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin: .3rem 0 0;
}
.main-header-menu .menu-link {
	font-family: var(--font-body);
	font-size: .875rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	position: relative;
}
.ast-desktop .main-header-menu > .menu-item > .menu-link::after {
	content: "";
	position: absolute;
	left: 1em; right: 1em; bottom: 1.6em;
	height: 2px;
	background: var(--color-gold);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .25s ease;
}
/* La página actual y el paso del ratón se marcan con la línea, no solo con el color (WCAG 1.4.1). */
.ast-desktop .main-header-menu > .menu-item > .menu-link:hover::after,
.ast-desktop .main-header-menu > .menu-item > .menu-link:focus-visible::after,
.ast-desktop .main-header-menu > .current-menu-item > .menu-link::after { transform: scaleX(1); }
.ast-header-break-point .main-header-menu .current-menu-item > .menu-link { text-decoration: underline; text-decoration-color: var(--color-gold); text-underline-offset: .35em; text-decoration-thickness: 2px; }
/* Botón del menú móvil: objetivo táctil de 44 px. */
.ast-mobile-menu-trigger-minimal { min-width: 44px; min-height: 44px; }
.ast-mobile-header-content {
	background: var(--color-primary);
	border-top: 1px solid rgba(177, 138, 58, .45);
	box-shadow: 0 12px 24px rgba(7, 17, 31, .35);
	padding: .25rem 0 .75rem;
}
.ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .main-header-menu,
.ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link { background-color: var(--color-primary); color: #fff; }
.ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link:hover { background-color: var(--color-deep); color: #fff; text-decoration: underline; text-decoration-color: var(--color-gold); }
.ast-mobile-header-content .main-header-menu .menu-item { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ast-mobile-header-content .main-header-menu .menu-item:last-child { border-bottom: 0; }
.ast-mobile-header-content .main-header-menu .menu-link { display: flex; align-items: center; min-height: 52px; padding: .75rem 24px; }

/* ---------- Piezas de marca usadas en Elementor (clase CSS del widget) ---------- */
/* Antetítulo con línea dorada, como «— PROCURADORA —» del logotipo. */
.rpg-kicker .elementor-heading-title,
.rpg-kicker { letter-spacing: .24em; text-transform: uppercase; }
/* En flex, si el texto ocupa dos líneas la línea dorada queda a su lado y no se mete entre ellas. */
.rpg-kicker .elementor-heading-title { display: flex; align-items: center; text-wrap: balance; line-height: 1.6; }
.rpg-kicker-centro .elementor-heading-title { justify-content: center; text-align: center; }
.rpg-kicker .elementor-heading-title::before,
.rpg-kicker-centro .elementor-heading-title::after { flex: none; }
@media (max-width: 544px) {
	.rpg-kicker .elementor-heading-title { letter-spacing: .14em; }
	.rpg-kicker .elementor-heading-title::before { width: 20px; margin-right: .6rem; }
}
.rpg-kicker .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 32px;
	height: 1px;
	margin-right: .85rem;
	vertical-align: middle;
	background: var(--color-gold);
}
.rpg-kicker-centro .elementor-heading-title::after {
	content: "";
	display: inline-block;
	width: 32px;
	height: 1px;
	margin-left: .85rem;
	vertical-align: middle;
	background: var(--color-gold);
}

/* Hero de portada: titular grande en Cormorant, subtítulo y lugar. */
.rpg-hero { position: relative; overflow: hidden; }
.rpg-hero::before {
	/* Monograma de líneas finas al fondo (decorativo). */
	content: "";
	position: absolute;
	right: -6%;
	top: -10%;
	width: 52%;
	aspect-ratio: 1;
	border: 1px solid rgba(177, 138, 58, .18);
	border-radius: 50%;
	pointer-events: none;
}
.rpg-hero > .e-con-inner { position: relative; z-index: 1; }
.rpg-hero h1.elementor-heading-title { text-wrap: balance; }
.rpg-lugar .elementor-heading-title { letter-spacing: .08em; }

.rpg-foto img { border-radius: var(--radius-small); box-shadow: 0 28px 56px -32px rgba(7, 17, 31, .6); }
.rpg-foto-marco { position: relative; }
.rpg-foto-marco::before {
	content: "";
	position: absolute;
	inset: 1.25rem -1.25rem -1.25rem 1.25rem;
	border: 1px solid var(--color-gold);
	border-radius: var(--radius-small);
	z-index: 0;
}
.rpg-foto-marco img { position: relative; z-index: 1; }
@media (max-width: 767px) {
	.rpg-foto-marco::before { inset: .75rem -.75rem -.75rem .75rem; }
}

.rpg-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; border-top-color: var(--color-gold) !important; }
.rpg-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -28px rgba(7, 17, 31, .45); }
.rpg-card .elementor-icon-wrapper { line-height: 0; }
.rpg-card .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid var(--color-gold);
	background: transparent;
	color: var(--color-gold-text);
}
.rpg-card .elementor-icon svg { fill: var(--color-gold-text); }

.rpg-lista ul { list-style: none; padding-left: 0; margin: 0; }
.rpg-lista li {
	padding: .65rem 0 .65rem 1.75rem;
	border-bottom: 1px solid var(--color-border);
	position: relative;
}
.rpg-lista li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.2rem;
	width: .55rem;
	height: .55rem;
	transform: rotate(45deg);
	border: 1.5px solid var(--color-gold);
}
.rpg-lista li:last-child { border-bottom: 0; }

/* Tablet vertical (768–900 px): las filas texto + foto se apilan; dos columnas de unos 340 px
   dejaban el texto y el formulario demasiado estrechos. Desde 901 px vuelven las dos columnas. */
@media (min-width: 768px) and (max-width: 900px) {
	.rpg-fila:has(> .rpg-col) { flex-direction: column !important; }
	.rpg-fila:has(> .rpg-col) > .rpg-col { --width: 100% !important; width: 100% !important; }
	.rpg-fila:has(> .rpg-col) > .rpg-col > .elementor-widget-image.rpg-foto:only-child img { max-height: 480px; }
}

/* Secciones oscuras (azul noche / azul profundo): textos en blanco. */
.rpg-oscuro .elementor-widget-text-editor,
.rpg-oscuro .elementor-widget-text-editor p { color: #fff; }
.rpg-oscuro .elementor-widget-text-editor a { color: #fff; }

/* Franja de datos rápidos (azul noche). */
.rpg-datos-rapidos .rpg-icono { color: var(--color-gold); width: 26px; height: 26px; }
.rpg-dato-rapido .elementor-widget-text-editor p { margin: 0; }
.rpg-dato-rapido .rpg-etiqueta { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold); margin: .6rem 0 .3rem; }
.rpg-dato-rapido a { text-decoration: underline; text-decoration-color: var(--color-gold); text-underline-offset: .22em; }
.rpg-dato-rapido a:hover { text-decoration-thickness: 2px; }

/* Ficha profesional (Sobre mí). */
.rpg-ficha dl { margin: 0; display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: .75rem 1.5rem; }
.rpg-ficha dt { font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-text); padding-top: .3rem; }
.rpg-ficha dd { margin: 0; color: var(--color-text); font-weight: 500; }
@media (max-width: 480px) {
	.rpg-ficha dl { grid-template-columns: 1fr; gap: .2rem; }
	.rpg-ficha dd { margin-bottom: .75rem; }
}

/* Sin margen tras el último párrafo: el espacio entre bloques lo pone Elementor. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Enlaces dentro de texto: subrayados, no se distinguen solo por el color (WCAG 1.4.1). */
.site-content .elementor-widget-text-editor a,
.site-content .rpg-form a { color: var(--color-primary); text-decoration: underline; text-decoration-color: var(--color-gold); text-underline-offset: .18em; text-decoration-thickness: 1px; }
.site-content .elementor-widget-text-editor a:hover,
.site-content .rpg-form a:hover { color: var(--color-gold-text); text-decoration-thickness: 2px; }
.site-content .rpg-oscuro .elementor-widget-text-editor a,
.site-content .rpg-oscuro .elementor-widget-text-editor a:hover { color: #fff; }

/* Bloques de datos de contacto. */
.rpg-dato .rpg-icono { color: var(--color-gold-text); width: 22px; height: 22px; }
.site-content .rpg-dato a { color: var(--color-primary); text-decoration: none; border-bottom: 2px solid var(--color-gold); }
.site-content .rpg-dato a:hover { color: var(--color-gold-text); border-bottom-color: var(--color-gold-text); }
.rpg-dato p { margin: 0; }
/* Varios teléfonos seguidos: separación suficiente para pulsar cada uno con el dedo. */
.rpg-dato a[href^="tel:"] { display: inline-block; margin: .3rem 0; }

.rpg-legal h2 { font-size: 1.85rem; margin-top: 2.25rem; }
.rpg-legal h3 { font-size: 1.3rem; margin-top: 1.5rem; }
.rpg-legal ul { margin-left: 1.25rem; }
.rpg-legal table { border-collapse: collapse; width: 100%; font-size: .9375rem; margin: 1rem 0 1.5rem; }
.rpg-legal th, .rpg-legal td { border: 1px solid var(--color-border); padding: .6rem .75rem; text-align: left; vertical-align: top; }
.rpg-legal th { background: var(--color-bg-alt); color: var(--color-primary); }
.rpg-legal .rpg-tabla { overflow-x: auto; }
/* Móvil: cada cookie se muestra como una ficha (etiqueta + valor) en lugar de una tabla de 5 columnas. */
@media (max-width: 600px) {
	.rpg-legal table, .rpg-legal tbody, .rpg-legal tr, .rpg-legal td { display: block; width: 100%; }
	.rpg-legal thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.rpg-legal tr { border: 1px solid var(--color-border); border-radius: var(--radius-small); margin-bottom: 1rem; overflow: hidden; }
	.rpg-legal td { border: 0; border-bottom: 1px solid var(--color-border); display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; }
	.rpg-legal td:last-child { border-bottom: 0; }
	.rpg-legal td::before { content: attr(data-label); font-weight: 700; color: var(--color-primary); }
	.rpg-legal tr td:first-child { background: var(--color-bg-alt); font-weight: 600; color: var(--color-primary); }
}

/* Datos aún no facilitados por la clienta: muy visibles para no publicarlos por error. */
.rpg-pendiente { background: #FFF3C4; color: #5C3B00; outline: 1px dashed #5C3B00; padding: 0 .25em; font-family: var(--font-body); font-size: 1rem; }

/* ---------- Formulario de contacto (Contact Form 7) ---------- */
.rpg-form p { margin: 0 0 1.9rem; }
.rpg-form__nota { font-size: .9375rem; }
.rpg-form__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }
@media (max-width: 600px) { .rpg-form__fila { grid-template-columns: 1fr; } }
.rpg-form label { display: block; font-size: 1rem; font-weight: 600; color: var(--color-primary); }
.rpg-form .wpcf7-form-control-wrap { display: block; margin-top: .35rem; position: relative; }
.rpg-form input[type="text"],
.rpg-form input[type="email"],
.rpg-form input[type="tel"],
.rpg-form textarea {
	width: 100%;
	padding: .8rem .9rem;
	font-size: 1rem;
	color: var(--color-text);
	background: #fff;
	border: 1px solid var(--color-control-border);
	border-radius: var(--radius-small);
	transition: border-color .2s ease;
}
.rpg-form textarea { min-height: 9rem; resize: vertical; }
.rpg-form input:focus-visible,
.rpg-form textarea:focus-visible {
	outline: 3px solid var(--focus-color);
	outline-offset: 2px;
	border-color: var(--color-primary);
}
.rpg-form [aria-invalid="true"] { border-color: var(--color-error) !important; border-width: 2px !important; }
/* El aviso ocupa el margen inferior reservado: aparecer o desaparecer no desplaza el formulario. */
.rpg-form .wpcf7-not-valid-tip { position: absolute; left: 0; top: 100%; color: var(--color-error); font-size: .875rem; font-weight: 600; line-height: 1.3; margin-top: .25rem; }
.rpg-form .wpcf7-not-valid-tip::before { content: "⚠ "; }
.rpg-form__legal { font-size: .875rem; line-height: 1.55; padding: 1rem 1.1rem; background: var(--color-bg-alt); border-left: 3px solid var(--color-gold); border-radius: 0 var(--radius-small) var(--radius-small) 0; margin-bottom: 1rem; }
.rpg-form__legal p { margin: 0; }
.rpg-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; display: block; }
.rpg-form .wpcf7-acceptance label { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; color: var(--color-text); cursor: pointer; }
.rpg-form input[type="checkbox"] { width: 1.25rem; height: 1.25rem; margin-top: .2rem; flex: none; accent-color: var(--color-primary); }
.rpg-form input[type="submit"] {
	font-family: var(--font-body);
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--color-primary);
	background: var(--color-gold);
	border: 0;
	border-radius: var(--radius-small);
	padding: 1rem 1.9rem;
	min-height: 48px;
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease;
}
.rpg-form input[type="submit"]:hover,
.rpg-form input[type="submit"]:focus-visible { background: var(--color-gold-text); color: #fff; text-decoration: underline; }
.rpg-form input[type="submit"]:disabled { opacity: .6; cursor: not-allowed; }
.rpg-form .wpcf7-spinner { vertical-align: middle; }
.wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: .9rem 1rem; border-width: 2px; border-radius: var(--radius-small); font-size: 1rem; background: #fff; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: var(--color-error); color: var(--color-error); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--color-ok); color: #155D2D; }

/* ---------- Botones de Elementor ---------- */
.elementor-button { min-height: 48px; display: inline-flex; align-items: center; letter-spacing: .12em; text-transform: uppercase; transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.elementor-button:hover, .elementor-button:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.elementor-button .elementor-button-icon svg { width: 1.1em; height: 1.1em; }

/* ---------- Página 404 (404.php) y buscador ---------- */
.rpg-404 { background: var(--color-bg-alt); padding: clamp(56px, 8vw, 104px) 16px; }
.rpg-404__caja { max-width: 720px; margin: 0 auto; text-align: center; }
.rpg-404__kicker { color: var(--color-gold-text); font-size: .8125rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin: 0 0 .75rem; }
.rpg-404 h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.1; color: var(--color-primary); margin: 0 0 1rem; }
.rpg-404__texto { font-size: 1.125rem; color: var(--color-text-secondary); margin: 0 auto 2rem; max-width: 60ch; }
.rpg-404__buscar { max-width: 520px; margin: 0 auto 2.25rem; text-align: left; }
.rpg-404__buscar label { display: block; font-weight: 600; color: var(--color-primary); margin-bottom: .4rem; }
.rpg-404__campo { display: flex; gap: .5rem; }
.rpg-404__campo input { flex: 1; min-width: 0; min-height: 48px; padding: .7rem .9rem; font-size: 1rem; color: var(--color-text); background: #fff; border: 1px solid var(--color-control-border); border-radius: var(--radius-small); }
.rpg-404__campo button { min-height: 48px; padding: 0 1.4rem; font-weight: 700; font-size: 1rem; color: #fff; background: var(--color-primary); border: 0; border-radius: var(--radius-small); cursor: pointer; }
.rpg-404__campo button:hover, .rpg-404__campo button:focus-visible { background: var(--color-deep); text-decoration: underline; }
.rpg-404__enlaces ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.rpg-404__enlaces a { display: inline-flex; align-items: center; min-height: 44px; padding: .4rem 1.1rem; border: 2px solid var(--color-primary); border-radius: var(--radius-small); color: var(--color-primary); font-weight: 600; text-decoration: none; }
.rpg-404__enlaces a:hover { background: var(--color-primary); color: #fff; text-decoration: underline; }
.error404 .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.search-form .search-field { border: 1px solid var(--color-control-border) !important; color: var(--color-text); }
.search-form .search-field::placeholder { color: var(--color-text-secondary); opacity: 1; }

/* ---------- Banner de cookies (CookieYes) ---------- */
.cky-consent-container .cky-notice-btn-wrapper { display: flex; flex-direction: column; gap: 10px; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn { width: 100%; margin: 0; }
.cky-consent-container .cky-btn,
.cky-modal .cky-btn { opacity: 1; font-family: var(--font-body); font-weight: 600; border-radius: var(--radius-small); }
.cky-consent-container .cky-btn:hover,
.cky-modal .cky-btn:hover { opacity: 1; text-decoration: underline; }
.cky-modal .cky-accordion-btn { letter-spacing: normal; text-transform: none; font-family: var(--font-body); font-weight: 600; }
.cky-consent-container :focus-visible,
.cky-modal :focus-visible,
.cky-btn-revisit-wrapper :focus-visible { outline: 3px solid var(--focus-color); outline-offset: 2px; }

/* ---------- Widget de accesibilidad (OneTap) ---------- */
/* Cerrado, el panel queda fuera de pantalla pero visible: se oculta del todo. */
nav.onetap-accessibility:not(.onetap-toggle-open) { visibility: hidden; box-shadow: none !important; }
/* El botón trae el z-index máximo y tapaba «Rechazar todas» del banner de cookies en móvil. */
body .onetap-container-toggle .onetap-toggle { z-index: 9999998 !important; }

/* ---------- Pie ---------- */
.site-footer { font-size: 1rem; }
.site-primary-footer-wrap { border-top: 1px solid rgba(177, 138, 58, .45); }
.site-footer .ast-builder-html-element h2,
.site-footer .footer-widget-area h2 {
	font-family: var(--font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	line-height: 1.3;
	color: var(--color-gold);
	margin-bottom: 1rem;
}
.site-footer .ast-builder-html-element p,
.site-footer .footer-widget-area p { color: #fff; }
.site-footer a { color: #fff; text-decoration: underline; text-underline-offset: .2em; text-decoration-color: var(--color-gold); }
.site-footer a:hover { color: var(--color-gold); text-decoration-thickness: 2px; }
.site-footer .footer-widget-area img { max-width: 200px; height: auto; }
.site-footer a.rpg-pie-marca { display: inline-block; text-decoration: none; }
.site-footer a.rpg-pie-marca:hover .rpg-pie-nombre { text-decoration: underline; text-decoration-color: var(--color-gold); text-underline-offset: .25em; }
.site-footer .rpg-pie-nombre { color: #fff; font-family: var(--font-heading); font-size: 1.15rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.35; margin-top: 1.25rem; }
.site-footer .rpg-pie-nombre span { display: block; color: var(--color-gold); font-size: .875em; letter-spacing: .18em; }
@media (min-width: 922px) {
	.site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns: 1.2fr 1fr 1fr; column-gap: 3rem; }
}
.rpg-pie-lista { list-style: none; margin: 0 0 1.25rem; padding: 0; }
.rpg-pie-lista li { display: flex; align-items: flex-start; gap: .75rem; margin: 0 0 .85rem; color: #fff; line-height: 1.55; }
.rpg-pie-lista li:last-child,
.rpg-pie-lista:last-child { margin-bottom: 0; }
.rpg-icono { flex: none; }
.rpg-pie-lista .rpg-icono { color: var(--color-gold); margin-top: .2em; }
.site-footer a.rpg-pie-cta {
	display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: .6rem 1.25rem;
	background: var(--color-gold); border-radius: var(--radius-small);
	color: var(--color-primary); font-weight: 700; font-size: .875rem; letter-spacing: .12em; text-transform: uppercase;
	text-decoration: none; transition: background-color .3s ease, color .3s ease;
}
.site-footer a.rpg-pie-cta:hover,
.site-footer a.rpg-pie-cta:focus-visible { background: #fff; color: var(--color-primary); text-decoration: underline; }
.site-footer a.rpg-pie-cta .rpg-icono { transition: transform .3s ease; }
.site-footer a.rpg-pie-cta:hover .rpg-icono { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .site-footer a.rpg-pie-cta, .site-footer a.rpg-pie-cta .rpg-icono { transition: none; } }
.site-below-footer-wrap { border-top: 1px solid rgba(177, 138, 58, .35); }
.site-below-footer-wrap .ast-footer-copyright p { font-size: .875rem; letter-spacing: .04em; }
#astra-footer-menu .menu-link { font-size: .875rem; }
#astra-footer-menu { flex-wrap: wrap; column-gap: .25rem; }
@media (max-width: 1240px) {
	.site-footer .site-primary-footer-wrap,
	.site-footer .site-below-footer-wrap { padding-left: 24px; padding-right: 24px; }
}
@media (min-width: 545px) and (max-width: 921px) {
	.site-primary-footer-wrap .ast-builder-grid-row { row-gap: 2.25rem; column-gap: 2rem; }
}
@media (max-width: 544px) {
	.site-primary-footer-wrap .site-footer-section + .site-footer-section { margin-top: 2rem; }
}

/* Distintivos obligatorios del Kit Digital (Plan de Recuperación, Transformación y Resiliencia). */
.rpg-kit-digital { background: #fff; padding: 1rem clamp(1rem, 4vw, 2.5rem); text-align: center; }
.rpg-kit-digital img { width: 100%; max-width: 900px; height: auto; display: inline-block; }
/* Hueco bajo los logos para que los botones flotantes (cookies y accesibilidad) no los tapen. */
@media (max-width: 1100px) { .rpg-kit-digital { padding-bottom: 5.5rem; } }

/* ---------- Animaciones (suaves, sin parpadeos) ---------- */
@keyframes rpgFadeInUp {
	from { opacity: 0; transform: translate3d(0, 20px, 0); }
	to   { opacity: 1; transform: none; }
}
@keyframes rpgFadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.elementor-element.animated { animation-duration: .9s; animation-timing-function: cubic-bezier(.22, .61, .36, 1); }
.elementor-element.animated.animated-slow { animation-duration: 1.4s; }
.elementor-element.animated.fadeInUp { animation-name: rpgFadeInUp; }
.elementor-element.animated.fadeIn { animation-name: rpgFadeIn; }

.elementor-widget-divider.animated .elementor-divider-separator::before,
.elementor-widget-divider.animated .elementor-divider-separator::after {
	transform-origin: left;
	animation: rpgDibujar 1.1s cubic-bezier(.22, .61, .36, 1) both;
}
@keyframes rpgDibujar {
	from { transform: scaleX(0); }
	to   { transform: scaleX(1); }
}

/* Accesibilidad: sin animaciones si el usuario ha pedido reducir el movimiento. */
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible { visibility: visible !important; opacity: 1 !important; }
	.elementor-element.animated,
	.elementor-widget-divider.animated .elementor-divider-separator::before,
	.elementor-widget-divider.animated .elementor-divider-separator::after { animation: none !important; }
	.rpg-card, .rpg-card:hover, .elementor-button { transition: none !important; transform: none !important; }
	.ast-desktop .main-header-menu > .menu-item > .menu-link::after { transition: none; }
}
