/* ==========================================================================
   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, #0A6E38);
}

/* --------------------------------------------------------------------------
   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, #0A6E38);
	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, #0A6E38);
	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: #8A8A86;
}

.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, #1D1D1B);
}

.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: #8A8A86;
}

.gdw-faq .e-n-accordion-item[open] .e-n-accordion-item-title-header::before {
	color: var(--e-global-color-secondary, #1D1D1B);
}

.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, #1D1D1B);
	border-color: var(--e-global-color-secondary, #1D1D1B);
}

.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: #E2E1DC;
	cursor: pointer;
	transition: width 0.3s, background-color 0.3s;
}

.gdw-carousel__dot.is-active {
	width: 28px;
	background: var(--e-global-color-primary, #0A6E38);
}

@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(18, 18, 18, 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, #1D1D1B);
}

.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 #E2E1DC;
	border-radius: 12px;
	background: #FFFFFF;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	color: var(--e-global-color-secondary, #1D1D1B);
	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, #1D1D1B);
	box-shadow: 0 0 0 3px rgba(10, 110, 56, 0.18);
	outline: none;
}

.gdw-form .gdw-form__privacy {
	font-size: 14px;
	color: var(--e-global-color-text, #494945);
}

.gdw-form .gdw-form__privacy .wpcf7-list-item {
	margin: 0;
}

.gdw-form .gdw-form__privacy a {
	color: #08592D;
}

.gdw-form .gdw-form__submit {
	background: #08592D;
	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, #1D1D1B);
}

.gdw-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #08592D;
}

.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: #8A8A86;
}

.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: #08592D;
}

/* --------------------------------------------------------------------------
   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: #06140D;
}

/* 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(6, 20, 13, 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: #0C2217 !important;
}

body.gdw-theme-dark #masthead .hfe-flyout-close,
body.gdw-theme-dark #masthead .hfe-flyout-close svg {
	color: #F4F3EF !important;
	fill: #F4F3EF !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: #F4F3EF !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: #0A6E38 !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: #0C2217 !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: #F4F3EF !important;
	fill: #F4F3EF !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: #06140D;
	--h2-surface: #0C2217;
	--h2-line: rgba(255, 255, 255, 0.09);
	--h2-text: #F4F3EF;
	--h2-muted: #8A8A86;
	--h2-red: #0A6E38;
	--h2-coral: #82C341;
	--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, #0A6E38 0%, #82C341 55%, #B9E08A 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, #08592D, #0A6E38 60%, #499743);
	box-shadow: 0 10px 40px rgba(10, 110, 56, 0.35);
	transition: transform 0.25s, box-shadow 0.25s;
}

.gdw-h2-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 50px rgba(10, 110, 56, 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: #0A6E38;
	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(10, 110, 56, 0.75), transparent 68%);
	--speed: 320px;
}

.gdw-h2-orb--2 {
	width: 460px;
	height: 460px;
	bottom: -160px;
	left: -120px;
	background: radial-gradient(circle, rgba(130, 195, 65, 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(8, 89, 45, 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, #0A6E38, #7E1010);
	border-color: rgba(255, 255, 255, 0.25);
	box-shadow: 0 40px 90px rgba(10, 110, 56, 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(10, 110, 56, 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: #06140D;
	stroke: #82C341;
	stroke-width: 1.8;
}

.gdw-h2-morph__nodes circle.is-inner {
	fill: #0A6E38;
	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(244, 243, 239, 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, #0A6E38, #82C341);
}

.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, #0A6E38, #7E1010);
	border-color: rgba(255, 255, 255, 0.3);
	box-shadow: 0 40px 100px rgba(10, 110, 56, 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: #0C2217;
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 50px 100px rgba(0, 0, 0, 0.6), 0 0 80px rgba(10, 110, 56, 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: #1C1C1B;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gdw-h2-browser__bar i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #3A3A38;
}

.gdw-h2-browser__bar i:first-child {
	background: #0A6E38;
}

.gdw-h2-browser__bar i:nth-child(2) {
	background: #82C341;
}

.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: #8A8A86;
}

.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, #0A6E38, #8C1212);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: 0 10px 30px rgba(10, 110, 56, 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(10, 110, 56, 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, #0A6E38, #7E1010);
	box-shadow: 0 0 60px rgba(10, 110, 56, 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, #0A6E38, #82C341);
	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(10, 110, 56, 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(10, 110, 56, 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(10, 110, 56, 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: #C9C8C3;
}

/* --- 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, #1D1D1B);
}

.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, #1D1D1B);
}

.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, #1D1D1B);
}

.gdw-legal .gdw-legal__body a {
	color: #08592D;
}

.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 #E2E1DC;
	text-align: left;
	vertical-align: top;
}

.gdw-legal .gdw-legal__body th {
	background: #F4F3EF;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-weight: 600;
	color: var(--e-global-color-secondary, #1D1D1B);
}

@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;
	}
}

/* ==========================================================================
   20. GRPS MIRANDA (solo en esta web)
   Bloque propio del cliente, añadido al final del custom.css de la base, en el
   que el rojo de la base se ha cambiado por los verdes del logo (montar.py).
   Home visual (.gdw-gm-*, widgets HTML) y páginas interiores (widgets nativos
   con clases gdw-page-*, editables). Sin rojo en ningún sitio.
   ========================================================================== */

:root {
	--gm-900: #06140D;
	--gm-850: #0A1D13;
	--gm-800: #0E2A1C;
	--gm-700: #0A6E38;
	--gm-650: #08592D;
	--gm-500: #499743;
	--gm-300: #82C341;
	--gm-200: #B9E08A;
	--gm-100: #E6F2E3;
	--gm-50: #F2F7F1;
	--gm-ink: #0E2A1C;
	--gm-text: #3B4A41;
	--gm-muted: #66766B;
	--gm-line: #DCE7DA;
	--gm-radius: 22px;
	--gm-gutter: 50px;
}

@media (max-width: 767px) {
	:root {
		--gm-gutter: 15px;
	}
}

body {
	color: var(--gm-text);
}

::selection {
	background: var(--gm-300);
	color: var(--gm-900);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--gm-300);
	outline-offset: 3px;
}

/* --- Cabecera ---------------------------------------------------------- */
.gdw-header__cta .elementor-button {
	background: var(--gm-700) !important;
	color: #FFFFFF !important;
	border-radius: 999px !important;
	transition: background-color 0.2s, transform 0.2s;
}

.gdw-header__cta .elementor-button:hover {
	background: var(--gm-650) !important;
	transform: translateY(-1px);
}

.gdw-header__phone a,
.gdw-header__private a,
.gdw-header__phone .elementor-icon-list-text,
.gdw-header__private .elementor-icon-list-text {
	color: var(--gm-ink) !important;
	font-weight: 600;
	text-decoration: none !important;
	white-space: nowrap;
}

.gdw-header__phone a:hover .elementor-icon-list-text,
.gdw-header__private a:hover .elementor-icon-list-text {
	color: var(--gm-700) !important;
}

.gdw-header__phone .elementor-icon-list-icon svg,
.gdw-header__private .elementor-icon-list-icon svg {
	fill: var(--gm-700) !important;
}

@media (max-width: 1500px) {
	.gdw-header__private {
		display: none;
	}
}

@media (max-width: 1250px) {
	.gdw-header__phone {
		display: none;
	}
}

@media (max-width: 767px) {
	.gdw-header__cta {
		display: none;
	}
}

/* Cabecera en la home oscura: transparente arriba, con desenfoque al bajar */
body.gdw-theme-dark .gdw-header__bar::before {
	background-color: rgba(6, 20, 13, 0.82);
	transition: opacity 0.35s;
}

body.gdw-theme-dark:not(.gdw-is-scrolled) .gdw-header__bar::before {
	opacity: 0;
}

body.gdw-theme-dark:not(.gdw-is-scrolled) .gdw-header__bar {
	border-color: transparent !important;
}

body.gdw-theme-dark .gdw-header__phone a,
body.gdw-theme-dark .gdw-header__private a,
body.gdw-theme-dark .gdw-header__phone .elementor-icon-list-text,
body.gdw-theme-dark .gdw-header__private .elementor-icon-list-text {
	color: #F2F7F1 !important;
}

