/* ==========================================================================
   Antonio Godoy (06-10-2026) · colores de la base cambiados por los de marca:
   rojo #E82828 -> turquesa #007A96 · oscuro #1D1D1B -> petróleo #132A30 ·
   acentos cálidos -> degradado del logo #00B1D3 / #93C749.
   Fuentes: la CSS local de Elementor apunta a www.basegrupodw.com (CORS) y no
   se regenera; se redeclaran aquí con los mismos archivos de este servidor.
   ========================================================================== */
@font-face{font-family:'Plus Jakarta Sans';font-style:italic;font-weight:200 800;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/plusjakartasans-16b5788c.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Plus Jakarta Sans';font-style:italic;font-weight:200 800;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/plusjakartasans-a2b0c2e3.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/plusjakartasans-5d8873d8.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/plusjakartasans-d4d84dd1.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/dmsans-a233b6d6.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/dmsans-5224995c.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/dmsans-850928f5.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/elementor/google-fonts/fonts/dmsans-002a94d0.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ==========================================================================
   GrupoDW · custom.css (tema hijo astra-child)
   Clases propias con prefijo gdw-. Los textos, colores y tipografías se
   editan en Elementor; aquí solo va lo que Elementor gratis no permite.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tipografía global
   Plus Jakarta Sans con letter-spacing negativo deja el espacio entre
   palabras en ~4 px y parecen pegadas («Encifras»).
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	word-spacing: 0.08em;
}

/* Texto en el color de marca dentro de un título:
   <span class="gdw-text-accent">crecer online</span> */
.gdw-text-accent {
	color: var(--e-global-color-primary, #007A96);
}

/* --------------------------------------------------------------------------
   2. Home · hero
   Segunda línea grande del H1: Diseño que <span class="gdw-hero__big">conecta</span>
   -------------------------------------------------------------------------- */
.gdw-hero__title .gdw-hero__big {
	display: block;
	font-size: 2.05em;
	line-height: 0.88;
	letter-spacing: -0.045em;
	margin-top: 0.04em;
}

/* --------------------------------------------------------------------------
   3. Marquee (.gdw-marquee)
   Estructura en Elementor:
     contenedor .gdw-marquee
       contenedor .gdw-marquee__track   (añadir --reverse para ir al revés)
         títulos .gdw-marquee__item     (una palabra cada uno)
   custom.js duplica las palabras y añade .is-animated. En el editor no se
   anima, para que se pueda editar.
   -------------------------------------------------------------------------- */
.gdw-marquee {
	overflow: hidden;
}

.gdw-marquee .gdw-marquee__track {
	flex-wrap: nowrap !important;
	width: max-content !important;
	max-width: none !important;
	align-self: flex-start;
}

.gdw-marquee .gdw-marquee__item {
	flex: none !important;
	width: auto !important;
}

.gdw-marquee .gdw-marquee__item .elementor-heading-title {
	white-space: nowrap;
}

.gdw-marquee .gdw-marquee__item .elementor-heading-title::after {
	content: "\2192"; /* → */
	color: var(--e-global-color-primary, #007A96);
	margin: 0 0.6em;
}

.gdw-marquee .gdw-marquee__track--reverse .gdw-marquee__item .elementor-heading-title::after {
	content: "\2190"; /* ← */
}

/* Variante de una sola frase: sin flechas, solo un hueco entre repeticiones */
.gdw-marquee .gdw-marquee__track--plain .gdw-marquee__item .elementor-heading-title::after {
	content: "";
	display: inline-block;
	width: 6vw;
	margin: 0;
}

/* Variante con estrella que gira entre palabras */
.gdw-marquee .gdw-marquee__track--star .gdw-marquee__item .elementor-heading-title::after {
	content: "\2733"; /* ✳ */
	display: inline-block;
	margin: 0 0.35em;
	font-size: 0.6em;
	vertical-align: middle;
	color: var(--e-global-color-primary, #007A96);
	animation: gdw-spin 8s linear infinite;
}

@keyframes gdw-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.gdw-marquee .gdw-marquee__track--star .gdw-marquee__item .elementor-heading-title::after {
		animation: none;
	}
}

/* Texto en gris dentro de un título: <span class="gdw-text-muted">…</span> */
.gdw-text-muted {
	color: #7C8A8C;
}

.gdw-marquee.is-animated .gdw-marquee__track {
	animation: gdw-marquee var(--gdw-marquee-duration, 45s) linear infinite;
}

.gdw-marquee.is-animated .gdw-marquee__track--reverse {
	animation-direction: reverse;
}

@keyframes gdw-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.gdw-marquee.is-animated .gdw-marquee__track {
		animation: none;
	}
}

/* --------------------------------------------------------------------------
   3b. Título relleno con imagen (.gdw-text-fill en un widget Título)
   La imagen se pone en Elementor: widget → Avanzado → Fondo (clásico).
   Sin imagen de fondo el texto no se vería: poner siempre la imagen.
   -------------------------------------------------------------------------- */
.gdw-text-fill,
.gdw-text-fill > .elementor-widget-container {
	-webkit-background-clip: text;
	background-clip: text;
}

.gdw-text-fill .elementor-heading-title {
	color: transparent !important;
	-webkit-text-fill-color: transparent;
	/* Con interlineado < 1 las colas (g, p, y) salen de la caja y no se pintan */
	padding-bottom: 0.18em;
}

/* --------------------------------------------------------------------------
   4. FAQ (.gdw-faq sobre el widget Acordeón anidado de Elementor)
   Numeración 01, 02… automática e icono dentro de un círculo.
   -------------------------------------------------------------------------- */
.gdw-faq .e-n-accordion {
	counter-reset: gdw-faq;
	border-top: 1px solid var(--e-global-color-secondary, #132A30);
}

.gdw-faq .e-n-accordion-item {
	counter-increment: gdw-faq;
}

.gdw-faq .e-n-accordion-item-title-header {
	display: flex;
	align-items: center;
	gap: 16px;
}

.gdw-faq .e-n-accordion-item-title-header::before {
	content: counter(gdw-faq, decimal-leading-zero);
	flex: 0 0 clamp(44px, 9vw, 140px);
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(18px, 1.6vw, 24px);
	font-weight: 300;
	color: #7C8A8C;
}

.gdw-faq .e-n-accordion-item[open] .e-n-accordion-item-title-header::before {
	color: var(--e-global-color-secondary, #132A30);
}

.gdw-faq .e-n-accordion-item-title-icon > span {
	width: 32px;
	height: 32px;
	border: 1px solid currentColor;
	border-radius: 50%;
	display: grid;
	place-items: center;
	transition: background-color 0.2s, color 0.2s;
}

.gdw-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon > span {
	background: var(--e-global-color-secondary, #132A30);
	border-color: var(--e-global-color-secondary, #132A30);
}

.gdw-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg,
.gdw-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon i {
	fill: #FFFFFF;
	color: #FFFFFF;
}

/* Respuesta alineada con la pregunta, no con el número */
.gdw-faq .e-n-accordion-item > .e-con {
	padding-left: calc(clamp(44px, 9vw, 140px) + 16px);
}

@media (max-width: 767px) {
	.gdw-faq .e-n-accordion-item > .e-con {
		padding-left: 0;
	}
}

/* --------------------------------------------------------------------------
   4b. Acordeón en tarjetas (.gdw-accordion--cards en el Acordeón anidado)
   Al abrirse, título y contenido forman una sola tarjeta: el título solo
   queda redondeado arriba y el contenido abajo (su borde y su radio se
   ponen en Elementor: Estilo → Contenido).
   -------------------------------------------------------------------------- */
.gdw-accordion--cards .e-n-accordion-item[open] > .e-n-accordion-item-title {
	border-bottom-left-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
	border-bottom-color: transparent !important;
}

/* --------------------------------------------------------------------------
   4c. Carrusel (.gdw-carousel > .gdw-carousel__track > .gdw-carousel__slide)
   Lo mueve custom.js. En el editor las diapositivas se apilan para editarlas.
   -------------------------------------------------------------------------- */
.gdw-carousel {
	overflow: hidden;
}

.gdw-carousel .gdw-carousel__track {
	flex-wrap: nowrap !important;
}

.gdw-carousel.is-ready .gdw-carousel__track {
	transition: transform 0.6s ease;
	touch-action: pan-y;
}

.gdw-carousel .gdw-carousel__slide {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}

.elementor-editor-active .gdw-carousel .gdw-carousel__track {
	flex-wrap: wrap !important;
	row-gap: 30px;
}

.gdw-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 30px;
}

.gdw-carousel__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #DCE6E6;
	cursor: pointer;
	transition: width 0.3s, background-color 0.3s;
}

.gdw-carousel__dot.is-active {
	width: 28px;
	background: var(--e-global-color-primary, #007A96);
}

@media (prefers-reduced-motion: reduce) {
	.gdw-carousel.is-ready .gdw-carousel__track {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   5. Cabecera fija (Ultimate Addons: #masthead)
   Astra pone overflow-x:hidden en body, y eso impide position:sticky;
   overflow-x:clip también evita el scroll lateral, pero deja fija la cabecera.
   -------------------------------------------------------------------------- */
html body {
	overflow-x: clip;
}

#masthead {
	position: sticky !important; /* Ultimate Addons pone position:relative */
	top: 0;
	z-index: 999;
	transition: box-shadow 0.2s;
}

.admin-bar #masthead {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar #masthead {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar #masthead {
		top: 0;
	}
}

body.gdw-is-scrolled #masthead {
	box-shadow: 0 6px 24px rgba(14, 30, 34, 0.08);
}

/* Los enlaces a secciones (#servicios) no quedan tapados por la cabecera */
.elementor-element[id] {
	scroll-margin-top: 110px;
}

/* --------------------------------------------------------------------------
   6. Formularios de Contact Form 7 (.gdw-form en el widget que lo contiene)
   Plantilla del formulario: filas .gdw-form__row (2 columnas), campos
   .gdw-form__field, casilla .gdw-form__privacy y botón .gdw-form__submit.
   -------------------------------------------------------------------------- */
.gdw-form .gdw-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
}

@media (max-width: 767px) {
	.gdw-form .gdw-form__row {
		grid-template-columns: 1fr;
	}
}

.gdw-form .wpcf7-form p {
	margin: 0 0 18px;
}

.gdw-form .gdw-form__field label {
	display: block;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: var(--e-global-color-secondary, #132A30);
}

.gdw-form input[type="text"],
.gdw-form input[type="email"],
.gdw-form input[type="tel"],
.gdw-form textarea {
	width: 100%;
	margin-top: 8px;
	padding: 14px 16px;
	border: 1px solid #DCE6E6;
	border-radius: 12px;
	background: #FFFFFF;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	color: var(--e-global-color-secondary, #132A30);
	box-shadow: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.gdw-form textarea {
	min-height: 150px;
	resize: vertical;
}

.gdw-form input:focus,
.gdw-form textarea:focus {
	border-color: var(--e-global-color-secondary, #132A30);
	box-shadow: 0 0 0 3px rgba(0, 122, 150, 0.18);
	outline: none;
}

.gdw-form .gdw-form__privacy {
	font-size: 14px;
	color: var(--e-global-color-text, #4D4D4B);
}

.gdw-form .gdw-form__privacy .wpcf7-list-item {
	margin: 0;
}

.gdw-form .gdw-form__privacy a {
	color: #00627A;
}

.gdw-form .gdw-form__submit {
	background: #00627A;
	color: #FFFFFF;
	border: 0;
	border-radius: 999px;
	padding: 16px 34px;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s;
}

.gdw-form .gdw-form__submit:hover,
.gdw-form .gdw-form__submit:focus {
	background: var(--e-global-color-secondary, #132A30);
}

.gdw-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #00627A;
}

.gdw-form .wpcf7 form .wpcf7-response-output {
	margin: 10px 0 0;
	padding: 12px 16px;
	border-radius: 12px;
}

/* Sello de reCAPTCHA oculto (chocaba con el botón de WhatsApp). Google lo
   permite si junto al formulario está su aviso: widget .gdw-form__recaptcha */
.grecaptcha-badge {
	visibility: hidden !important;
}

.gdw-form__recaptcha,
.gdw-form__recaptcha p {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: #7C8A8C;
}

.gdw-form__recaptcha a {
	color: inherit;
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   7. Enlaces sin subrayado (Astra los subraya dentro del contenido)
   -------------------------------------------------------------------------- */
.gdw-blog__grid a,
.gdw-contacto__datos a {
	text-decoration: none !important; /* Astra: .entry-content a { underline } */
}

.gdw-blog__grid .eael-entry-title a:hover,
.gdw-contacto__datos a:hover {
	color: #00627A;
}

/* --------------------------------------------------------------------------
   7b. Animaciones de entrada de Elementor (fadeInUp en los widgets)
   Si el sistema pide reducir movimiento, todo se muestra sin animar.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible {
		visibility: visible !important;
	}

	.elementor-element.animated {
		animation: none !important;
	}
}

/* --------------------------------------------------------------------------
   7c. Equipo (Conócenos): fotos en formato retrato 4:5 y columna de texto
   fija al hacer scroll (altura de la cabecera + 30 px). --gdw-header-h lo
   calcula custom.js. Solo en escritorio.
   -------------------------------------------------------------------------- */
.gdw-equipo__foto img {
	width: 100%;
	height: auto !important;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

@media (min-width: 1025px) {
	.gdw-equipo__intro {
		position: sticky !important;
		top: calc(var(--gdw-header-h, 85px) + 30px + var(--wp-admin--admin-bar--height, 0px));
		align-self: flex-start;
	}
}

/* --------------------------------------------------------------------------
   8. Entradas del blog: ancho completo con el padding lateral de la home
   (50 px; 15 px en móvil). El banner con la imagen destacada sale de
   functions.php (gdw_child_single_post_banner).
   -------------------------------------------------------------------------- */
body.single-post .site-content > .ast-container {
	padding-left: 50px;
	padding-right: 50px;
}

body.single-post .site-content article.post,
body.single-post .site-content .ast-article-single {
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 767px) {
	body.single-post .site-content > .ast-container {
		padding-left: 15px;
		padding-right: 15px;
	}
}
/* ==========================================================================
   9. HOME 2 (.gdw-h2) · versión oscura con animaciones ligadas al scroll
   custom.js pone en cada [data-gdw-scroll] las variables:
     --p  avance de 0 a 1 mientras la sección pasa por la pantalla
     --ps seno de p (0 → 1 → 0): para desplegar y volver a contraer
   y añade .is-in a .gdw-h2-reveal y .gdw-split al entrar en pantalla.
   ========================================================================== */

/* --- Página oscura: fondo, cabecera y logo (body.gdw-theme-dark lo pone custom.js) --- */
body.gdw-theme-dark,
body.gdw-theme-dark #page,
body.gdw-theme-dark .site-content {
	background: #0B1A1E;
}

/* El desenfoque va en una capa ::before y no en la barra: un backdrop-filter en
   la barra encerraría dentro de ella el panel fijo del menú móvil */
body.gdw-theme-dark .gdw-header__bar {
	position: relative;
	isolation: isolate;
	background-color: transparent !important;
	border-color: rgba(255, 255, 255, 0.08) !important;
}

body.gdw-theme-dark .gdw-header__bar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: rgba(11, 26, 30, 0.78);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	pointer-events: none;
}

/* Menú móvil (panel lateral) en la página oscura */
body.gdw-theme-dark #masthead .hfe-side,
body.gdw-theme-dark #masthead .hfe-flyout-content {
	background-color: #10252A !important;
}

body.gdw-theme-dark #masthead .hfe-flyout-close,
body.gdw-theme-dark #masthead .hfe-flyout-close svg {
	color: #F1F6F6 !important;
	fill: #F1F6F6 !important;
}

body.gdw-theme-dark #masthead .hfe-nav-menu a.hfe-menu-item,
body.gdw-theme-dark #masthead .hfe-nav-menu a.hfe-sub-menu-item,
body.gdw-theme-dark #masthead .hfe-nav-menu .sub-arrow {
	color: #F1F6F6 !important;
}

body.gdw-theme-dark #masthead .hfe-nav-menu a.hfe-menu-item:hover,
body.gdw-theme-dark #masthead .hfe-nav-menu .current-menu-item > a.hfe-menu-item,
body.gdw-theme-dark #masthead .hfe-nav-menu .current-menu-ancestor > a.hfe-menu-item,
body.gdw-theme-dark #masthead .hfe-nav-menu a.hfe-sub-menu-item-active,
body.gdw-theme-dark #masthead .hfe-nav-menu a.hfe-sub-menu-item:hover {
	color: #007A96 !important;
}

body.gdw-theme-dark #masthead .sub-menu,
body.gdw-theme-dark #masthead .hfe-dropdown,
body.gdw-theme-dark #masthead .hfe-dropdown .menu-item a {
	background-color: #10252A !important;
	border-color: rgba(255, 255, 255, 0.08) !important;
}

body.gdw-theme-dark #masthead .hfe-nav-menu__toggle,
body.gdw-theme-dark #masthead .hfe-nav-menu-icon,
body.gdw-theme-dark #masthead .hfe-nav-menu-icon svg {
	color: #F1F6F6 !important;
	fill: #F1F6F6 !important;
}

body.gdw-theme-dark.gdw-is-scrolled #masthead {
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
}