body.gdw-theme-dark .gdw-header__phone .elementor-icon-list-icon svg,
body.gdw-theme-dark .gdw-header__private .elementor-icon-list-icon svg {
	fill: var(--gm-300) !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:hover {
	color: var(--gm-300) !important;
}

body.gdw-theme-dark,
body.gdw-theme-dark #page,
body.gdw-theme-dark .site-content {
	background: var(--gm-900);
}

/* --- Pie ----------------------------------------------------------------- */
.gdw-footer__cta {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.gdw-footer__cta::after {
	content: "";
	position: absolute;
	right: -120px;
	top: -160px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(130, 195, 65, 0.28), transparent 68%);
	z-index: -1;
	pointer-events: none;
}

.gdw-footer__cta-title .elementor-heading-title span {
	color: var(--gm-300);
}

.gdw-footer .hfe-nav-menu a.hfe-menu-item,
.gdw-footer .elementor-icon-list-text,
.gdw-footer .elementor-icon-list-item a {
	color: #C9D6CC !important;
	text-decoration: none !important;
}

.gdw-footer .hfe-nav-menu a.hfe-menu-item:hover,
.gdw-footer .elementor-icon-list-item a:hover .elementor-icon-list-text {
	color: var(--gm-300) !important;
}

.gdw-footer .elementor-icon-list-icon svg {
	fill: var(--gm-300) !important;
}

.gdw-footer__title .elementor-heading-title {
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* --- Botones y enlaces generales --------------------------------------- */
.gdw-btn .elementor-button,
.gdw-page .elementor-button {
	border-radius: 999px;
	transition: background-color 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.gdw-btn .elementor-button:hover,
.gdw-page .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px rgba(10, 110, 56, 0.22);
}

.gdw-btn--ghost .elementor-button {
	background: transparent !important;
	border: 1px solid currentColor !important;
}

/* Botón de WhatsApp (plugin gdw-whatsapp): el aspa del bocadillo, sin rojo */
.gdw-wa {
	--gdw-wa-red: #0E2A1C;
}

/* ==========================================================================
   20.1 HOME VISUAL (.gdw-gm, widgets HTML)
   custom.js (base) pone --p/--ps en [data-gdw-scroll], .is-in en
   .gdw-h2-reveal/.gdw-split, cuenta [data-count] y sigue el ratón en
   .gdw-h2-sector. grps.js: vídeo en ventana, pausa con «reducir movimiento».
   ========================================================================== */

.gdw-gm {
	position: relative;
	color: #E4EDE6;
	background: var(--gm-900);
	font-family: "DM Sans", sans-serif;
}

.gdw-gm h1,
.gdw-gm h2,
.gdw-gm h3 {
	font-family: "Plus Jakarta Sans", sans-serif;
	color: #FFFFFF;
	margin: 0;
}

.gdw-gm p {
	margin: 0;
}

.gdw-gm a {
	text-decoration: none;
}

.gdw-gm-wrap {
	position: relative;
	padding: 0 var(--gm-gutter);
	max-width: 1560px;
	margin: 0 auto;
}

.gdw-gm .gdw-h2-eyebrow {
	color: var(--gm-300);
}

.gdw-gm-accent {
	color: var(--gm-300);
}

.gdw-gm-h2 {
	font-size: clamp(34px, 4.4vw, 64px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.gdw-gm-lead {
	max-width: 620px;
	margin-top: 18px !important;
	font-size: clamp(17px, 1.3vw, 20px);
	line-height: 1.6;
	color: #B8C8BC;
}

.gdw-gm-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 17px 28px;
	border: 0;
	border-radius: 999px;
	font: 600 16px/1 "Plus Jakarta Sans", sans-serif;
	color: #FFFFFF !important;
	background: var(--gm-700);
	box-shadow: 0 12px 40px rgba(10, 110, 56, 0.45);
	cursor: pointer;
	transition: transform 0.25s, background-color 0.25s, box-shadow 0.25s;
}

.gdw-gm-btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
	transition: transform 0.25s;
}

.gdw-gm-btn:hover {
	background: #0C8043;
	transform: translateY(-2px);
	box-shadow: 0 18px 50px rgba(10, 110, 56, 0.6);
}

.gdw-gm-btn:hover svg {
	transform: translateX(3px);
}

.gdw-gm-btn--ghost {
	background: rgba(255, 255, 255, 0.04);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.gdw-gm-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.1);
	box-shadow: inset 0 0 0 1px var(--gm-300);
}

.gdw-gm-btn--play .gdw-gm-btn__dot {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin: -7px 0 -7px -12px;
	border-radius: 50%;
	background: var(--gm-300);
	color: var(--gm-900);
}

.gdw-gm-btn--play .gdw-gm-btn__dot svg {
	width: 12px;
	height: 12px;
	margin-left: 2px;
}

.gdw-gm-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

/* Las secciones de la home van sin el padding del contenedor de Elementor */
.gdw-home-seccion,
.gdw-home-seccion > .e-con-inner {
	padding: 0 !important;
	gap: 0 !important;
}

.gdw-home-seccion > .elementor-widget-html,
.gdw-home-seccion > .e-con-inner > .elementor-widget-html {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

/* --- 1. Hero --------------------------------------------------------------- */
.gdw-gm-hero {
	display: flex;
	align-items: flex-end;
	min-height: calc(100svh + var(--gdw-header-h, 90px));
	margin-top: calc(-1 * var(--gdw-header-h, 90px));
	padding: calc(var(--gdw-header-h, 90px) + 60px) 0 110px;
	overflow: hidden;
	isolation: isolate;
}

.gdw-gm-hero__media,
.gdw-gm-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: -2;
}

.gdw-gm-hero__media img {
	object-fit: cover;
	object-position: 70% 50%;
	transform: scale(calc(1.06 + var(--p, 0) * 0.14)) translate3d(0, calc(var(--p, 0) * 6%), 0);
	animation: gdw-gm-zoom 2.4s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes gdw-gm-zoom {
	from {
		filter: brightness(0.4) saturate(0.6);
	}
}

.gdw-gm-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(6, 20, 13, 0.92) 0%, rgba(6, 20, 13, 0.7) 38%, rgba(6, 20, 13, 0.15) 70%, rgba(6, 20, 13, 0.1) 100%),
		linear-gradient(0deg, var(--gm-900) 0%, rgba(6, 20, 13, 0) 30%),
		linear-gradient(180deg, rgba(6, 20, 13, 0.55) 0%, rgba(6, 20, 13, 0) 22%);
}

.gdw-gm-hero__inner {
	width: 100%;
	transform: translate3d(0, calc(var(--p, 0) * -90px), 0);
	opacity: calc(1 - var(--p, 0) * 1.4);
}

.gdw-gm-hero__title {
	max-width: 1000px;
	font-size: clamp(40px, 5.2vw, 84px);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.035em;
}

.gdw-gm-hero .gdw-gm-lead {
	color: #D3DFD6;
}

.gdw-gm-hero__zones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 46px 0 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	letter-spacing: 0.04em;
	color: #B8C8BC;
}

.gdw-gm-hero__zones li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.gdw-gm-hero__zones li::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gm-300);
	box-shadow: 0 0 0 4px rgba(130, 195, 65, 0.18);
}

.gdw-gm-hero__cue {
	position: absolute;
	right: var(--gm-gutter);
	bottom: 40px;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #B8C8BC;
	writing-mode: vertical-rl;
}

.gdw-gm-hero__cue::after {
	content: "";
	width: 1px;
	height: 70px;
	background: linear-gradient(var(--gm-300), transparent);
	animation: gdw-gm-cue 2s ease-in-out infinite;
	transform-origin: top;
}

@keyframes gdw-gm-cue {
	0% { transform: scaleY(0); }
	50% { transform: scaleY(1); }
	100% { transform: scaleY(1); opacity: 0; }
}