/* --- Base --- */
.gdw-h2 {
	--h2-bg: #0B1A1E;
	--h2-surface: #10252A;
	--h2-line: rgba(255, 255, 255, 0.09);
	--h2-text: #F1F6F6;
	--h2-muted: #7C8A8C;
	--h2-red: #007A96;
	--h2-coral: #00B1D3;
	--gutter: 50px;
	position: relative;
	color: var(--h2-text);
	background-color: var(--h2-bg);
	font-family: "DM Sans", sans-serif;
}

@media (max-width: 767px) {
	.gdw-h2 {
		--gutter: 15px;
	}
}

.gdw-h2 h1,
.gdw-h2 h2,
.gdw-h2 h3,
.gdw-h2 .gdw-h2-title {
	font-family: "Plus Jakarta Sans", sans-serif;
	color: var(--h2-text);
}

.gdw-h2-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font: 600 13px/1.2 "DM Sans", sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--h2-coral);
}

.gdw-h2-eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
}

.gdw-h2-grad,
.gdw-h2-grad span {
	background: linear-gradient(95deg, #007A96 0%, #00B1D3 55%, #93C749 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	-webkit-text-fill-color: transparent;
}

.gdw-h2-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 17px 30px;
	border-radius: 999px;
	font: 600 16px/1 "Plus Jakarta Sans", sans-serif;
	text-decoration: none !important;
	color: #FFFFFF !important;
	background: linear-gradient(95deg, #00627A, #007A96 60%, #00B1D3);
	box-shadow: 0 10px 40px rgba(0, 122, 150, 0.35);
	transition: transform 0.25s, box-shadow 0.25s;
}

.gdw-h2-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 50px rgba(0, 122, 150, 0.5);
}

.gdw-h2-btn--ghost {
	background: transparent;
	box-shadow: none;
	border: 1px solid rgba(255, 255, 255, 0.22);
}

.gdw-h2-btn--ghost:hover {
	border-color: #007A96;
	box-shadow: none;
}

.gdw-h2-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 10px;
}

/* --- Aparición al entrar en pantalla --- */
.gdw-h2-reveal {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
	transition-delay: calc(var(--d, 0) * 90ms);
}

.gdw-h2-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* Titular palabra a palabra (.gdw-split en un widget Título) */
.gdw-split .gdw-w {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.08em;
	margin-bottom: -0.08em;
}

.gdw-split .gdw-w > span {
	display: inline-block;
	transform: translateY(110%);
	transition: transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
	transition-delay: calc(var(--i, 0) * 70ms);
}

.gdw-split.is-in .gdw-w > span {
	transform: none;
}

/* --- 1. Hero --- */
.gdw-h2-hero {
	overflow: hidden;
}

.gdw-h2-hero > .elementor-element:not(.gdw-h2-bg) {
	position: relative;
	z-index: 1;
}

.elementor-widget-html.gdw-h2-bg {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	z-index: 0;
	pointer-events: none;
}

.gdw-h2-bg__inner {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.gdw-h2-grid {
	position: absolute;
	inset: -10% 0;
	background-image:
		linear-gradient(var(--h2-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--h2-line) 1px, transparent 1px);
	background-size: 72px 72px;
	-webkit-mask-image: radial-gradient(ellipse at 60% 40%, #000 20%, transparent 72%);
	mask-image: radial-gradient(ellipse at 60% 40%, #000 20%, transparent 72%);
	transform: translate3d(0, calc(var(--p, 0) * 120px), 0);
}

.gdw-h2-orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	transform: translate3d(0, calc(var(--p, 0) * var(--speed, 200px)), 0) scale(calc(1 + var(--p, 0) * 0.3));
	animation: gdw-h2-breathe 9s ease-in-out infinite alternate;
}

.gdw-h2-orb--1 {
	width: 620px;
	height: 620px;
	top: -180px;
	right: -140px;
	background: radial-gradient(circle, rgba(0, 122, 150, 0.75), transparent 68%);
	--speed: 320px;
}

.gdw-h2-orb--2 {
	width: 460px;
	height: 460px;
	bottom: -160px;
	left: -120px;
	background: radial-gradient(circle, rgba(0, 177, 211, 0.45), transparent 70%);
	--speed: -220px;
	animation-delay: -4s;
}

.gdw-h2-orb--3 {
	width: 260px;
	height: 260px;
	top: 38%;
	left: 42%;
	background: radial-gradient(circle, rgba(0, 98, 122, 0.55), transparent 70%);
	--speed: 480px;
	animation-delay: -2s;
}

@keyframes gdw-h2-breathe {
	to { opacity: 0.55; }
}

.gdw-h2-hero__title {
	transform: translate3d(0, calc(var(--p, 0) * -90px), 0);
	opacity: calc(1 - var(--p, 0) * 1.2);
}

/* Diagrama isométrico que se despliega al bajar */
.gdw-h2-stack {
	height: 560px;
	display: grid;
	place-items: center;
	perspective: 1600px;
}

.gdw-h2-stack__scene {
	position: relative;
	width: min(360px, 70vw);
	aspect-ratio: 1;
	transform-style: preserve-3d;
	transform: rotateX(58deg) rotateZ(-42deg) translate3d(0, 0, calc(var(--p, 0) * -60px));
	animation: gdw-h2-float 6s ease-in-out infinite;
}

@keyframes gdw-h2-float {
	50% { translate: 0 -14px; }
}

.gdw-h2-stack__layer,
.gdw-h2-iso__layer {
	position: absolute;
	inset: 0;
	border-radius: 30px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02));
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	box-shadow: 0 40px 80px rgba(0, 0, 0, 0.5);
	transform: translateZ(calc(var(--i) * (26px + var(--p, 0) * 110px)));
}

.gdw-h2-stack__layer::before,
.gdw-h2-iso__layer::before {
	content: "";
	position: absolute;
	inset: 18px;
	border-radius: 18px;
	border: 1px dashed rgba(255, 255, 255, 0.12);
}