@media (max-width: 767px) {
	.gdw-gm-hero {
		padding-bottom: 70px;
	}

	.gdw-gm-hero__shade {
		background:
			linear-gradient(0deg, var(--gm-900) 0%, rgba(6, 20, 13, 0.85) 45%, rgba(6, 20, 13, 0.25) 75%, rgba(6, 20, 13, 0.5) 100%);
	}

	.gdw-gm-hero__cue {
		display: none;
	}

	.gdw-gm-buttons .gdw-gm-btn {
		flex: 1 1 100%;
		justify-content: center;
	}
}

/* Vídeo en ventana (<dialog>) */
.gdw-gm-dialog {
	width: min(1100px, 94vw);
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: #000000;
	overflow: visible;
}

.gdw-gm-dialog::backdrop {
	background: rgba(6, 20, 13, 0.86);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.gdw-gm-dialog video {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
}

.gdw-gm-dialog__close {
	position: absolute;
	top: -50px;
	right: 0;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: #FFFFFF;
	color: var(--gm-900);
	font-size: 24px;
	line-height: 40px;
	cursor: pointer;
}

/* --- 2. Cifras ------------------------------------------------------------- */
.gdw-gm-stats {
	padding: 30px 0 90px;
}

.gdw-gm-stats__list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.gdw-gm-stats__list li {
	padding: 34px 28px 0;
	border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.gdw-gm-stats__list li:first-child {
	padding-left: 0;
	border-left: 0;
}

.gdw-gm-stats__num {
	display: block;
	font: 600 clamp(38px, 3.6vw, 58px)/1 "Plus Jakarta Sans", sans-serif;
	letter-spacing: -0.03em;
	color: #FFFFFF;
	white-space: nowrap;
}

.gdw-gm-stats__num small {
	margin-left: 4px;
	font-size: 0.42em;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--gm-300);
}

.gdw-gm-stats__label {
	display: block;
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.45;
	color: #9FB2A5;
}

@media (max-width: 1024px) {
	.gdw-gm-stats__list {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 34px;
	}

	.gdw-gm-stats__list li:nth-child(4) {
		padding-left: 0;
		border-left: 0;
	}
}

@media (max-width: 767px) {
	.gdw-gm-stats__list {
		grid-template-columns: 1fr 1fr;
	}

	.gdw-gm-stats__list li {
		padding: 26px 14px 0;
	}

	.gdw-gm-stats__list li:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}

	.gdw-gm-stats__list li:nth-child(4) {
		padding-left: 14px;
		border-left: 1px solid rgba(255, 255, 255, 0.1);
	}
}

/* --- 3. Servicios (tarjetas) ------------------------------------------------ */
.gdw-gm-services {
	padding: 110px 0 120px;
}

.gdw-gm-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 60px;
	margin-bottom: 56px;
}

.gdw-gm-head .gdw-gm-lead {
	max-width: 460px;
}

.gdw-gm-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.gdw-gm-card {
	--mx: 50%;
	--my: 50%;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 400px;
	padding: 26px;
	border-radius: var(--gm-radius);
	overflow: hidden;
	isolation: isolate;
	color: #FFFFFF;
	background: var(--gm-800);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.gdw-gm-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	filter: saturate(0.85);
	transform: scale(1.02);
	transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.6s;
}

.gdw-gm-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(6, 20, 13, 0.97) 8%, rgba(6, 20, 13, 0.55) 55%, rgba(6, 20, 13, 0.25) 100%);
	transition: background 0.5s;
}

.gdw-gm-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	background: radial-gradient(420px circle at var(--mx) var(--my), rgba(130, 195, 65, 0.3), transparent 60%);
	transition: opacity 0.4s;
}

.gdw-gm-card:hover img {
	transform: scale(1.1);
	filter: saturate(1.05);
}

.gdw-gm-card:hover::after {
	opacity: 1;
}

.gdw-gm-card__num {
	position: absolute;
	top: 24px;
	left: 26px;
	font: 600 14px/1 "Plus Jakarta Sans", sans-serif;
	letter-spacing: 0.1em;
	color: var(--gm-300);
}

.gdw-gm-card__arrow {
	position: absolute;
	top: 18px;
	right: 18px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background-color 0.3s, transform 0.4s;
}

.gdw-gm-card__arrow svg {
	width: 18px;
	height: 18px;
	fill: #FFFFFF;
}

.gdw-gm-card:hover .gdw-gm-card__arrow {
	background: var(--gm-300);
	transform: rotate(-45deg);
}

.gdw-gm-card:hover .gdw-gm-card__arrow svg {
	fill: var(--gm-900);
}

.gdw-gm-card h3 {
	font-size: 23px;
	font-weight: 600;
	line-height: 1.2;
}

.gdw-gm-card p {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.5;
	color: #C6D4CA;
}

@media (max-width: 1200px) {
	.gdw-gm-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.gdw-gm-card {
		min-height: 340px;
	}
}

@media (max-width: 767px) {
	.gdw-gm-services {
		padding: 70px 0 80px;
	}

	.gdw-gm-cards {
		grid-template-columns: 1fr;
	}

	.gdw-gm-card {
		min-height: 300px;
	}
}

/* --- 4. Proceso (sección fija, el camión avanza al bajar) -------------------- */
.gdw-gm-process {
	height: 320vh;
	background:
		radial-gradient(900px 500px at 85% 20%, rgba(10, 110, 56, 0.35), transparent 70%),
		var(--gm-850);
}

.gdw-gm-process__sticky {
	position: sticky;
	top: 0;
	padding-top: var(--gdw-header-h, 90px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100vh;
	overflow: hidden;
}

.gdw-gm-process__steps {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 22px;
	margin: 70px 0 0;
	padding: 0;
	list-style: none;
}

.gdw-gm-process__steps li {
	opacity: clamp(0.28, calc((var(--p, 0) * 5.2 - var(--n, 0)) * 1.4 + 0.28), 1);
	transform: translate3d(0, calc(clamp(0, 1 - (var(--p, 0) * 5.2 - var(--n, 0)), 1) * 24px), 0);
	transition: opacity 0.2s linear;
}

.gdw-gm-process__num {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin-bottom: 22px;
	border-radius: 50%;
	font: 700 17px/1 "Plus Jakarta Sans", sans-serif;
	color: var(--gm-300);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.5);
	transition: background-color 0.4s, color 0.4s;
}

.gdw-gm-process__steps li.is-active .gdw-gm-process__num {
	background: var(--gm-300);
	color: var(--gm-900);
}

.gdw-gm-process__steps h3 {
	font-size: 24px;
	font-weight: 600;
}

.gdw-gm-process__steps p {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.55;
	color: #A9BBAE;
}

.gdw-gm-road {
	position: relative;
	height: 170px;
	margin-top: 60px;
}

.gdw-gm-road::before,
.gdw-gm-road__fill {
	content: "";
	position: absolute;
	left: 0;
	bottom: 18px;
	height: 3px;
	border-radius: 3px;
}

.gdw-gm-road::before {
	right: 0;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.18) 0 28px, transparent 28px 48px);
}

.gdw-gm-road__fill {
	width: calc(var(--p, 0) * 100%);
	background: linear-gradient(90deg, var(--gm-700), var(--gm-300));
	box-shadow: 0 0 18px rgba(130, 195, 65, 0.6);
}

.gdw-gm-road__truck {
	position: absolute;
	bottom: 16px;
	left: calc(var(--p, 0) * 100%);
	width: clamp(220px, 22vw, 340px);
	height: auto;
	transform: translate3d(calc(var(--p, 0) * -100%), 0, 0);
	filter: drop-shadow(0 18px 18px rgba(0, 0, 0, 0.45));
	animation: gdw-gm-bump 0.5s ease-in-out infinite alternate;
}

@keyframes gdw-gm-bump {
	to { translate: 0 -1.5px; }
}

@media (max-width: 1024px) {
	.gdw-gm-process {
		height: auto;
		padding: 90px 0;
	}

	.gdw-gm-process__sticky {
		position: relative;
		height: auto;
		padding-top: 0;
	}

	.gdw-gm-process__steps {
		grid-template-columns: 1fr 1fr;
		gap: 36px 24px;
		margin-top: 44px;
	}

	.gdw-gm-process__steps li {
		opacity: 1;
		transform: none;
	}

	.gdw-gm-road {
		height: 120px;
		margin-top: 40px;
	}

	.gdw-gm-road__fill {
		width: 100%;
	}

	.gdw-gm-road__truck {
		left: auto;
		right: 0;
		transform: none;
		width: 200px;
	}
}

@media (max-width: 600px) {
	.gdw-gm-process__steps {
		grid-template-columns: 1fr;
	}
}

/* --- 5. Medios propios (desplazamiento horizontal) --------------------------- */
.gdw-gm-means {
	height: calc(100vh + var(--dist, 0) * 1px);
	background: var(--gm-900);
}

.gdw-gm-means__sticky {
	position: sticky;
	top: 0;
	padding-top: var(--gdw-header-h, 90px);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	height: 100vh;
	overflow: hidden;
}

.gdw-gm-means .gdw-h2-hscroll__track {
	display: flex;
	gap: 22px;
	padding: 0 var(--gm-gutter);
	transform: translate3d(calc(var(--p, 0) * var(--dist, 0) * -1px), 0, 0);
	will-change: transform;
}

.gdw-gm-means__intro {
	flex: 0 0 min(460px, 80vw);
	align-self: center;
	padding-right: 40px;
}

.gdw-gm-panel {
	position: relative;
	flex: 0 0 min(760px, 78vw);
	height: min(72vh, 620px);
	border-radius: 28px;
	overflow: hidden;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 36px;
	color: #FFFFFF;
}

.gdw-gm-panel img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	transform: scale(1.12) translate3d(calc(var(--p, 0) * -6%), 0, 0);
}

.gdw-gm-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(6, 20, 13, 0.95) 0%, rgba(6, 20, 13, 0.35) 55%, rgba(6, 20, 13, 0.1) 100%);
}

.gdw-gm-panel__tag {
	align-self: flex-start;
	margin-bottom: auto;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.12);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.gdw-gm-panel h3 {
	font-size: clamp(28px, 2.6vw, 40px);
	font-weight: 600;
}

.gdw-gm-panel p {
	max-width: 520px;
	margin-top: 12px;
	font-size: 16px;
	line-height: 1.55;
	color: #C6D4CA;
}

.gdw-gm-panel__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.gdw-gm-panel__facts li {
	padding: 9px 14px;
	border-radius: 12px;
	font-size: 14px;
	background: rgba(130, 195, 65, 0.16);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.35);
}

.gdw-gm-panel__facts strong {
	color: var(--gm-300);
}

.gdw-gm-panel__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	font-weight: 600;
	color: var(--gm-300) !important;
}

@media (max-width: 1024px) {
	.gdw-gm-means {
		height: auto;
		padding: 90px 0;
	}

	.gdw-gm-means__sticky {
		position: relative;
		height: auto;
		display: block;
		overflow: visible;
		padding-top: 0;
	}

	.gdw-gm-means .gdw-h2-hscroll__track {
		width: auto;
		transform: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 20px;
		scrollbar-width: none;
	}

	.gdw-gm-means .gdw-h2-hscroll__track::-webkit-scrollbar {
		display: none;
	}

	.gdw-gm-means__intro {
		display: none;
	}

	.gdw-gm-means__head {
		display: block !important;
		margin-bottom: 36px;
	}

	.gdw-gm-panel {
		flex-basis: 84vw;
		height: 520px;
		padding: 26px;
		scroll-snap-align: center;
	}

	.gdw-gm-panel img {
		transform: none;
	}
}

.gdw-gm-means__head {
	display: none;
}

/* --- 6. Vídeo: sección fija con zoom ------------------------------------------
   La sección mide 320vh y su interior se queda fijo (sticky) mientras se baja.
   custom.js pone --p (0 → 1) en la sección; --z es el zoom, que acaba al 62 %
   del recorrido. Entonces grps.js añade .is-logo y el logo entra con zoom; el
   resto del recorrido se queda así y después se sigue.
   Ningún ancestro puede llevar overflow: hidden (rompería el sticky).
   ------------------------------------------------------------------------------ */
.gdw-gm-film {
	position: relative;
	height: 320vh;
	background:
		radial-gradient(700px 400px at 10% 90%, rgba(10, 110, 56, 0.3), transparent 70%),
		var(--gm-900);
}

.gdw-gm-film__sticky {
	--z: min(1, calc(var(--p, 0) * 1.6));
	position: sticky;
	top: 0;
	height: 100vh;
	overflow: hidden;
}

.gdw-gm-film__head {
	position: absolute;
	top: calc(var(--gdw-header-h, 90px) + 4vh);
	left: 0;
	right: 0;
	z-index: 1;
	text-align: center;
	opacity: calc(1 - var(--z) * 2.2);
	transform: translate3d(0, calc(var(--z) * -80px), 0);
}

.gdw-gm-film__head .gdw-gm-lead {
	margin-left: auto;
	margin-right: auto;
}

.gdw-gm-film__frame {
	position: absolute;
	inset: 0;
	z-index: 2;
	overflow: hidden;
	border-radius: calc(90px * (1 - var(--z)));
	transform: translate3d(0, calc((1 - var(--z)) * 17vh), 0) scale(calc(0.36 + var(--z) * 0.64));
	box-shadow: 0 40px 120px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
	will-change: transform;
}

.gdw-gm-film__frame video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gdw-gm-leaf {
	position: absolute;
	width: clamp(120px, 14vw, 240px);
	height: auto;
	pointer-events: none;
	z-index: 3;
	filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.4));
	opacity: calc(1 - var(--z) * 0.7);
}

/* Las hojas salen despedidas hacia fuera mientras el vídeo crece */
.gdw-gm-leaf--1 {
	top: 22vh;
	left: 4%;
	transform: translate3d(calc(var(--z) * -30vw), calc(var(--z) * -25vh), 0) rotate(calc(-20deg - var(--z) * 70deg));
}

.gdw-gm-leaf--2 {
	right: 3%;
	bottom: 8vh;
	width: clamp(90px, 10vw, 170px);
	transform: translate3d(calc(var(--z) * 30vw), calc(var(--z) * 25vh), 0) rotate(calc(160deg + var(--z) * 80deg));
}

/* Logo que entra con zoom cuando el vídeo ya llena la pantalla (.is-logo) */
.gdw-gm-film__logo {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: grid;
	place-items: center;
	pointer-events: none;
}

.gdw-gm-film__logo::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 48% 34% at 50% 50%, rgba(6, 20, 13, 0.62), rgba(6, 20, 13, 0) 72%);
	opacity: 0;
	transition: opacity 1s ease;
}

.gdw-gm-film__logo img {
	position: relative;
	width: clamp(240px, 36vw, 560px);
	height: auto;
	opacity: 0;
	transform: scale(0.55);
	filter: blur(10px) drop-shadow(0 12px 30px rgba(0, 0, 0, 0.5));
	transition: opacity 0.9s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.9s ease;
}

.gdw-gm-film.is-logo .gdw-gm-film__logo::before {
	opacity: 1;
}

.gdw-gm-film.is-logo .gdw-gm-film__logo img {
	opacity: 1;
	transform: scale(1);
	filter: blur(0) drop-shadow(0 12px 30px rgba(0, 0, 0, 0.5));
}

/* Frases bajo el logo: entran como él, 0,35 s después, y van cambiando una
   tras otra sin parar (12 s, 3 s cada una). Las cuatro ocupan el mismo hueco
   (grid-area 1 / 1), así el bloque no cambia de tamaño. */
.gdw-gm-film__brand {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(16px, 2.2vw, 28px);
}

.gdw-gm-film__words {
	position: relative;
	display: grid;
	place-items: center;
	margin: 0;
	padding: 0 60px;
	list-style: none;
	opacity: 0;
	transform: translate3d(0, 14px, 0) scale(0.92);
	filter: blur(6px);
	transition: opacity 0.5s ease, transform 0.5s ease, filter 0.5s ease;
}

.gdw-gm-film__words::before,
.gdw-gm-film__words::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 40px;
	height: 1px;
	background: var(--gm-300);
}