.gdw-h2-stack__layer:last-child {
	background: linear-gradient(135deg, #007A96, #0B4A5A);
	border-color: rgba(255, 255, 255, 0.25);
	box-shadow: 0 40px 90px rgba(0, 122, 150, 0.45);
}

.gdw-h2-stack__layer span,
.gdw-h2-iso__layer span {
	position: absolute;
	left: 26px;
	bottom: 24px;
	font: 700 15px/1 "Plus Jakarta Sans", sans-serif;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
}

/* Figuras vectoriales que cambian de forma sin parar (morph SVG, custom.js)
   .gdw-h2-morph > svg con dos trazados, enlaces entre nodos y nodos. */
.gdw-h2-morph {
	width: min(540px, 88vw);
	aspect-ratio: 1;
	margin: 0 auto;
	transform: translate3d(0, calc(var(--p, 0) * -70px), 0) rotate(calc(var(--p, 0) * 30deg)) scale(calc(1 + var(--p, 0) * 0.15));
}

.gdw-h2-morph svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.gdw-h2-morph__rot {
	transform-origin: 0 0;
	animation: gdw-spin 70s linear infinite;
}

.gdw-h2-morph__outer {
	fill: url(#gdw-morph-fill);
	stroke: url(#gdw-morph-stroke);
	stroke-width: 2.2;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 22px rgba(0, 122, 150, 0.55));
}

.gdw-h2-morph__inner {
	fill: none;
	stroke: rgba(255, 255, 255, 0.35);
	stroke-width: 1.2;
	stroke-dasharray: 4 6;
}

.gdw-h2-morph__links line {
	stroke: rgba(255, 255, 255, 0.12);
	stroke-width: 1;
}

.gdw-h2-morph__nodes circle {
	fill: #0B1A1E;
	stroke: #00B1D3;
	stroke-width: 1.8;
}

.gdw-h2-morph__nodes circle.is-inner {
	fill: #007A96;
	stroke: none;
}

@media (prefers-reduced-motion: reduce) {
	.gdw-h2-morph__rot {
		animation: none;
	}
}

/* --- 3. Líneas de texto gigantes que avanzan y retroceden con el scroll --- */
.gdw-h2-lines {
	padding: 120px 0;
	overflow: hidden;
}

.gdw-h2-lines__row {
	display: flex;
	align-items: center;
	white-space: nowrap;
	width: max-content;
	margin-left: -25vw;
	font: 700 clamp(56px, 9vw, 170px)/1 "Plus Jakarta Sans", sans-serif;
	letter-spacing: -0.045em;
	transform: translate3d(calc((var(--p, 0) - 0.5) * var(--dir, 1) * 55vw), 0, 0);
	will-change: transform;
}

.gdw-h2-lines__row + .gdw-h2-lines__row {
	margin-top: 0.08em;
}

.gdw-h2-lines__row .is-outline {
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(241, 246, 246, 0.45);
}

.gdw-h2-lines__row i {
	display: inline-block;
	margin: 0 0.35em;
	font-size: 0.45em;
	font-style: normal;
	color: var(--h2-red);
	transform: rotate(calc(var(--p, 0) * 540deg));
}

/* --- 4. Sección fija: cinco capas que se despliegan y se contraen --- */
.gdw-h2-pin {
	position: relative;
	height: 420vh;
}

.gdw-h2-pin__sticky {
	position: sticky;
	top: 0;
	height: 100vh;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 60px;
	padding: 0 var(--gutter);
	overflow: hidden;
}

.gdw-h2-pin__title {
	margin: 0 0 34px;
	font-size: clamp(34px, 4vw, 64px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	font-weight: 700;
}

.gdw-h2-pin__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: gdw-step;
}

.gdw-h2-pin__steps li {
	counter-increment: gdw-step;
	position: relative;
	padding: 16px 0 16px 58px;
	border-top: 1px solid var(--h2-line);
	opacity: 0.35;
	transition: opacity 0.4s;
}

.gdw-h2-pin__steps li::before {
	content: counter(gdw-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 17px;
	font: 600 15px "Plus Jakarta Sans", sans-serif;
	color: var(--h2-muted);
}

.gdw-h2-pin__steps li strong {
	display: block;
	font: 600 21px/1.3 "Plus Jakarta Sans", sans-serif;
	color: var(--h2-text);
}

.gdw-h2-pin__steps li span {
	display: block;
	max-height: 0;
	overflow: hidden;
	color: var(--h2-muted);
	transition: max-height 0.5s ease, margin 0.5s ease;
}

.gdw-h2-pin__steps li.is-active {
	opacity: 1;
}

.gdw-h2-pin__steps li.is-active::before {
	color: var(--h2-red);
}

.gdw-h2-pin__steps li.is-active span {
	max-height: 120px;
	margin-top: 8px;
}

.gdw-h2-pin__bar {
	height: 2px;
	margin-top: 26px;
	background: var(--h2-line);
}

.gdw-h2-pin__bar span {
	display: block;
	height: 100%;
	width: calc(var(--p, 0) * 100%);
	background: linear-gradient(90deg, #007A96, #00B1D3);
}

.gdw-h2-iso {
	position: relative;
	width: min(380px, 70vw);
	aspect-ratio: 1;
	margin: 0 auto;
	transform-style: preserve-3d;
	transform: rotateX(58deg) rotateZ(-42deg);
}

.gdw-h2-pin__visual {
	perspective: 1600px;
	display: grid;
	place-items: center;
}

.gdw-h2-iso__layer {
	transform: translateZ(calc(var(--i) * (16px + var(--ps, 0) * var(--spread, 120px))));
	transition: background 0.4s, border-color 0.4s, box-shadow 0.4s;
}

.gdw-h2-iso__layer.is-active {
	background: linear-gradient(135deg, #007A96, #0B4A5A);
	border-color: rgba(255, 255, 255, 0.3);
	box-shadow: 0 40px 100px rgba(0, 122, 150, 0.5);
}

@media (max-width: 1024px) {
	.gdw-h2-pin__sticky {
		grid-template-columns: 1fr;
		gap: 10px;
		align-content: center;
		padding-top: calc(var(--gdw-header-h, 85px) + 20px);
		--spread: 55px;
		/* La columna no crece con el navegador isométrico (560 px sin escalar) */
		grid-template-columns: minmax(0, 1fr);
	}

	.gdw-h2-pin__visual {
		min-width: 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.gdw-h2-pin__visual {
		order: -1;
	}

	.gdw-h2-iso {
		width: min(240px, 60vw);
	}

	.gdw-h2-pin__steps li {
		padding: 10px 0 10px 44px;
	}

	.gdw-h2-pin__steps li strong {
		font-size: 17px;
	}
}

@media (max-width: 767px) {
	.gdw-h2-pin__sticky {
		align-content: start;
		--spread: 24px;
	}

	.gdw-h2-pin__visual {
		height: 270px;
		padding-top: 84px;
	}

	.gdw-h2-pin__steps li {
		padding: 7px 0 7px 40px;
	}

	.gdw-h2-pin__steps li::before {
		top: 9px;
	}

	.gdw-h2-pin__steps li strong {
		font-size: 16px;
	}

	.gdw-h2-iso {
		width: 165px;
	}

	.gdw-h2-pin__title {
		font-size: 28px;
		margin-bottom: 16px;
	}

	.gdw-h2-pin__text .gdw-h2-eyebrow {
		margin-bottom: 10px;
	}
}

/* Navegador isométrico con el esquema de una web (sección «cinco capas»)
   La página de dentro sube con --p; los bloques del paso activo se iluminan
   ([data-step] con .is-active); las dos copias de debajo se separan con --ps. */
.gdw-h2-browser {
	--bw: 560px;
	--bh: 410px;
	--s: 1;
	position: relative;
	width: var(--bw);
	height: var(--bh);
	flex: none;
	transform-style: preserve-3d;
	transform: rotateX(55deg) rotateZ(-38deg) scale(var(--s));
	animation: gdw-h2-float 7s ease-in-out infinite;
}

.gdw-h2-browser__ghost,
.gdw-h2-browser__window {
	position: absolute;
	inset: 0;
	border-radius: 22px;
}

.gdw-h2-browser__ghost {
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.025);
	transform: translateZ(calc(var(--g) * (-22px - var(--ps, 0) * 80px)));
	opacity: calc(0.7 - var(--g) * 0.22);
}

.gdw-h2-browser__ghost::after {
	content: "";
	position: absolute;
	inset: 50px 22px 22px;
	border-radius: 14px;
	border: 1px dashed rgba(255, 255, 255, 0.12);
}

.gdw-h2-browser__window {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #10252A;
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 50px 100px rgba(0, 0, 0, 0.6), 0 0 80px rgba(0, 122, 150, calc(0.08 + var(--ps, 0) * 0.2));
	transform: translateZ(calc(var(--ps, 0) * 30px));
}

.gdw-h2-browser__bar {
	flex: none;
	display: flex;
	align-items: center;
	gap: 7px;
	height: 38px;
	padding: 0 14px;
	background: #14272C;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gdw-h2-browser__bar i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #34474B;
}

.gdw-h2-browser__bar i:first-child {
	background: #007A96;
}

.gdw-h2-browser__bar i:nth-child(2) {
	background: #00B1D3;
}

.gdw-h2-browser__url {
	flex: 1;
	height: 20px;
	margin-left: 10px;
	padding: 0 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.06);
	font: 500 11px/20px "DM Sans", sans-serif;
	color: #7C8A8C;
}

.gdw-h2-browser__viewport {
	position: relative;
	flex: 1;
	overflow: hidden;
}

.gdw-h2-browser__page {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 14px;
	transform: translate3d(0, calc(var(--p, 0) * -63%), 0);
}

.gdw-h2-b-row {
	display: flex;
	gap: 12px;
}

.gdw-h2-b {
	flex: 1;
	position: relative;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	transition: background 0.45s, border-color 0.45s, box-shadow 0.45s, transform 0.45s;
}

.gdw-h2-b.is-active {
	background: linear-gradient(135deg, #007A96, #0B4A5A);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: 0 10px 30px rgba(0, 122, 150, 0.45);
	transform: translateY(-3px);
}

.gdw-h2-b i,
.gdw-h2-b b,
.gdw-h2-b span,
.gdw-h2-b s {
	display: block;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
}

.gdw-h2-b--nav {
	flex: none;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	padding: 0 12px;
}

.gdw-h2-b--nav::before {
	content: "";
	width: 46px;
	height: 10px;
	margin-right: auto;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.3);
}

.gdw-h2-b--nav span {
	width: 26px;
	height: 6px;
}

.gdw-h2-b--hero {
	flex: none;
	height: 124px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.gdw-h2-b--hero b {
	height: 14px;
	width: 70%;
	background: rgba(255, 255, 255, 0.32);
}

.gdw-h2-b--hero b + b {
	width: 48%;
}

.gdw-h2-b--hero em {
	display: block;
	width: 74px;
	height: 22px;
	margin-top: auto;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.28);
}

.gdw-h2-b--card {
	height: 72px;
}

.gdw-h2-b--card::before {
	content: "";
	position: absolute;
	left: 12px;
	top: 12px;
	width: 20px;
	height: 20px;
	border-radius: 7px;
	background: rgba(255, 255, 255, 0.22);
}

.gdw-h2-b--card::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 18px;
	bottom: 14px;
	height: 6px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
}

.gdw-h2-b--text {
	flex: none;
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gdw-h2-b-row .gdw-h2-b--text {
	flex: 1;
}

.gdw-h2-b--text i {
	height: 6px;
}

.gdw-h2-b--text i:nth-child(2) {
	width: 86%;
}

.gdw-h2-b--text i:nth-child(3) {
	width: 62%;
}

.gdw-h2-b--img {
	height: 96px;
	background-image: radial-gradient(circle at 70% 35%, rgba(255, 255, 255, 0.18) 0 10px, transparent 11px), linear-gradient(160deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.12));
}

.gdw-h2-b--chart {
	flex: none;
	height: 96px;
	display: flex;
	align-items: flex-end;
	gap: 8px;
	padding: 14px 16px;
}

.gdw-h2-b--chart s {
	flex: 1;
	height: calc(var(--h) * 100%);
	border-radius: 6px 6px 3px 3px;
}

.gdw-h2-b--cta {
	flex: none;
	height: 54px;
}

.gdw-h2-b--cta::after {
	content: "";
	position: absolute;
	right: 14px;
	top: 50%;
	width: 70px;
	height: 20px;
	margin-top: -10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.28);
}

.gdw-h2-b--footer {
	flex: none;
	height: 44px;
}

/* Versión «diagrama que se abre»: la página de dentro no se mueve; la ventana
   es la capa base y los bloques con [data-layer] (--lz = altura final) se
   elevan con --ps (0 → 1 → 0) mientras la sección está fija. */
.gdw-h2-browser--layers .gdw-h2-browser__window,
.gdw-h2-browser--layers .gdw-h2-browser__viewport,
.gdw-h2-browser--layers .gdw-h2-browser__page,
.gdw-h2-browser--layers .gdw-h2-b-row {
	overflow: visible;
	transform-style: preserve-3d;
}

.gdw-h2-browser--layers .gdw-h2-browser__window {
	transform: none;
}

.gdw-h2-browser--layers .gdw-h2-browser__bar {
	border-radius: 21px 21px 0 0;
}

.gdw-h2-browser--layers .gdw-h2-browser__page {
	height: 100%;
	gap: 10px;
	transform: none;
}

/* --open: se abre en el primer 45 % de la sección y se queda abierto */
.gdw-h2-browser--layers {
	--open: min(1, calc(var(--p, 0) * 2.2));
}

.gdw-h2-browser--layers [data-layer] {
	transform: translateZ(calc(var(--open, 0) * var(--lz, 60px)));
	transition: background 0.45s, border-color 0.45s, box-shadow 0.45s;
}

.gdw-h2-browser--layers .gdw-h2-b[data-layer] {
	box-shadow: 0 calc(var(--open, 0) * 40px) calc(var(--open, 0) * 50px) rgba(0, 0, 0, 0.55);
}

.gdw-h2-browser--layers .gdw-h2-b.is-active {
	transform: translateZ(calc(var(--open, 0) * var(--lz, 60px) + 16px));
	box-shadow: 0 20px 50px rgba(0, 122, 150, 0.5);
}

.gdw-h2-browser--layers .gdw-h2-b-row[data-layer] .gdw-h2-b {
	box-shadow: 0 calc(var(--open, 0) * 40px) calc(var(--open, 0) * 50px) rgba(0, 0, 0, 0.55);
}

.gdw-h2-browser--layers .gdw-h2-b-row[data-layer] .gdw-h2-b.is-active {
	transform: translateZ(16px);
}

.gdw-h2-browser--layers .gdw-h2-b--hero {
	height: 96px;
	padding: 16px 18px;
}

.gdw-h2-browser--layers .gdw-h2-b--card {
	height: 64px;
}

.gdw-h2-browser--layers .gdw-h2-b--chart {
	height: 70px;
	padding: 12px 16px;
}

@media (max-width: 1024px) {
	.gdw-h2-browser {
		--s: 0.66;
	}
}

@media (max-width: 767px) {
	.gdw-h2-browser {
		--s: 0.46;
	}

	.gdw-h2-pin__visual {
		overflow: visible;
	}
}

/* --- 5. Cifras con texto circular que gira --- */
.gdw-h2-stats {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 70px;
	padding: 110px var(--gutter);
}

.gdw-h2-circle {
	position: relative;
	width: 220px;
	height: 220px;
}

.gdw-h2-circle svg {
	width: 100%;
	height: 100%;
	transform: rotate(calc(var(--p, 0) * 540deg));
}

.gdw-h2-circle text {
	font: 600 13.5px "Plus Jakarta Sans", sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	fill: var(--h2-text);
}

.gdw-h2-circle__core {
	position: absolute;
	inset: 50%;
	width: 78px;
	height: 78px;
	margin: -39px 0 0 -39px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	font-size: 34px;
	color: #FFFFFF;
	background: linear-gradient(135deg, #007A96, #0B4A5A);
	box-shadow: 0 0 60px rgba(0, 122, 150, 0.55);
}

.gdw-h2-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
}

.gdw-h2-stat {
	padding: 30px 0 0;
	border-top: 1px solid var(--h2-line);
}

.gdw-h2-stat strong {
	display: block;
	font: 600 clamp(48px, 5vw, 84px)/1 "Plus Jakarta Sans", sans-serif;
	letter-spacing: -0.04em;
	color: var(--h2-text);
}

.gdw-h2-stat span {
	display: block;
	margin-top: 12px;
	color: var(--h2-muted);
}

@media (max-width: 1024px) {
	.gdw-h2-stats {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 50px;
	}

	.gdw-h2-stats__grid {
		grid-template-columns: repeat(2, 1fr);
		width: 100%;
	}
}

/* --- 6. Proceso con línea que se rellena --- */
.gdw-h2-process {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
	padding: 20px var(--gutter) 110px;
}

.gdw-h2-process__line {
	position: absolute;
	top: 49px;
	left: var(--gutter);
	right: var(--gutter);
	height: 2px;
	background: var(--h2-line);
}

.gdw-h2-process__line span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #007A96, #00B1D3);
	transform-origin: left;
	transform: scaleX(clamp(0, calc((var(--p, 0) - 0.2) * 2.4), 1));
}

.gdw-h2-process__step {
	position: relative;
	opacity: clamp(0.2, calc((var(--p, 0) - var(--t)) * 7 + 0.2), 1);
	transform: translate3d(0, calc(clamp(0, (var(--t) - var(--p, 0)) * 300, 40) * 1px), 0);
}

.gdw-h2-process__dot {
	width: 60px;
	height: 60px;
	display: grid;
	place-items: center;
	margin-bottom: 28px;
	border-radius: 50%;
	font: 700 18px "Plus Jakarta Sans", sans-serif;
	color: #FFFFFF;
	background: var(--h2-surface);
	border: 1px solid var(--h2-line);
	position: relative;
	z-index: 1;
}

.gdw-h2-process__step h3 {
	margin: 0 0 10px;
	font-size: 22px;
	font-weight: 600;
}

.gdw-h2-process__step p {
	margin: 0;
	color: var(--h2-muted);
}

@media (max-width: 1024px) {
	.gdw-h2-process {
		grid-template-columns: 1fr 1fr;
		row-gap: 50px;
	}

	.gdw-h2-process__line {
		display: none;
	}
}

@media (max-width: 767px) {
	.gdw-h2-process {
		grid-template-columns: 1fr;
	}
}

/* --- 7. Proyectos en horizontal, guiados por el scroll vertical --- */
.gdw-h2-hscroll {
	position: relative;
	height: 320vh;
}

.gdw-h2-hscroll__sticky {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 40px;
	overflow: hidden;
}

.gdw-h2-hscroll__head {
	padding: 0 var(--gutter);
	max-width: 900px;
}

.gdw-h2-hscroll__head h2,
.gdw-h2-section-title {
	margin: 0;
	font-size: clamp(34px, 4vw, 64px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.gdw-h2-hscroll__track {
	display: flex;
	gap: 30px;
	width: max-content;
	padding: 0 var(--gutter);
	transform: translate3d(calc(var(--p, 0) * var(--dist, 0) * -1px), 0, 0);
	will-change: transform;
}

.gdw-h2-card {
	position: relative;
	width: clamp(280px, 34vw, 520px);
	flex: none;
	margin: 0;
	border-radius: 26px;
	overflow: hidden;
	background: var(--h2-surface);
	border: 1px solid var(--h2-line);
}

.gdw-h2-card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gdw-h2-card:hover img {
	transform: scale(1.06);
}

.gdw-h2-card figcaption {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	padding: 22px 24px 24px;
}

.gdw-h2-card figcaption span {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--h2-coral);
}

.gdw-h2-card figcaption h3 {
	margin: 0;
	font-size: 22px;
	font-weight: 600;
}

.gdw-h2-card figcaption b {
	flex: none;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--h2-line);
	font-weight: 400;
	transition: background 0.3s, border-color 0.3s;
}

.gdw-h2-card:hover figcaption b {
	background: var(--h2-red);
	border-color: var(--h2-red);
}

/* --- 8. Sectores con brillo que sigue al ratón --- */
.gdw-h2-sectors {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.gdw-h2-sector {
	--mx: 50%;
	--my: 50%;
	position: relative;
	padding: 36px 30px;
	border-radius: 26px;
	background: var(--h2-surface);
	border: 1px solid var(--h2-line);
	overflow: hidden;
	isolation: isolate;
}

.gdw-h2-sector::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(360px circle at var(--mx) var(--my), rgba(0, 122, 150, 0.28), transparent 60%);
	opacity: 0;
	transition: opacity 0.4s;
}

.gdw-h2-sector:hover::before {
	opacity: 1;
}

.gdw-h2-sector i {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	margin-bottom: 26px;
	border-radius: 16px;
	font-style: normal;
	font-size: 24px;
	background: rgba(0, 122, 150, 0.12);
	color: var(--h2-red);
}

.gdw-h2-sector h3 {
	margin: 0 0 10px;
	font-size: 22px;
	font-weight: 600;
}

.gdw-h2-sector p {
	margin: 0;
	color: var(--h2-muted);
}

@media (max-width: 1024px) {
	.gdw-h2-sectors {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.gdw-h2-sectors {
		grid-template-columns: 1fr;
	}
}

/* --- 9. Opiniones en oscuro (carrusel .gdw-carousel) --- */
.gdw-h2 .gdw-carousel__dot {
	background: rgba(255, 255, 255, 0.18);
}

/* --- 10. CTA final que crece al acercarse --- */
.gdw-h2-cta {
	position: relative;
	padding: 170px var(--gutter);
	text-align: center;
	overflow: hidden;
}

.gdw-h2-cta__glow {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 900px;
	height: 900px;
	margin: -450px 0 0 -450px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 122, 150, 0.45), transparent 62%);
	filter: blur(30px);
	transform: scale(calc(0.4 + var(--p, 0) * 0.9));
	pointer-events: none;
}

.gdw-h2-cta__title {
	position: relative;
	margin: 0 0 26px;
	font-size: clamp(48px, 9vw, 150px) !important;
	line-height: 0.95;
	font-weight: 700;
	letter-spacing: -0.05em;
	transform: scale(clamp(0.7, calc(0.62 + var(--p, 0) * 0.8), 1.05));
}

.gdw-h2-cta__title span {
	display: block;
}

.gdw-h2-cta p {
	position: relative;
	max-width: 620px;
	margin: 0 auto 34px;
	font-size: 19px;
	color: #C3D0D1;
}

/* --- Sin movimiento si el sistema lo pide --- */
@media (prefers-reduced-motion: reduce) {
	.gdw-h2 *,
	.gdw-h2 *::before {
		animation: none !important;
		transition: none !important;
	}

	.gdw-h2-reveal,
	.gdw-split .gdw-w > span {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ==========================================================================
   10. Páginas legales (.gdw-legal): aviso legal, privacidad y cookies
   Los datos de cada cliente van como <strong>[MARCADOR]</strong>.
   ========================================================================== */
.gdw-legal .gdw-legal__body h2 {
	margin: 2.2em 0 0.7em;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.3px;
	color: var(--e-global-color-secondary, #132A30);
}

.gdw-legal .gdw-legal__body h3 {
	margin: 1.6em 0 0.5em;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 19px;
	font-weight: 600;
	color: var(--e-global-color-secondary, #132A30);
}

.gdw-legal .gdw-legal__body p,
.gdw-legal .gdw-legal__body li {
	line-height: 1.75;
}

.gdw-legal .gdw-legal__body ul {
	margin: 0 0 1.2em 1.2em;
}

.gdw-legal .gdw-legal__body strong {
	color: var(--e-global-color-secondary, #132A30);
}

.gdw-legal .gdw-legal__body a {
	color: #00627A;
}

.gdw-legal .gdw-legal__body table {
	width: 100%;
	margin: 1em 0 1.6em;
	border-collapse: collapse;
	font-size: 15px;
}

.gdw-legal .gdw-legal__body th,
.gdw-legal .gdw-legal__body td {
	padding: 12px 14px;
	border: 1px solid #DCE6E6;
	text-align: left;
	vertical-align: top;
}

.gdw-legal .gdw-legal__body th {
	background: #F1F6F6;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-weight: 600;
	color: var(--e-global-color-secondary, #132A30);
}

@media (max-width: 767px) {
	.gdw-legal .gdw-legal__body table {
		display: block;
		overflow-x: auto;
	}
}

/* ==========================================================================
   11. Texto circular (.gdw-circle-text): imagen redonda con un anillo de
   texto que gira. El texto sale del widget Título .gdw-circle-text__label
   (custom.js lo convierte en SVG, con su color). El ancho lo marca el
   contenedor.
   ========================================================================== */
.gdw-circle-text {
	position: relative;
	aspect-ratio: 1;
	flex-shrink: 0;
}

.gdw-circle-text > .elementor-widget-image {
	position: absolute;
	inset: 16%;
	width: auto !important;
	margin: 0 !important;
}

.gdw-circle-text > .elementor-widget-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50% !important;
}

.gdw-circle-text__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
	animation: gdw-circle-spin 22s linear infinite;
}

.gdw-circle-text__ring text {
	font: 600 13px "Plus Jakarta Sans", sans-serif;
	letter-spacing: .2em;
	text-transform: uppercase;
	fill: currentColor;
}

/* El título queda para lectores de pantalla cuando ya está el anillo */
.gdw-circle-text.is-built .gdw-circle-text__label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* En el editor (sin anillo) el título se ve debajo del círculo */
.gdw-circle-text:not(.is-built) .gdw-circle-text__label {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	text-align: center;
}

@keyframes gdw-circle-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gdw-circle-text__ring {
		animation: none;
	}
}

/* ==========================================================================
   Antonio Godoy · bloques del constructor (clases gdw-ag-…) · v2 06-10-2026
   Colores: turquesa #007A96 / #00627A, logo #00B1D3 → #93C749, petróleo #132A30
   Movimiento: aparición (.gdw-h2-reveal), titulares palabra a palabra
   (.gdw-split) y cintas (.gdw-marquee) de la base; foco, contadores y
   red de seguridad en el bloque «Antonio Godoy» de custom.js.
   ========================================================================== */
:root {
	--ag-turquesa: #007A96;
	--ag-turquesa-osc: #00627A;
	--ag-logo-1: #00B1D3;
	--ag-logo-2: #93C749;
	--ag-petroleo: #132A30;
	--ag-noche: #0B1A1E;
	--ag-borde: #DCE6E6;
	--ag-grad: linear-gradient(90deg, var(--ag-logo-1), var(--ag-logo-2));
	--ag-radio: 18px;
}

/* ---------- 1. Secciones ---------- */
.gdw-ag-sec { position: relative; overflow: hidden; }
.gdw-ag-sec > .e-con, .gdw-ag-sec > .elementor-element { position: relative; z-index: 2; }

/* Fondo oscuro con cuadrícula técnica y dos focos de color */
.gdw-ag-sec--dark {
	background-image:
		radial-gradient(600px 400px at 85% 10%, rgba(0, 177, 211, .16), transparent 70%),
		radial-gradient(500px 380px at 5% 95%, rgba(147, 199, 73, .12), transparent 70%),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) !important;
	background-size: auto, auto, 56px 56px, 56px 56px !important;
}

/* Rótulo pequeño con la línea del logo delante */
.gdw-ag-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.gdw-ag-eyebrow .elementor-heading-title::before {
	content: "";
	width: 28px;
	height: 3px;
	border-radius: 3px;
	background: var(--ag-grad);
	flex: none;
}
.gdw-ag-head--center .gdw-ag-text--center { text-align: center; }

/* Texto con el degradado del logo (también palabra a palabra) */
.gdw-ag-grad-text,
.gdw-ag-grad-text .gdw-w > span {
	background: var(--ag-grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* Retrasos escalonados para .gdw-h2-reveal */
.gdw-ag-d1 { --d: 1; } .gdw-ag-d2 { --d: 2; } .gdw-ag-d3 { --d: 3; }
.gdw-ag-d4 { --d: 4; } .gdw-ag-d5 { --d: 5; } .gdw-ag-d6 { --d: 6; }
.gdw-h2-reveal { transform: translateY(26px); transition-duration: .7s; }
.elementor-editor-active .gdw-h2-reveal,
.elementor-editor-active .gdw-split .gdw-w > span { opacity: 1 !important; transform: none !important; }

/* ---------- 2. Cabecera de página (hero) ---------- */
.gdw-ag-hero { position: relative; overflow: hidden; isolation: isolate; }
.gdw-ag-hero > .gdw-ag-content { position: relative; z-index: 3; }

/* Foto de fondo editable con zoom lento */
.gdw-ag-bg {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100%;
	margin: 0 !important;
	z-index: 0;
	pointer-events: none;
}
.gdw-ag-bg .elementor-widget-container,
.gdw-ag-bg img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	display: block;
}
.gdw-ag-hero .gdw-ag-bg img { animation: ag-kenburns 22s ease-in-out infinite alternate; transform-origin: 70% 40%; }
@keyframes ag-kenburns { from { transform: scale(1.04); } to { transform: scale(1.16); } }

/* Capa: degradado + cuadrícula + líneas de corriente */
.gdw-ag-fx {
	position: absolute !important;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	padding: 0 !important;
	background:
		linear-gradient(90deg, rgba(11, 26, 30, .96) 0%, rgba(11, 26, 30, .82) 38%, rgba(11, 26, 30, .35) 100%),
		linear-gradient(0deg, rgba(11, 26, 30, .7), transparent 45%);
}
.gdw-ag-fx::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 64px 64px;
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 75%);
	mask-image: linear-gradient(90deg, #000 0%, transparent 75%);
}
.gdw-ag-fx::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 30%;
	height: 40%;
	background:
		linear-gradient(90deg, transparent, rgba(0, 177, 211, .9), rgba(147, 199, 73, .9), transparent) 0 0 / 30% 2px no-repeat,
		linear-gradient(90deg, transparent, rgba(147, 199, 73, .8), transparent) 0 60% / 22% 1px no-repeat,
		linear-gradient(90deg, transparent, rgba(0, 177, 211, .8), transparent) 0 100% / 26% 1px no-repeat;
	animation: ag-current 6s linear infinite;
	opacity: .8;
}
@keyframes ag-current {
	0% { background-position: -40% 0, 140% 60%, -30% 100%; }
	100% { background-position: 140% 0, -40% 60%, 160% 100%; }
}

/* Franja degradada al pie del hero */
.gdw-ag-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: var(--ag-grad);
	z-index: 4;
}
.gdw-ag-hero__title .elementor-heading-title { max-width: 17ch; }
.gdw-ag-hero--home .gdw-ag-hero__title .elementor-heading-title { max-width: 15ch; }

/* Rótulo en píldora de cristal con punto que late */
.gdw-ag-pill .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 12px;
	border-radius: 50px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .16);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.gdw-ag-pill .elementor-heading-title::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ag-logo-2);
	box-shadow: 0 0 0 0 rgba(147, 199, 73, .7);
	animation: ag-ping 2s infinite;
}
@keyframes ag-ping {
	0% { box-shadow: 0 0 0 0 rgba(147, 199, 73, .7); }
	70% { box-shadow: 0 0 0 10px rgba(147, 199, 73, 0); }
	100% { box-shadow: 0 0 0 0 rgba(147, 199, 73, 0); }
}

/* Barra de cifras de cristal (hero de inicio) */
.gdw-ag-statbar {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--ag-radio);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.gdw-ag-statbar .gdw-ag-stat { border-top: 0; padding-top: 0; }
.gdw-ag-statbar .gdw-ag-stat + .gdw-ag-stat { border-left: 1px solid rgba(255, 255, 255, .12); padding-left: 24px; }
@media (max-width: 1024px) {
	.gdw-ag-statbar .gdw-ag-stat + .gdw-ag-stat { border-left: 0; padding-left: 0; }
}

/* Tarjeta flotante de urgencias (hero de inicio) */
.gdw-ag-float {
	background: rgba(11, 26, 30, .55);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--ag-radio);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	box-shadow: 0 30px 60px rgba(0, 0, 0, .35);
	animation: ag-float 6s ease-in-out infinite;
}
.gdw-ag-float::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	padding: 1px;
	background: var(--ag-grad);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}
@keyframes ag-float { 50% { transform: translateY(-10px); } }

/* ---------- 3. Cinta de servicios sobre el degradado ---------- */
.gdw-ag-band { background: var(--ag-grad) !important; }
.gdw-ag-band .gdw-marquee__item .elementor-heading-title { color: #0B1A1E !important; }
.gdw-ag-band .gdw-marquee__track--star .gdw-marquee__item .elementor-heading-title::after { color: #FFFFFF; }

/* Sectores: dos cintas de etiquetas */
.gdw-ag-chips .gdw-marquee__item .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 50px;
	border: 1px solid var(--ag-borde);
	background: #FFFFFF;
	margin-right: 14px;
}
.gdw-ag-chips .gdw-marquee__item .elementor-heading-title::after { display: none; }
.gdw-ag-chips .gdw-marquee__item .elementor-heading-title::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--ag-grad);
}
.gdw-ag-chips .gdw-marquee__track--reverse .gdw-marquee__item .elementor-heading-title { background: #F1F6F6; }

/* ---------- 4. Mosaico de servicios con foto ---------- */
.gdw-ag-tiles { grid-auto-rows: 290px; grid-template-rows: none !important; }
.gdw-ag-tile {
	position: relative;
	overflow: hidden;
	border-radius: var(--ag-radio);
	isolation: isolate;
	text-decoration: none !important;
	border: 1px solid rgba(255, 255, 255, .08);
}
.gdw-ag-tile .gdw-ag-bg img { transition: transform .9s cubic-bezier(.2, .8, .2, 1), filter .6s ease; }
.gdw-ag-tile:hover .gdw-ag-bg img { transform: scale(1.08); filter: saturate(1.15); }
.gdw-ag-tile::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(11, 26, 30, .05) 0%, rgba(11, 26, 30, .55) 45%, rgba(11, 26, 30, .95) 100%);
	transition: background .5s ease;
}
.gdw-ag-tile:hover::before { background: linear-gradient(180deg, rgba(0, 98, 122, .25) 0%, rgba(11, 26, 30, .7) 45%, rgba(11, 26, 30, .97) 100%); }
.gdw-ag-tile > .gdw-ag-tile__body { position: relative; z-index: 3; margin-top: auto; }
.gdw-ag-tile__num .elementor-heading-title {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 50px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .2);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.gdw-ag-tile__more .elementor-heading-title { display: inline-flex; gap: 8px; align-items: center; }
.gdw-ag-tile__more .elementor-heading-title::after { content: "→"; transition: transform .3s ease; }
.gdw-ag-tile:hover .gdw-ag-tile__more .elementor-heading-title::after { transform: translateX(6px); }
.gdw-ag-tile::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	z-index: 4;
	background: var(--ag-grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s ease;
}
.gdw-ag-tile:hover::after { transform: scaleX(1); }
/* Disposición tipo «bento» en inicio y servicios */
@media (min-width: 1025px) {
	.gdw-ag-tiles--bento > .gdw-ag-tile:nth-child(1) { grid-row: span 2; }
	.gdw-ag-tiles--bento > .gdw-ag-tile:nth-child(6) { grid-column: span 3; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.gdw-ag-tiles--bento > .gdw-ag-tile:nth-child(1) { grid-row: span 2; }
	.gdw-ag-tiles--bento > .gdw-ag-tile:nth-child(6) { grid-column: span 2; }
}
/* Cinco tarjetas («otros servicios»): la primera, doble */
@media (min-width: 1025px) { .gdw-ag-tiles--five > .gdw-ag-tile:first-child { grid-column: span 2; } }
@media (min-width: 768px) and (max-width: 1024px) { .gdw-ag-tiles--five > .gdw-ag-tile:last-child { grid-column: span 2; } }
@media (max-width: 767px) { .gdw-ag-tiles { grid-auto-rows: 260px; } }

/* Foco que sigue al ratón (tarjetas, mosaico) */
.gdw-ag-spot { position: relative; }
.gdw-ag-spot > .gdw-ag-glow {
	position: absolute !important;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	padding: 0 !important;
	opacity: 0;
	transition: opacity .4s ease;
	background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), rgba(0, 177, 211, .22), transparent 60%);
}
.gdw-ag-spot:hover > .gdw-ag-glow { opacity: 1; }