.gdw-gm-film__words::before {
	left: 0;
}

.gdw-gm-film__words::after {
	right: 0;
}

.gdw-gm-film__words li {
	grid-area: 1 / 1;
	font: 600 clamp(20px, 2.4vw, 34px)/1.25 "Plus Jakarta Sans", sans-serif;
	letter-spacing: 0.02em;
	text-align: center;
	white-space: nowrap;
	color: #FFFFFF;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
	opacity: 0;
}

.gdw-gm-film.is-logo .gdw-gm-film__words {
	opacity: 1;
	transform: none;
	filter: blur(0);
	transition: opacity 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.35s, transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.35s, filter 0.9s ease 0.35s;
}

.gdw-gm-film.is-logo .gdw-gm-film__words li {
	animation: gdw-gm-words 12s ease-in-out infinite;
}

.gdw-gm-film.is-logo .gdw-gm-film__words li:nth-child(2) {
	animation-delay: 3s;
}

.gdw-gm-film.is-logo .gdw-gm-film__words li:nth-child(3) {
	animation-delay: 6s;
}

.gdw-gm-film.is-logo .gdw-gm-film__words li:nth-child(4) {
	animation-delay: 9s;
}

@keyframes gdw-gm-words {
	0% { opacity: 0; transform: translate3d(0, 10px, 0); }
	5% { opacity: 1; transform: none; }
	20% { opacity: 1; transform: none; }
	25% { opacity: 0; transform: translate3d(0, -10px, 0); }
	100% { opacity: 0; transform: translate3d(0, -10px, 0); }
}

/* Móvil: el vídeo ocupa la pantalla entera (100svh, cover). Empieza como una
   ventana apaisada bajo el título que se abre hasta llenarla (clip-path), y el
   vídeo de dentro pasa de 1,3 a 1 para que siga habiendo zoom. svh: el alto no
   salta cuando el navegador esconde la barra de direcciones. */
@media (max-width: 767px) {
	.gdw-gm-film {
		height: 260vh;
	}

	.gdw-gm-film__logo img {
		width: 78vw;
	}

	.gdw-gm-film__words {
		max-width: 92vw;
		padding: 0 34px;
	}

	.gdw-gm-film__words::before,
	.gdw-gm-film__words::after {
		width: 22px;
	}

	.gdw-gm-film__words li {
		font-size: 19px;
		line-height: 1.3;
		white-space: normal;
	}

	.gdw-gm-film__sticky {
		height: 100vh;
		height: 100svh;
	}

	.gdw-gm-film__head {
		top: calc(var(--gdw-header-h, 70px) + 3vh);
	}

	.gdw-gm-film__frame {
		inset: 0;
		border-radius: 0;
		transform: none;
		box-shadow: none;
		clip-path: inset(calc((1 - var(--z)) * 50%) calc((1 - var(--z)) * 6%) calc((1 - var(--z)) * 22%) calc((1 - var(--z)) * 6%) round calc((1 - var(--z)) * 26px));
	}

	.gdw-gm-film__frame video {
		transform: scale(calc(1.3 - var(--z) * 0.3));
	}

	.gdw-gm-leaf--1 {
		top: auto;
		bottom: 12vh;
		width: 90px;
	}

	.gdw-gm-leaf--2 {
		display: none;
	}
}

/* --- 7. Sectores (franja en movimiento, solo CSS) ---------------------------- */
.gdw-gm-sectors {
	padding: 40px 0 110px;
	overflow: hidden;
}

.gdw-gm-sectors__title {
	margin-bottom: 36px;
	text-align: center;
}

.gdw-gm-strip {
	display: flex;
	width: max-content;
	margin-bottom: 14px;
	animation: gdw-gm-strip 50s linear infinite;
}

.gdw-gm-strip--rev {
	animation-direction: reverse;
	animation-duration: 60s;
}

.gdw-gm-strip ul {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 0 14px 0 0;
	list-style: none;
}

.gdw-gm-strip li {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 18px 28px;
	border-radius: 999px;
	font: 600 clamp(18px, 1.6vw, 24px)/1 "Plus Jakarta Sans", sans-serif;
	white-space: nowrap;
	color: #FFFFFF;
	background: rgba(255, 255, 255, 0.04);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.gdw-gm-strip li svg {
	width: 22px;
	height: 22px;
	fill: var(--gm-300);
}

.gdw-gm-strip--rev li {
	color: var(--gm-900);
	background: var(--gm-300);
	box-shadow: none;
}

.gdw-gm-strip--rev li svg {
	fill: var(--gm-900);
}

@keyframes gdw-gm-strip {
	to { transform: translate3d(-50%, 0, 0); }
}

.gdw-gm-sectors:hover .gdw-gm-strip {
	animation-play-state: paused;
}

/* --- 8. Confianza ------------------------------------------------------------ */
.gdw-gm-trust {
	padding: 110px 0;
	background: linear-gradient(180deg, var(--gm-900), var(--gm-850));
}

.gdw-gm-trust__grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 60px;
	align-items: center;
}

.gdw-gm-badges {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gdw-gm-badge {
	position: relative;
	padding: 28px;
	border-radius: var(--gm-radius);
	background: rgba(255, 255, 255, 0.03);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09);
	transition: transform 0.4s, background-color 0.4s, box-shadow 0.4s;
}

.gdw-gm-badge:hover {
	transform: translateY(-4px);
	background: rgba(130, 195, 65, 0.08);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.45);
}

.gdw-gm-badge svg {
	width: 40px;
	height: 40px;
	margin-bottom: 18px;
	fill: none;
	stroke: var(--gm-300);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gdw-gm-badge strong {
	display: block;
	font: 600 21px/1.2 "Plus Jakarta Sans", sans-serif;
	color: #FFFFFF;
}

.gdw-gm-badge span {
	display: block;
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.5;
	color: #A9BBAE;
}

@media (max-width: 1024px) {
	.gdw-gm-trust__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.gdw-gm-badges {
		grid-template-columns: 1fr;
	}
}

/* --- 9. Noticias (Post Grid de Essential Addons, sección nativa) ------------- */
.gdw-home-noticias {
	background: var(--gm-850);
}

.gdw-home-noticias .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif;
}

.gdw-news .eael-grid-post-holder {
	border: 0 !important;
	border-radius: var(--gm-radius);
	overflow: hidden;
	background: rgba(255, 255, 255, 0.04) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09);
	transition: transform 0.4s, box-shadow 0.4s;
}

.gdw-news .eael-grid-post-holder:hover {
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.45);
}

.gdw-news .eael-entry-title a {
	color: #FFFFFF !important;
}

.gdw-news .eael-grid-post-excerpt p,
.gdw-news .eael-entry-meta,
.gdw-news .eael-entry-meta a {
	color: #A9BBAE !important;
}

.gdw-news a {
	text-decoration: none !important;
}

.gdw-news--light .eael-grid-post-holder {
	background: #FFFFFF !important;
	box-shadow: 0 0 0 1px var(--gm-line), 0 20px 40px rgba(14, 42, 28, 0.06);
}

.gdw-news--light .eael-grid-post-holder:hover {
	box-shadow: 0 0 0 1px var(--gm-300), 0 24px 50px rgba(14, 42, 28, 0.1);
}

.gdw-news--light .eael-entry-title a {
	color: var(--gm-ink) !important;
}

.gdw-news--light .eael-grid-post-excerpt p,
.gdw-news--light .eael-entry-meta,
.gdw-news--light .eael-entry-meta a {
	color: var(--gm-muted) !important;
}

/* «Leer más» de EA en verde, nunca en rojo */
.gdw-news .eael-post-elements-readmore-btn {
	color: var(--gm-700) !important;
	font-weight: 600;
}

.gdw-home-noticias .gdw-news .eael-post-elements-readmore-btn {
	color: var(--gm-300) !important;
}