/* ---------- 5. Tarjetas de características (cristal) ---------- */
.gdw-ag-feature {
	background: #FFFFFF;
	border: 1px solid var(--ag-borde);
	border-radius: var(--ag-radio);
	overflow: hidden;
	transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.gdw-ag-feature:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(19, 42, 48, .12); border-color: rgba(0, 177, 211, .45); }
.gdw-ag-sec--dark .gdw-ag-feature {
	background: rgba(255, 255, 255, .04);
	border-color: rgba(255, 255, 255, .1);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.gdw-ag-sec--dark .gdw-ag-feature:hover { border-color: rgba(147, 199, 73, .5); box-shadow: 0 24px 50px rgba(0, 0, 0, .35); }
.gdw-ag-feature > .elementor-element { position: relative; z-index: 3; }

/* Cajas de icono: icono en cuadro con degradado */
.gdw-ag-iconbox .elementor-icon {
	width: 56px;
	height: 56px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(0, 177, 211, .16), rgba(147, 199, 73, .16));
	transition: transform .4s ease;
}
.gdw-ag-feature:hover .gdw-ag-iconbox .elementor-icon { transform: rotate(-6deg) scale(1.06); }
.gdw-ag-iconbox .elementor-icon-box-description a { color: var(--ag-turquesa); }
.gdw-ag-sec--dark .gdw-ag-iconbox .elementor-icon-box-description a { color: var(--ag-logo-1); }

/* ---------- 6. Fotos, sello giratorio y cifras ---------- */
.gdw-ag-photo img {
	width: 100%;
	border-radius: var(--ag-radio);
	object-fit: cover;
	display: block;
}
.gdw-ag-photo--tall img { aspect-ratio: 4 / 3.6; }
.gdw-ag-media { position: relative; }
.gdw-ag-media::before {
	content: "";
	position: absolute;
	inset: 24px -24px -24px 24px;
	border-radius: var(--ag-radio);
	background: var(--ag-grad);
	opacity: .18;
	z-index: 0;
}
.gdw-ag-media > .elementor-element { position: relative; z-index: 1; }
.gdw-ag-media > .gdw-ag-badge {
	position: absolute !important;
	left: -28px;
	bottom: -28px;
	width: 150px !important;
	z-index: 3;
	color: #FFFFFF;
	background: var(--ag-petroleo);
	border-radius: 50%;
	box-shadow: 0 20px 40px rgba(19, 42, 48, .3);
}
.gdw-ag-badge > .elementor-widget-image { inset: 24% !important; }
.gdw-ag-badge > .elementor-widget-image img { border-radius: 0 !important; object-fit: contain !important; }
@media (max-width: 767px) {
	.gdw-ag-media::before { inset: 14px -10px -14px 10px; }
	.gdw-ag-media > .gdw-ag-badge { left: 10px; bottom: -24px; width: 116px !important; }
}

.gdw-ag-stat__num .elementor-heading-title,
.gdw-ag-step__num .elementor-heading-title {
	background: var(--ag-grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.gdw-ag-stat { padding-top: 16px; border-top: 1px solid var(--ag-borde); }
.gdw-ag-sec--dark .gdw-ag-stat { border-top-color: rgba(255, 255, 255, .14); }

/* «24H» gigante perfilado de fondo */
.gdw-ag-giant {
	position: absolute !important;
	right: -2vw;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1 !important;
	pointer-events: none;
	width: auto !important;
}
.gdw-ag-giant .elementor-heading-title {
	font: 800 clamp(160px, 26vw, 420px) / .8 "Plus Jakarta Sans", sans-serif !important;
	color: transparent !important;
	-webkit-text-stroke: 2px rgba(255, 255, 255, .07);
	white-space: nowrap;
}

/* ---------- 7. Pasos unidos por una línea con pulso ---------- */
.gdw-ag-steps { position: relative; }
@media (min-width: 768px) {
	.gdw-ag-steps::before {
		content: "";
		position: absolute;
		left: 32px;
		right: 32px;
		top: 32px;
		height: 2px;
		background: linear-gradient(90deg, rgba(0, 177, 211, .25), rgba(147, 199, 73, .25));
	}
	.gdw-ag-steps::after {
		content: "";
		position: absolute;
		top: 29px;
		left: 32px;
		width: 90px;
		height: 8px;
		border-radius: 8px;
		background: linear-gradient(90deg, transparent, var(--ag-logo-1), var(--ag-logo-2), transparent);
		filter: blur(1px);
		animation: ag-pulse 4.5s linear infinite;
	}
}
@keyframes ag-pulse { from { left: 0; } to { left: calc(100% - 90px); } }
.gdw-ag-step__num .elementor-heading-title {
	width: 64px;
	height: 64px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #FFFFFF;
	border: 2px solid transparent;
	box-shadow: 0 0 0 6px #F1F6F6, inset 0 0 0 2px rgba(0, 177, 211, .5);
	-webkit-text-fill-color: var(--ag-turquesa);
	position: relative;
	z-index: 1;
}

/* ---------- 8. Galería en mosaico ---------- */
.gdw-ag-mosaic { grid-auto-rows: 230px; grid-auto-flow: dense; grid-template-rows: none !important; }
.gdw-ag-mosaic > .elementor-widget-image { overflow: hidden; border-radius: 16px; position: relative; }
.gdw-ag-mosaic > .elementor-widget-image .elementor-widget-container,
.gdw-ag-mosaic > .elementor-widget-image a { display: block; height: 100%; }
.gdw-ag-mosaic > .elementor-widget-image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform .8s cubic-bezier(.2, .8, .2, 1), filter .5s ease;
}
.gdw-ag-mosaic > .elementor-widget-image:hover img { transform: scale(1.07); filter: saturate(1.15); }
.gdw-ag-mosaic > .elementor-widget-image::after {
	content: "+";
	position: absolute;
	right: 14px;
	bottom: 14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font: 500 24px/1 "DM Sans", sans-serif;
	color: #0B1A1E;
	background: var(--ag-grad);
	opacity: 0;
	transform: scale(.6);
	transition: opacity .3s ease, transform .3s ease;
	pointer-events: none;
}
.gdw-ag-mosaic > .elementor-widget-image:hover::after { opacity: 1; transform: none; }
/* Tamaños fijados por el constructor según cuántas fotos hay (sin huecos en 3 columnas) */
@media (min-width: 1025px) {
	.gdw-ag-mosaic > .gdw-ag-m-big { grid-row: span 2; grid-column: span 2; }
	.gdw-ag-mosaic > .gdw-ag-m-wide { grid-column: span 2; }
	.gdw-ag-mosaic > .gdw-ag-m-full { grid-column: 1 / -1; }
}
@media (max-width: 767px) { .gdw-ag-mosaic { grid-auto-rows: 210px; } }

/* ---------- 9. Franja final con degradado vivo ---------- */
.gdw-ag-cta { isolation: isolate; }
.gdw-ag-cta::before {
	content: "";
	position: absolute;
	width: 620px;
	height: 620px;
	left: -160px;
	top: -260px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 177, 211, .35), transparent 65%);
	animation: ag-blob 14s ease-in-out infinite alternate;
	z-index: 0;
}
.gdw-ag-cta::after {
	content: "";
	position: absolute;
	width: 560px;
	height: 560px;
	right: -140px;
	bottom: -300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(147, 199, 73, .3), transparent 65%);
	animation: ag-blob 16s ease-in-out infinite alternate-reverse;
	z-index: 0;
}
@keyframes ag-blob { to { transform: translate(120px, 60px) scale(1.15); } }

/* ---------- 10. Botones ---------- */
.gdw-ag-btn .elementor-button { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease; }
.gdw-ag-btn .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 122, 150, .3); }
.gdw-ag-btn--ghost .elementor-button:hover { border-color: #FFFFFF !important; box-shadow: none; }
.gdw-ag-btn--light .elementor-button:hover { box-shadow: 0 12px 28px rgba(0, 177, 211, .35); }
@media (min-width: 1025px) {
	.gdw-ag-trabajos__head > .gdw-ag-buttons,
	.gdw-ag-noticias__head > .gdw-ag-buttons,
	.gdw-ag-cta__actions .gdw-ag-buttons { justify-content: flex-end; }
}

/* ---------- 11. Listas, acordeón, formulario ---------- */
.gdw-ag-list .elementor-icon-list-icon {
	width: 22px;
	height: 22px;
	min-width: 22px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 177, 211, .14);
}
.gdw-ag-list .elementor-icon-list-icon svg, .gdw-ag-list .elementor-icon-list-icon i { width: 11px !important; font-size: 11px !important; }
.gdw-ag-sec--dark .gdw-ag-list .elementor-icon-list-icon { background: rgba(147, 199, 73, .18); }

.gdw-ag-contacto__form .gdw-form select {
	width: 100%;
	border-radius: 10px;
	border: 1px solid var(--ag-borde);
	padding: 12px 14px;
	background: #FFFFFF;
}
#formulario { scroll-margin-top: 120px; }

/* Tarjetas de contacto */
.gdw-ag-contact-card a { color: inherit; text-decoration: none; }

/* ---------- 12. Entradas del blog ---------- */
.single-post .entry-content,
.single-post .post-navigation {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}
.single-post .entry-content p,
.single-post .entry-content li { font-size: 17px; line-height: 1.7; }
.single-post .entry-content h2 { margin-top: 1.6em; }
.single-post .entry-content a { color: var(--ag-turquesa); text-underline-offset: 3px; }
.single-post .entry-content a:hover { color: var(--ag-turquesa-osc); }
.gdw-ag-posts .eael-grid-post-holder { border-radius: var(--ag-radio) !important; overflow: hidden; transition: transform .4s ease, box-shadow .4s ease; }
.gdw-ag-posts .eael-grid-post-holder:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(19, 42, 48, .12); }

/* ---------- 13. Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
	.gdw-ag-hero .gdw-ag-bg img,
	.gdw-ag-fx::after,
	.gdw-ag-pill .elementor-heading-title::before,
	.gdw-ag-float,
	.gdw-ag-steps::after,
	.gdw-ag-cta::before,
	.gdw-ag-cta::after { animation: none !important; }
	.gdw-ag-tile .gdw-ag-bg img,
	.gdw-ag-mosaic img,
	.gdw-ag-feature { transition: none !important; }
	.gdw-ag-tile:hover .gdw-ag-bg img, .gdw-ag-feature:hover { transform: none; }
}

/* ---------- 14. Ajustes tras la revisión (06-10-2026) ---------- */
/* Inicio: el hero cabe en la primera pantalla con la barra de cifras */
@media (min-width: 1025px) {
	.gdw-ag-hero--home {
		min-height: calc(100svh - var(--gdw-header-h, 97px) - var(--wp-admin--admin-bar--height, 0px)) !important;
		padding-top: 90px !important;
		padding-bottom: 44px !important;
	}
}
/* Cintas de sectores de borde a borde */
.gdw-ag-chips { margin-left: -50px; margin-right: -50px; }
@media (max-width: 1024px) { .gdw-ag-chips { margin-left: -40px; margin-right: -40px; } }
@media (max-width: 767px) { .gdw-ag-chips { margin-left: -15px; margin-right: -15px; } }
/* «24H» algo más visible */
.gdw-ag-giant .elementor-heading-title { -webkit-text-stroke: 2px rgba(255, 255, 255, .11); }
/* Sello giratorio: texto blanco y aro con el degradado */
.gdw-ag-badge .gdw-circle-text__ring text { fill: #FFFFFF; font-size: 12.5px; letter-spacing: .22em; }
.gdw-ag-media > .gdw-ag-badge { box-shadow: 0 0 0 4px #FFFFFF, 0 0 0 6px rgba(0, 177, 211, .55), 0 20px 40px rgba(19, 42, 48, .3); }
/* Listas: la sangría de Elementor va como relleno del icono y lo descentra */
.gdw-ag-list .elementor-icon-list-icon { padding: 0 !important; margin-right: 12px; }
.gdw-ag-list .elementor-icon-list-icon svg { width: 11px !important; height: 11px !important; }

/* ---------- 15. Pie (plantilla 37) ---------- */
.gdw-ag-footer {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-image:
		radial-gradient(700px 420px at 90% 0%, rgba(0, 177, 211, .14), transparent 70%),
		radial-gradient(600px 400px at 0% 100%, rgba(147, 199, 73, .10), transparent 70%),
		linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px) !important;
	background-size: auto, auto, 56px 56px, 56px 56px !important;
}
.gdw-ag-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: var(--ag-grad);
}
.gdw-ag-footer > .e-con, .gdw-ag-footer > .elementor-element { position: relative; z-index: 2; }

/* Tarjetas de contacto */
.gdw-ag-fcard {
	border-radius: var(--ag-radio);
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .1);
	text-decoration: none !important;
	overflow: hidden;
	transition: border-color .35s ease, transform .35s ease, background-color .35s ease;
}
.gdw-ag-fcard:hover { border-color: rgba(147, 199, 73, .55); transform: translateY(-3px); background: rgba(255, 255, 255, .06); }
.gdw-ag-fcard > .elementor-element:not(.gdw-ag-glow) { position: relative; z-index: 3; }
.gdw-ag-fcard__icon .elementor-icon {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background: var(--ag-grad);
	box-shadow: 0 10px 24px rgba(0, 177, 211, .25);
}
.gdw-ag-fcard__icon .elementor-icon svg { fill: #0B1A1E; }
.gdw-ag-fcard__value .elementor-heading-title { word-break: break-word; }

/* Cuerpo */
.gdw-ag-footer__main { border-bottom: 1px solid rgba(255, 255, 255, .08); }
@media (min-width: 1025px) {
	.gdw-ag-footer__main { grid-template-columns: 1.6fr 1.2fr .9fr .9fr !important; }
}
.gdw-ag-footer__title .elementor-heading-title { display: inline-block; padding-bottom: 12px; position: relative; }
.gdw-ag-footer__title .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 32px;
	height: 3px;
	border-radius: 3px;
	background: var(--ag-grad);
}
.gdw-ag-footer__nav .hfe-nav-menu a.hfe-menu-item { transition: color .25s ease, padding-left .25s ease; }
.gdw-ag-footer__nav .hfe-nav-menu a.hfe-menu-item:hover { padding-left: 6px !important; }
.gdw-ag-footer__badges .elementor-icon-list-items { gap: 8px; }
.gdw-ag-footer__badges .elementor-icon-list-item {
	margin: 0 !important;
	padding: 6px 12px !important;
	border-radius: 50px;
	border: 1px solid rgba(255, 255, 255, .14);
	background: rgba(255, 255, 255, .04);
}
.gdw-ag-footer__badges .elementor-icon-list-item::after { display: none !important; }

/* Nombre gigante con el degradado del logo */
.gdw-ag-footer__giant { margin: 26px 0 -0.16em !important; text-align: center; }
.gdw-ag-footer__giant .elementor-heading-title {
	font: 800 clamp(44px, 11.2vw, 200px) / .9 "Plus Jakarta Sans", sans-serif !important;
	white-space: nowrap;
	color: transparent !important;
	-webkit-text-stroke: 1.5px rgba(255, 255, 255, .14);
	background: linear-gradient(90deg, rgba(0, 177, 211, .22), rgba(147, 199, 73, .22));
	-webkit-background-clip: text;
	background-clip: text;
}

/* Barra final */
.gdw-ag-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .08); }
.gdw-ag-footer__bottom > .elementor-widget-copyright { flex: 1 1 auto; }
.gdw-ag-footer__bottom > .e-con { flex: none; width: auto !important; margin-left: auto; }
@media (max-width: 767px) { .gdw-ag-footer__bottom > .e-con { margin-left: 0; } }
.gdw-ag-footer__credit a { color: #FFFFFF; text-decoration: none; border-bottom: 1px solid rgba(147, 199, 73, .6); }
.gdw-ag-footer__credit a:hover { color: #93C749; }
.gdw-ag-footer__top .elementor-button-icon { transition: transform .3s ease; }
.gdw-ag-footer__top:hover .elementor-button-icon { transform: translateY(-3px); }
@media (max-width: 767px) {
	.gdw-ag-footer__bottom .hfe-copyright-wrapper { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.gdw-ag-fcard, .gdw-ag-footer__nav .hfe-nav-menu a.hfe-menu-item { transition: none !important; }
	.gdw-ag-fcard:hover { transform: none; }
}
/* Pie: filas a su altura, icono al lado del texto y Empresa + Legal juntas en móvil */
.gdw-ag-footer__contact, .gdw-ag-footer__main { grid-template-rows: none !important; grid-auto-rows: auto; }
.gdw-ag-fcard { flex-wrap: nowrap !important; }
.gdw-ag-fcard > .gdw-ag-fcard__icon { width: auto !important; flex: none !important; }
@media (max-width: 767px) {
	.gdw-ag-fcard { padding: 18px 18px !important; }
	.gdw-ag-fcard__value .elementor-heading-title { font-size: 18px !important; }
	.gdw-ag-footer__main { grid-template-columns: 1fr 1fr !important; }
	.gdw-ag-footer__main > .gdw-ag-footer__col:nth-child(-n + 2) { grid-column: 1 / -1; }
}

/* ---------- 16. Menú móvil (widget de UAE .gdw-header__nav--mobile) ---------- */
/* Botón de hamburguesa */
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--ag-petroleo);
	box-shadow: 0 0 0 2px rgba(0, 177, 211, .35), 0 8px 18px rgba(19, 42, 48, .25);
	transition: transform .3s ease, box-shadow .3s ease;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle:hover { transform: scale(1.05); box-shadow: 0 0 0 2px #93C749, 0 8px 18px rgba(19, 42, 48, .3); }
#masthead .gdw-header__nav--mobile .hfe-nav-menu-icon svg { fill: #FFFFFF !important; width: 20px !important; height: 20px !important; }

/* Fondo de la página detrás del panel */
#masthead .gdw-header__nav--mobile .hfe-flyout-overlay {
	background: rgba(11, 26, 30, .55) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

/* Panel */
#masthead .gdw-header__nav--mobile .hfe-side { width: min(88vw, 420px) !important; }
#masthead .gdw-header__nav--mobile .hfe-flyout-content {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 22px 26px 28px !important;
	background-color: #0B1A1E !important;
	background-image:
		radial-gradient(420px 320px at 100% 0%, rgba(0, 177, 211, .22), transparent 70%),
		radial-gradient(380px 300px at 0% 100%, rgba(147, 199, 73, .16), transparent 70%),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) !important;
	background-size: auto, auto, 44px 44px, 44px 44px !important;
	overflow-y: auto;
}
#masthead .gdw-header__nav--mobile .hfe-flyout-content::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--ag-logo-1), var(--ag-logo-2));
}

/* Cabecera del panel (la añade custom.js) */
.gdw-ag-mnav__brand { display: flex; align-items: center; min-height: 48px; margin: 0 56px 26px 0; }
.gdw-ag-mnav__brand img { width: 168px; height: auto; display: block; }

/* Cerrar */
#masthead .gdw-header__nav--mobile .hfe-flyout-close {
	position: absolute !important;
	top: 22px !important;
	right: 22px !important;
	left: auto !important;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .18);
	transition: transform .35s ease, background-color .3s ease;
}
#masthead .gdw-header__nav--mobile .hfe-flyout-close:hover { transform: rotate(90deg); background: rgba(255, 255, 255, .16); }
#masthead .gdw-header__nav--mobile .hfe-flyout-close svg { fill: #FFFFFF !important; width: 16px !important; height: 16px !important; }

/* Enlaces: grandes, numerados, con flecha y entrada escalonada */
#masthead .gdw-header__nav--mobile .hfe-nav-menu { counter-reset: agnav; }
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li {
	counter-increment: agnav;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	opacity: 0;
	transform: translateX(26px);
	transition: opacity .45s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li { opacity: 1; transform: none; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(1) { transition-delay: .08s; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(2) { transition-delay: .14s; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(3) { transition-delay: .2s; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(4) { transition-delay: .26s; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(5) { transition-delay: .32s; }
#masthead .gdw-header__nav--mobile .hfe-flyout-show .hfe-nav-menu > li:nth-child(6) { transition-delay: .38s; }
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
	display: flex !important;
	align-items: center;
	gap: 14px;
	padding: 17px 0 !important;
	font: 700 23px/1.2 "Plus Jakarta Sans", sans-serif !important;
	color: #FFFFFF !important;
	background: transparent !important;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > a.hfe-menu-item::before,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item::before {
	content: counter(agnav, decimal-leading-zero);
	font: 700 11px/1 "DM Sans", sans-serif;
	letter-spacing: .12em;
	color: var(--ag-logo-1);
	-webkit-text-fill-color: var(--ag-logo-1);
	min-width: 20px;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li:not(.menu-item-has-children) > a.hfe-menu-item::after {
	content: "→";
	margin-left: auto;
	font-size: 18px;
	color: rgba(255, 255, 255, .35);
	-webkit-text-fill-color: rgba(255, 255, 255, .35);
	transition: transform .3s ease;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > a.hfe-menu-item:hover::after { transform: translateX(4px); -webkit-text-fill-color: #93C749; }
/* Página actual */
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-parent > .hfe-has-submenu-container > a.hfe-menu-item {
	background: var(--ag-grad) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent;
}

/* Flecha del submenú en un círculo que gira */
#masthead .gdw-header__nav--mobile .hfe-menu-toggle {
	margin-left: auto !important;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, .2);
	-webkit-text-fill-color: #FFFFFF;
	color: #FFFFFF !important;
	transition: transform .35s ease, background-color .3s ease;
}
#masthead .gdw-header__nav--mobile .sub-menu-active > .hfe-has-submenu-container .hfe-menu-toggle,
#masthead .gdw-header__nav--mobile .hfe-has-submenu-container[aria-expanded="true"] .hfe-menu-toggle {
	transform: rotate(180deg);
	background: var(--ag-grad);
	-webkit-text-fill-color: #0B1A1E;
	color: #0B1A1E !important;
	border-color: transparent;
}

/* Submenú en tarjetas */
#masthead .gdw-header__nav--mobile .sub-menu {
	background: transparent !important;
	padding: 0 0 16px 34px !important;
	border: 0 !important;
	box-shadow: none !important;
}
#masthead .gdw-header__nav--mobile .sub-menu li { border: 0 !important; margin-bottom: 6px; }
#masthead .gdw-header__nav--mobile .sub-menu a.hfe-sub-menu-item {
	display: block;
	padding: 11px 14px !important;
	border-radius: 12px;
	font: 500 15px/1.35 "DM Sans", sans-serif !important;
	color: #DCE6E6 !important;
	background: rgba(255, 255, 255, .05) !important;
	border: 1px solid rgba(255, 255, 255, .08);
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
#masthead .gdw-header__nav--mobile .sub-menu a.hfe-sub-menu-item:hover,
#masthead .gdw-header__nav--mobile .sub-menu .current-menu-item > a.hfe-sub-menu-item {
	color: #FFFFFF !important;
	border-color: rgba(147, 199, 73, .55);
	background: rgba(147, 199, 73, .1) !important;
}

/* Pie del panel (lo añade custom.js) */
.gdw-ag-mnav__foot {
	margin-top: auto;
	padding-top: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.gdw-ag-mnav__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	font: 700 12px/1.3 "DM Sans", sans-serif;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #93C749;
}
.gdw-ag-mnav__eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #93C749;
	animation: ag-ping 2s infinite;
}
.gdw-ag-mnav__call {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	border-radius: 16px;
	background: var(--ag-grad);
	color: #0B1A1E !important;
	text-decoration: none !important;
	box-shadow: 0 14px 30px rgba(0, 177, 211, .25);
}
.gdw-ag-mnav__call small { display: block; font: 600 12px/1.2 "DM Sans", sans-serif; opacity: .8; }
.gdw-ag-mnav__call strong { display: block; font: 800 22px/1.15 "Plus Jakarta Sans", sans-serif; }
.gdw-ag-mnav__ico {
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0B1A1E;
}
.gdw-ag-mnav__ico svg { width: 18px; height: 18px; fill: #93C749; }
.gdw-ag-mnav__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gdw-ag-mnav__row a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 10px;
	border-radius: 12px;
	font: 600 14px/1.2 "DM Sans", sans-serif;
	color: #FFFFFF !important;
	text-decoration: none !important;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .14);
}
.gdw-ag-mnav__row a svg { width: 14px; height: 14px; fill: #00B1D3; }
.gdw-ag-mnav__addr { font: 400 13px/1.5 "DM Sans", sans-serif; color: #8FA3A7; text-align: center; margin: 4px 0 0; }

@media (prefers-reduced-motion: reduce) {
	#masthead .gdw-header__nav--mobile .hfe-nav-menu > li { opacity: 1; transform: none; transition: none; }
	.gdw-ag-mnav__eyebrow::before { animation: none; }
}
/* Menú móvil: UAE usa ::before / ::after para su subrayado (absolutos y con opacidad 0) */
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > a.hfe-menu-item::before,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item::before,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li:not(.menu-item-has-children) > a.hfe-menu-item::after {
	position: static !important;
	opacity: 1 !important;
	transform: none;
	width: auto !important;
	height: auto !important;
	background: none !important;
	display: inline-block !important;
}
/* Degradado de la página actual repartido sobre la palabra, no sobre todo el ancho */
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-nav-menu > li.current-menu-parent > .hfe-has-submenu-container > a.hfe-menu-item {
	background: linear-gradient(90deg, #00B1D3 40px, #93C749 170px) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
}
/* Con la barra de administración (solo con sesión iniciada) */
.admin-bar #masthead .gdw-header__nav--mobile .hfe-flyout-content { padding-top: calc(22px + var(--wp-admin--admin-bar--height, 0px)) !important; }
.admin-bar #masthead .gdw-header__nav--mobile .hfe-flyout-close { top: calc(22px + var(--wp-admin--admin-bar--height, 0px)) !important; }
/* Iconos centrados en sus círculos: UAE pone relleno y margen al icono de la
   hamburguesa y deja la X del panel en posición absoluta arriba a la derecha */
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
	border: 0 !important;
	background: none !important;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon svg { display: block; margin: 0 !important; }
#masthead .gdw-header__nav--mobile .hfe-flyout-close { line-height: 0 !important; padding: 0 !important; }
#masthead .gdw-header__nav--mobile .hfe-flyout-close svg {
	position: static !important;
	margin: 0 !important;
	display: block !important;
}
/* X de cerrar limpia (dos trazos) en lugar del icono «ventana con X» de UAE */
#masthead .gdw-header__nav--mobile .hfe-flyout-close svg { display: none !important; }
#masthead .gdw-header__nav--mobile .hfe-flyout-close::before,
#masthead .gdw-header__nav--mobile .hfe-flyout-close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: #FFFFFF;
	transform: translate(-50%, -50%) rotate(45deg);
}
#masthead .gdw-header__nav--mobile .hfe-flyout-close::after { transform: translate(-50%, -50%) rotate(-45deg); }

/* ---------- 17. Desplegable del menú de escritorio (.gdw-header__nav--desktop) ---------- */
/* >>> AG DESPLEGABLE ESCRITORIO (06-10-2026) · para deshacer: borrar hasta «<<< fin DESPLEGABLE» */
#masthead .gdw-header__nav--desktop .menu-item-has-children > .hfe-has-submenu-container .hfe-menu-toggle,
#masthead .gdw-header__nav--desktop .menu-item-has-children > a .hfe-menu-toggle { transition: transform .3s ease; }
#masthead .gdw-header__nav--desktop .menu-item-has-children:hover .hfe-menu-toggle,
#masthead .gdw-header__nav--desktop .menu-item-has-children:focus-within .hfe-menu-toggle { transform: rotate(180deg); }

#masthead .gdw-header__nav--desktop .sub-menu {
	width: 360px !important;
	min-width: 360px !important;
	margin-top: 16px !important;
	padding: 14px !important;
	border-radius: 18px !important;
	border: 1px solid rgba(255, 255, 255, .1) !important;
	background-color: #0B1A1E !important;
	background-image:
		radial-gradient(260px 200px at 100% 0%, rgba(0, 177, 211, .22), transparent 70%),
		radial-gradient(240px 180px at 0% 100%, rgba(147, 199, 73, .16), transparent 70%),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) !important;
	background-size: auto, auto, 32px 32px, 32px 32px !important;
	box-shadow: 0 30px 60px rgba(11, 26, 30, .35), 0 8px 18px rgba(11, 26, 30, .2) !important;
	counter-reset: agdd;
	overflow: visible !important;
	transform: translateY(8px);
	transition: opacity .3s ease, visibility .3s ease, transform .35s cubic-bezier(.2, .8, .2, 1) !important;
}
#masthead .gdw-header__nav--desktop .menu-item-has-children:hover > .sub-menu,
#masthead .gdw-header__nav--desktop .menu-item-has-children:focus-within > .sub-menu { transform: none; }
/* franja degradada arriba y pico hacia «Servicios» */
#masthead .gdw-header__nav--desktop .sub-menu::before {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	top: -1px;
	height: 3px;
	border-radius: 0 0 3px 3px;
	background: linear-gradient(90deg, #00B1D3, #93C749);
}
#masthead .gdw-header__nav--desktop .sub-menu::after {
	content: "";
	position: absolute;
	left: 34px;
	top: -7px;
	width: 14px;
	height: 14px;
	background: #00B1D3;
	transform: rotate(45deg);
	border-radius: 3px 0 0 0;
	z-index: -1;
}
/* puente invisible para no perder el hover en el hueco */
#masthead .gdw-header__nav--desktop .menu-item-has-children > .sub-menu > li:first-child::before {
	content: "";
	position: absolute;
	left: -14px;
	right: -14px;
	top: -32px;
	height: 18px;
}