/* ==========================================================================
   20.2 PÁGINAS INTERIORES (.gdw-pg, widgets nativos y editables)
   La misma línea que la home: fondo verde noche, cabecera oscura (marcador
   .gdw-h2[data-gdw-dark] en la cabecera de cada página), titulares palabra a
   palabra (.gdw-split), aparición al bajar (.gdw-h2-reveal + .gdw-d1…8) y
   parallax con el motor de custom.js: un widget HTML .gdw-pg-marker con
   data-gdw-scroll y data-gdw-target pone --p en su contenedor.
   ========================================================================== */
.gdw-d1 { --d: 1; }
.gdw-d2 { --d: 2; }
.gdw-d3 { --d: 3; }
.gdw-d4 { --d: 4; }
.gdw-d5 { --d: 5; }
.gdw-d6 { --d: 6; }
.gdw-d7 { --d: 7; }
.gdw-d8 { --d: 8; }

.gdw-pg {
	position: relative;
	color: #B8C8BC;
}

.gdw-pg .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif;
}

.gdw-pg-marker {
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden;
	pointer-events: none;
}

/* Brillo verde de fondo en algunas secciones */
.gdw-pg-glow {
	isolation: isolate;
}

.gdw-pg-glow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(900px 520px at 88% 12%, rgba(10, 110, 56, 0.32), transparent 70%),
		radial-gradient(700px 420px at 6% 92%, rgba(130, 195, 65, 0.1), transparent 70%);
	pointer-events: none;
}

/* --- Cabecera de página -------------------------------------------------- */
.gdw-pg-hero {
	isolation: isolate;
	overflow: hidden;
	margin-top: calc(-1 * var(--gdw-header-h, 90px));
	padding-top: calc(var(--gdw-header-h, 90px) + 110px) !important;
}

.gdw-pg-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(6, 20, 13, 0.94) 0%, rgba(6, 20, 13, 0.74) 40%, rgba(6, 20, 13, 0.22) 75%, rgba(6, 20, 13, 0.18) 100%),
		linear-gradient(0deg, var(--gm-900) 0%, rgba(6, 20, 13, 0) 38%),
		linear-gradient(180deg, rgba(6, 20, 13, 0.6) 0%, rgba(6, 20, 13, 0) 26%);
	pointer-events: none;
}

.gdw-pg-hero > .gdw-pg-hero__bg {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	z-index: -2;
}

.gdw-pg-hero__bg img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	border-radius: 0 !important;
	transform: scale(calc(1.08 + var(--p, 0) * 0.16)) translate3d(0, calc(var(--p, 0) * 7%), 0);
	animation: gdw-gm-zoom 2.4s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.gdw-pg-hero__inner {
	transform: translate3d(0, calc(var(--p, 0) * -80px), 0);
	opacity: calc(1 - var(--p, 0) * 1.3);
}

.gdw-pg-hero__cue {
	position: absolute !important;
	right: var(--gm-gutter);
	bottom: 34px;
	width: auto !important;
}

@media (max-width: 767px) {
	.gdw-pg-hero::before {
		background: linear-gradient(0deg, var(--gm-900) 0%, rgba(6, 20, 13, 0.88) 45%, rgba(6, 20, 13, 0.4) 78%, rgba(6, 20, 13, 0.6) 100%);
	}

	.gdw-pg-hero {
		padding-top: calc(var(--gdw-header-h, 70px) + 80px) !important;
	}

	.gdw-pg-hero__cue {
		display: none;
	}
}

/* --- Textos -------------------------------------------------------------- */
.gdw-pg-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font: 600 13px/1.2 "DM Sans", sans-serif !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gm-300) !important;
}

.gdw-pg-eyebrow .elementor-heading-title::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
}

.gdw-pg-title .elementor-heading-title {
	color: #FFFFFF;
	text-wrap: balance;
}

/* Solo el texto marcado en verde: el efecto palabra a palabra mete cada
   palabra en un span, así que no vale «todos los span del título» */
.gdw-pg .gdw-gm-accent {
	color: var(--gm-300);
}

.gdw-pg-lead {
	max-width: 640px !important;
	color: #D3DFD6;
}

.gdw-pg-text {
	max-width: 660px !important;
	color: #B8C8BC;
}

.gdw-pg-text p:last-child,
.gdw-pg-lead p:last-child {
	margin-bottom: 0;
}

.gdw-pg-text strong,
.gdw-pg-lead strong,
.gdw-pg-box strong {
	color: #FFFFFF;
}

.gdw-pg a:not(.elementor-button) {
	color: var(--gm-300);
}

.gdw-pg-text a:hover,
.gdw-pg-box a:hover {
	color: #FFFFFF;
}

/* Cabecera de bloque: título a la izquierda y entradilla a la derecha */
.gdw-pg-head .gdw-pg-lead {
	max-width: 460px;
}

/* --- Botones --------------------------------------------------------------- */
.gdw-pg-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 17px 28px !important;
	border: 0 !important;
	border-radius: 999px !important;
	font: 600 16px/1 "Plus Jakarta Sans", sans-serif !important;
	color: #FFFFFF !important;
	background: var(--gm-700) !important;
	box-shadow: 0 12px 40px rgba(10, 110, 56, 0.45);
	transition: transform 0.25s, background-color 0.25s, box-shadow 0.25s;
}

.gdw-pg-btn .elementor-button:hover {
	background: #0C8043 !important;
	transform: translateY(-2px);
	box-shadow: 0 18px 50px rgba(10, 110, 56, 0.6);
}

.gdw-pg-btn .elementor-button-icon svg {
	fill: currentColor;
	transition: transform 0.25s;
}

.gdw-pg-btn .elementor-button:hover .elementor-button-icon svg {
	transform: translateX(3px);
}

.gdw-pg-btn--ghost .elementor-button {
	background: rgba(255, 255, 255, 0.04) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.gdw-pg-btn--ghost .elementor-button:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	box-shadow: inset 0 0 0 1px var(--gm-300);
}

@media (max-width: 767px) {
	.gdw-pg-btns {
		flex-direction: column !important;
	}

	.gdw-pg-btns .elementor-widget-button,
	.gdw-pg-btns .elementor-button {
		width: 100%;
		justify-content: center;
	}
}

/* --- Tarjetas con foto (como las de la home, más bajas) ------------------- */
.gdw-pg-card {
	--mx: 50%;
	--my: 50%;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	justify-content: flex-end !important;
	min-height: 320px;
	border-radius: var(--gm-radius);
	background: var(--gm-800);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
	text-decoration: none !important;
}

.gdw-pg-card > .gdw-pg-card__img {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	z-index: -2;
}

.gdw-pg-card__img img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	border-radius: 0 !important;
	filter: saturate(0.85);
	transform: scale(1.02);
	transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.6s;
}

.gdw-pg-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(6, 20, 13, 0.97) 10%, rgba(6, 20, 13, 0.55) 58%, rgba(6, 20, 13, 0.2) 100%);
	pointer-events: none;
}

.gdw-pg-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	background: radial-gradient(380px circle at var(--mx) var(--my), rgba(130, 195, 65, 0.3), transparent 60%);
	transition: opacity 0.4s;
	pointer-events: none;
}

.gdw-pg-card:hover .gdw-pg-card__img img {
	transform: scale(1.1);
	filter: saturate(1.05);
}

.gdw-pg-card:hover::after {
	opacity: 1;
}

.gdw-pg-card__num .elementor-heading-title {
	font: 600 13px/1 "Plus Jakarta Sans", sans-serif !important;
	letter-spacing: 0.1em;
	color: var(--gm-300) !important;
}

.gdw-pg-card__num {
	position: absolute !important;
	top: 22px;
	left: 24px;
	width: auto !important;
}

.gdw-pg-card__title .elementor-heading-title {
	color: #FFFFFF !important;
}

.gdw-pg-card__title .elementor-heading-title::after {
	content: " →";
	color: var(--gm-300);
	transition: margin 0.3s;
}

.gdw-pg-card:hover .gdw-pg-card__title .elementor-heading-title::after {
	margin-left: 6px;
}

.gdw-pg-card .gdw-pg-text {
	color: #C6D4CA;
}

/* --- Tarjetas de cristal (características) -------------------------------- */
.gdw-pg-feat {
	border-radius: var(--gm-radius);
	background: rgba(255, 255, 255, 0.03);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09);
	transition: transform 0.4s, background-color 0.4s, box-shadow 0.4s;
}

.gdw-pg-feat:hover {
	transform: translateY(-4px);
	background: rgba(130, 195, 65, 0.07);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.45);
}

.gdw-pg-feat .elementor-icon-box-icon .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: rgba(130, 195, 65, 0.12);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.3);
}

.gdw-pg-feat .elementor-icon svg {
	width: 24px !important;
	height: 24px !important;
	fill: var(--gm-300) !important;
}

.gdw-pg-feat .elementor-icon-box-title,
.gdw-pg-feat .elementor-icon-box-title a {
	color: #FFFFFF !important;
}

.gdw-pg-feat .elementor-icon-box-description {
	color: #A9BBAE !important;
}

/* --- Cifras ------------------------------------------------------------------ */
.gdw-pg-stat {
	border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.gdw-pg-stat:first-child {
	border-left: 0;
}

.gdw-pg-stat .elementor-counter-number-wrapper {
	justify-content: flex-start !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	letter-spacing: -0.03em;
	color: #FFFFFF !important;
}

.gdw-pg-stat .elementor-counter-number-suffix,
.gdw-pg-stat .elementor-counter-number-prefix {
	color: var(--gm-300);
}

.gdw-pg-stat .elementor-counter-title {
	justify-content: flex-start !important;
	text-align: left !important;
	color: #9FB2A5 !important;
}

@media (max-width: 1024px) {
	.gdw-pg-stat:nth-child(odd) {
		border-left: 0;
	}
}

/* --- Fotos con parallax (no gigantes) ------------------------------------- */
.gdw-pg-media {
	position: relative;
	overflow: hidden;
	border-radius: 26px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.gdw-pg-media img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	max-height: 460px;
	aspect-ratio: 10 / 11;
	object-fit: cover;
	border-radius: 0 !important;
	transform: scale(1.16) translate3d(0, calc((var(--p, 0.5) - 0.5) * -80px), 0);
}

.gdw-pg-media--wide img {
	aspect-ratio: 16 / 10;
	max-height: 360px;
}

.gdw-pg-media--square img {
	aspect-ratio: 1;
}

/* Pareja de fotos: una grande y otra pequeña que flota encima */
.gdw-pg-duo {
	position: relative;
	width: 100%;
	max-width: 440px;
	margin: 0 auto;
	padding-bottom: 70px !important;
}

.gdw-pg-duo > .gdw-pg-media--small {
	position: absolute !important;
	left: -30px;
	bottom: 0;
	width: 44% !important;
	max-width: 200px;
	border: 6px solid var(--gm-900);
	border-radius: 22px;
	z-index: 2;
}

.gdw-pg-duo > .gdw-pg-media--small img {
	aspect-ratio: 1;
	transform: scale(1.14) translate3d(0, calc((var(--p, 0.5) - 0.5) * 60px), 0);
}

.gdw-pg-duo--right > .gdw-pg-media--small {
	left: auto;
	right: -30px;
}

@media (max-width: 1024px) {
	.gdw-pg-media img {
		max-height: 340px;
		aspect-ratio: 16 / 11;
	}

	.gdw-pg-duo > .gdw-pg-media--small {
		left: 16px;
		width: 38% !important;
	}

	.gdw-pg-duo--right > .gdw-pg-media--small {
		left: auto;
		right: 16px;
	}
}

/* Galería «En imágenes» con las fotos del cliente (cuadradas, sin parallax) */
.gdw-pg-gal .gdw-pg-media {
	border-radius: 18px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.gdw-pg-gal .gdw-pg-media img {
	aspect-ratio: 1;
	max-height: none;
	filter: saturate(0.92);
	transform: scale(1.04);
	transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.6s;
}

.gdw-pg-gal .gdw-pg-media:hover img {
	filter: saturate(1.05);
	transform: scale(1.12);
}

/* --- Pasos numerados --------------------------------------------------------- */
.gdw-pg-steps {
	position: relative;
}

.gdw-pg-steps::before {
	content: "";
	position: absolute;
	top: 28px;
	left: 30px;
	right: 30px;
	height: 1px;
	background: repeating-linear-gradient(90deg, rgba(130, 195, 65, 0.5) 0 10px, transparent 10px 18px);
}

.gdw-pg-step__num .elementor-heading-title {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	font: 700 17px/1 "Plus Jakarta Sans", sans-serif !important;
	color: var(--gm-300) !important;
	background: var(--gm-900);
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.6);
	transition: background-color 0.4s, color 0.4s;
}

.gdw-pg-step:hover .gdw-pg-step__num .elementor-heading-title {
	background: var(--gm-300);
	color: var(--gm-900) !important;
}

@media (max-width: 1024px) {
	.gdw-pg-steps::before {
		display: none;
	}
}

/* --- Listas con marca -------------------------------------------------------- */
.gdw-pg-checks .elementor-icon-list-item {
	align-items: flex-start !important;
}

.gdw-pg-checks .elementor-icon-list-icon {
	margin-top: 4px;
}

.gdw-pg-checks .elementor-icon-list-icon svg {
	fill: var(--gm-300) !important;
}

.gdw-pg-checks .elementor-icon-list-text {
	color: #D3DFD6 !important;
}

/* --- Recuadro de cristal con barra verde (políticas, avisos) ---------------- */
.gdw-pg-box {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.035);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09);
}

.gdw-pg-box::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 5px;
	height: 100%;
	background: linear-gradient(var(--gm-300), var(--gm-700));
}

.gdw-pg-box .elementor-widget-text-editor {
	color: #C6D4CA;
}

.gdw-pg-box li::marker {
	color: var(--gm-300);
}

@media (min-width: 768px) {
	.gdw-pg-box--justify .elementor-widget-text-editor {
		text-align: justify;
		-webkit-hyphens: auto;
		hyphens: auto;
	}
}

/* --- Línea de tiempo -------------------------------------------------------- */
.gdw-timeline {
	position: relative;
}

.gdw-timeline::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 21px;
	width: 2px;
	background: linear-gradient(var(--gm-300), rgba(10, 110, 56, 0.2));
}

.gdw-timeline__item {
	position: relative;
	padding-left: 70px !important;
}

.gdw-timeline__item::before {
	content: "";
	position: absolute;
	top: 4px;
	left: 12px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--gm-900);
	box-shadow: inset 0 0 0 5px var(--gm-300), 0 0 0 6px rgba(130, 195, 65, 0.12);
}

/* --- Acordeón (Tipos de residuos) -------------------------------------------- */
.gdw-pg .e-n-accordion-item {
	margin-bottom: 10px;
}

.gdw-pg .e-n-accordion-item-title {
	border: 0 !important;
	border-radius: 16px !important;
	background: rgba(255, 255, 255, 0.04) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
	transition: background-color 0.2s, box-shadow 0.2s;
}

.gdw-pg .e-n-accordion-item-title-text,
.gdw-pg .e-n-accordion-item-title-icon svg {
	color: #FFFFFF !important;
	fill: #FFFFFF !important;
}

.gdw-pg .e-n-accordion-item[open] > .e-n-accordion-item-title,
.gdw-pg .e-n-accordion-item-title:hover {
	background: rgba(130, 195, 65, 0.1) !important;
	box-shadow: inset 0 0 0 1px rgba(130, 195, 65, 0.45);
}

.gdw-pg .e-n-accordion-item[open] > .e-n-accordion-item-title {
	border-radius: 16px 16px 0 0 !important;
}