#masthead .gdw-header__nav--desktop .sub-menu li {
	position: relative;
	counter-increment: agdd;
	border: 0 !important;
	margin: 0 0 4px !important;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .35s ease, transform .4s cubic-bezier(.2, .8, .2, 1);
}
#masthead .gdw-header__nav--desktop .menu-item-has-children:hover > .sub-menu li,
#masthead .gdw-header__nav--desktop .menu-item-has-children:focus-within > .sub-menu li { opacity: 1; transform: none; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(2) { transition-delay: .04s; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(3) { transition-delay: .08s; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(4) { transition-delay: .12s; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(5) { transition-delay: .16s; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(6) { transition-delay: .2s; }
#masthead .gdw-header__nav--desktop .sub-menu li:nth-child(7) { transition-delay: .24s; }

#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item {
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 12px 14px !important;
	border-radius: 12px;
	border: 1px solid transparent;
	font: 600 15px/1.3 "DM Sans", sans-serif !important;
	color: #E6EFEF !important;
	background: transparent !important;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, padding .25s ease;
}
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item::before {
	content: counter(agdd, decimal-leading-zero);
	position: static !important;
	opacity: 1 !important;
	width: auto !important;
	height: auto !important;
	background: none !important;
	font: 700 11px/1 "DM Sans", sans-serif;
	letter-spacing: .12em;
	color: #00B1D3;
	min-width: 18px;
}
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item::after {
	content: "→";
	position: static !important;
	opacity: 0 !important;
	width: auto !important;
	height: auto !important;
	background: none !important;
	margin-left: auto;
	color: #93C749;
	transform: translateX(-6px);
	transition: opacity .25s ease, transform .25s ease;
}
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:hover,
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:focus-visible {
	color: #FFFFFF !important;
	background: rgba(255, 255, 255, .06) !important;
	border-color: rgba(147, 199, 73, .45);
}
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:hover::after,
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:focus-visible::after { opacity: 1 !important; transform: none; }
#masthead .gdw-header__nav--desktop .sub-menu .current-menu-item > a.hfe-sub-menu-item {
	color: #FFFFFF !important;
	background: rgba(147, 199, 73, .12) !important;
	border-color: rgba(147, 199, 73, .55);
}