.gdw-pg .e-n-accordion-item > [role="region"],
.gdw-pg .e-n-accordion-item > .e-con {
	border: 0 !important;
	border-radius: 0 0 16px 16px;
	background: rgba(255, 255, 255, 0.02);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* Códigos LER */
.gdw-ler-search input {
	width: 100%;
	max-width: 620px;
	padding: 18px 22px 18px 52px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2382C341' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 20px center / 20px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
	font-size: 16px;
	color: #FFFFFF;
}

.gdw-ler-search input::placeholder {
	color: #7F948A;
}

.gdw-ler-search input:focus {
	outline: none;
	box-shadow: inset 0 0 0 1px var(--gm-300), 0 0 0 4px rgba(130, 195, 65, 0.18);
}

.gdw-ler-search p {
	margin: 12px 0 0;
	font-size: 14px;
	color: #9FB2A5;
}

.gdw-ler ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gdw-ler li {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
	font-size: 15px;
	line-height: 1.5;
	color: #C6D4CA;
}

.gdw-ler li:last-child {
	border-bottom: 0;
}

.gdw-ler code {
	padding: 0;
	background: none;
	font: 600 15px/1.5 "Plus Jakarta Sans", sans-serif;
	white-space: nowrap;
	color: var(--gm-300);
}

.gdw-ler .is-hidden {
	display: none;
}

@media (max-width: 600px) {
	.gdw-ler li {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* --- Contacto y formulario en oscuro ---------------------------------------- */
.gdw-pg-datos .elementor-icon-list-text {
	color: #D3DFD6 !important;
}

.gdw-pg-datos a:hover .elementor-icon-list-text {
	color: var(--gm-300) !important;
}

.gdw-pg-datos .elementor-icon-list-icon svg {
	fill: var(--gm-300) !important;
}

.gdw-pg-formcard {
	border-radius: 26px;
	background: rgba(255, 255, 255, 0.035);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 40px 100px rgba(0, 0, 0, 0.35);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.gdw-pg .gdw-form .gdw-form__field label {
	color: #FFFFFF;
}

.gdw-pg .gdw-form input[type="text"],
.gdw-pg .gdw-form input[type="email"],
.gdw-pg .gdw-form input[type="tel"],
.gdw-pg .gdw-form textarea,
.gdw-pg .gdw-form select {
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.05);
	color: #FFFFFF;
}

.gdw-pg .gdw-form select option {
	color: var(--gm-ink);
	background: #FFFFFF;
}

.gdw-pg .gdw-form ::placeholder {
	color: #7F948A;
}

.gdw-pg .gdw-form input:focus,
.gdw-pg .gdw-form textarea:focus,
.gdw-pg .gdw-form select:focus {
	border-color: var(--gm-300);
	box-shadow: 0 0 0 3px rgba(130, 195, 65, 0.2);
}

.gdw-pg .gdw-form .gdw-form__privacy {
	color: #A9BBAE;
}

.gdw-pg .gdw-form .gdw-form__privacy a,
.gdw-pg .gdw-form .wpcf7-not-valid-tip {
	color: var(--gm-300);
}

.gdw-pg .gdw-form .gdw-form__submit {
	box-shadow: 0 12px 40px rgba(10, 110, 56, 0.45);
}

.gdw-pg .gdw-form .wpcf7 form .wpcf7-response-output {
	color: #FFFFFF;
}

/* --- Entradas (Noticias), legales y mapa del sitio en oscuro ---------------- */
body.gdw-theme-dark .ast-article-single,
body.gdw-theme-dark .site-main > article,
body.gdw-theme-dark .ast-separate-container .ast-article-single {
	background: transparent !important;
}

body.single-post.gdw-theme-dark .entry-content {
	color: #C6D4CA;
}

body.single-post.gdw-theme-dark .entry-content h2,
body.single-post.gdw-theme-dark .entry-content strong,
body.single-post.gdw-theme-dark .entry-title {
	color: #FFFFFF;
}

body.single-post.gdw-theme-dark .entry-content ul li::marker {
	color: var(--gm-300);
}

body.single-post.gdw-theme-dark .entry-content a:not(.wp-block-button__link) {
	color: var(--gm-300);
}

body.single-post.gdw-theme-dark .entry-content .wp-block-button__link {
	box-shadow: 0 12px 40px rgba(10, 110, 56, 0.45);
}

body.single-post.gdw-theme-dark .post-navigation a,
body.single-post.gdw-theme-dark .ast-single-post-order a {
	color: #D3DFD6;
}

body.gdw-theme-dark .gdw-legal .gdw-legal__body {
	color: #C6D4CA;
}

body.gdw-theme-dark .gdw-legal .gdw-legal__body h2,
body.gdw-theme-dark .gdw-legal .gdw-legal__body h3,
body.gdw-theme-dark .gdw-legal .gdw-legal__body strong,
body.gdw-theme-dark .gdw-legal .gdw-legal__body th {
	color: #FFFFFF;
}

body.gdw-theme-dark .gdw-legal .gdw-legal__body a {
	color: var(--gm-300);
}

body.gdw-theme-dark .gdw-legal .gdw-legal__body th,
body.gdw-theme-dark .gdw-legal .gdw-legal__body td {
	border-color: rgba(255, 255, 255, 0.12);
}

body.gdw-theme-dark .gdw-legal .gdw-legal__body th {
	background: rgba(255, 255, 255, 0.05);
}

body.gdw-theme-dark .gdw-legal .gdw-legal__title,
body.gdw-theme-dark .gdw-legal .gdw-legal__date {
	display: none;
}

.gdw-pg-sitemap a {
	color: #D3DFD6 !important;
	text-decoration: none !important;
}

.gdw-pg-sitemap a:hover {
	color: var(--gm-300) !important;
}

.gdw-pg-sitemap h2,
.gdw-pg-sitemap h3 {
	color: #FFFFFF;
}

.gdw-pg-sitemap ul {
	list-style: none;
	padding-left: 0;
}

.gdw-pg-sitemap ul ul {
	padding-left: 22px;
	border-left: 1px solid rgba(130, 195, 65, 0.3);
}

.gdw-pg-sitemap li {
	padding: 4px 0;
}

/* ==========================================================================
   20.3 Reducir movimiento: todo quieto y visible
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.gdw-gm *,
	.gdw-gm *::before,
	.gdw-gm *::after,
	.gdw-pg *,
	.gdw-pg *::before,
	.gdw-pg *::after {
		animation: none !important;
		transition: none !important;
	}

	.gdw-gm-hero__media img,
	.gdw-gm-hero__inner,
	.gdw-pg-hero__bg img,
	.gdw-pg-hero__inner,
	.gdw-pg-media img,
	.gdw-gm-panel img,
	.gdw-gm-film__frame,
	.gdw-gm-leaf {
		transform: none !important;
		opacity: 1 !important;
	}

	.gdw-gm-process {
		height: auto;
		padding: 90px 0;
	}

	.gdw-gm-process__sticky {
		position: relative;
		height: auto;
		padding-top: 0;
	}

	.gdw-gm-process__steps li {
		opacity: 1;
		transform: none;
	}

	/* Vídeo sin fijar ni zoom */
	.gdw-gm-film {
		height: auto;
		padding: 100px 0;
	}

	.gdw-gm-film__sticky {
		position: relative;
		height: auto;
		overflow: visible;
	}

	.gdw-gm-film__head {
		position: relative;
		top: auto;
	}

	.gdw-gm-film__frame {
		position: relative;
		inset: auto;
		width: calc(100% - 2 * var(--gm-gutter));
		max-width: 1400px;
		height: auto;
		margin: 50px auto 0;
		aspect-ratio: 16 / 9;
		border-radius: 24px;
		clip-path: none;
	}

	.gdw-gm-film__frame video {
		transform: none;
	}

	.gdw-gm-film__logo {
		display: none;
	}

	.gdw-gm-leaf {
		display: none;
	}

	.gdw-gm-road__fill {
		width: 100%;
	}

	.gdw-gm-strip {
		flex-wrap: wrap;
		width: auto;
	}

	/* Sin el motor de scroll: los medios propios se desplazan a mano */
	.gdw-gm-means {
		height: auto;
		padding: 90px 0;
	}

	.gdw-gm-means__sticky {
		position: relative;
		height: auto;
		display: block;
		overflow: visible;
		padding-top: 0;
	}

	.gdw-gm-means .gdw-h2-hscroll__track {
		width: auto;
		transform: none !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 20px;
	}

	.gdw-gm-means__intro {
		display: none;
	}

	.gdw-gm-means__head {
		display: block !important;
		margin-bottom: 36px;
	}

	.gdw-gm-panel {
		scroll-snap-align: center;
	}
}