/* Pie del desplegable (lo añade custom.js) */
#masthead .gdw-header__nav--desktop .sub-menu li.ag-dd-foot {
	counter-increment: none;
	margin: 10px 0 0 !important;
	padding-top: 12px;
	border-top: 1px solid rgba(255, 255, 255, .1) !important;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.ag-dd-foot a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
	font: 600 13px/1.2 "DM Sans", sans-serif;
	white-space: nowrap;
}
.ag-dd-foot .ag-dd-all { color: #00B1D3 !important; padding: 8px 4px; }
.ag-dd-foot .ag-dd-all:hover { color: #93C749 !important; }
.ag-dd-foot .ag-dd-call {
	padding: 9px 14px;
	border-radius: 50px;
	color: #0B1A1E !important;
	background: linear-gradient(90deg, #00B1D3, #93C749);
	box-shadow: 0 8px 18px rgba(0, 177, 211, .25);
}
.ag-dd-foot .ag-dd-call svg { width: 12px; height: 12px; fill: #0B1A1E; }
@media (prefers-reduced-motion: reduce) {
	#masthead .gdw-header__nav--desktop .sub-menu,
	#masthead .gdw-header__nav--desktop .sub-menu li { transform: none !important; transition: none !important; }
	#masthead .gdw-header__nav--desktop .sub-menu li { opacity: 1; }
}
/* <<< fin DESPLEGABLE */

/* ---------- 18. Visor de galerías (lightbox de Elementor) ---------- */
/* >>> AG GALERÍAS (06-10-2026) · para deshacer: borrar hasta «<<< fin GALERÍAS» */
/* Elementor 4 solo trae la posición de las flechas con sus carruseles: aquí, a los lados y con la línea de la web */
.elementor-lightbox { background-color: rgba(11, 26, 30, .95) !important; }
.elementor-lightbox .elementor-swiper-button {
	position: absolute !important;
	top: 50% !important;
	width: 54px !important;
	height: 54px !important;
	margin-top: -27px;
	padding: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .22);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	cursor: pointer;
	z-index: 5;
	transition: background .3s ease, border-color .3s ease, transform .3s ease;
}
.elementor-lightbox .elementor-swiper-button-prev { left: 24px !important; right: auto !important; }
.elementor-lightbox .elementor-swiper-button-next { right: 24px !important; left: auto !important; }
.elementor-lightbox .elementor-swiper-button svg { width: 20px !important; height: 20px !important; fill: #FFFFFF !important; }
.elementor-lightbox .elementor-swiper-button:hover,
.elementor-lightbox .elementor-swiper-button:focus-visible {
	background: linear-gradient(135deg, #00B1D3, #93C749);
	border-color: transparent;
	transform: scale(1.06);
}
.elementor-lightbox .elementor-swiper-button:hover svg { fill: #0B1A1E !important; }
.elementor-lightbox .elementor-slideshow__counter { color: #FFFFFF !important; font: 600 14px/1 "DM Sans", sans-serif; letter-spacing: .08em; }
.elementor-lightbox .elementor-slideshow__header svg { fill: #FFFFFF !important; transition: fill .25s ease; }
.elementor-lightbox .elementor-slideshow__header svg:hover,
.elementor-lightbox .dialog-lightbox-close-button:hover svg { fill: #93C749 !important; }
.elementor-lightbox .elementor-slideshow__title { color: #DCE6E6 !important; font: 500 15px/1.4 "DM Sans", sans-serif !important; }
@media (max-width: 767px) {
	.elementor-lightbox .elementor-swiper-button { width: 44px !important; height: 44px !important; margin-top: -22px; }
	.elementor-lightbox .elementor-swiper-button-prev { left: 10px !important; }
	.elementor-lightbox .elementor-swiper-button-next { right: 10px !important; }
}
/* <<< fin GALERÍAS */

/* ---------- 19. Botón «Avería 24 h» de la cabecera ---------- */
/* >>> AG BOTÓN CABECERA (06-10-2026) · para deshacer: borrar hasta «<<< fin BOTÓN CABECERA» */
/* Mismo degradado que el botón de averías del desplegable; tamaño, texto e icono del widget */
#masthead .gdw-header__cta .elementor-button {
	background-color: transparent !important;
	background-image: linear-gradient(90deg, #00B1D3 0%, #93C749 50%, #00B1D3 100%) !important;
	background-size: 200% 100% !important;
	background-position: 0% 0;
	color: #0B1A1E !important;
	box-shadow: 0 8px 18px rgba(0, 177, 211, .25);
	transition: background-position .5s ease, box-shadow .3s ease, transform .3s ease;
}
#masthead .gdw-header__cta .elementor-button svg { fill: #0B1A1E !important; }
#masthead .gdw-header__cta .elementor-button:hover,
#masthead .gdw-header__cta .elementor-button:focus-visible {
	background-position: 100% 0;
	color: #0B1A1E !important;
	box-shadow: 0 12px 26px rgba(147, 199, 73, .35);
	transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
	#masthead .gdw-header__cta .elementor-button { transition: none; }
	#masthead .gdw-header__cta .elementor-button:hover { transform: none; }
}
/* <<< fin BOTÓN CABECERA */

/* ---------- 20. «Inicio» fuera del menú de escritorio ---------- */
/* >>> AG SIN INICIO ESCRITORIO (06-10-2026) · para deshacer: borrar hasta «<<< fin SIN INICIO» */
/* En escritorio se llega a la portada con el logo; en el menú móvil «Inicio» se mantiene */
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li.menu-item-home { display: none !important; }
/* <<< fin SIN INICIO */

/* ---------- 21. Cabecera oscura integrada, compacta al bajar y con barra de corriente ---------- */
/* >>> AG CABECERA SCROLL (06-10-2026) · para deshacer: borrar hasta «<<< fin CABECERA SCROLL» (y el bloque del mismo nombre en custom.js) */
/* Arriba: petróleo oscuro, como la parte izquierda de las cabeceras de sección. Al bajar
   (body.gdw-is-scrolled, de la base): cristal oscuro, compacta y con una barra de progreso
   de lectura con el degradado y una chispa en la punta (--ag-progress lo pone custom.js).
   El cristal va en un pseudo-elemento de la barra, no en #masthead, para no romper el panel fijo del menú móvil. */
#masthead .gdw-header__bar {
	isolation: isolate;
	background-color: #0B1A1E !important;
	transition: padding .35s cubic-bezier(.2, .8, .2, 1), background-color .35s ease !important;
}
#masthead .gdw-header__bar::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	z-index: -1 !important;
	display: block !important;
	border-radius: 0 !important;
	mix-blend-mode: normal !important;
	background: rgba(11, 26, 30, .72) !important;
	-webkit-backdrop-filter: blur(16px) saturate(1.5);
	backdrop-filter: blur(16px) saturate(1.5);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	opacity: 0 !important;
	transition: opacity .35s ease !important;
}
/* Barra de corriente: progreso de lectura con chispa en la punta */
#masthead .gdw-header__bar::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	height: 2px;
	width: calc(var(--ag-progress, 0) * 100%);
	background: linear-gradient(90deg, #00B1D3 0%, #93C749 calc(100% - 14px), #FFFFFF 100%);
	box-shadow: 0 0 8px rgba(0, 177, 211, .7), 0 0 16px rgba(147, 199, 73, .45);
	opacity: 0;
	transition: opacity .35s ease;
	pointer-events: none;
}
body.gdw-is-scrolled #masthead .gdw-header__bar {
	padding-top: 10px !important;
	padding-bottom: 10px !important;
	background-color: transparent !important;
}
body.gdw-is-scrolled #masthead .gdw-header__bar::before { opacity: 1 !important; }
body.gdw-is-scrolled #masthead .gdw-header__bar::after { opacity: 1; }
body.gdw-is-scrolled #masthead { box-shadow: 0 10px 30px rgba(11, 26, 30, .25) !important; }

/* Logo (custom.js pone la versión blanca) y más pequeño al bajar */
#masthead .gdw-header__bar .hfe-site-logo img { transition: width .35s cubic-bezier(.2, .8, .2, 1), max-width .35s ease; }
body.gdw-is-scrolled #masthead .gdw-header__bar .hfe-site-logo img { width: 170px !important; max-width: 170px !important; }
@media (max-width: 1024px) {
	body.gdw-is-scrolled #masthead .gdw-header__bar .hfe-site-logo img { width: 135px !important; max-width: 135px !important; }
}

/* Enlaces del menú horizontal en blanco; subrayado con el degradado que crece; la página actual, siempre */
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
	color: #E6EFEF !important;
	background-image: linear-gradient(90deg, #00B1D3, #93C749) !important;
	background-repeat: no-repeat !important;
	background-origin: content-box !important;
	background-position: 0 calc(100% + 6px) !important;
	background-size: 0% 2px !important;
	transition: background-size .35s cubic-bezier(.2, .8, .2, 1), color .25s ease !important;
}
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > a.hfe-menu-item:hover,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item:hover,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li.current-menu-parent > .hfe-has-submenu-container > a.hfe-menu-item {
	color: #FFFFFF !important;
	background-size: 100% 2px !important;
}
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > .hfe-has-submenu-container .hfe-menu-toggle,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > li > a .hfe-menu-toggle { color: #E6EFEF !important; }
#masthead .gdw-header__nav--desktop .hfe-menu-toggle svg { fill: #E6EFEF !important; }

/* Botón de averías algo más compacto al bajar */
#masthead .gdw-header__cta .elementor-button { transition: background-position .5s ease, box-shadow .3s ease, transform .3s ease, padding .35s ease; }
body.gdw-is-scrolled #masthead .gdw-header__cta .elementor-button { padding: 10px 18px !important; }

/* Hamburguesa de cristal sobre el fondo oscuro, algo más pequeña al bajar */
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle {
	background: rgba(255, 255, 255, .08) !important;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .22), 0 8px 18px rgba(0, 0, 0, .25) !important;
	transition: transform .3s ease, box-shadow .3s ease, width .35s ease, height .35s ease;
}
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle:hover { box-shadow: 0 0 0 1px #93C749, 0 8px 18px rgba(0, 0, 0, .3) !important; }
body.gdw-is-scrolled #masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle { width: 40px; height: 40px; }

@media (prefers-reduced-motion: reduce) {
	#masthead .gdw-header__bar,
	#masthead .gdw-header__bar::before,
	#masthead .gdw-header__bar::after,
	#masthead .gdw-header__bar .hfe-site-logo img,
	#masthead .gdw-header__nav--desktop .hfe-nav-menu a.hfe-menu-item { transition: none !important; }
}
/* <<< fin CABECERA SCROLL */

/* ---------- 22. Páginas legales y mapa del sitio ---------- */
/* >>> AG LEGALES (06-10-2026) · para deshacer el estilo: borrar hasta «<<< fin LEGALES» (y el bloque del mismo nombre en custom.js) */
.gdw-ag-legal__card {
	background: #FFFFFF;
	border: 1px solid var(--ag-borde);
	border-radius: 22px;
	box-shadow: 0 24px 60px rgba(19, 42, 48, .07);
	position: relative;
	overflow: hidden;
}
.gdw-ag-legal__card::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: var(--ag-grad);
}
.gdw-ag-legal__date p {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	padding: 6px 14px;
	border-radius: 50px;
	background: #F1F6F6;
	color: #4D4D4B;
}
.gdw-ag-legal__body { font-size: 16px; line-height: 1.75; color: #4D4D4B; }
.gdw-ag-legal__body h2 {
	position: relative;
	margin: 2.2em 0 .7em;
	padding-top: 18px;
	scroll-margin-top: calc(var(--gdw-header-h, 97px) + 24px);
	font: 800 24px/1.3 "Plus Jakarta Sans", sans-serif;
	color: #0E1E22;
	border-top: 1px solid var(--ag-borde);
}
.gdw-ag-legal__body h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: -2px;
	width: 44px;
	height: 3px;
	border-radius: 3px;
	background: var(--ag-grad);
}
.gdw-ag-legal__body > p:first-child { font-size: 17px; color: #132A30; }
.gdw-ag-legal__body ul { list-style: none; padding-left: 0; margin: 0 0 1.2em; }
.gdw-ag-legal__body ul li { position: relative; padding-left: 26px; margin-bottom: .55em; }
.gdw-ag-legal__body ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .62em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ag-grad);
}
.gdw-ag-legal__body ul ul { margin: .6em 0 0; }
.gdw-ag-legal__body ul ul li::before { background: transparent; border: 1.5px solid #00B1D3; }
.gdw-ag-legal__body strong { color: #132A30; }
.gdw-ag-legal__body a { color: var(--ag-turquesa); text-decoration: underline; text-underline-offset: 3px; }
.gdw-ag-legal__body a:hover { color: var(--ag-turquesa-osc); }
.gdw-ag-legal__body table {
	display: table;
	width: 100%;
	table-layout: auto;
	border-collapse: separate;
	border-spacing: 0;
	margin: 1em 0 1.4em;
	font-size: 14.5px;
	line-height: 1.5;
	border: 1px solid var(--ag-borde);
	border-radius: 14px;
}
.gdw-ag-legal__body thead th {
	background: #132A30;
	color: #FFFFFF;
	font: 700 13px/1.3 "DM Sans", sans-serif;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-align: left;
	padding: 12px 14px;
	border: 0;
	white-space: nowrap;
}
.gdw-ag-legal__body tbody td { padding: 12px 14px; border: 0; border-top: 1px solid var(--ag-borde); vertical-align: top; }
.gdw-ag-legal__body tbody tr:nth-child(even) td { background: #F7FAFA; }
.gdw-ag-legal__body tbody td:first-child { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 13px; color: #007A96; max-width: 190px; overflow-wrap: anywhere; }
@media (max-width: 767px) { .gdw-ag-legal__body table { display: block; overflow-x: auto; } .gdw-ag-legal__body tbody td { min-width: 120px; } }

/* Índice lateral fijo (lo rellena custom.js); la sección no puede recortar o el sticky no funciona */
.gdw-ag-sec.gdw-ag-legal { overflow: visible; }
@media (min-width: 1025px) {
	.gdw-ag-legal__aside { position: sticky !important; top: calc(var(--gdw-header-h, 97px) + var(--wp-admin--admin-bar--height, 0px) + 24px); }
}
.gdw-ag-legal__toc ol { list-style: none; margin: 0; padding: 0; counter-reset: agtoc; }
.gdw-ag-legal__toc li { counter-increment: agtoc; margin: 0; }
.gdw-ag-legal__toc a {
	display: flex;
	gap: 10px;
	padding: 9px 12px;
	border-radius: 10px;
	border-left: 2px solid var(--ag-borde);
	font: 500 14px/1.35 "DM Sans", sans-serif;
	color: #4D4D4B;
	text-decoration: none !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.gdw-ag-legal__toc a::before {
	content: counter(agtoc, decimal-leading-zero);
	font: 700 11px/1.6 "DM Sans", sans-serif;
	color: #00B1D3;
	min-width: 18px;
}
.gdw-ag-legal__toc a:hover { background: #FFFFFF; color: #0E1E22; }
.gdw-ag-legal__toc a.is-active { background: #FFFFFF; color: #0E1E22; border-left-color: #93C749; font-weight: 700; box-shadow: 0 6px 16px rgba(19, 42, 48, .06); }
.gdw-ag-legal__help .elementor-icon-box-title { font-size: 17px !important; }

/* Mapa del sitio en columnas */
.gdw-ag-sitemap__list h2 {
	font: 800 20px/1.3 "Plus Jakarta Sans", sans-serif;
	color: #0E1E22;
	margin: 0 0 14px;
	padding-bottom: 10px;
	position: relative;
}
.gdw-ag-sitemap__list h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 36px; height: 3px; border-radius: 3px; background: var(--ag-grad); }
.gdw-ag-sitemap__list ul { list-style: none; padding: 0; margin: 0 0 26px; columns: 3 220px; column-gap: 32px; }
.gdw-ag-sitemap__list ul ul { columns: auto; margin: 6px 0 0 14px; }
.gdw-ag-sitemap__list li { break-inside: avoid; margin-bottom: 8px; }
.gdw-ag-sitemap__list .wsp-category-title { display: block; margin: 0 0 8px; font: 700 13px/1.3 "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.gdw-ag-sitemap__list .wsp-category-title a::before { content: none; }
.gdw-ag-sitemap__list a {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	color: #132A30;
	text-decoration: none !important;
	font: 500 15px/1.4 "DM Sans", sans-serif;
	transition: color .25s ease;
}
.gdw-ag-sitemap__list a::before { content: "→"; color: #00B1D3; transition: transform .25s ease; }
.gdw-ag-sitemap__list a:hover { color: var(--ag-turquesa); }
.gdw-ag-sitemap__list a:hover::before { transform: translateX(3px); }
/* <<< fin LEGALES */

/* ---------- 23. Letras gigantes sin perfil (pie y «24H») ---------- */
/* >>> AG LETRAS GIGANTES (06-10-2026) · para deshacer: borrar hasta «<<< fin LETRAS GIGANTES» */
/* Plus Jakarta Sans es variable: sus letras tienen piezas solapadas y el -webkit-text-stroke
   dibuja esas uniones internas (marcas en A, n, G, d, y…). Se quita el perfil y se usa relleno. */
.gdw-ag-footer__giant .elementor-heading-title {
	-webkit-text-stroke: 0 !important;
	background: linear-gradient(90deg, rgba(0, 177, 211, .32), rgba(147, 199, 73, .32)) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-mask-image: linear-gradient(180deg, #000 30%, rgba(0, 0, 0, .2) 100%);
	mask-image: linear-gradient(180deg, #000 30%, rgba(0, 0, 0, .2) 100%);
}
.gdw-ag-giant .elementor-heading-title {
	-webkit-text-stroke: 0 !important;
	background: linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .02)) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
}
/* <<< fin LETRAS GIGANTES */

/* ---------- 24. «24h» grande en la sección de averías (inicio) ---------- */
/* >>> AG 24H GRANDE (06-10-2026) · para deshacer el estilo: borrar hasta «<<< fin 24H GRANDE» */
.gdw-ag-24big__num .elementor-heading-title {
	font: 800 clamp(96px, 10vw, 156px) / .85 "Plus Jakarta Sans", sans-serif !important;
	background: linear-gradient(120deg, #00B1D3 10%, #93C749 90%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 0 28px rgba(0, 177, 211, .28));
}
.gdw-ag-24big__label { padding-left: 18px; border-left: 2px solid rgba(255, 255, 255, .14); }
.gdw-ag-24big__label .elementor-heading-title { position: relative; }
.gdw-ag-24big__label .elementor-heading-title::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: #93C749;
	animation: ag-ping 2s infinite;
}
.gdw-ag-24big { margin-bottom: 6px; }
@media (prefers-reduced-motion: reduce) { .gdw-ag-24big__label .elementor-heading-title::before { animation: none; } }
/* <<< fin 24H GRANDE */

/* >>> AG efecto CORRIENTE (06-10-2026) · para deshacer: borrar hasta «<<< fin CORRIENTE» */
/* Ondas de corriente alterna con chispa y parpadeo (SVG que añade custom.js);
   en la línea de pasos la corriente avanza con el scroll y enciende cada paso */
.ag-fx-corriente .gdw-ag-fx::after { display: none; }
.ag-fx-corriente .gdw-ag-steps::before,
.ag-fx-corriente .gdw-ag-steps::after { display: none; }
.ag-wave {
	position: absolute;
	pointer-events: none;
	overflow: visible;
}
.gdw-ag-fx .ag-wave {
	left: 0;
	right: 0;
	top: 12%;
	width: 100%;
	height: 44%;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 80%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 80%, transparent 100%);
}
.gdw-ag-steps .ag-wave {
	left: 32px;
	right: 32px;
	top: 20px;
	width: calc(100% - 64px);
	height: 26px;
	z-index: 0;
}
.ag-wave__move { animation: ag-wave-move var(--ag-wave-t, 24s) linear infinite; }
.ag-wave__move--b { animation-duration: calc(var(--ag-wave-t, 24s) * 1.6); animation-direction: reverse; }
@keyframes ag-wave-move { to { transform: translateX(-1200px); } }
.ag-wave__base { fill: none; stroke-width: 1.8; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.ag-wave__spark {
	fill: none;
	stroke-width: 3;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: var(--ag-spark, 140) var(--ag-gap, 2400);
	animation: ag-wave-spark var(--ag-spark-t, 9s) cubic-bezier(.45, .05, .55, .95) infinite;
	filter: drop-shadow(0 0 4px rgba(0, 177, 211, .9)) drop-shadow(0 0 10px rgba(147, 199, 73, .6));
}
@keyframes ag-wave-spark { from { stroke-dashoffset: 0; } to { stroke-dashoffset: calc(-1 * var(--ag-len, 2500px)); } }
.ag-wave__flicker { animation: ag-flicker 10s steps(1, end) infinite; }
@keyframes ag-flicker {
	0%, 100% { opacity: 1; }
	6% { opacity: .8; }
	8% { opacity: 1; }
	37% { opacity: .85; }
	39% { opacity: .65; }
	41% { opacity: .95; }
	72% { opacity: 1; }
	74% { opacity: .82; }
	75% { opacity: 1; }
}
/* Línea de pasos: no se mueve sola, la dibuja el scroll (custom.js) */
.ag-wave--scroll .ag-wave__fill,
.ag-wave--scroll .ag-wave__tip { fill: none; stroke-linecap: round; }
.ag-wave--scroll .ag-wave__fill { stroke-width: 2.2; filter: drop-shadow(0 0 3px rgba(0, 177, 211, .45)); }
.ag-wave--scroll .ag-wave__tip {
	stroke-width: 3.4;
	filter: drop-shadow(0 0 4px rgba(0, 177, 211, .95)) drop-shadow(0 0 12px rgba(147, 199, 73, .7));
	transition: opacity .4s ease;
}
.gdw-ag-step__num .elementor-heading-title {
	transition: background .5s ease, box-shadow .5s ease, -webkit-text-fill-color .5s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1);
}
.gdw-ag-step__num.is-on .elementor-heading-title {
	background: linear-gradient(135deg, #00B1D3, #93C749);
	-webkit-text-fill-color: #FFFFFF;
	box-shadow: 0 0 0 6px #F1F6F6, 0 0 0 7px rgba(0, 177, 211, .35), 0 10px 26px rgba(0, 177, 211, .45);
	transform: scale(1.06);
}
/* Móvil: pasos apilados con el círculo a la izquierda y la corriente bajando entre ellos */
.gdw-ag-steps .ag-wave--v { right: auto; width: 26px; }
@media (max-width: 767px) {
	.ag-steps--v .gdw-ag-step { position: relative; padding-left: 84px !important; min-height: 64px; }
	.ag-steps--v .gdw-ag-step__num {
		position: absolute !important;
		left: 0;
		top: 0;
		width: auto !important;
		margin: 0 !important;
		z-index: 1;
	}
	.ag-steps--v .gdw-ag-step__num + .elementor-widget { padding-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.gdw-ag-step__num .elementor-heading-title { transition: none; }
	.ag-wave__move, .ag-wave__spark, .ag-wave__flicker { animation: none !important; }
	.ag-wave__spark { display: none; }
}
/* <<< fin CORRIENTE */

/* >>> AG efecto PUNTERO (06-10-2026) · para deshacer: borrar hasta «<<< fin PUNTERO» */
/* Aro que sigue al ratón con retraso y punto con el degradado (solo ratón, no táctil) */
.ag-cursor, .ag-cursor-dot {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 2147483000;
	pointer-events: none;
	border-radius: 50%;
	opacity: 0;
	transition: opacity .3s ease;
	will-change: transform;
}
.ag-cursor {
	width: 30px;
	height: 30px;
	margin: -15px 0 0 -15px;
	border: 1.5px solid rgba(0, 122, 150, .55);
}
.ag-cursor__in {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	transition: transform .3s cubic-bezier(.2, .8, .2, 1), background-color .3s ease, box-shadow .3s ease;
}
.ag-cursor-dot {
	width: 7px;
	height: 10px;
	margin: -5px 0 0 -3.5px;
	border-radius: 0;
	background: linear-gradient(160deg, #00B1D3, #93C749);
	/* rayo, del mismo tamaño que el antiguo punto */
	-webkit-clip-path: polygon(62% 0, 6% 58%, 44% 58%, 32% 100%, 94% 38%, 56% 38%, 76% 0);
	clip-path: polygon(62% 0, 6% 58%, 44% 58%, 32% 100%, 94% 38%, 56% 38%, 76% 0);
}
.ag-fx-cursor.ag-cursor-on .ag-cursor,
.ag-fx-cursor.ag-cursor-on .ag-cursor-dot { opacity: 1; }
.ag-cursor { transition: opacity .3s ease, width .3s cubic-bezier(.2, .8, .2, 1), height .3s cubic-bezier(.2, .8, .2, 1), margin .3s cubic-bezier(.2, .8, .2, 1), border-color .3s ease; }
.ag-cursor.is-hover {
	width: 52px;
	height: 52px;
	margin: -26px 0 0 -26px;
	border-color: rgba(147, 199, 73, .85);
}
.ag-cursor.is-hover .ag-cursor__in { background: rgba(0, 177, 211, .1); box-shadow: 0 0 18px rgba(0, 177, 211, .25); }
.ag-cursor.is-down .ag-cursor__in { transform: scale(.72); }
.ag-cursor.is-dark { border-color: rgba(255, 255, 255, .55); }
.ag-cursor.is-dark.is-hover { border-color: rgba(147, 199, 73, .9); }
.ag-cursor.is-text { width: 4px; height: 26px; margin: -13px 0 0 -2px; border-radius: 2px; border-color: transparent; }
.ag-cursor.is-text .ag-cursor__in { border-radius: 2px; background: rgba(0, 177, 211, .5); }
/* <<< fin PUNTERO */

/* >>> AG efecto CHISPAS (06-10-2026) · para deshacer: borrar hasta «<<< fin CHISPAS» */
/* Chispas que suelta el rayo del puntero al moverse (un solo canvas, solo con ratón) */
.ag-sparks {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	z-index: 2147482999;
}
/* <<< fin CHISPAS */
