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

/* --------------------------------------------------------------------------
   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: normal;
	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, #014E97);
	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, #014E97);
	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, #014E97);
}

@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(1, 78, 151, 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: #0A63BD;
}

.gdw-form .gdw-form__submit {
	background: #0A63BD;
	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: #0A63BD;
}

.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: #0A63BD;
}

/* --------------------------------------------------------------------------
   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: #0B0B0A;
}

/* El desenfoque va en una capa ::before y no en la barra: un backdrop-filter en
   la barra encerraría dentro de ella el panel fijo del menú móvil */
body.gdw-theme-dark .gdw-header__bar {
	position: relative;
	isolation: isolate;
	background-color: transparent !important;
	border-color: rgba(255, 255, 255, 0.08) !important;
}

body.gdw-theme-dark .gdw-header__bar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: rgba(11, 11, 10, 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: #151514 !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: #014E97 !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: #151514 !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: #0B0B0A;
	--h2-surface: #151514;
	--h2-line: rgba(255, 255, 255, 0.09);
	--h2-text: #F4F3EF;
	--h2-muted: #8A8A86;
	--h2-red: #014E97;
	--h2-coral: #73FBD3;
	--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, #014E97 0%, #73FBD3 55%, #B9FDEA 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, #0A63BD, #014E97 60%, #0A63BD);
	box-shadow: 0 10px 40px rgba(1, 78, 151, 0.35);
	transition: transform 0.25s, box-shadow 0.25s;
}

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

.gdw-h2-orb--2 {
	width: 460px;
	height: 460px;
	bottom: -160px;
	left: -120px;
	background: radial-gradient(circle, rgba(115, 251, 211, 0.45), transparent 70%);
	--speed: -220px;
	animation-delay: -4s;
}

.gdw-h2-orb--3 {
	width: 260px;
	height: 260px;
	top: 38%;
	left: 42%;
	background: radial-gradient(circle, rgba(10, 99, 189, 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, #014E97, #02305C);
	border-color: rgba(255, 255, 255, 0.25);
	box-shadow: 0 40px 90px rgba(1, 78, 151, 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(1, 78, 151, 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: #0B0B0A;
	stroke: #73FBD3;
	stroke-width: 1.8;
}

.gdw-h2-morph__nodes circle.is-inner {
	fill: #014E97;
	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: normal;
	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: normal;
	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, #014E97, #73FBD3);
}

.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, #014E97, #02305C);
	border-color: rgba(255, 255, 255, 0.3);
	box-shadow: 0 40px 100px rgba(1, 78, 151, 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: #151514;
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 50px 100px rgba(0, 0, 0, 0.6), 0 0 80px rgba(1, 78, 151, 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: #014E97;
}

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

.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, #014E97, #02305C);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: 0 10px 30px rgba(1, 78, 151, 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(1, 78, 151, 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, #014E97, #02305C);
	box-shadow: 0 0 60px rgba(1, 78, 151, 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: normal;
	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, #014E97, #73FBD3);
	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: normal;
}

.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(1, 78, 151, 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(1, 78, 151, 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(1, 78, 151, 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: normal;
	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: normal;
	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: #0A63BD;
}

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

/* ==========================================================================
   AGM DENTAL · lo propio de esta web (salida/astra-child/css/*.css)
   ========================================================================== */
/* >>> AGM 00-base.css */
/* ==========================================================================
   AGM Dental · 00-base.css (gdw-agm 1.0, 10-10-2026 · Mario pide · Claude)
   Lo común de toda la web (DISENO.md §1, §2 y §8): variables y colores por
   contexto, tipografía, secciones, aurora y luz de suelo, botones y enlaces,
   apariciones, palabras, revelado con el scroll, parallax y flotación,
   escenas, tarjetas que se inclinan, chips, datos, cinta, cabecera de página
   (phero), franja final (cta), acordeón, formulario CF7, legales,
   utilidades de posición (x/y) y transición entre páginas.
   Lo mueve js/00-motor.js (window.AGM_FX). Las piezas de cada página van en
   10-inicio.css, 20-producto.css y 30-cabecera-pie.css.
   Reglas: prefijo gdw-agm-; sin espaciado negativo entre letras; el ::before
   de los contenedores es de Elementor (aquí, ::after); lo que mueve el scroll
   no lleva transición en transform; nada se oculta sin html.gdw-agm-js (ni en
   el editor de Elementor ni con «reducir movimiento»); efectos de ratón solo
   dentro de @media (hover: hover) and (pointer: fine).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Variables (DISENO §1) y colores por contexto
   Los componentes usan --agm-c-*; cada fondo los redefine y lo de dentro los
   hereda (una tarjeta clara dentro de una sección noche vuelve a lo claro).
   -------------------------------------------------------------------------- */
:root {
	--agm-azul: #014E97;
	--agm-azul-2: #0A63BD;
	--agm-noche: #04182E;
	--agm-negro: #020B16;
	--agm-texto: #3E4A5C;
	--agm-menta: #73FBD3;
	--agm-menta-osc: #0A7D64;
	--agm-niebla: #F2F5F9;
	--agm-plata: #9AA8BA;
	--agm-blanco: #FFFFFF;
	--agm-linea: rgba(4, 24, 46, 0.12);
	--agm-linea-osc: rgba(255, 255, 255, 0.12);
	--agm-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--agm-radio: 24px;
	--agm-ft: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
	--agm-fb: "DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

	/* contexto claro (por defecto) */
	--agm-c-titulo: var(--agm-noche);
	--agm-c-texto: var(--agm-texto);
	--agm-c-suave: #5B6678;            /* 5,4:1 sobre niebla */
	--agm-c-eyebrow: var(--agm-menta-osc);
	--agm-c-linea: var(--agm-linea);
	--agm-c-enlace: var(--agm-azul);
	--agm-c-acento: var(--agm-azul);
	--agm-c-chip: rgba(4, 24, 46, 0.05);
	--agm-c-foco: var(--agm-azul);
}

/* Contexto claro explícito (secciones claras, tarjetas, celdas) */
.gdw-agm-sec--blanco,
.gdw-agm-sec--niebla,
.gdw-agm-phero--clara,
.gdw-agm-phero--compacta:not(.gdw-agm-phero--noche),
.gdw-agm-tarjeta:not(.gdw-agm-tarjeta--noche),
.gdw-agm-bento__celda,
.gdw-agm-claro {
	--agm-c-titulo: var(--agm-noche);
	--agm-c-texto: var(--agm-texto);
	--agm-c-suave: #5B6678;
	--agm-c-eyebrow: var(--agm-menta-osc);
	--agm-c-linea: var(--agm-linea);
	--agm-c-enlace: var(--agm-azul);
	--agm-c-acento: var(--agm-azul);
	--agm-c-chip: rgba(4, 24, 46, 0.05);
	--agm-c-foco: var(--agm-azul);
	color: var(--agm-c-texto);
}

/* Contexto oscuro: escenario noche, negro, azul, franja final, pie, tarjetas noche */
.gdw-agm-sec--noche,
.gdw-agm-sec--negro,
.gdw-agm-sec--azul,
.gdw-agm-phero--noche,
.gdw-agm-cta,
.gdw-agm-footer,
.gdw-agm-tarjeta--noche,
.gdw-agm-bento__celda.gdw-agm-oscuro,
.gdw-agm-oscuro {
	--agm-c-titulo: var(--agm-blanco);
	--agm-c-texto: rgba(255, 255, 255, 0.8);
	--agm-c-suave: var(--agm-plata);   /* 7:1 sobre noche */
	--agm-c-eyebrow: var(--agm-menta);
	--agm-c-linea: var(--agm-linea-osc);
	--agm-c-enlace: var(--agm-menta);
	--agm-c-acento: var(--agm-menta);
	--agm-c-chip: rgba(255, 255, 255, 0.06);
	--agm-c-foco: var(--agm-menta);
	color: var(--agm-c-texto);
}

.gdw-agm-sec--azul {
	--agm-c-texto: rgba(255, 255, 255, 0.9);
	--agm-c-suave: rgba(255, 255, 255, 0.82);
	--agm-c-enlace: var(--agm-blanco);
}

::selection {
	background: rgba(1, 78, 151, 0.18);
	color: inherit;
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-footer) ::selection {
	background: rgba(115, 251, 211, 0.3);
	color: var(--agm-blanco);
}

/* --------------------------------------------------------------------------
   2. Tipografía (DISENO §1). Sin espaciado negativo: ni aquí ni en el Kit.
   Las clases dan tamaño y color por defecto; lo que se ponga en el propio
   widget de Elementor manda (su regla es más concreta).
   -------------------------------------------------------------------------- */
.elementor-widget-heading.gdw-agm-h .elementor-heading-title {
	font-family: var(--agm-ft);
	font-weight: 700;
	color: var(--agm-c-titulo);
	overflow-wrap: normal;          /* Astra parte las palabras largas */
	word-break: normal;
	hyphens: manual;
	text-wrap: balance;
}

.elementor-widget-heading.gdw-agm-display .elementor-heading-title {
	font-family: var(--agm-ft);
	font-weight: 700;
	font-size: clamp(44px, 7.4vw, 120px);
	line-height: 1.02;
}

.elementor-widget-heading.gdw-agm-h1 .elementor-heading-title {
	font-size: clamp(40px, 5.6vw, 88px);
	line-height: 1.04;
}

.elementor-widget-heading.gdw-agm-h2 .elementor-heading-title {
	font-size: clamp(32px, 4vw, 64px);
	line-height: 1.08;
}

.elementor-widget-heading.gdw-agm-h3 .elementor-heading-title {
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 600;
	line-height: 1.22;
}

.gdw-agm-h em,
.gdw-agm-h .gdw-agm-acento {
	font-style: normal;
	color: var(--agm-c-acento);
}

.elementor-widget-heading.gdw-agm-eyebrow .elementor-heading-title {
	font-family: var(--agm-fb);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--agm-c-eyebrow);
}

.elementor-widget-text-editor.gdw-agm-text,
.elementor-widget-text-editor.gdw-agm-lead {
	font-family: var(--agm-fb);
	color: var(--agm-c-texto);
}

.elementor-widget-text-editor.gdw-agm-text {
	font-size: 17px;
	line-height: 1.7;
}

.elementor-widget-text-editor.gdw-agm-lead {
	font-size: clamp(19px, 1.6vw, 23px);
	line-height: 1.5;
}

.gdw-agm-text p:last-child,
.gdw-agm-lead p:last-child,
.gdw-agm-sec .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;               /* Astra deja 1,75 em bajo el último párrafo */
}

.gdw-agm-text a,
.gdw-agm-lead a {
	color: var(--agm-c-enlace);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.gdw-agm-text strong,
.gdw-agm-lead strong {
	color: var(--agm-c-titulo);
	font-weight: 600;
}

/* Solo para lectores de pantalla */
.gdw-agm-sr {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Foco visible en todo lo nuestro */
:is(.gdw-agm-sec, .gdw-agm-phero, .gdw-agm-cta, .gdw-agm-footer, .gdw-agm-header) :is(a, button, [role="button"], [role="tab"], [tabindex="0"]):focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 3px;
	border-radius: 6px;
}

/* --------------------------------------------------------------------------
   3. Secciones y contenedores genéricos
   Fondo y relleno se ponen en Elementor; aquí, el de reserva y el color.
   -------------------------------------------------------------------------- */
.gdw-agm-sec {
	position: relative;
	overflow-x: clip !important;
}

.gdw-agm-sec--blanco { background-color: var(--agm-blanco); }
.gdw-agm-sec--niebla { background-color: var(--agm-niebla); }
.gdw-agm-sec--noche { background-color: var(--agm-noche); }
.gdw-agm-sec--negro { background-color: var(--agm-negro); }
.gdw-agm-sec--azul { background-color: var(--agm-azul); }

/* Noche con profundidad: del azul noche al negro */
.gdw-agm-sec--noche {
	background-image: linear-gradient(180deg, var(--agm-noche) 0%, var(--agm-negro) 100%);
}

/* Fila de botones */
.gdw-agm-botones {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.gdw-agm-botones > .elementor-widget-button,
.gdw-agm-botones > .e-con-inner > .elementor-widget-button {
	width: auto;
}

/* Las clases de identificación no deben estirar nada en las filas */
.gdw-agm-phero__content,
.gdw-agm-cta__content,
.gdw-agm-familia__texto,
.gdw-agm-familia__media {
	min-width: 0;
}

/* Enlaces del contenido sin el subrayado de Astra en piezas nuestras */
.gdw-agm-btn a,
.gdw-agm-link a,
.gdw-agm-chips a,
.gdw-agm-tarjeta a,
.gdw-agm-footer a,
.gdw-agm-header a {
	text-decoration: none !important;
}

/* --------------------------------------------------------------------------
   4. Aurora (halos azul y menta) y luz de suelo
   gdw-agm-aurora (y gdw-agm-cta, gdw-agm-phero--noche): capa ::after con tres
   halos que se mueven con --p (la sección pasa por la pantalla) y con el
   ratón (--mx, --my). Sin movimiento continuo. En una escena fija, la aurora
   va en el marco (para que no mida 300svh).
   gdw-agm-suelo: luz radial bajo el producto (::after); sombra en lo claro.
   -------------------------------------------------------------------------- */
.gdw-agm-aurora,
.gdw-agm-cta,
.gdw-agm-phero--noche {
	isolation: isolate;
	overflow: clip !important;
}

.gdw-agm-aurora::after,
.gdw-agm-cta::after,
.gdw-agm-phero--noche::after,
.gdw-agm-escena--fija.gdw-agm-aurora .gdw-agm-escena__marco::after {
	content: "";
	position: absolute;
	inset: -14% -10%;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(36% 44% at 24% 32%, rgba(1, 78, 151, 0.55), rgba(1, 78, 151, 0) 70%),
		radial-gradient(28% 36% at 76% 64%, rgba(115, 251, 211, 0.15), rgba(115, 251, 211, 0) 70%),
		radial-gradient(44% 38% at 62% 16%, rgba(10, 99, 189, 0.3), rgba(10, 99, 189, 0) 72%);
	transform: translate3d(calc(var(--mx, 0) * -22px), calc((var(--p, 0.5) - 0.5) * -90px + var(--my, 0) * -14px), 0);
}

/* En una escena fija, la aurora la pinta el marco (sticky), no la sección */
.gdw-agm-escena--fija.gdw-agm-aurora::after {
	content: none;
}

.gdw-agm-escena--fija.gdw-agm-aurora .gdw-agm-escena__marco {
	isolation: isolate;
}

html.gdw-agm-js :is(.gdw-agm-aurora, .gdw-agm-cta, .gdw-agm-phero--noche)::after {
	will-change: transform;
}

.gdw-agm-suelo {
	position: relative;
	isolation: isolate;
}

.gdw-agm-suelo::after {
	content: "";
	position: absolute;
	left: 6%;
	right: 6%;
	bottom: 5%;
	height: 22%;
	z-index: -1;
	pointer-events: none;
	background: radial-gradient(50% 50% at 50% 55%, rgba(115, 251, 211, 0.26), rgba(10, 99, 189, 0.24) 40%, rgba(1, 78, 151, 0) 72%);
}

/* En estudio claro, la luz es una sombra de contacto suave */
:is(.gdw-agm-sec--blanco, .gdw-agm-sec--niebla, .gdw-agm-phero--clara, .gdw-agm-claro, .gdw-agm-tarjeta:not(.gdw-agm-tarjeta--noche)) .gdw-agm-suelo::after {
	left: 14%;
	right: 14%;
	bottom: 4%;
	height: 10%;
	background: radial-gradient(50% 50% at 50% 50%, rgba(4, 24, 46, 0.16), rgba(4, 24, 46, 0) 72%);
}

/* --------------------------------------------------------------------------
   5. Botones (gdw-agm-btn, --claro, --linea, --sm), enlaces y magnético
   Píldora azul con un brillo que cruza al pasar; el motor la hace magnética.
   Colores y letra los da la clase: si se ponen en el widget, mandan esos.
   -------------------------------------------------------------------------- */
.elementor-widget-button.gdw-agm-btn .elementor-button {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 17px 30px;
	border: 1px solid var(--agm-azul);
	border-radius: 999px;
	background-color: var(--agm-azul);
	color: var(--agm-blanco);
	font-family: var(--agm-ft);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 14px 34px -16px rgba(1, 78, 151, 0.7);
	transition: background-color 0.45s var(--agm-ease), color 0.45s var(--agm-ease), border-color 0.45s var(--agm-ease), box-shadow 0.45s var(--agm-ease);
}

.elementor-widget-button.gdw-agm-btn .elementor-button::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -60%;
	width: 50%;
	z-index: -1;
	pointer-events: none;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0));
	transform: translateX(0) skewX(-18deg);
	transition: transform 0.9s var(--agm-ease);
}

.elementor-widget-button.gdw-agm-btn .elementor-button:hover,
.elementor-widget-button.gdw-agm-btn .elementor-button:focus-visible {
	background-color: var(--agm-azul-2);
	border-color: var(--agm-azul-2);
	color: var(--agm-blanco);
	box-shadow: 0 18px 40px -16px rgba(10, 99, 189, 0.8);
}

.elementor-widget-button.gdw-agm-btn .elementor-button:hover::after,
.elementor-widget-button.gdw-agm-btn .elementor-button:focus-visible::after {
	transform: translateX(380%) skewX(-18deg);
}

.elementor-widget-button.gdw-agm-btn .elementor-button-content-wrapper {
	gap: 10px;
}

/* Blanca sobre oscuro */
.elementor-widget-button.gdw-agm-btn--claro .elementor-button {
	background-color: var(--agm-blanco);
	border-color: var(--agm-blanco);
	color: var(--agm-noche);
	box-shadow: 0 14px 34px -18px rgba(0, 0, 0, 0.6);
}

.elementor-widget-button.gdw-agm-btn--claro .elementor-button:hover,
.elementor-widget-button.gdw-agm-btn--claro .elementor-button:focus-visible {
	background-color: #E3F0FF;
	border-color: #E3F0FF;
	color: var(--agm-noche);
}

.elementor-widget-button.gdw-agm-btn--claro .elementor-button::after {
	background: linear-gradient(100deg, rgba(1, 78, 151, 0), rgba(1, 78, 151, 0.12), rgba(1, 78, 151, 0));
}

/* De contorno (oscuro sobre claro; blanco sobre oscuro) */
.elementor-widget-button.gdw-agm-btn--linea .elementor-button {
	background-color: transparent;
	border-color: rgba(4, 24, 46, 0.24);
	color: var(--agm-noche);
	box-shadow: none;
}

.elementor-widget-button.gdw-agm-btn--linea .elementor-button:hover,
.elementor-widget-button.gdw-agm-btn--linea .elementor-button:focus-visible {
	background-color: transparent;
	border-color: var(--agm-azul);
	color: var(--agm-azul);
	box-shadow: none;
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-footer, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-btn--linea .elementor-button {
	border-color: rgba(255, 255, 255, 0.34);
	color: var(--agm-blanco);
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-footer, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-btn--linea .elementor-button:hover,
:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-footer, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-btn--linea .elementor-button:focus-visible {
	border-color: var(--agm-menta);
	color: var(--agm-menta);
}

.elementor-widget-button.gdw-agm-btn--sm .elementor-button {
	padding: 12px 22px;
	font-size: 14px;
}

.elementor-widget-button.gdw-agm-btn .elementor-button:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 3px;
}

.gdw-agm-btn .elementor-button-content-wrapper,
.gdw-agm-mag {
	will-change: auto;
}

/* Enlace con flecha que avanza (Título con enlace) */
.elementor-widget-heading.gdw-agm-link .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

.gdw-agm-link .elementor-heading-title a,
.gdw-agm-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	padding-bottom: 3px;
	color: var(--agm-c-enlace);
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px;
	transition: background-size 0.6s var(--agm-ease), color 0.4s var(--agm-ease);
}

.gdw-agm-link a::after {
	content: "\2192";
	font-family: var(--agm-fb);
	transition: translate 0.5s var(--agm-ease);
}

.gdw-agm-link a:hover,
.gdw-agm-link a:focus-visible {
	background-size: 100% 1px;
}

.gdw-agm-link a:hover::after,
.gdw-agm-link a:focus-visible::after {
	translate: 0.35em 0;
}

/* --------------------------------------------------------------------------
   6. Apariciones (gdw-agm-rv + gdw-agm-d1…d6), palabra a palabra
   (gdw-agm-palabras) y revelado con el scroll (gdw-agm-scrub)
   Solo con el motor activo (html.gdw-agm-js). Lo que está arriba del todo
   (hero y phero) entra con CSS (abajo, 13), sin esperar al JS.
   -------------------------------------------------------------------------- */
.gdw-agm-d1 { --agm-d: 0.08s; }
.gdw-agm-d2 { --agm-d: 0.16s; }
.gdw-agm-d3 { --agm-d: 0.24s; }
.gdw-agm-d4 { --agm-d: 0.32s; }
.gdw-agm-d5 { --agm-d: 0.4s; }
.gdw-agm-d6 { --agm-d: 0.48s; }

html.gdw-agm-js .gdw-agm-rv {
	transition:
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s);
}

html.gdw-agm-js .gdw-agm-rv:not(.is-in) {
	opacity: 0;
	translate: 0 28px;
	filter: blur(4px);
}

/* Palabra a palabra: cada palabra (.agm-w) es una máscara y su interior sube */
.gdw-agm-palabras .agm-w {
	display: inline-block;
	overflow: clip;
	vertical-align: top;
	padding: 0.1em 0.06em 0.14em;
	margin: -0.1em -0.06em -0.14em;
}

.gdw-agm-palabras .agm-w__i {
	display: inline-block;
}

html.gdw-agm-js .gdw-agm-palabras .agm-w__i {
	transition: translate 1s var(--agm-ease), opacity 1s var(--agm-ease);
	transition-delay: calc(var(--agm-d, 0s) + var(--agm-i, 0) * 55ms);
}

html.gdw-agm-js .gdw-agm-palabras:not(.is-in) .agm-w__i {
	translate: 0 110%;
	opacity: 0;
}

/* Revelado con el scroll: cada palabra de .16 a 1 según --agm-q (lo pone el motor) */
.gdw-agm-scrub .agm-s {
	opacity: calc(0.16 + 0.84 * clamp(0, var(--agm-q, 1) * var(--agm-n, 1) - var(--agm-i, 0), 1));
	transition: opacity 0.25s linear;
}

/* --------------------------------------------------------------------------
   7. Parallax (gdw-agm-plx, --lento, --rapido) y flotación (gdw-agm-flota)
   El motor pone --agm-k (de -1 a 1 mientras cruza la pantalla).
   - plx en una Imagen (foto a sangre): se mueve la foto de dentro, con un
     poco de zoom (el widget recorta). No usar en recortes de producto.
   - plx en un contenedor: se mueve el contenedor (sin recortar).
   - flota (recortes de producto): la imagen sube y baja un poco con el
     scroll (no continuo) y se inclina con el ratón. No recorta.
   No combinar en el mismo elemento plx/flota con gdw-agm-tilt (los dos usan
   transform).
   -------------------------------------------------------------------------- */
.gdw-agm-plx {
	--agm-plx: 5%;
	--agm-plx-px: 40px;
}

.gdw-agm-plx--lento {
	--agm-plx: 2.5%;
	--agm-plx-px: 20px;
}

.gdw-agm-plx--rapido {
	--agm-plx: 8%;
	--agm-plx-px: 80px;
}

@media (max-width: 767px) {
	.gdw-agm-plx {
		--agm-plx: 2.5%;
		--agm-plx-px: 18px;
	}
}

.elementor-widget-image.gdw-agm-plx {
	overflow: hidden;
}

html.gdw-agm-js .elementor-widget-image.gdw-agm-plx img {
	transform: translate3d(0, calc(var(--agm-k, 0) * var(--agm-plx)), 0) scale(1.12);
}

/* sin transición en transform (la mueve el scroll); la aparición (gdw-agm-rv) sigue */
html.gdw-agm-js .e-con.gdw-agm-plx {
	transform: translate3d(0, calc(var(--agm-k, 0) * var(--agm-plx-px)), 0);
	transition:
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s) !important;
}

html.gdw-agm-js .elementor-widget-image.gdw-agm-flota img,
html.gdw-agm-js .e-con.gdw-agm-flota {
	transform:
		translate3d(calc(var(--mx, 0) * 10px), calc(var(--agm-k, 0) * -18px + var(--my, 0) * 8px), 0)
		rotate(calc(var(--agm-k, 0) * 1.2deg + var(--mx, 0) * 1.5deg));
}

html.gdw-agm-js .e-con.gdw-agm-flota {
	transition:
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s) !important;
}

/* las de una fila no flotan todas igual */
html.gdw-agm-js .gdw-agm-flota:nth-child(2n) img,
html.gdw-agm-js .e-con.gdw-agm-flota:nth-child(2n) {
	transform:
		translate3d(calc(var(--mx, 0) * 8px), calc(var(--agm-k, 0) * 14px + var(--my, 0) * 6px), 0)
		rotate(calc(var(--agm-k, 0) * -1deg + var(--mx, 0) * 1.2deg));
}

/* --------------------------------------------------------------------------
   8. Escenas ligadas al scroll
   gdw-agm-escena (pasa por la pantalla) y gdw-agm-escena--fija (sección alta
   con un marco sticky de 100svh: gdw-agm-escena__marco, su primer hijo). El
   motor pone --p (0 → 1). Alto con gdw-agm-alto-NNN (svh) o desde el JS.
   Mejor a ancho completo (content_width: full) y sin relleno en la sección.
   -------------------------------------------------------------------------- */
.gdw-agm-alto-120 { --agm-alto: 120svh; }
.gdw-agm-alto-140 { --agm-alto: 140svh; }
.gdw-agm-alto-160 { --agm-alto: 160svh; }
.gdw-agm-alto-180 { --agm-alto: 180svh; }
.gdw-agm-alto-200 { --agm-alto: 200svh; }
.gdw-agm-alto-220 { --agm-alto: 220svh; }
.gdw-agm-alto-240 { --agm-alto: 240svh; }
.gdw-agm-alto-260 { --agm-alto: 260svh; }
.gdw-agm-alto-280 { --agm-alto: 280svh; }
.gdw-agm-alto-300 { --agm-alto: 300svh; }
.gdw-agm-alto-320 { --agm-alto: 320svh; }
.gdw-agm-alto-340 { --agm-alto: 340svh; }
.gdw-agm-alto-360 { --agm-alto: 360svh; }
.gdw-agm-alto-380 { --agm-alto: 380svh; }
.gdw-agm-alto-400 { --agm-alto: 400svh; }

/* Elementor anima transform en .4 s en sus contenedores: aquí no */
.gdw-agm-escena,
.gdw-agm-escena--fija {
	--e-con-transform-transition-duration: 0s;
}

html.gdw-agm-js .gdw-agm-escena--fija {
	height: var(--agm-alto, 220svh);
	min-height: 0 !important;
}

html.gdw-agm-js .gdw-agm-escena--fija > .e-con-inner {
	flex: 1 1 auto;
	height: 100%;
	max-width: none;
}

.gdw-agm-escena__marco {
	position: relative;
	width: 100%;
}

html.gdw-agm-js .gdw-agm-escena--fija .gdw-agm-escena__marco {
	position: sticky !important;
	top: 0;
	height: 100svh;
	min-height: 0 !important;
	overflow: clip !important;
}

/* --------------------------------------------------------------------------
   9. Tarjetas (gdw-agm-tarjeta, --noche) y tarjetas que se inclinan
   (gdw-agm-tilt: máx. 5°, brillo que sigue al ratón). El motor pone
   --agm-rx, --agm-ry (giro) y --agm-gx, --agm-gy (brillo, en %).
   -------------------------------------------------------------------------- */
.gdw-agm-tarjeta {
	position: relative;
	border-radius: var(--agm-radio) !important;
	background-color: var(--agm-blanco);
	box-shadow: 0 1px 0 rgba(4, 24, 46, 0.04), 0 34px 70px -46px rgba(4, 24, 46, 0.45);
}

.gdw-agm-tarjeta--noche {
	background-color: var(--agm-noche);
	background-image: linear-gradient(180deg, #0A2440 0%, var(--agm-noche) 70%);
	border: 1px solid var(--agm-linea-osc);
	box-shadow: 0 40px 80px -50px rgba(0, 0, 0, 0.8);
}

.gdw-agm-tarjeta .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
}

.gdw-agm-tarjeta.is-enlace {
	cursor: pointer;
}

.gdw-agm-tilt {
	position: relative;
	transform: perspective(1100px) rotateX(var(--agm-rx, 0deg)) rotateY(var(--agm-ry, 0deg));
	/* el giro lo suaviza el JS (sin transición en transform); la aparición (gdw-agm-rv) sigue */
	transition:
		box-shadow 0.5s var(--agm-ease),
		background-color 0.5s var(--agm-ease),
		border-color 0.5s var(--agm-ease),
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s) !important;
}

.gdw-agm-tilt::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: inherit;
	pointer-events: none;
	background: radial-gradient(420px circle at var(--agm-gx, 50%) var(--agm-gy, 30%), rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 62%);
	opacity: 0;
	transition: opacity 0.5s var(--agm-ease);
}

:is(.gdw-agm-sec--blanco, .gdw-agm-sec--niebla, .gdw-agm-claro) .gdw-agm-tilt:not(.gdw-agm-tarjeta--noche)::after {
	background: radial-gradient(420px circle at var(--agm-gx, 50%) var(--agm-gy, 30%), rgba(1, 78, 151, 0.08), rgba(1, 78, 151, 0) 62%);
}

@media (hover: hover) and (pointer: fine) {
	.gdw-agm-tilt.is-encima::after,
	.gdw-agm-tilt:hover::after {
		opacity: 1;
	}

	.gdw-agm-tarjeta.gdw-agm-tilt:hover {
		box-shadow: 0 1px 0 rgba(4, 24, 46, 0.04), 0 44px 90px -50px rgba(4, 24, 46, 0.55);
	}
}

/* --------------------------------------------------------------------------
   10. Chips (gdw-agm-chips: Lista de iconos en línea) y datos (gdw-agm-dato)
   -------------------------------------------------------------------------- */
.gdw-agm-chips .elementor-icon-list-items {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
	padding: 0;
}

.gdw-agm-chips .elementor-icon-list-item {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 9px 16px !important;
	border: 1px solid var(--agm-c-linea);
	border-radius: 999px;
	background: var(--agm-c-chip);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.gdw-agm-chips .elementor-icon-list-item::after {
	display: none !important;        /* separadores de las listas en línea */
}

.gdw-agm-chips .elementor-icon-list-text {
	padding: 0 !important;
	font-family: var(--agm-fb);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--agm-c-titulo);
}

.gdw-agm-chips .elementor-icon-list-icon {
	color: var(--agm-c-eyebrow);
}

.gdw-agm-chips .elementor-icon-list-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.gdw-agm-chips .elementor-icon-list-icon i {
	font-size: 14px;
	color: currentColor;
}

.gdw-agm-dato {
	position: relative;
	min-width: 0;
	padding-top: 22px;
	border-top: 1px solid var(--agm-c-linea);
}

.gdw-agm-dato::after {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 44px;
	height: 2px;
	background: var(--agm-c-acento);
}

.elementor-widget-heading.gdw-agm-dato__num .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: clamp(36px, 4vw, 64px);
	font-weight: 700;
	line-height: 1.02;
	color: var(--agm-c-titulo);
	font-variant-numeric: tabular-nums;
}

.elementor-widget-heading.gdw-agm-dato__txt .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--agm-c-suave);
}

/* --------------------------------------------------------------------------
   11. Cinta ligada al scroll (gdw-agm-cinta › __track › __item)
   El motor duplica las palabras y la mueve con la rueda; sin rueda se para
   sola antes de 5 s (WCAG 2.2.2). --inversa en el __track: va al revés.
   -------------------------------------------------------------------------- */
.gdw-agm-cinta {
	overflow: clip !important;
}

.gdw-agm-cinta .gdw-agm-cinta__track {
	align-self: flex-start !important;
	flex-wrap: nowrap !important;
	width: max-content !important;
	max-width: none !important;
	transition: none !important;
}

html.gdw-agm-js .gdw-agm-cinta .gdw-agm-cinta__track {
	will-change: transform;
}

.gdw-agm-cinta .gdw-agm-cinta__track > .e-con-inner {
	flex-wrap: nowrap !important;
	width: max-content !important;
	max-width: none !important;
	transition: none !important;
}

.gdw-agm-cinta .gdw-agm-cinta__item {
	flex: none !important;
	width: auto !important;
	max-width: none !important;
}

.gdw-agm-cinta .gdw-agm-cinta__item .elementor-heading-title {
	white-space: nowrap;
}

/* Sin el motor la cinta no se mueve: que se lea entera, partida en líneas */
html:not(.gdw-agm-js) .gdw-agm-cinta .gdw-agm-cinta__track,
html:not(.gdw-agm-js) .gdw-agm-cinta .gdw-agm-cinta__track > .e-con-inner {
	flex-wrap: wrap !important;
	width: auto !important;
}

/* --------------------------------------------------------------------------
   12. Cabecera de página (gdw-agm-phero --noche, --clara, --compacta) y
   franja final (gdw-agm-cta)
   phero: contenedor de primer nivel; __content (etiqueta, H1, entradilla,
   botones, chips) y __img (recorte de producto, con gdw-agm-flota). La
   cabecera va fija encima: el relleno superior de la phero incluye la
   cabecera (DISENO §6; en el constructor). Aurora en --noche.
   -------------------------------------------------------------------------- */
.gdw-agm-phero {
	position: relative;
	isolation: isolate;
	overflow: clip !important;
}

.gdw-agm-phero--noche {
	background-color: var(--agm-noche);
	background-image: radial-gradient(120% 90% at 70% 100%, #072746 0%, var(--agm-noche) 45%, var(--agm-negro) 100%);
}

.gdw-agm-phero--clara {
	background-color: var(--agm-niebla);
	background-image: linear-gradient(180deg, var(--agm-blanco) 0%, var(--agm-niebla) 100%);
}

.gdw-agm-phero--compacta:not(.gdw-agm-phero--noche) {
	background-color: var(--agm-niebla);
	border-bottom: 1px solid var(--agm-linea);
}

.gdw-agm-phero__content {
	position: relative;
	z-index: 1;
}

.gdw-agm-phero__img {
	position: relative;
	z-index: 0;
}

.gdw-agm-phero__img img {
	display: block;
	width: 100%;
	height: auto;
}

.gdw-agm-phero--noche .gdw-agm-phero__img img {
	filter: drop-shadow(0 40px 50px rgba(0, 0, 0, 0.45));
}

.gdw-agm-phero .elementor-widget-heading.gdw-agm-h .elementor-heading-title {
	max-width: 15em;
}

.gdw-agm-phero--compacta .elementor-widget-heading.gdw-agm-h .elementor-heading-title {
	max-width: 18em;
}

/* Franja final: noche con aurora, texto centrado */
.gdw-agm-cta {
	position: relative;
	background-color: var(--agm-noche);
	background-image: radial-gradient(90% 120% at 50% 120%, #0A2C52 0%, var(--agm-noche) 50%, var(--agm-negro) 100%);
	text-align: center;
}

.gdw-agm-cta .elementor-widget-heading.gdw-agm-h .elementor-heading-title {
	max-width: 16em;
	margin-left: auto;
	margin-right: auto;
}

.gdw-agm-cta .gdw-agm-botones {
	justify-content: center;
}

/* --------------------------------------------------------------------------
   13. Entrada de lo que está arriba del todo (hero y phero), solo con CSS:
   empieza con el primer pintado, sin esperar al JS (no hay destello). Con
   «reducir movimiento» y en el editor, nada.
   -------------------------------------------------------------------------- */
@keyframes agm-entra {
	from {
		opacity: 0;
		translate: 0 26px;
		filter: blur(4px);
	}
}

@keyframes agm-entra-producto {
	from {
		opacity: 0;
		scale: 0.94;
		filter: blur(8px);
	}
}

@media (prefers-reduced-motion: no-preference) {
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .elementor-element,
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .e-con-inner > .elementor-element {
		animation: agm-entra 1s var(--agm-ease) both;
	}

	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > :nth-child(2),
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .e-con-inner > :nth-child(2) {
		animation-delay: 0.1s;
	}

	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > :nth-child(3),
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .e-con-inner > :nth-child(3) {
		animation-delay: 0.2s;
	}

	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > :nth-child(4),
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .e-con-inner > :nth-child(4) {
		animation-delay: 0.3s;
	}

	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > :nth-child(n+5),
	body:not(.elementor-editor-active) :is(.gdw-agm-phero__content, .gdw-home-hero__texto) > .e-con-inner > :nth-child(n+5) {
		animation-delay: 0.4s;
	}

	body:not(.elementor-editor-active) .gdw-agm-phero__img {
		animation: agm-entra-producto 1.4s var(--agm-ease) 0.15s both;
	}

	/* dentro de la phero y del hero, la aparición propia no hace falta */
	html.gdw-agm-js :is(.gdw-agm-phero__content, .gdw-home-hero__texto) .gdw-agm-rv:not(.is-in) {
		opacity: 1;
		translate: none;
		filter: none;
	}
}

/* --------------------------------------------------------------------------
   14. Preguntas frecuentes (gdw-agm-acordeon: Acordeón anidado)
   -------------------------------------------------------------------------- */
.gdw-agm-acordeon .e-n-accordion {
	border-top: 1px solid var(--agm-c-linea);
}

.gdw-agm-acordeon .e-n-accordion-item {
	border-bottom: 1px solid var(--agm-c-linea);
}

.gdw-agm-acordeon .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 0 !important;
	border: 0 !important;
	background: none !important;
	cursor: pointer;
}

.gdw-agm-acordeon .e-n-accordion-item-title-text {
	font-family: var(--agm-ft) !important;
	font-size: clamp(18px, 1.5vw, 21px) !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: var(--agm-c-titulo) !important;
	transition: color 0.4s var(--agm-ease);
}

.gdw-agm-acordeon .e-n-accordion-item-title:hover .e-n-accordion-item-title-text,
.gdw-agm-acordeon .e-n-accordion-item[open] .e-n-accordion-item-title-text {
	color: var(--agm-c-acento) !important;
}

.gdw-agm-acordeon .e-n-accordion-item-title-icon {
	position: relative;
	flex: none;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--agm-c-linea);
	border-radius: 50%;
	color: var(--agm-c-titulo);
	transition: rotate 0.5s var(--agm-ease), background-color 0.4s var(--agm-ease), border-color 0.4s var(--agm-ease);
}

.gdw-agm-acordeon .e-n-accordion-item-title-icon > span {
	display: none !important;        /* los iconos de Elementor: el «+» es nuestro */
}

.gdw-agm-acordeon .e-n-accordion-item-title-icon::before,
.gdw-agm-acordeon .e-n-accordion-item-title-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1.5px;
	margin: -0.75px 0 0 -6px;
	background: currentColor;
}

.gdw-agm-acordeon .e-n-accordion-item-title-icon::after {
	rotate: 90deg;
}

.gdw-agm-acordeon .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
	rotate: 45deg;
	background-color: var(--agm-azul);
	border-color: var(--agm-azul);
	color: var(--agm-blanco);
}

.gdw-agm-acordeon .e-n-accordion-item > .e-con,
.gdw-agm-acordeon .e-n-accordion-item > [role="region"] {
	padding: 0 56px 26px 0 !important;
	border: 0 !important;
	background: none !important;
}

.gdw-agm-acordeon .e-n-accordion-item .elementor-widget-text-editor {
	font-family: var(--agm-fb);
	font-size: 17px;
	line-height: 1.7;
	color: var(--agm-c-texto);
}

@media (max-width: 767px) {
	.gdw-agm-acordeon .e-n-accordion-item > .e-con,
	.gdw-agm-acordeon .e-n-accordion-item > [role="region"] {
		padding-right: 0 !important;
	}
}

/* --------------------------------------------------------------------------
   15. Formulario de Contact Form 7 (gdw-agm-form, con gdw-form de la base,
   en el widget Shortcode): etiquetas arriba, campos sobre niebla, foco azul
   -------------------------------------------------------------------------- */
.gdw-agm-form .wpcf7-form p {
	margin: 0 0 18px;
}

.gdw-agm-form label,
.gdw-agm-form .gdw-form__field label {
	display: block;
	font-family: var(--agm-fb);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--agm-noche);
}

.gdw-agm-form input[type="text"],
.gdw-agm-form input[type="email"],
.gdw-agm-form input[type="tel"],
.gdw-agm-form input[type="url"],
.gdw-agm-form input[type="number"],
.gdw-agm-form select,
.gdw-agm-form textarea {
	width: 100%;
	margin-top: 8px;
	padding: 15px 18px;
	border: 1px solid #8994A4;       /* el borde del campo se distingue (3:1 sobre blanco) */
	border-radius: 14px;
	background: var(--agm-niebla);
	font-family: var(--agm-fb);
	font-size: 16px;
	line-height: 1.4;
	color: var(--agm-noche);
	box-shadow: none;
	transition: border-color 0.3s var(--agm-ease), box-shadow 0.3s var(--agm-ease), background-color 0.3s var(--agm-ease);
}

.gdw-agm-form textarea {
	min-height: 160px;
	resize: vertical;
}

.gdw-agm-form ::placeholder {
	color: #5B6678;
	opacity: 1;
}

.gdw-agm-form input:hover,
.gdw-agm-form select:hover,
.gdw-agm-form textarea:hover {
	border-color: var(--agm-texto);
}

.gdw-agm-form input:focus,
.gdw-agm-form select:focus,
.gdw-agm-form textarea:focus {
	border-color: var(--agm-azul);
	background: var(--agm-blanco);
	box-shadow: 0 0 0 4px rgba(1, 78, 151, 0.16);
	outline: none;
}

.gdw-agm-form .wpcf7-acceptance,
.gdw-agm-form .gdw-form__privacy {
	font-family: var(--agm-fb);
	font-size: 14px;
	line-height: 1.5;
	color: var(--agm-texto);
}

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

.gdw-agm-form input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0 10px 0 0;
	vertical-align: -3px;
	accent-color: var(--agm-azul);
}

.gdw-agm-form .wpcf7-acceptance a,
.gdw-agm-form .gdw-form__privacy a {
	color: var(--agm-azul);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gdw-agm-form .wpcf7-submit,
.gdw-agm-form .gdw-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 17px 34px;
	border: 0;
	border-radius: 999px;
	background: var(--agm-azul);
	font-family: var(--agm-ft);
	font-size: 16px;
	font-weight: 600;
	color: var(--agm-blanco);
	cursor: pointer;
	box-shadow: 0 14px 34px -16px rgba(1, 78, 151, 0.7);
	transition: background-color 0.4s var(--agm-ease), box-shadow 0.4s var(--agm-ease);
}

.gdw-agm-form .wpcf7-submit:hover,
.gdw-agm-form .wpcf7-submit:focus-visible,
.gdw-agm-form .gdw-form__submit:hover,
.gdw-agm-form .gdw-form__submit:focus-visible {
	background: var(--agm-azul-2);
}

.gdw-agm-form .wpcf7-submit:focus-visible,
.gdw-agm-form .gdw-form__submit:focus-visible {
	outline: 2px solid var(--agm-azul);
	outline-offset: 3px;
}

.gdw-agm-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #B3261E;                  /* error: 6,5:1 sobre blanco */
}

.gdw-agm-form .wpcf7 form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 14px 18px;
	border-width: 1px;
	border-radius: 14px;
	font-size: 15px;
}

.gdw-agm-form .gdw-form__recaptcha,
.gdw-agm-form .gdw-form__recaptcha p {
	color: #5B6678;
}

/* --------------------------------------------------------------------------
   16. Legales y mapa del sitio (gdw-agm-legal, con gdw-legal de la base)
   -------------------------------------------------------------------------- */
.gdw-agm-legal {
	width: 100%;
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
	font-family: var(--agm-fb);
	color: var(--agm-texto);
}

.gdw-agm-legal h2,
.gdw-agm-legal .gdw-legal__body h2 {
	margin: 2.2em 0 0.7em;
	font-family: var(--agm-ft);
	font-size: clamp(22px, 2vw, 26px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: normal;
	color: var(--agm-noche);
}

.gdw-agm-legal h3,
.gdw-agm-legal .gdw-legal__body h3 {
	margin: 1.6em 0 0.5em;
	font-family: var(--agm-ft);
	font-size: 19px;
	font-weight: 600;
	color: var(--agm-noche);
}

.gdw-agm-legal p,
.gdw-agm-legal li {
	font-size: 17px;
	line-height: 1.75;
}

.gdw-agm-legal strong {
	color: var(--agm-noche);
}

.gdw-agm-legal a,
.gdw-agm-legal .gdw-legal__body a {
	color: var(--agm-azul);
	text-decoration: underline;
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}

.gdw-agm-legal table,
.gdw-agm-legal .gdw-legal__body table {
	width: 100%;
	margin: 1em 0 1.6em;
	border-collapse: collapse;
	font-size: 15px;
}

.gdw-agm-legal th,
.gdw-agm-legal td {
	padding: 12px 14px;
	border: 1px solid var(--agm-linea);
	text-align: left;
	vertical-align: top;
}

.gdw-agm-legal th {
	background: var(--agm-niebla);
	font-family: var(--agm-ft);
	font-weight: 600;
	color: var(--agm-noche);
}

/* Mapa del sitio (WP Sitemap Page) */
.gdw-agm-legal .wsp-container ul {
	margin: 0 0 1.2em 1.1em;
}

.gdw-agm-legal .wsp-container h2.wsp-pages-title,
.gdw-agm-legal .wsp-container h2 {
	margin-top: 1.2em;
}

@media (max-width: 767px) {
	.gdw-agm-legal table,
	.gdw-agm-legal .gdw-legal__body table {
		display: block;
		overflow-x: auto;
	}
}

/* --------------------------------------------------------------------------
   17. Posición de los puntos del explorador: gdw-agm-x0…x100 (left) y
   gdw-agm-y0…y100 (top), en % de la imagen. También dejan --agm-x / --agm-y.
   -------------------------------------------------------------------------- */
.gdw-agm-x0{--agm-x:0%;left:0%}.gdw-agm-x1{--agm-x:1%;left:1%}.gdw-agm-x2{--agm-x:2%;left:2%}.gdw-agm-x3{--agm-x:3%;left:3%}.gdw-agm-x4{--agm-x:4%;left:4%}.gdw-agm-x5{--agm-x:5%;left:5%}.gdw-agm-x6{--agm-x:6%;left:6%}.gdw-agm-x7{--agm-x:7%;left:7%}.gdw-agm-x8{--agm-x:8%;left:8%}.gdw-agm-x9{--agm-x:9%;left:9%}
.gdw-agm-x10{--agm-x:10%;left:10%}.gdw-agm-x11{--agm-x:11%;left:11%}.gdw-agm-x12{--agm-x:12%;left:12%}.gdw-agm-x13{--agm-x:13%;left:13%}.gdw-agm-x14{--agm-x:14%;left:14%}.gdw-agm-x15{--agm-x:15%;left:15%}.gdw-agm-x16{--agm-x:16%;left:16%}.gdw-agm-x17{--agm-x:17%;left:17%}.gdw-agm-x18{--agm-x:18%;left:18%}.gdw-agm-x19{--agm-x:19%;left:19%}
.gdw-agm-x20{--agm-x:20%;left:20%}.gdw-agm-x21{--agm-x:21%;left:21%}.gdw-agm-x22{--agm-x:22%;left:22%}.gdw-agm-x23{--agm-x:23%;left:23%}.gdw-agm-x24{--agm-x:24%;left:24%}.gdw-agm-x25{--agm-x:25%;left:25%}.gdw-agm-x26{--agm-x:26%;left:26%}.gdw-agm-x27{--agm-x:27%;left:27%}.gdw-agm-x28{--agm-x:28%;left:28%}.gdw-agm-x29{--agm-x:29%;left:29%}
.gdw-agm-x30{--agm-x:30%;left:30%}.gdw-agm-x31{--agm-x:31%;left:31%}.gdw-agm-x32{--agm-x:32%;left:32%}.gdw-agm-x33{--agm-x:33%;left:33%}.gdw-agm-x34{--agm-x:34%;left:34%}.gdw-agm-x35{--agm-x:35%;left:35%}.gdw-agm-x36{--agm-x:36%;left:36%}.gdw-agm-x37{--agm-x:37%;left:37%}.gdw-agm-x38{--agm-x:38%;left:38%}.gdw-agm-x39{--agm-x:39%;left:39%}
.gdw-agm-x40{--agm-x:40%;left:40%}.gdw-agm-x41{--agm-x:41%;left:41%}.gdw-agm-x42{--agm-x:42%;left:42%}.gdw-agm-x43{--agm-x:43%;left:43%}.gdw-agm-x44{--agm-x:44%;left:44%}.gdw-agm-x45{--agm-x:45%;left:45%}.gdw-agm-x46{--agm-x:46%;left:46%}.gdw-agm-x47{--agm-x:47%;left:47%}.gdw-agm-x48{--agm-x:48%;left:48%}.gdw-agm-x49{--agm-x:49%;left:49%}
.gdw-agm-x50{--agm-x:50%;left:50%}.gdw-agm-x51{--agm-x:51%;left:51%}.gdw-agm-x52{--agm-x:52%;left:52%}.gdw-agm-x53{--agm-x:53%;left:53%}.gdw-agm-x54{--agm-x:54%;left:54%}.gdw-agm-x55{--agm-x:55%;left:55%}.gdw-agm-x56{--agm-x:56%;left:56%}.gdw-agm-x57{--agm-x:57%;left:57%}.gdw-agm-x58{--agm-x:58%;left:58%}.gdw-agm-x59{--agm-x:59%;left:59%}
.gdw-agm-x60{--agm-x:60%;left:60%}.gdw-agm-x61{--agm-x:61%;left:61%}.gdw-agm-x62{--agm-x:62%;left:62%}.gdw-agm-x63{--agm-x:63%;left:63%}.gdw-agm-x64{--agm-x:64%;left:64%}.gdw-agm-x65{--agm-x:65%;left:65%}.gdw-agm-x66{--agm-x:66%;left:66%}.gdw-agm-x67{--agm-x:67%;left:67%}.gdw-agm-x68{--agm-x:68%;left:68%}.gdw-agm-x69{--agm-x:69%;left:69%}
.gdw-agm-x70{--agm-x:70%;left:70%}.gdw-agm-x71{--agm-x:71%;left:71%}.gdw-agm-x72{--agm-x:72%;left:72%}.gdw-agm-x73{--agm-x:73%;left:73%}.gdw-agm-x74{--agm-x:74%;left:74%}.gdw-agm-x75{--agm-x:75%;left:75%}.gdw-agm-x76{--agm-x:76%;left:76%}.gdw-agm-x77{--agm-x:77%;left:77%}.gdw-agm-x78{--agm-x:78%;left:78%}.gdw-agm-x79{--agm-x:79%;left:79%}
.gdw-agm-x80{--agm-x:80%;left:80%}.gdw-agm-x81{--agm-x:81%;left:81%}.gdw-agm-x82{--agm-x:82%;left:82%}.gdw-agm-x83{--agm-x:83%;left:83%}.gdw-agm-x84{--agm-x:84%;left:84%}.gdw-agm-x85{--agm-x:85%;left:85%}.gdw-agm-x86{--agm-x:86%;left:86%}.gdw-agm-x87{--agm-x:87%;left:87%}.gdw-agm-x88{--agm-x:88%;left:88%}.gdw-agm-x89{--agm-x:89%;left:89%}
.gdw-agm-x90{--agm-x:90%;left:90%}.gdw-agm-x91{--agm-x:91%;left:91%}.gdw-agm-x92{--agm-x:92%;left:92%}.gdw-agm-x93{--agm-x:93%;left:93%}.gdw-agm-x94{--agm-x:94%;left:94%}.gdw-agm-x95{--agm-x:95%;left:95%}.gdw-agm-x96{--agm-x:96%;left:96%}.gdw-agm-x97{--agm-x:97%;left:97%}.gdw-agm-x98{--agm-x:98%;left:98%}.gdw-agm-x99{--agm-x:99%;left:99%}
.gdw-agm-x100{--agm-x:100%;left:100%}
.gdw-agm-y0{--agm-y:0%;top:0%}.gdw-agm-y1{--agm-y:1%;top:1%}.gdw-agm-y2{--agm-y:2%;top:2%}.gdw-agm-y3{--agm-y:3%;top:3%}.gdw-agm-y4{--agm-y:4%;top:4%}.gdw-agm-y5{--agm-y:5%;top:5%}.gdw-agm-y6{--agm-y:6%;top:6%}.gdw-agm-y7{--agm-y:7%;top:7%}.gdw-agm-y8{--agm-y:8%;top:8%}.gdw-agm-y9{--agm-y:9%;top:9%}
.gdw-agm-y10{--agm-y:10%;top:10%}.gdw-agm-y11{--agm-y:11%;top:11%}.gdw-agm-y12{--agm-y:12%;top:12%}.gdw-agm-y13{--agm-y:13%;top:13%}.gdw-agm-y14{--agm-y:14%;top:14%}.gdw-agm-y15{--agm-y:15%;top:15%}.gdw-agm-y16{--agm-y:16%;top:16%}.gdw-agm-y17{--agm-y:17%;top:17%}.gdw-agm-y18{--agm-y:18%;top:18%}.gdw-agm-y19{--agm-y:19%;top:19%}
.gdw-agm-y20{--agm-y:20%;top:20%}.gdw-agm-y21{--agm-y:21%;top:21%}.gdw-agm-y22{--agm-y:22%;top:22%}.gdw-agm-y23{--agm-y:23%;top:23%}.gdw-agm-y24{--agm-y:24%;top:24%}.gdw-agm-y25{--agm-y:25%;top:25%}.gdw-agm-y26{--agm-y:26%;top:26%}.gdw-agm-y27{--agm-y:27%;top:27%}.gdw-agm-y28{--agm-y:28%;top:28%}.gdw-agm-y29{--agm-y:29%;top:29%}
.gdw-agm-y30{--agm-y:30%;top:30%}.gdw-agm-y31{--agm-y:31%;top:31%}.gdw-agm-y32{--agm-y:32%;top:32%}.gdw-agm-y33{--agm-y:33%;top:33%}.gdw-agm-y34{--agm-y:34%;top:34%}.gdw-agm-y35{--agm-y:35%;top:35%}.gdw-agm-y36{--agm-y:36%;top:36%}.gdw-agm-y37{--agm-y:37%;top:37%}.gdw-agm-y38{--agm-y:38%;top:38%}.gdw-agm-y39{--agm-y:39%;top:39%}
.gdw-agm-y40{--agm-y:40%;top:40%}.gdw-agm-y41{--agm-y:41%;top:41%}.gdw-agm-y42{--agm-y:42%;top:42%}.gdw-agm-y43{--agm-y:43%;top:43%}.gdw-agm-y44{--agm-y:44%;top:44%}.gdw-agm-y45{--agm-y:45%;top:45%}.gdw-agm-y46{--agm-y:46%;top:46%}.gdw-agm-y47{--agm-y:47%;top:47%}.gdw-agm-y48{--agm-y:48%;top:48%}.gdw-agm-y49{--agm-y:49%;top:49%}
.gdw-agm-y50{--agm-y:50%;top:50%}.gdw-agm-y51{--agm-y:51%;top:51%}.gdw-agm-y52{--agm-y:52%;top:52%}.gdw-agm-y53{--agm-y:53%;top:53%}.gdw-agm-y54{--agm-y:54%;top:54%}.gdw-agm-y55{--agm-y:55%;top:55%}.gdw-agm-y56{--agm-y:56%;top:56%}.gdw-agm-y57{--agm-y:57%;top:57%}.gdw-agm-y58{--agm-y:58%;top:58%}.gdw-agm-y59{--agm-y:59%;top:59%}
.gdw-agm-y60{--agm-y:60%;top:60%}.gdw-agm-y61{--agm-y:61%;top:61%}.gdw-agm-y62{--agm-y:62%;top:62%}.gdw-agm-y63{--agm-y:63%;top:63%}.gdw-agm-y64{--agm-y:64%;top:64%}.gdw-agm-y65{--agm-y:65%;top:65%}.gdw-agm-y66{--agm-y:66%;top:66%}.gdw-agm-y67{--agm-y:67%;top:67%}.gdw-agm-y68{--agm-y:68%;top:68%}.gdw-agm-y69{--agm-y:69%;top:69%}
.gdw-agm-y70{--agm-y:70%;top:70%}.gdw-agm-y71{--agm-y:71%;top:71%}.gdw-agm-y72{--agm-y:72%;top:72%}.gdw-agm-y73{--agm-y:73%;top:73%}.gdw-agm-y74{--agm-y:74%;top:74%}.gdw-agm-y75{--agm-y:75%;top:75%}.gdw-agm-y76{--agm-y:76%;top:76%}.gdw-agm-y77{--agm-y:77%;top:77%}.gdw-agm-y78{--agm-y:78%;top:78%}.gdw-agm-y79{--agm-y:79%;top:79%}
.gdw-agm-y80{--agm-y:80%;top:80%}.gdw-agm-y81{--agm-y:81%;top:81%}.gdw-agm-y82{--agm-y:82%;top:82%}.gdw-agm-y83{--agm-y:83%;top:83%}.gdw-agm-y84{--agm-y:84%;top:84%}.gdw-agm-y85{--agm-y:85%;top:85%}.gdw-agm-y86{--agm-y:86%;top:86%}.gdw-agm-y87{--agm-y:87%;top:87%}.gdw-agm-y88{--agm-y:88%;top:88%}.gdw-agm-y89{--agm-y:89%;top:89%}
.gdw-agm-y90{--agm-y:90%;top:90%}.gdw-agm-y91{--agm-y:91%;top:91%}.gdw-agm-y92{--agm-y:92%;top:92%}.gdw-agm-y93{--agm-y:93%;top:93%}.gdw-agm-y94{--agm-y:94%;top:94%}.gdw-agm-y95{--agm-y:95%;top:95%}.gdw-agm-y96{--agm-y:96%;top:96%}.gdw-agm-y97{--agm-y:97%;top:97%}.gdw-agm-y98{--agm-y:98%;top:98%}.gdw-agm-y99{--agm-y:99%;top:99%}
.gdw-agm-y100{--agm-y:100%;top:100%}

/* --------------------------------------------------------------------------
   18. Transición entre páginas: fundido corto (0,25 s) del navegador (View
   Transitions entre documentos). Sin JS; quien no lo admite, no hace nada.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	@view-transition {
		navigation: auto;
	}

	::view-transition-old(root),
	::view-transition-new(root) {
		animation-duration: 0.25s;
		animation-timing-function: ease;
	}
}

/* --------------------------------------------------------------------------
   19. Editor de Elementor, impresión y «reducir movimiento»
   -------------------------------------------------------------------------- */
body.elementor-editor-active .gdw-agm-escena__marco {
	position: relative !important;
	height: auto;
}

@media print {
	:is(.gdw-agm-aurora, .gdw-agm-cta, .gdw-agm-phero--noche, .gdw-agm-suelo)::after,
	.gdw-agm-escena--fija.gdw-agm-aurora .gdw-agm-escena__marco::after {
		display: none !important;
	}

	.gdw-agm-rv,
	.gdw-agm-palabras .agm-w__i {
		opacity: 1 !important;
		translate: none !important;
		filter: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor-widget-button.gdw-agm-btn .elementor-button,
	.elementor-widget-button.gdw-agm-btn .elementor-button::after,
	.gdw-agm-link a,
	.gdw-agm-link a::after,
	.gdw-agm-tilt::after,
	.gdw-agm-acordeon .e-n-accordion-item-title-icon,
	.gdw-agm-scrub .agm-s {
		transition: none !important;
	}

	.elementor-widget-button.gdw-agm-btn .elementor-button::after {
		display: none;
	}
}
/* <<< fin AGM 00-base.css */

/* >>> AGM 10-inicio.css */
/* ==========================================================================
   AGM Dental · 10-inicio.css (gdw-agm 1.0, 10-10-2026 · Mario pide · Claude)
   Portada (página 64, DISENO §5). Lo mueve js/10-inicio.js (hero y gama)
   con el motor (00-motor.js). Las piezas comunes (configurador, bento,
   lupa, recorrido, datos, tarjetas) están en 00-base.css y 20-producto.css.
    1. Hero (gdw-home-hero): tres modos
       - quieto (sin JS, editor, «reducir movimiento»): texto, sillón (vista
         de tres cuartos) y rótulos en tarjetas, uno debajo de otro;
       - lado a lado (motor activo, 1025 px o más): escena fija de 300svh,
         el S8 gira y los rótulos se unen a él con una línea;
       - en pila (motor activo, hasta 1024 px): escena fija de 260/220svh,
         el texto se va, el S8 (tres cuartos) sube y los rótulos aparecen en
         tarjetas debajo.
    2. Manifiesto (gdw-home-manifiesto): frase grande con gdw-agm-scrub.
    3. Gama (gdw-home-gama + gdw-agm-horizontal).
    4–9. Configura, detalle, servicio, cinta, sala y cierre: ajustes propios
       de la portada sobre las piezas comunes.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Hero
   Variables que pone 10-inicio.js en la sección (de 0 a 1):
     --agm-sube (el texto sube y se va), --agm-crece (el sillón va al centro y
     crece), --agm-v1/--agm-v2/--agm-v3 (opacidad de cada vista), --agm-giro
     (un leve cambio de escala en cada giro), --agm-nombre (el nombre de
     detrás) y, en cada rótulo, --agm-r. El motor pone --mx / --my (ratón).
   Geometría (CSS): --agm-sh / --agm-sw (alto y ancho del sillón: lienzo
   1836 × 1672), --agm-x0 / --agm-y0 / --agm-s0 (dónde empieza) y --agm-y1
   (dónde acaba, respecto al centro).
   -------------------------------------------------------------------------- */
.gdw-home-hero {
	--agm-gut: clamp(16px, 4vw, 56px);
	--agm-sh: min(66svh, 40vw);
	--agm-sw: calc(var(--agm-sh) * 1.098);
	--agm-x0: calc(var(--agm-sw) * 0.42 + 8px);
	--agm-y0: 3svh;
	--agm-s0: 0.84;
	--agm-y1: 3svh;
	padding: 0 !important;
	background-color: var(--agm-noche);
}

/* 300svh por defecto (una clase gdw-agm-alto-NNN en la sección manda en escritorio) */
:where(.gdw-home-hero) {
	--agm-alto: 300svh;
}

/* en pila (móvil y tableta vertical); la tableta apaisada va como el escritorio */
@media (max-width: 899px), (max-width: 1024px) and (orientation: portrait) {
	.gdw-home-hero.gdw-agm-escena--fija {
		--agm-alto: 260svh;
	}
}

@media (max-width: 767px) {
	.gdw-home-hero.gdw-agm-escena--fija {
		--agm-alto: 220svh;
	}
}

/* ---- Modo quieto (base: sin JS, editor, «reducir movimiento») ---- */
.gdw-home-hero .gdw-home-hero__marco {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 44px !important;
	padding: calc(var(--gdw-header-h, 76px) + 56px) var(--agm-gut) 80px !important;
}

.gdw-home-hero .gdw-home-hero__texto {
	position: relative;
	z-index: 2;
	width: 100% !important;
	max-width: 1180px;
}

.gdw-home-hero .gdw-home-hero__escenario {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 32px !important;
	width: 100% !important;
	max-width: 1180px;
	padding: 0 !important;
}

.gdw-home-hero .gdw-home-hero__sillon {
	position: relative;
	z-index: 1;
	display: block !important;
	width: min(720px, 100%) !important;
	max-width: none !important;
	aspect-ratio: 1836 / 1672;
	padding: 0 !important;
}

.gdw-home-hero .gdw-home-hero__vista {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.gdw-home-hero .gdw-home-hero__vista img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain;
}

body:not(.elementor-editor-active) .gdw-home-hero .gdw-home-hero__vista--1,
body:not(.elementor-editor-active) .gdw-home-hero .gdw-home-hero__vista--3 {
	display: none;
}

/* En el editor, las tres vistas en fila para poder editarlas */
body.elementor-editor-active .gdw-home-hero .gdw-home-hero__sillon {
	display: flex !important;
	gap: 12px;
	aspect-ratio: auto;
}

body.elementor-editor-active .gdw-home-hero .gdw-home-hero__vista {
	position: relative !important;
	flex: 1 1 0;
}

/* El nombre enorme detrás del sillón */
.gdw-home-hero .gdw-home-hero__nombre {
	position: absolute !important;
	top: 4%;
	left: 0;
	right: 0;
	z-index: 0;
	width: 100% !important;
	margin: 0 !important;
	text-align: center;
	pointer-events: none;
}

.gdw-home-hero .gdw-home-hero__nombre .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: min(24vw, 34svh);
	font-weight: 700;
	line-height: 0.9;
	white-space: nowrap;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.02) 85%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	-webkit-text-fill-color: transparent;
}

/* Rótulos en tarjetas (quieto y en pila) */
.gdw-home-hero .gdw-home-hero__rotulos {
	position: relative;
	z-index: 2;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px !important;
	width: 100% !important;
	padding: 0 !important;
}

.gdw-home-hero .gdw-home-hero__rotulo {
	position: relative;
	gap: 4px !important;
	width: auto !important;
	min-width: 0;
	padding: 16px 18px !important;
	border: 1px solid var(--agm-linea-osc);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.04);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.gdw-home-hero .gdw-home-hero__rotulo .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--agm-blanco);
}

.gdw-home-hero .gdw-home-hero__rotulo .elementor-widget-text-editor {
	font-family: var(--agm-fb);
	font-size: 14px;
	line-height: 1.5;
	color: var(--agm-plata);
}

.gdw-home-hero .gdw-home-hero__rotulo p {
	margin: 0;
}

/* Punto de menta delante del título del rótulo */
.gdw-home-hero .gdw-home-hero__rotulo .elementor-widget-heading .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 10px;
	border-radius: 50%;
	vertical-align: 0.1em;
	background: var(--agm-menta);
	box-shadow: 0 0 0 4px rgba(115, 251, 211, 0.16);
}

@media (max-width: 1024px) {
	.gdw-home-hero .gdw-home-hero__rotulos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 380px) {
	.gdw-home-hero .gdw-home-hero__rotulo {
		padding: 12px 12px !important;
	}

	.gdw-home-hero .gdw-home-hero__rotulo .elementor-widget-text-editor {
		display: none;     /* en pantallas muy estrechas, solo el título del rótulo */
	}
}

/* «Desliza»: solo con la escena en marcha */
.gdw-home-hero .gdw-home-hero__desliza {
	display: none;
}

/* ---- Escena en marcha (motor activo): común a lado a lado y en pila ---- */
html.gdw-agm-js .gdw-home-hero .gdw-home-hero__marco {
	display: block !important;
	padding: 0 !important;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__escenario {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	display: block !important;
	max-width: none;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__texto {
	position: absolute !important;
	z-index: 2;
	opacity: calc(1 - var(--agm-sube, 0));
	transform: translate3d(0, calc(var(--agm-sube, 0) * -90px), 0);
	transition: none !important;
}

html.gdw-agm-js .gdw-home-hero.is-texto-fuera .gdw-home-hero__texto {
	visibility: hidden;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__sillon {
	position: absolute !important;
	left: 50%;
	top: 50%;
	width: var(--agm-sw) !important;
	height: var(--agm-sh);
	margin: calc(var(--agm-sh) / -2) 0 0 calc(var(--agm-sw) / -2) !important;
	aspect-ratio: auto;
	transform:
		perspective(1400px)
		translate3d(
			calc((1 - var(--agm-crece, 0)) * var(--agm-x0) + var(--mx, 0) * 12px),
			calc((1 - var(--agm-crece, 0)) * var(--agm-y0) + var(--agm-crece, 0) * var(--agm-y1) + var(--my, 0) * 8px),
			0)
		scale(calc((var(--agm-s0) + (1 - var(--agm-s0)) * var(--agm-crece, 0)) * (1 + var(--agm-giro, 0) * 0.03)))
		rotateY(calc(var(--mx, 0) * 2deg))
		rotateX(calc(var(--my, 0) * -1.5deg));
	transition: none !important;
	will-change: transform;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista {
	transition: none !important;
	will-change: opacity;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--1 {
	opacity: var(--agm-v1, 1);
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--2 {
	opacity: var(--agm-v2, 0);
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--3 {
	opacity: var(--agm-v3, 0);
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--1,
html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--3 {
	display: block;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__nombre {
	top: 50%;
	opacity: var(--agm-nombre, 0);
	transform: translate3d(0, calc(-50% + var(--agm-y1) - var(--agm-sh) * 0.2), 0) scale(calc(1.08 - var(--agm-nombre, 0) * 0.08));
	transition: none !important;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo {
	opacity: var(--agm-r, 0);
	transition: none !important;
}

html.gdw-agm-js .gdw-home-hero .gdw-home-hero__desliza {
	position: absolute !important;
	left: 50%;
	bottom: 26px;
	z-index: 3;
	display: block;
	width: auto !important;
	margin: 0 !important;
	translate: -50% 0;
	opacity: calc(1 - var(--agm-sube, 0) * 4);
	pointer-events: none;
}

.gdw-home-hero .gdw-home-hero__desliza .elementor-heading-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	font-family: var(--agm-fb);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--agm-plata);
}

/* una línea con una luz que baja tres veces (menos de 5 s) y se queda quieta */
.gdw-home-hero .gdw-home-hero__desliza .elementor-heading-title::after {
	content: "";
	width: 1px;
	height: 44px;
	background:
		linear-gradient(180deg, rgba(115, 251, 211, 0) 0%, var(--agm-menta) 50%, rgba(115, 251, 211, 0) 100%) no-repeat 0 -44px / 1px 44px,
		rgba(255, 255, 255, 0.22);
	animation: agm-desliza 1.5s var(--agm-ease) 0.8s 3;
}

@keyframes agm-desliza {
	to {
		background-position: 0 44px, 0 0;
	}
}

/* ---- Lado a lado (1025 px o más, y tableta apaisada: 900 px o más en horizontal) ---- */
@media (min-width: 1025px), (min-width: 900px) and (orientation: landscape) {
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__texto {
		left: var(--agm-gut);
		top: 0;
		bottom: 0;
		width: min(620px, 44%) !important;
		justify-content: center !important;
		padding: var(--gdw-header-h, 76px) 0 40px !important;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-agm-display .elementor-heading-title {
		font-size: clamp(40px, min(7.4vw, 11svh), 120px);
	}

	/* los rótulos ocupan la caja final del sillón y se unen a él con una línea */
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulos {
		position: absolute !important;
		left: 50%;
		top: 50%;
		display: block !important;
		width: var(--agm-sw) !important;
		height: var(--agm-sh);
		margin: calc(var(--agm-sh) / -2) 0 0 calc(var(--agm-sw) / -2) !important;
		transform: translate3d(calc(var(--mx, 0) * 12px), calc(var(--agm-y1) + var(--my, 0) * 8px), 0);
		transition: none !important;
		pointer-events: none;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo {
		--agm-rw: min(240px, calc((100vw - var(--agm-sw)) / 2 - 76px));
		position: absolute !important;
		top: calc(var(--agm-ry, 40%) - 11px);
		width: var(--agm-rw) !important;
		padding: 0 !important;
		border: 0;
		background: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo .elementor-heading-title::before {
		display: none;
	}

	/* a la derecha: --1 (pantalla táctil) y --4 (desinfección) */
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--1,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--4 {
		left: calc(100% + 28px);
		translate: calc((1 - var(--agm-r, 0)) * 18px) 0;
	}

	/* a la izquierda: --2 (lámpara) y --3 (memorias) */
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--2,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--3 {
		right: calc(100% + 28px);
		align-items: flex-end !important;
		text-align: right;
		translate: calc((1 - var(--agm-r, 0)) * -18px) 0;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--2 .elementor-widget,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--3 .elementor-widget {
		text-align: right !important;
	}

	/* Altura (--agm-ry) y punto del sillón al que apunta (--agm-rt, 0 = borde izquierdo,
	   1 = derecho), medidos sobre la vista de tres cuartos. Ajustar en el front. */
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--1 { --agm-ry: 38%; --agm-rt: 0.92; }
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--2 { --agm-ry: 22%; --agm-rt: 0.52; }
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--3 { --agm-ry: 46%; --agm-rt: 0.17; }
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--4 { --agm-ry: 64%; --agm-rt: 0.44; }

	/* La línea (con su punto al final) se dibuja desde el rótulo hasta el sillón */
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo::after {
		content: "";
		position: absolute;
		top: 7.5px;
		height: 7px;
		pointer-events: none;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--1::after,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--4::after {
		right: calc(100% + 10px);
		width: calc(18px + var(--agm-sw) * (1 - var(--agm-rt, 0.9)));
		background:
			radial-gradient(circle 3.5px at 3.5px 50%, var(--agm-menta) 92%, rgba(115, 251, 211, 0) 100%),
			linear-gradient(90deg, rgba(115, 251, 211, 0.9), rgba(115, 251, 211, 0.35)) no-repeat 0 50% / 100% 1px;
		clip-path: inset(0 0 0 calc((1 - var(--agm-r, 0)) * 100%));
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--2::after,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo--3::after {
		left: calc(100% + 10px);
		width: calc(18px + var(--agm-sw) * var(--agm-rt, 0.3));
		background:
			radial-gradient(circle 3.5px at calc(100% - 3.5px) 50%, var(--agm-menta) 92%, rgba(115, 251, 211, 0) 100%),
			linear-gradient(90deg, rgba(115, 251, 211, 0.35), rgba(115, 251, 211, 0.9)) no-repeat 0 50% / 100% 1px;
		clip-path: inset(0 calc((1 - var(--agm-r, 0)) * 100%) 0 0);
	}
}

/* ---- En pila (móvil y tableta vertical; menos de 900 px en horizontal) ---- */
@media (max-width: 899px), (max-width: 1024px) and (orientation: portrait) {
	.gdw-home-hero {
		--agm-sw: min(92vw, 640px, calc(46svh * 1.098));
		--agm-sh: calc(var(--agm-sw) / 1.098);
		--agm-x0: 0px;
		--agm-y0: 52svh;
		--agm-s0: 0.9;
		--agm-y1: -8svh;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__texto {
		left: var(--agm-gut);
		right: var(--agm-gut);
		top: 0;
		width: auto !important;
		padding: calc(var(--gdw-header-h, 64px) + 28px) 0 0 !important;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--1,
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--3 {
		display: none;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__vista--2 {
		opacity: 1;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulos {
		position: absolute !important;
		left: var(--agm-gut);
		right: var(--agm-gut);
		top: calc(50% + var(--agm-y1) + var(--agm-sh) / 2 + 18px);
		width: auto !important;
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo {
		translate: 0 calc((1 - var(--agm-r, 0)) * 16px);
	}

	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__nombre .elementor-heading-title {
		font-size: min(30vw, 22svh);
	}
}

/* Tableta vertical (768–1024 px): el sillón, más grande; 10-inicio.js lo centra al empezar en el
   hueco que queda bajo el texto (--agm-y0, --agm-s0 en la sección), sin cortarse */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
	.gdw-home-hero {
		--agm-sw: min(92vw, 760px, calc(52svh * 1.098));
	}
}

@media (min-width: 600px) and (max-width: 899px) and (orientation: landscape) {
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulos {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Pantallas bajas en pila (móvil apaisado): sin texto en los rótulos */
@media (max-width: 899px) and (max-height: 560px) {
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__rotulo .elementor-widget-text-editor {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   2. Manifiesto: una frase grande que se ilumina palabra a palabra
   -------------------------------------------------------------------------- */
.gdw-home-manifiesto .gdw-agm-scrub .elementor-heading-title {
	max-width: 22em;
	margin-left: auto;
	margin-right: auto;
	font-family: var(--agm-ft);
	font-size: clamp(30px, 4.2vw, 68px);
	font-weight: 600;
	line-height: 1.18;
	color: var(--agm-c-titulo);
	text-wrap: balance;
}

/* --------------------------------------------------------------------------
   3. Gama (gdw-home-gama + gdw-agm-horizontal, escena fija a 1025 px o más)
   La sección va sin relleno lateral: lo lleva la pista (si no, el marco fijo
   corta las tarjetas antes del borde). 10-inicio.js mide el recorrido.
   Hasta 1024 px (y sin JS o con «reducir movimiento»): carrusel con
   scroll-snap.
   -------------------------------------------------------------------------- */
.gdw-agm-horizontal {
	--agm-gut: clamp(16px, 4vw, 56px);
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.gdw-agm-horizontal .gdw-agm-escena__marco {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	gap: clamp(28px, 4vh, 48px) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.gdw-agm-horizontal .gdw-agm-horizontal__cabeza {
	padding-left: var(--agm-gut) !important;
	padding-right: var(--agm-gut) !important;
}

.gdw-agm-horizontal .gdw-agm-horizontal__pista {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: clamp(16px, 2vw, 32px) !important;
	width: 100% !important;
	max-width: none !important;
	padding: 10px var(--agm-gut) 26px !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--agm-gut);
	scrollbar-width: thin;
	scrollbar-color: rgba(4, 24, 46, 0.2) transparent;
	transition: none !important;
}

.gdw-agm-horizontal .gdw-agm-horizontal__pista > .elementor-element {
	flex: 0 0 auto !important;
	width: min(80vw, 420px) !important;
	max-width: none !important;
	scroll-snap-align: start;
}

html.gdw-agm-js .gdw-agm-horizontal.is-horizontal .gdw-agm-horizontal__pista {
	width: max-content !important;
	overflow: visible;
	scroll-snap-type: none;
	will-change: transform;
}

html.gdw-agm-js .gdw-agm-horizontal.is-horizontal .gdw-agm-horizontal__pista > .elementor-element {
	width: clamp(340px, 34vw, 540px) !important;
}

.gdw-agm-horizontal__progreso {
	display: none;
}

html.gdw-agm-js .gdw-agm-horizontal.is-horizontal .gdw-agm-horizontal__progreso {
	position: absolute;
	left: var(--agm-gut);
	right: var(--agm-gut);
	bottom: clamp(20px, 4vh, 40px);
	display: block;
	height: 2px;
	background: var(--agm-c-linea);
	pointer-events: none;
}

.gdw-agm-horizontal__progreso i {
	display: block;
	height: 100%;
	background: var(--agm-c-acento);
	transform-origin: 0 50%;
	transform: scaleX(var(--agm-h, 0));
}

@media (max-width: 1024px) {
	html.gdw-agm-js .gdw-agm-horizontal.gdw-agm-escena--fija {
		height: auto !important;
	}

	html.gdw-agm-js .gdw-agm-horizontal .gdw-agm-escena__marco {
		position: relative !important;
		height: auto !important;
		overflow: visible !important;
	}
}

/* Tarjetas de la gama: el producto flota sobre una luz suave */
.gdw-home-gama .gdw-agm-tarjeta {
	overflow: clip;
}

.gdw-home-gama .gdw-agm-tarjeta .elementor-widget-image {
	position: relative;
	isolation: isolate;
}

.gdw-home-gama .gdw-agm-tarjeta .elementor-widget-image::after {
	content: "";
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: 2%;
	height: 14%;
	z-index: -1;
	background: radial-gradient(50% 50% at 50% 50%, rgba(4, 24, 46, 0.16), rgba(4, 24, 46, 0) 72%);
	pointer-events: none;
}

.gdw-home-gama .gdw-agm-tarjeta .elementor-widget-image img {
	aspect-ratio: 4 / 3;
	object-fit: contain;
}

/* --------------------------------------------------------------------------
   4. Configura (portada, blanco): el configurador es gdw-agm-config
   (20-producto.css). En la portada no cambia la dirección.
   -------------------------------------------------------------------------- */
.gdw-home-configura .gdw-agm-config__visor {
	min-height: clamp(260px, 36vw, 560px);
}

/* --------------------------------------------------------------------------
   5. Detalle (noche): bento de piezas claras con lupa (20-producto.css)
   -------------------------------------------------------------------------- */
.gdw-home-detalle .gdw-agm-bento__celda {
	background-color: var(--agm-blanco);   /* los renders son sobre blanco */
}

/* --------------------------------------------------------------------------
   6. Servicio técnico propio: recorrido (20-producto.css) y 4 datos
   -------------------------------------------------------------------------- */
.gdw-home-servicio .gdw-agm-dato {
	flex: 1 1 0;
}

/* --------------------------------------------------------------------------
   7. Cinta (azul AGM): palabras grandes separadas por «·» en menta
   -------------------------------------------------------------------------- */
.gdw-home-cinta {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.gdw-home-cinta .gdw-agm-cinta__item .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: clamp(44px, 8vw, 132px);
	font-weight: 700;
	line-height: 1.1;
	color: var(--agm-blanco);
}

.gdw-home-cinta .gdw-agm-cinta__item .elementor-heading-title::after {
	content: "\00B7";
	content: "\00B7" / "";
	margin: 0 0.4em;
	color: var(--agm-menta);
}

.gdw-home-cinta .gdw-agm-cinta__track {
	gap: 0 !important;
}

/* --------------------------------------------------------------------------
   8. Sala de máquinas (noche): el conjunto grande y la profilaxis en fila
   -------------------------------------------------------------------------- */
.gdw-home-sala .elementor-widget-image img {
	filter: drop-shadow(0 40px 50px rgba(0, 0, 0, 0.45));
}

.gdw-home-sala .gdw-home-sala__profilaxis .elementor-widget-image img {
	max-height: 340px;
	width: auto;
	margin: 0 auto;
}

/* --------------------------------------------------------------------------
   9. Cierre (noche con aurora): como la franja final
   -------------------------------------------------------------------------- */
.gdw-home-cierre {
	text-align: center;
}

.gdw-home-cierre .elementor-widget-heading.gdw-agm-h .elementor-heading-title {
	max-width: 14em;
	margin-left: auto;
	margin-right: auto;
}

.gdw-home-cierre .gdw-agm-botones {
	justify-content: center;
}

/* --------------------------------------------------------------------------
   10. «Reducir movimiento»
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.gdw-home-hero .gdw-home-hero__desliza .elementor-heading-title::after {
		animation: none !important;
	}
}
/* <<< fin AGM 10-inicio.css */

/* >>> AGM 20-producto.css */
/* ==========================================================================
   AGM Dental · 20-producto.css (gdw-agm 1.0, 10-10-2026 · Mario pide · Claude)
   Piezas de producto (DISENO §2, §6 y §8). Las mueve js/20-producto.js.
   Cada pieza tiene dos estados:
   - sin .is-listo (sin JS, en el editor): todo a la vista, en lista;
   - con .is-listo (la pone el JS, también con «reducir movimiento»): la
     pieza interactiva.
    1. Fondo de cada sección (para lo que va fijo encima del contenido)
    2. gdw-agm-giro       visor de vistas
    3. gdw-agm-explora    explorador de puntos
    4. gdw-agm-lupa       lupa y visor a pantalla completa (gdw-agm-visor)
    5. gdw-agm-config     configurador (pestañas)
    6. gdw-agm-colores    muestras de color
    7. gdw-agm-relato     imagen fija que cambia con el paso visible
    8. gdw-agm-bento      rejilla de piezas
    9. gdw-agm-recorrido  pasos con línea que se dibuja
   10. gdw-agm-compara    comparativa
   11. gdw-agm-ficha      tabla clave / valor
   12. gdw-agm-familia    familia de producto: imagen grande | texto
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fondo de cada sección: lo usan las piezas que se quedan fijas encima
   del contenido (relato en el móvil, cabecera de la comparativa)
   -------------------------------------------------------------------------- */
.gdw-agm-sec--blanco { --agm-fondo: var(--agm-blanco); }
.gdw-agm-sec--niebla { --agm-fondo: var(--agm-niebla); }
.gdw-agm-sec--noche { --agm-fondo: #03132A; }
.gdw-agm-sec--negro { --agm-fondo: var(--agm-negro); }
.gdw-agm-sec--azul { --agm-fondo: var(--agm-azul); }

/* Bloquear el scroll de la página (menú móvil y visor): AGM_FX.bloquear() */
html.gdw-agm-sin-scroll {
	overflow: hidden;
}

/* Botón redondo con flecha (anterior / siguiente): base común */
.gdw-agm-giro__ant .elementor-button,
.gdw-agm-giro__sig .elementor-button {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0 !important;
	border: 1px solid var(--agm-c-linea) !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--agm-c-titulo) !important;
	font-size: 0 !important;        /* el nombre lo pone el JS (aria-label) */
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.4s var(--agm-ease), border-color 0.4s var(--agm-ease), color 0.4s var(--agm-ease), opacity 0.3s;
}

.gdw-agm-giro__ant .elementor-button::before,
.gdw-agm-giro__sig .elementor-button::before {
	content: "";
	width: 9px;
	height: 9px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	rotate: 45deg;
	translate: -2px 0;
}

.gdw-agm-giro__ant .elementor-button::before {
	rotate: -135deg;
	translate: 2px 0;
}

.gdw-agm-giro__ant .elementor-button:hover,
.gdw-agm-giro__sig .elementor-button:hover,
.gdw-agm-giro__ant .elementor-button:focus-visible,
.gdw-agm-giro__sig .elementor-button:focus-visible {
	border-color: var(--agm-c-acento) !important;
	color: var(--agm-c-acento) !important;
}

.gdw-agm-giro__ant.is-desactivado .elementor-button,
.gdw-agm-giro__sig.is-desactivado .elementor-button {
	opacity: 0.32;
	cursor: default;
}

/* --------------------------------------------------------------------------
   2. Giro (gdw-agm-giro › __escena › Imágenes __vista--1…n; __mandos ›
   Botón __ant, __puntos, Botón __sig). --miniaturas: puntos con la imagen.
   -------------------------------------------------------------------------- */
.gdw-agm-giro {
	position: relative;
}

/* sin JS: las vistas en fila y sin mandos */
.gdw-agm-giro .gdw-agm-giro__escena {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
	gap: 16px !important;
	align-items: center;
}

.gdw-agm-giro .gdw-agm-giro__vista {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.gdw-agm-giro .gdw-agm-giro__vista img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: none !important;
}

.gdw-agm-giro:not(.is-listo) :is(.gdw-agm-giro__ant, .gdw-agm-giro__sig, .gdw-agm-giro__puntos, .gdw-agm-giro__ayuda) {
	display: none !important;
}

/* con JS: las vistas apiladas, una a la vista */
.gdw-agm-giro.is-listo .gdw-agm-giro__escena {
	position: relative;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "vista";
	touch-action: pan-y;
	-webkit-user-select: none;
	user-select: none;
	cursor: grab;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__escena.is-arrastrando {
	cursor: grabbing;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__vista {
	grid-area: vista;
	opacity: 0;
	transition: opacity 0.6s var(--agm-ease) !important;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__vista.is-activa {
	opacity: 1;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__escena.is-arrastrando .gdw-agm-giro__vista {
	transition: none !important;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__vista img {
	pointer-events: none;
	-webkit-user-drag: none;
}

.gdw-agm-giro.is-listo .gdw-agm-giro__escena:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 6px;
	border-radius: 18px;
}

.gdw-agm-giro .gdw-agm-giro__mandos {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 18px !important;
}

.gdw-agm-giro .gdw-agm-giro__mandos > .elementor-element {
	width: auto !important;
}

.gdw-agm-giro .gdw-agm-giro__puntos {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 10px !important;
	width: auto !important;
}

.gdw-agm-giro__punto {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--agm-c-suave);   /* 3:1 como mínimo (WCAG 1.4.11) */
	cursor: pointer;
	transition: width 0.45s var(--agm-ease), background-color 0.45s var(--agm-ease), box-shadow 0.45s var(--agm-ease);
}

.gdw-agm-giro__punto.is-activo {
	width: 30px;
	background: var(--agm-c-acento);
	box-shadow: none;
}

.gdw-agm-giro__punto:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 3px;
}

/* miniaturas */
.gdw-agm-giro--miniaturas .gdw-agm-giro__punto {
	width: 64px;
	height: 64px;
	border: 1px solid var(--agm-c-linea);
	border-radius: 14px;
	background: var(--agm-blanco);
	overflow: hidden;
}

.gdw-agm-giro--miniaturas .gdw-agm-giro__punto.is-activo {
	width: 64px;
	border-color: var(--agm-c-acento);
	box-shadow: 0 0 0 2px var(--agm-c-acento);
}

.gdw-agm-giro--miniaturas .gdw-agm-giro__punto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.gdw-agm-giro .gdw-agm-giro__ayuda .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 500;
	color: var(--agm-c-suave);
}

@media (max-width: 767px) {
	.gdw-agm-giro--miniaturas .gdw-agm-giro__punto,
	.gdw-agm-giro--miniaturas .gdw-agm-giro__punto.is-activo {
		width: 52px;
		height: 52px;
	}

	.gdw-agm-giro__ant .elementor-button,
	.gdw-agm-giro__sig .elementor-button {
		width: 46px;
		height: 46px;
	}
}

/* --------------------------------------------------------------------------
   3. Explorador (gdw-agm-explora › __lienzo › Imagen __img + Botones
   __punto--n gdw-agm-xNN gdw-agm-yNN; __paneles › [__intro] + __panel--n)
   Sin JS: puntos ocultos y paneles en lista. Con JS: puntos sobre la imagen
   que laten 4 veces al verse (WCAG 2.2.2) y el panel activo al lado (o
   debajo, hasta 1024 px).
   -------------------------------------------------------------------------- */
.gdw-agm-explora {
	position: relative;
}

.gdw-agm-explora .gdw-agm-explora__lienzo {
	position: relative;
	width: 100%;
	min-width: 0;
	padding: 0 !important;
}

.gdw-agm-explora .gdw-agm-explora__img {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.gdw-agm-explora .gdw-agm-explora__img img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: none !important;
}

.gdw-agm-explora:not(.is-listo) .gdw-agm-explora__punto {
	display: none !important;
}

/* paneles (sin JS: lista de tarjetas) */
.gdw-agm-explora .gdw-agm-explora__paneles {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
	gap: 16px !important;
	min-width: 0;
}

.gdw-agm-explora .gdw-agm-explora__panel {
	--agm-c-titulo: var(--agm-noche);
	--agm-c-texto: var(--agm-texto);
	--agm-c-eyebrow: var(--agm-menta-osc);
	--agm-c-linea: var(--agm-linea);
	--agm-c-acento: var(--agm-azul);
	--agm-c-foco: var(--agm-azul);
	gap: 12px !important;
	width: auto !important;
	min-width: 0;
	padding: clamp(18px, 2vw, 28px) !important;
	border-radius: var(--agm-radio) !important;
	background: var(--agm-blanco);
	color: var(--agm-texto);
	box-shadow: 0 30px 60px -40px rgba(4, 24, 46, 0.5);
}

.gdw-agm-explora .gdw-agm-explora__panel .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 320px;
	object-fit: contain;
}

/* con JS */
@media (min-width: 1025px) {
	.gdw-agm-explora.is-listo,
	.gdw-agm-explora.is-listo > .e-con-inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
		align-items: center !important;
		gap: clamp(24px, 4vw, 64px) !important;
	}
}

.gdw-agm-explora.is-listo .gdw-agm-explora__paneles {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "panel";
	align-items: center;
}

.gdw-agm-explora.is-listo .gdw-agm-explora__panel,
.gdw-agm-explora.is-listo .gdw-agm-explora__intro {
	grid-area: panel;
	opacity: 0;
	visibility: hidden;
	translate: 0 14px;
	transition: opacity 0.5s var(--agm-ease), translate 0.6s var(--agm-ease), visibility 0s linear 0.5s !important;
}

.gdw-agm-explora.is-listo .gdw-agm-explora__panel.is-activo,
.gdw-agm-explora.is-listo .gdw-agm-explora__intro:not(.is-oculto) {
	opacity: 1;
	visibility: visible;
	translate: 0 0;
	transition: opacity 0.5s var(--agm-ease), translate 0.6s var(--agm-ease), visibility 0s linear 0s !important;
}

.gdw-agm-explora .gdw-agm-explora__intro {
	min-width: 0;
}

/* los puntos */
.gdw-agm-explora.is-listo .gdw-agm-explora__punto {
	position: absolute !important;
	z-index: 2;
	width: auto !important;
	margin: 0 !important;
	translate: -50% -50%;
}

.gdw-agm-explora__punto .elementor-button {
	position: relative;
	display: grid !important;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0 !important;
	border: 2px solid var(--agm-blanco) !important;
	border-radius: 50% !important;
	background: rgba(1, 78, 151, 0.92) !important;
	color: var(--agm-blanco) !important;
	font-size: 0 !important;
	box-shadow: 0 6px 18px rgba(2, 11, 22, 0.35) !important;
	cursor: pointer;
	transition: transform 0.4s var(--agm-ease), background-color 0.4s var(--agm-ease) !important;
}

/* el punto blanco del centro */
.gdw-agm-explora__punto .elementor-button::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--agm-blanco);
	transition: scale 0.4s var(--agm-ease);
}

/* el aro que late (4 veces al verse, y se queda quieto) */
.gdw-agm-explora__punto .elementor-button::after {
	content: "";
	position: absolute;
	inset: -2px;
	border: 2px solid var(--agm-menta);
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
}

.gdw-agm-explora.is-visto .gdw-agm-explora__punto .elementor-button::after {
	animation: agm-late 1.2s var(--agm-ease) 4;
	animation-delay: calc(var(--agm-i, 0) * 0.12s);
}

@keyframes agm-late {
	0% {
		opacity: 0.9;
		scale: 1;
	}

	100% {
		opacity: 0;
		scale: 1.9;
	}
}

.gdw-agm-explora__punto.is-activo .elementor-button,
.gdw-agm-explora__punto .elementor-button:hover,
.gdw-agm-explora__punto .elementor-button:focus-visible {
	background: var(--agm-menta-osc) !important;
	transform: scale(1.12);
}

.gdw-agm-explora__punto.is-activo .elementor-button::before {
	scale: 1.25;
}

.gdw-agm-explora__punto .elementor-button:focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 4px;
}

/* el nombre del punto, como etiqueta al pasar, al enfocar o activo */
.gdw-agm-explora__punto .elementor-button-content-wrapper {
	position: static;
}

.gdw-agm-explora__punto .elementor-button-text {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 12px);
	padding: 7px 13px;
	border-radius: 999px;
	background: var(--agm-noche);
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--agm-blanco);
	box-shadow: 0 10px 24px -10px rgba(2, 11, 22, 0.6);
	opacity: 0;
	translate: -50% 6px;
	pointer-events: none;
	transition: opacity 0.35s var(--agm-ease), translate 0.35s var(--agm-ease);
}

.gdw-agm-explora__punto.is-borde-der .elementor-button-text {
	left: auto;
	right: -8px;
	translate: 0 6px;
}

.gdw-agm-explora__punto.is-borde-izq .elementor-button-text {
	left: -8px;
	translate: 0 6px;
}

.gdw-agm-explora__punto.is-activo .elementor-button-text,
.gdw-agm-explora__punto .elementor-button:hover .elementor-button-text,
.gdw-agm-explora__punto .elementor-button:focus-visible .elementor-button-text {
	opacity: 1;
	translate: -50% 0;
}

.gdw-agm-explora__punto.is-borde-der.is-activo .elementor-button-text,
.gdw-agm-explora__punto.is-borde-izq.is-activo .elementor-button-text,
.gdw-agm-explora__punto.is-borde-der .elementor-button:hover .elementor-button-text,
.gdw-agm-explora__punto.is-borde-izq .elementor-button:hover .elementor-button-text,
.gdw-agm-explora__punto.is-borde-der .elementor-button:focus-visible .elementor-button-text,
.gdw-agm-explora__punto.is-borde-izq .elementor-button:focus-visible .elementor-button-text {
	translate: 0 0;
}

@media (max-width: 767px) {
	.gdw-agm-explora__punto .elementor-button {
		width: 28px;
		height: 28px;
	}

	.gdw-agm-explora__punto .elementor-button::before {
		width: 6px;
		height: 6px;
	}

	/* en el móvil, solo la etiqueta del activo */
	.gdw-agm-explora__punto:not(.is-activo) .elementor-button-text {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   4. Lupa (gdw-agm-lupa en un widget Imagen sin enlace) y visor
   -------------------------------------------------------------------------- */
.gdw-agm-lupa {
	position: relative;
}

.gdw-agm-lupa.is-listo {
	overflow: hidden;
	cursor: zoom-in;
}

.gdw-agm-lupa.is-listo img {
	display: block;
}

.gdw-agm-lupa.is-listo:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 4px;
}

/* aviso pequeño de que se puede ampliar */
.gdw-agm-lupa.is-listo::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 12px;
	z-index: 3;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	pointer-events: none;
	background:
		linear-gradient(var(--agm-noche), var(--agm-noche)) no-repeat 50% 50% / 12px 1.5px,
		linear-gradient(var(--agm-noche), var(--agm-noche)) no-repeat 50% 50% / 1.5px 12px,
		rgba(255, 255, 255, 0.92);
	box-shadow: 0 6px 16px -6px rgba(4, 24, 46, 0.4);
	transition: opacity 0.3s var(--agm-ease);
}

.gdw-agm-lupa.is-lupa {
	cursor: none;
}

.gdw-agm-lupa.is-lupa::after {
	opacity: 0;
}

.gdw-agm-lupa__lente {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 4;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	background-color: var(--agm-blanco);
	background-repeat: no-repeat;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.8), 0 0 0 5px rgba(1, 78, 151, 0.22), 0 26px 50px -12px rgba(4, 24, 46, 0.5);
	pointer-events: none;
	opacity: 0;
	scale: 0.6;
	transition: opacity 0.3s var(--agm-ease), scale 0.4s var(--agm-ease);
	will-change: transform;
}

.gdw-agm-lupa.is-lupa .gdw-agm-lupa__lente {
	opacity: 1;
	scale: 1;
}

@media (hover: none) {
	.gdw-agm-lupa.is-listo {
		cursor: pointer;
	}
}

/* Visor a pantalla completa (lo crea el JS) */
.gdw-agm-visor {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: grid;
	place-items: center;
	padding: calc(76px + var(--wp-admin--admin-bar--height, 0px)) 16px 24px;
	background: rgba(2, 11, 22, 0.94);
	opacity: 0;
	transition: opacity 0.3s var(--agm-ease);
}

.gdw-agm-visor[hidden] {
	display: none !important;
}

.gdw-agm-visor.is-abierto {
	opacity: 1;
}

.gdw-agm-visor__fig {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: min(1200px, 100%);
	margin: 0;
}

.gdw-agm-visor__img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: calc(100svh - 150px - var(--wp-admin--admin-bar--height, 0px));
	border-radius: 18px;
	background: var(--agm-blanco);
	object-fit: contain;
	scale: 0.96;
	transition: scale 0.45s var(--agm-ease);
}

.gdw-agm-visor.is-abierto .gdw-agm-visor__img {
	scale: 1;
}

.gdw-agm-visor__pie {
	max-width: 60ch;
	font-family: var(--agm-fb);
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
	color: var(--agm-plata);
}

.gdw-agm-visor__cerrar {
	position: absolute;
	top: calc(16px + var(--wp-admin--admin-bar--height, 0px));
	right: 16px;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: var(--agm-blanco);
	cursor: pointer;
	transition: background-color 0.3s var(--agm-ease), border-color 0.3s var(--agm-ease);
}

.gdw-agm-visor__cerrar::before,
.gdw-agm-visor__cerrar::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 1.5px;
	margin: -0.75px 0 0 -9px;
	background: currentColor;
	rotate: 45deg;
}

.gdw-agm-visor__cerrar::after {
	rotate: -45deg;
}

.gdw-agm-visor__cerrar:hover,
.gdw-agm-visor__cerrar:focus-visible {
	border-color: var(--agm-menta);
	background: rgba(115, 251, 211, 0.1);
}

.gdw-agm-visor__cerrar:focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   5. Configurador (gdw-agm-config › __tabs › Botones __tab--n con su ancla;
   __visor › Imágenes __vista--n; __infos › contenedores __info--n; opcional
   Botón __ir). Sin JS: las tres vistas y las tres explicaciones a la vista.
   -------------------------------------------------------------------------- */
.gdw-agm-config,
.gdw-agm-colores {
	position: relative;
	scroll-margin-top: calc(var(--gdw-header-h, 76px) + 24px);
}

/* pestañas: control segmentado */
.gdw-agm-config .gdw-agm-config__tabs {
	display: inline-flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-self: flex-start;
	gap: 4px !important;
	width: auto !important;
	max-width: 100%;
	padding: 5px !important;
	border-radius: 999px;
	background: var(--agm-c-chip);
	border: 1px solid var(--agm-c-linea);
}

.gdw-agm-config .gdw-agm-config__tab {
	width: auto !important;
}

.gdw-agm-config__tab .elementor-button {
	padding: 12px 22px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--agm-c-titulo) !important;
	font-family: var(--agm-ft) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.45s var(--agm-ease), color 0.45s var(--agm-ease), box-shadow 0.45s var(--agm-ease) !important;
}

.gdw-agm-config__tab .elementor-button:hover {
	color: var(--agm-c-acento) !important;
}

.gdw-agm-config__tab.is-activa .elementor-button {
	background: var(--agm-blanco) !important;
	color: var(--agm-azul) !important;
	box-shadow: 0 8px 22px -12px rgba(4, 24, 46, 0.45) !important;
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-phero--noche, .gdw-agm-oscuro) .gdw-agm-config__tab.is-activa .elementor-button {
	color: var(--agm-noche) !important;
}

.gdw-agm-config__tab .elementor-button:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 2px;
}

@media (max-width: 600px) {
	.gdw-agm-config .gdw-agm-config__tabs {
		display: flex !important;
		border-radius: 22px;
	}

	.gdw-agm-config .gdw-agm-config__tab {
		flex: 1 1 auto;
	}

	.gdw-agm-config__tab .elementor-button {
		width: 100%;
		padding: 11px 14px !important;
		font-size: 14px !important;
	}
}

/* vistas y explicaciones: sin JS, en fila */
.gdw-agm-config .gdw-agm-config__visor,
.gdw-agm-colores .gdw-agm-colores__visor {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 16px !important;
	align-items: center;
	min-width: 0;
}

.gdw-agm-config .gdw-agm-config__infos {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 24px !important;
	min-width: 0;
}

.gdw-agm-config :is(.gdw-agm-config__vista, .gdw-agm-config__info),
.gdw-agm-colores .gdw-agm-colores__vista {
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
}

.gdw-agm-config .gdw-agm-config__vista img,
.gdw-agm-colores .gdw-agm-colores__vista img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: none !important;
}

/* con JS: una vista y una explicación cada vez, con fundido */
.gdw-agm-config.is-listo .gdw-agm-config__visor,
.gdw-agm-colores.is-listo .gdw-agm-colores__visor,
.gdw-agm-config.is-listo .gdw-agm-config__infos {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "uno";
}

.gdw-agm-config.is-listo :is(.gdw-agm-config__vista, .gdw-agm-config__info),
.gdw-agm-colores.is-listo .gdw-agm-colores__vista {
	grid-area: uno;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.7s var(--agm-ease), scale 0.9s var(--agm-ease), translate 0.7s var(--agm-ease), visibility 0s linear 0.7s !important;
}

.gdw-agm-config.is-listo .gdw-agm-config__vista,
.gdw-agm-colores.is-listo .gdw-agm-colores__vista {
	scale: 1.025;
}

.gdw-agm-config.is-listo .gdw-agm-config__info {
	translate: 0 12px;
}

.gdw-agm-config.is-listo :is(.gdw-agm-config__vista, .gdw-agm-config__info).is-activa,
.gdw-agm-colores.is-listo .gdw-agm-colores__vista.is-activa {
	opacity: 1;
	visibility: visible;
	scale: 1;
	translate: 0 0;
	transition: opacity 0.7s var(--agm-ease), scale 0.9s var(--agm-ease), translate 0.7s var(--agm-ease), visibility 0s linear 0s !important;
}

/* ventajas de cada opción (Lista de iconos) */
.gdw-agm-config__info .elementor-icon-list-item {
	padding: 6px 0 !important;
}

.gdw-agm-config__info .elementor-icon-list-icon {
	color: var(--agm-c-eyebrow);
}

/* --------------------------------------------------------------------------
   6. Colores (gdw-agm-colores › __muestras › Botones __muestra--n
   __muestra--verde/--morado/--amarillo; __visor › Imágenes __vista--n;
   opcional Título __nombre, que cambia con la muestra)
   -------------------------------------------------------------------------- */
.gdw-agm-colores .gdw-agm-colores__muestras {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center;
	gap: 14px !important;
	width: auto !important;
}

.gdw-agm-colores .gdw-agm-colores__muestra {
	--agm-color: var(--agm-plata);
	width: auto !important;
}

.gdw-agm-colores__muestra--verde { --agm-color: #4CB963; }
.gdw-agm-colores__muestra--morado { --agm-color: #7E57C2; }
.gdw-agm-colores__muestra--amarillo { --agm-color: #F2C230; }
.gdw-agm-colores__muestra--azul { --agm-color: var(--agm-azul-2); }
.gdw-agm-colores__muestra--blanco { --agm-color: #F7F9FC; }
.gdw-agm-colores__muestra--gris { --agm-color: #9AA3AE; }
.gdw-agm-colores__muestra--negro { --agm-color: #1B2430; }
.gdw-agm-colores__muestra--rosa { --agm-color: #E98BB4; }

.gdw-agm-colores__muestra .elementor-button {
	position: relative;
	width: 40px;
	height: 40px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--agm-color) !important;
	font-size: 0 !important;        /* el nombre del color queda para los lectores */
	box-shadow: inset 0 0 0 1px rgba(4, 24, 46, 0.14), 0 0 0 0 var(--agm-c-acento) !important;
	cursor: pointer;
	transition: box-shadow 0.4s var(--agm-ease), scale 0.4s var(--agm-ease) !important;
}

.gdw-agm-colores__muestra .elementor-button:hover {
	scale: 1.08;
}

.gdw-agm-colores__muestra.is-activa .elementor-button {
	box-shadow: inset 0 0 0 1px rgba(4, 24, 46, 0.14), 0 0 0 3px var(--agm-fondo, var(--agm-blanco)), 0 0 0 5px var(--agm-c-acento) !important;
}

.gdw-agm-colores__muestra .elementor-button:focus-visible {
	outline: 2px solid var(--agm-c-foco);
	outline-offset: 6px;
}

/* sin JS: las muestras no hacen nada; el nombre de cada color sí se lee */
.gdw-agm-colores:not(.is-listo) .gdw-agm-colores__muestra .elementor-button {
	width: auto;
	height: auto;
	padding: 8px 14px 8px 36px !important;
	border-radius: 999px !important;
	background: var(--agm-c-chip) !important;
	font-size: 14px !important;
	color: var(--agm-c-titulo) !important;
	cursor: default;
}

.gdw-agm-colores:not(.is-listo) .gdw-agm-colores__muestra .elementor-button::before {
	content: "";
	position: absolute;
	left: 10px;
	top: 50%;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border-radius: 50%;
	background: var(--agm-color);
}

.gdw-agm-colores .gdw-agm-colores__nombre .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 14px;
	font-weight: 600;
	color: var(--agm-c-suave);
}

/* --------------------------------------------------------------------------
   7. Relato fijo (gdw-agm-relato: fila › __media › Imágenes __img--n;
   __pasos › contenedores __paso--n). Con JS, la imagen se queda fija a un
   lado y cambia con el paso visible; hasta 1024 px, fija arriba (bajo la
   cabecera) y los pasos pasan por debajo.
   -------------------------------------------------------------------------- */
.gdw-agm-relato {
	position: relative;
}

/* sin JS: las imágenes en rejilla pequeña */
.gdw-agm-relato .gdw-agm-relato__media {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr));
	gap: 12px !important;
	align-items: center;
	min-width: 0;
}

.gdw-agm-relato .gdw-agm-relato__img {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.gdw-agm-relato .gdw-agm-relato__img img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: none !important;
	object-fit: contain;
}

.gdw-agm-relato .gdw-agm-relato__pasos {
	min-width: 0;
}

.gdw-agm-relato .gdw-agm-relato__paso {
	padding: 22px 0 !important;
	border-top: 1px solid var(--agm-c-linea);
}

/* con JS */
.gdw-agm-relato.is-listo .gdw-agm-relato__media {
	position: sticky !important;
	top: calc(var(--gdw-header-h, 76px) + 32px);
	align-self: flex-start !important;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "img";
	transition: none !important;
}

.gdw-agm-relato.is-listo .gdw-agm-relato__img {
	grid-area: img;
	opacity: 0;
	scale: 1.03;
	transition: opacity 0.7s var(--agm-ease), scale 0.9s var(--agm-ease) !important;
}

.gdw-agm-relato.is-listo .gdw-agm-relato__img.is-activa {
	opacity: 1;
	scale: 1;
}

.gdw-agm-relato.is-listo .gdw-agm-relato__paso {
	min-height: 40svh;
	justify-content: center !important;
	opacity: 0.32;
	transition: opacity 0.5s var(--agm-ease) !important;
}

.gdw-agm-relato.is-listo .gdw-agm-relato__paso.is-activo {
	opacity: 1;
}

.gdw-agm-relato.is-listo .gdw-agm-relato__paso:first-child {
	border-top: 0;
}

@media (max-width: 1024px) {
	.gdw-agm-relato.is-listo .gdw-agm-relato__media {
		top: calc(var(--gdw-header-h, 64px) + 4px);
		z-index: 2;
		width: 100% !important;
		padding: 8px 0 14px !important;
		background: var(--agm-fondo, var(--agm-blanco));
	}

	.gdw-agm-relato.is-listo .gdw-agm-relato__img img {
		max-height: 34svh;
	}

	.gdw-agm-relato.is-listo .gdw-agm-relato__paso {
		min-height: 30svh;
	}
}

/* --------------------------------------------------------------------------
   8. Bento (gdw-agm-bento › contenedores __celda, --ancha, --alta)
   Rejilla de 4 columnas (2 en tablet, 1 en el móvil). Contenedor interior a
   ancho completo (sin .e-con-inner).
   -------------------------------------------------------------------------- */
.gdw-agm-bento,
.gdw-agm-bento > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-auto-rows: minmax(220px, auto) !important;
	grid-auto-flow: dense !important;
	gap: clamp(12px, 1.6vw, 20px) !important;
}

.gdw-agm-bento .gdw-agm-bento__celda {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	width: auto !important;
	min-width: 0;
	overflow: clip;
	border-radius: var(--agm-radio) !important;
	background-color: var(--agm-blanco);
}

.gdw-agm-bento .gdw-agm-bento__celda--ancha {
	grid-column: span 2;
}

.gdw-agm-bento .gdw-agm-bento__celda--alta {
	grid-row: span 2;
}

.gdw-agm-bento__celda .elementor-widget-image {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
}

.gdw-agm-bento__celda .elementor-widget-image img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 420px;
	object-fit: contain;
}

.gdw-agm-bento__celda .elementor-widget-heading .elementor-heading-title {
	color: var(--agm-c-titulo);
}

@media (max-width: 1024px) {
	.gdw-agm-bento,
	.gdw-agm-bento > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 600px) {
	.gdw-agm-bento,
	.gdw-agm-bento > .e-con-inner {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-auto-rows: auto !important;
	}

	.gdw-agm-bento .gdw-agm-bento__celda--ancha,
	.gdw-agm-bento .gdw-agm-bento__celda--alta {
		grid-column: auto;
		grid-row: auto;
	}

	.gdw-agm-bento__celda .elementor-widget-image img {
		max-height: 280px;
	}
}

/* --------------------------------------------------------------------------
   9. Recorrido (gdw-agm-recorrido › contenedores __paso › Título __num
   «01», Título y Texto). La línea (__linea) la crea el JS y la dibuja con
   el scroll (--agm-l); en fila o en columna, según cómo queden los pasos.
   -------------------------------------------------------------------------- */
.gdw-agm-recorrido {
	position: relative;
	isolation: isolate;
}

.gdw-agm-recorrido .gdw-agm-recorrido__paso {
	position: relative;
	min-width: 0;
	transition: opacity 0.5s var(--agm-ease) !important;
}

.elementor-widget-heading.gdw-agm-recorrido__num .elementor-heading-title {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 1px solid var(--agm-c-linea);
	border-radius: 50%;
	background: var(--agm-fondo, var(--agm-blanco));
	font-family: var(--agm-ft);
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	color: var(--agm-c-titulo);
	transition: background-color 0.5s var(--agm-ease), border-color 0.5s var(--agm-ease), color 0.5s var(--agm-ease), box-shadow 0.5s var(--agm-ease);
}

.gdw-agm-recorrido.is-listo .gdw-agm-recorrido__paso:not(.is-activo) {
	opacity: 0.55;
}

.gdw-agm-recorrido.is-listo .gdw-agm-recorrido__paso.is-activo .gdw-agm-recorrido__num .elementor-heading-title {
	border-color: var(--agm-azul);
	background: var(--agm-azul);
	color: var(--agm-blanco);
	box-shadow: 0 0 0 7px rgba(1, 78, 151, 0.12);
}

.gdw-agm-recorrido__linea {
	position: absolute;
	z-index: -1;
	height: 2px;
	margin-top: -1px;
	background: var(--agm-c-linea);
	pointer-events: none;
}

.gdw-agm-recorrido__linea i {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, var(--agm-azul), var(--agm-menta-osc));
	transform-origin: 0 0;
	transform: scaleX(var(--agm-l, 1));
}

.gdw-agm-recorrido.is-vertical .gdw-agm-recorrido__linea {
	width: 2px;
	margin: 0 0 0 -1px;
}

.gdw-agm-recorrido.is-vertical .gdw-agm-recorrido__linea i {
	background: linear-gradient(180deg, var(--agm-azul), var(--agm-menta-osc));
	transform: scaleY(var(--agm-l, 1));
}

/* --------------------------------------------------------------------------
   10. Comparativa (gdw-agm-compara › contenedores __fila; la primera, la
   cabecera (__fila--cabeza): hueco + una celda por modelo con su nombre
   (__columna) y, si la lleva, un contenedor __modelo con foto (__img) y
   botón). Rehecha el 11-10-2026 (Mario: «se siente cutre»): cada modelo es
   una columna-tarjeta (sus celdas comparten fondo y bordes, de la cabecera
   a la última fila), el concepto va a la izquierda en pequeño y el valor,
   destacado. Con fondo noche, cristal; con fondo claro, tarjetas blancas.
   El JS (20-producto.js §9) pone --agm-cols, los papeles de tabla, «En los
   dos» en las filas iguales (__igual), la entrada de cada fila con el
   scroll (.is-vista) y la barra fija con los nombres (gdw-agm-compara-fija,
   en el body). En el móvil: el concepto encima, a lo ancho, y debajo una
   celda por modelo.
   -------------------------------------------------------------------------- */
.gdw-agm-compara {
	--agm-cols: 2;
	--agm-cmp-col: var(--agm-blanco);
	--agm-cmp-borde: rgba(4, 24, 46, 0.08);
	--agm-cmp-hover: rgba(1, 78, 151, 0.045);
	--agm-cmp-brillo: rgba(1, 78, 151, 0.16);
	--agm-cmp-gap: clamp(14px, 2vw, 28px);
	--agm-cmp-pad: clamp(18px, 2vw, 32px);
	position: relative;
	width: 100%;
}

.gdw-agm-sec--blanco .gdw-agm-compara {
	--agm-cmp-col: var(--agm-niebla);
}

.gdw-agm-sec--noche .gdw-agm-compara,
.gdw-agm-sec--negro .gdw-agm-compara {
	--agm-cmp-col: rgba(255, 255, 255, 0.045);
	--agm-cmp-borde: rgba(255, 255, 255, 0.1);
	--agm-cmp-hover: rgba(115, 251, 211, 0.06);
	--agm-cmp-brillo: rgba(115, 251, 211, 0.22);
}

.gdw-agm-compara .gdw-agm-compara__fila {
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) repeat(var(--agm-cols), minmax(0, 1fr)) !important;
	gap: 0 var(--agm-cmp-gap) !important;
	align-items: stretch;
	width: 100% !important;
	padding: 0 !important;
	border: 0 !important;
}

.gdw-agm-compara .gdw-agm-compara__fila > .elementor-element {
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}

.gdw-agm-compara p {
	margin: 0;
}

/* concepto (primera celda de cada fila) */
.gdw-agm-compara .gdw-agm-compara__fila > :first-child {
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 8px;
	padding: 22px 0 !important;
	border-top: 1px solid var(--agm-c-linea);
	transition: color 0.3s var(--agm-ease);
}

.gdw-agm-compara .gdw-agm-compara__fila > :first-child .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--agm-c-suave);
	transition: color 0.3s var(--agm-ease);
}

/* «En los dos»: lo pone el JS en las filas con el mismo valor en todos los modelos */
.gdw-agm-compara__igual {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--agm-c-chip);
	font-family: var(--agm-fb);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--agm-c-acento);
}

.gdw-agm-compara__igual::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

/* valores: cada celda es un tramo de la columna-tarjeta de su modelo */
.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child) {
	position: relative;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	padding: 22px var(--agm-cmp-pad) !important;
	background-color: var(--agm-cmp-col);
	background-image: linear-gradient(transparent, transparent);
	border-left: 1px solid var(--agm-cmp-borde);
	border-right: 1px solid var(--agm-cmp-borde);
}

/* línea entre filas, dentro de la tarjeta (sin tocar los bordes) */
.gdw-agm-compara .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > .elementor-widget:not(:first-child)::before {
	content: "";
	position: absolute;
	top: 0;
	left: var(--agm-cmp-pad);
	right: var(--agm-cmp-pad);
	height: 1px;
	background: var(--agm-c-linea);
}

.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child),
.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child) p,
.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child) .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 16.5px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--agm-c-titulo);
}

/* «—»: dato que no consta, en suave */
.gdw-agm-compara .gdw-agm-compara__valor.is-vacio,
.gdw-agm-compara .gdw-agm-compara__valor.is-vacio p {
	color: var(--agm-c-suave);
}

/* fila bajo el ratón: se ilumina a lo ancho */
@media (hover: hover) and (pointer: fine) {
	.gdw-agm-compara .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza):hover > :not(:first-child) {
		background-image: linear-gradient(var(--agm-cmp-hover), var(--agm-cmp-hover));
	}

	.gdw-agm-compara .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza):hover > :first-child .elementor-heading-title {
		color: var(--agm-c-acento);
	}
}

/* cabecera: el hueco, sin nada; cada modelo, arriba de su columna (esquinas de arriba redondeadas) */
.gdw-agm-compara .gdw-agm-compara__fila--cabeza > :first-child {
	border-top: 0;
	padding: 0 !important;
}

.gdw-agm-compara .gdw-agm-compara__fila--cabeza > :not(:first-child) {
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
	padding: clamp(22px, 2.6vw, 36px) var(--agm-cmp-pad) 26px !important;
	border-top: 1px solid var(--agm-cmp-borde);
	border-radius: var(--agm-radio) var(--agm-radio) 0 0;
	text-align: center;
	box-shadow: inset 0 2px 0 var(--agm-cmp-brillo);
}

.gdw-agm-compara .gdw-agm-compara__fila--cabeza .gdw-agm-compara__columna .elementor-heading-title,
.gdw-agm-compara .gdw-agm-compara__fila--cabeza > .gdw-agm-compara__columna,
.gdw-agm-compara .gdw-agm-compara__fila--cabeza > .gdw-agm-compara__columna .elementor-heading-title {
	font-family: var(--agm-ft);
	font-size: clamp(18px, 1.7vw, 24px);
	font-weight: 700;
	line-height: 1.2;
	color: var(--agm-c-titulo);
	text-align: center;
}

/* foto del modelo, con su luz de suelo; sube y se acerca un poco al pasar por la columna */
.gdw-agm-compara .gdw-agm-compara__img {
	position: relative;
	isolation: isolate;
	width: 100% !important;
	transition: transform 0.8s var(--agm-ease);
}

.gdw-agm-compara .gdw-agm-compara__img img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-height: 280px;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	margin-inline: auto;
}

.gdw-agm-compara .gdw-agm-compara__img::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: 12%;
	right: 12%;
	bottom: 0;
	height: 22%;
	border-radius: 50%;
	background: radial-gradient(closest-side, var(--agm-cmp-brillo), transparent);
	filter: blur(4px);
}

@media (hover: hover) and (pointer: fine) {
	.gdw-agm-compara .gdw-agm-compara__modelo:hover .gdw-agm-compara__img {
		transform: translateY(-6px) scale(1.03);
	}
}

.gdw-agm-compara .gdw-agm-compara__botones {
	margin-top: 4px !important;
}

/* última fila: esquinas de abajo redondeadas (cierra cada columna-tarjeta) */
.gdw-agm-compara .gdw-agm-compara__fila:last-child > :not(:first-child),
.gdw-agm-compara .gdw-agm-compara__fila.is-ultima > :not(:first-child) {
	border-bottom: 1px solid var(--agm-cmp-borde);
	border-radius: 0 0 var(--agm-radio) var(--agm-radio);
}

.gdw-agm-compara .gdw-agm-compara__fila:last-child > :first-child,
.gdw-agm-compara .gdw-agm-compara__fila.is-ultima > :first-child {
	border-bottom: 1px solid var(--agm-c-linea);
}

/* entrada con el scroll: las columnas se quedan; el texto de cada fila sube (con JS y movimiento) */
html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > .elementor-widget > *,
html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila--cabeza .gdw-agm-compara__img img {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.7s var(--agm-ease), transform 0.7s var(--agm-ease);
}

html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > .elementor-widget:nth-child(2) > * {
	transition-delay: 0.08s;
}

html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > .elementor-widget:nth-child(n+3) > * {
	transition-delay: 0.16s;
}

html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila--cabeza .gdw-agm-compara__img img {
	transform: translateY(40px) scale(0.96);
	transition-duration: 1.1s;
}

html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila--cabeza .gdw-agm-compara__modelo--2 .gdw-agm-compara__img img {
	transition-delay: 0.15s;
}

html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila.is-vista > .elementor-widget > *,
html.gdw-agm-js .gdw-agm-compara.is-anima .gdw-agm-compara__fila--cabeza.is-vista .gdw-agm-compara__img img {
	opacity: 1;
	transform: none;
}

/* barra fija con los nombres (la crea el JS en el body, aria-hidden): aparece al bajar por la tabla */
.gdw-agm-compara-fija {
	position: fixed;
	z-index: 90;
	top: 92px;
	left: 0;
	height: 0;
	pointer-events: none;
}

.gdw-agm-compara-fija__nombre {
	position: absolute;
	top: 0;
	box-sizing: border-box;
	padding: 12px 16px;
	border: 1px solid rgba(4, 24, 46, 0.08);
	border-top: 0;
	border-radius: 0 0 16px 16px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 18px 30px -24px rgba(4, 24, 46, 0.45);
	font-family: var(--agm-ft);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	color: var(--agm-noche);
	opacity: 0;
	transform: translateY(-10px);
	transition: opacity 0.3s var(--agm-ease), transform 0.3s var(--agm-ease);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gdw-agm-compara-fija--noche .gdw-agm-compara-fija__nombre {
	border-color: rgba(255, 255, 255, 0.12);
	background: rgba(4, 24, 46, 0.9);
	color: var(--agm-blanco);
}

.gdw-agm-compara-fija.is-visible .gdw-agm-compara-fija__nombre {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.gdw-agm-compara .gdw-agm-compara__img,
	.gdw-agm-compara-fija__nombre {
		transition: none;
	}
}

/* tableta: menos aire */
@media (max-width: 1024px) {
	.gdw-agm-compara {
		--agm-cmp-pad: 18px;
	}

	.gdw-agm-compara .gdw-agm-compara__img img {
		max-height: 200px;
	}

	/* en tableta y móvil, los botones de cada modelo ya están en sus tarjetas, más arriba (y aquí no caben
	   en una línea: «Descubrir el 8000C S3 PRO» ocupaba dos y descuadraba las dos cabeceras) */
	.gdw-agm-compara .gdw-agm-compara__botones {
		display: none !important;
	}
}

/* móvil: concepto encima, a lo ancho; debajo, una celda-tarjeta por modelo */
@media (max-width: 767px) {
	.gdw-agm-compara {
		--agm-cmp-gap: 10px;
		--agm-cmp-pad: 14px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila {
		grid-template-columns: repeat(var(--agm-cols), minmax(0, 1fr)) !important;
	}

	.gdw-agm-compara .gdw-agm-compara__fila > :first-child {
		grid-column: 1 / -1;
		padding: 22px 2px 10px !important;
		border-top: 0;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 6px 10px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila--cabeza > :first-child {
		display: none !important;
	}

	.gdw-agm-compara .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > :not(:first-child) {
		padding: 14px var(--agm-cmp-pad) !important;
		border: 1px solid var(--agm-cmp-borde);
		border-radius: 14px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila:not(.gdw-agm-compara__fila--cabeza) > .elementor-widget:not(:first-child)::before {
		display: none;
	}

	.gdw-agm-compara .gdw-agm-compara__fila--cabeza > :not(:first-child) {
		padding: 18px 12px !important;
		gap: 10px;
		border: 1px solid var(--agm-cmp-borde);
		border-radius: 18px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila:last-child > :first-child,
	.gdw-agm-compara .gdw-agm-compara__fila.is-ultima > :first-child {
		border-bottom: 0;
	}

	.gdw-agm-compara .gdw-agm-compara__fila:last-child > :not(:first-child),
	.gdw-agm-compara .gdw-agm-compara__fila.is-ultima > :not(:first-child) {
		border-radius: 14px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child),
	.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child) p,
	.gdw-agm-compara .gdw-agm-compara__fila > :not(:first-child) .elementor-heading-title {
		font-size: 14.5px;
	}

	.gdw-agm-compara .gdw-agm-compara__fila--cabeza .gdw-agm-compara__columna .elementor-heading-title,
	.gdw-agm-compara .gdw-agm-compara__fila--cabeza > .gdw-agm-compara__columna .elementor-heading-title {
		font-size: 16px;
	}

	.gdw-agm-compara .gdw-agm-compara__img img {
		max-height: 130px;
	}

	.gdw-agm-compara-fija__nombre {
		padding: 10px 8px;
		font-size: 13.5px;
	}
}

/* --------------------------------------------------------------------------
   11. Ficha técnica (gdw-agm-ficha: pares clave / valor, como widgets
   seguidos o en contenedores __fila con __clave y __valor)
   -------------------------------------------------------------------------- */
.gdw-agm-ficha {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr) !important;
	gap: 0 !important;
	width: 100%;
	border-top: 1px solid var(--agm-c-linea);
}

.gdw-agm-ficha > .elementor-element {
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--agm-c-linea);
}

.gdw-agm-ficha > .elementor-widget:nth-child(odd) {
	padding-right: 24px !important;
}

.gdw-agm-ficha > .gdw-agm-ficha__fila {
	grid-column: 1 / -1;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr) !important;
	gap: 0 24px !important;
}

.gdw-agm-ficha > .gdw-agm-ficha__fila > .elementor-element {
	width: auto !important;
	min-width: 0;
}

.gdw-agm-ficha > .elementor-widget:nth-child(odd) .elementor-heading-title,
.gdw-agm-ficha .gdw-agm-ficha__clave .elementor-heading-title,
.gdw-agm-ficha > .gdw-agm-ficha__fila > :first-child .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--agm-c-eyebrow);
}

.gdw-agm-ficha > .elementor-widget:nth-child(even),
.gdw-agm-ficha > .elementor-widget:nth-child(even) .elementor-heading-title,
.gdw-agm-ficha .gdw-agm-ficha__valor,
.gdw-agm-ficha .gdw-agm-ficha__valor .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--agm-c-titulo);
}

.gdw-agm-ficha p {
	margin: 0;
}

@media (max-width: 600px) {
	.gdw-agm-ficha,
	.gdw-agm-ficha > .gdw-agm-ficha__fila {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.gdw-agm-ficha > .elementor-widget:nth-child(odd) {
		padding: 16px 0 2px !important;
		border-bottom: 0;
	}

	.gdw-agm-ficha > .elementor-widget:nth-child(even) {
		padding-top: 2px !important;
	}

	.gdw-agm-ficha > .gdw-agm-ficha__fila {
		gap: 2px !important;
	}
}

/* --------------------------------------------------------------------------
   12. Familia de producto (gdw-agm-familia: fila › __media | __texto;
   --inversa: texto a la izquierda en escritorio)
   -------------------------------------------------------------------------- */
.gdw-agm-familia {
	position: relative;
}

.gdw-agm-familia .gdw-agm-familia__media {
	position: relative;
	isolation: isolate;
	overflow: clip;
	border-radius: calc(var(--agm-radio) + 8px) !important;
	background: radial-gradient(80% 70% at 50% 62%, var(--agm-blanco) 0%, var(--agm-niebla) 100%);
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-oscuro) .gdw-agm-familia .gdw-agm-familia__media {
	background: radial-gradient(80% 70% at 50% 70%, #0B3462 0%, #061E3A 55%, var(--agm-negro) 100%);
}

.gdw-agm-familia .gdw-agm-familia__media .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (min-width: 1025px) {
	.gdw-agm-familia--inversa,
	.gdw-agm-familia--inversa > .e-con-inner {
		flex-direction: row-reverse !important;
	}
}

/* --------------------------------------------------------------------------
   13. Contador de datos: los números no bailan al contar
   -------------------------------------------------------------------------- */
.gdw-agm-dato__cuenta {
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   14. «Reducir movimiento»: todo cambia sin animar
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.gdw-agm-giro.is-listo .gdw-agm-giro__vista,
	.gdw-agm-explora.is-listo :is(.gdw-agm-explora__panel, .gdw-agm-explora__intro),
	.gdw-agm-config.is-listo :is(.gdw-agm-config__vista, .gdw-agm-config__info),
	.gdw-agm-colores.is-listo .gdw-agm-colores__vista,
	.gdw-agm-relato.is-listo :is(.gdw-agm-relato__img, .gdw-agm-relato__paso),
	.gdw-agm-recorrido .gdw-agm-recorrido__paso {
		transition: none !important;
		scale: none !important;
		translate: none !important;
	}

	.gdw-agm-explora__punto .elementor-button,
	.gdw-agm-explora__punto .elementor-button-text,
	.gdw-agm-lupa__lente,
	.gdw-agm-visor,
	.gdw-agm-visor__img,
	.gdw-agm-giro__punto,
	.gdw-agm-config__tab .elementor-button,
	.gdw-agm-colores__muestra .elementor-button {
		transition: none !important;
	}

	.gdw-agm-explora.is-visto .gdw-agm-explora__punto .elementor-button::after {
		animation: none !important;
	}
}
/* <<< fin AGM 20-producto.css */

/* >>> AGM 30-cabecera-pie.css */
/* ==========================================================================
   AGM Dental · 30-cabecera-pie.css (gdw-agm 1.0, 10-10-2026 · Mario pide · Claude)
   Cabecera (plantilla 21: barra .gdw-header__bar.gdw-agm-header) y pie
   (plantilla 37: contenedores .gdw-agm-footer), DISENO §7. JS:
   30-cabecera-pie.js (menú móvil, miniaturas del submenú, volver arriba).
   Estados (los pone el motor, 00-motor.js; gdw-is-scrolled, la base):
   - body.gdw-agm-cab-fija: la página empieza con el hero o una phero: la
     cabecera va fija encima (transparente arriba del todo);
   - body.gdw-agm-cab-noche: ahora mismo está sobre un escenario noche: logo
     blanco y texto blanco (y cristal oscuro al bajar);
   - body.gdw-is-scrolled: se ha bajado: 60 px de alto y, fuera de la noche,
     blanco al 82 % con desenfoque y logo en color.
   Logo: dos widgets Imagen en el contenedor gdw-agm-header__logo
   (gdw-agm-header__logo--color y gdw-agm-header__logo--blanco, el mismo
   tamaño); el CSS enseña uno u otro. El desenfoque va en un pseudoelemento
   (en la barra encerraría el panel fijo del menú móvil).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Posición y fondo de la barra
   -------------------------------------------------------------------------- */
#masthead {
	--agm-cab-texto: var(--agm-noche);
	--agm-cab-hover: var(--agm-azul);
	transition: box-shadow 0.4s var(--agm-ease);
}

/* Fija encima del hero o de la phero (también antes de que llegue el JS) */
body.gdw-agm-cab-fija #masthead,
body:not(.elementor-editor-active):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead,
body:not(.elementor-editor-active):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero:first-child) #masthead {
	position: fixed !important;
	left: 0;
	right: 0;
	width: 100%;
}

#masthead .gdw-agm-header {
	--padding-top: 0px;
	--padding-bottom: 0px;
	position: relative;
	isolation: isolate;
	align-items: center !important;
	min-height: 76px;
	background-color: transparent !important;
	transition: min-height 0.45s var(--agm-ease);
}

#masthead .gdw-agm-header::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-color: rgba(255, 255, 255, 1);
	box-shadow: 0 1px 0 rgba(4, 24, 46, 0);
	transition: background-color 0.45s var(--agm-ease), box-shadow 0.45s var(--agm-ease);
}

body.gdw-is-scrolled #masthead .gdw-agm-header {
	min-height: 60px;
}

body.gdw-is-scrolled #masthead .gdw-agm-header::after {
	background-color: rgba(255, 255, 255, 0.82);
	-webkit-backdrop-filter: blur(18px) saturate(1.4);
	backdrop-filter: blur(18px) saturate(1.4);
	box-shadow: 0 1px 0 var(--agm-linea);
}

/* Fija y arriba del todo: transparente */
body.gdw-agm-cab-fija:not(.gdw-is-scrolled) #masthead .gdw-agm-header::after {
	background-color: rgba(255, 255, 255, 0);
}

body.gdw-agm-cab-fija:not(.gdw-is-scrolled) #masthead {
	box-shadow: none;
}

/* Sobre la noche: texto blanco (y, antes de que el motor detecte la cabecera o sin JS, un cristal oscuro).
   13-10-2026 (Mario: al cargar, el menú salía en oscuro): el respaldo vale hasta que el motor pone
   gdw-agm-cab-fija (antes, solo hasta html.gdw-agm-js, que llega antes y dejaba un hueco) y cuenta también
   con el vídeo de la portada (gdw-home-video) */
body.gdw-agm-cab-noche #masthead,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero--noche:first-child) #masthead {
	--agm-cab-texto: var(--agm-blanco);
	--agm-cab-hover: var(--agm-menta);
}

body.gdw-agm-cab-noche.gdw-is-scrolled #masthead .gdw-agm-header::after,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead .gdw-agm-header::after,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero--noche:first-child) #masthead .gdw-agm-header::after {
	background-color: rgba(4, 24, 46, 0.55);
	-webkit-backdrop-filter: blur(18px) saturate(1.3);
	backdrop-filter: blur(18px) saturate(1.3);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}

body.gdw-agm-cab-noche.gdw-is-scrolled #masthead {
	box-shadow: 0 12px 40px -20px rgba(0, 0, 0, 0.6);
}

@media (max-width: 767px) {
	#masthead .gdw-agm-header {
		min-height: 64px;
	}

	body.gdw-is-scrolled #masthead .gdw-agm-header {
		min-height: 56px;
	}
}

/* Entre 1025 y 1199 px, la barra con menos relleno */
@media (min-width: 1025px) and (max-width: 1199px) {
	#masthead .gdw-agm-header {
		--padding-left: 28px;
		--padding-right: 28px;
	}
}

/* --------------------------------------------------------------------------
   2. Logo: color o blanco (dos imágenes iguales, una encima de la otra)
   -------------------------------------------------------------------------- */
#masthead .gdw-agm-header__logo {
	position: relative;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
}

#masthead .gdw-agm-header__logo > .elementor-widget,
#masthead .gdw-agm-header__logo > .e-con-inner > .elementor-widget {
	width: auto !important;
	margin: 0 !important;
}

#masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco) img {
	display: block;
	width: auto !important;
	height: 42px !important;
	max-width: none !important;
	transition: height 0.45s var(--agm-ease);
}

body.gdw-is-scrolled #masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco) img {
	height: 34px !important;
}

#masthead .gdw-agm-header__logo--blanco {
	position: absolute !important;
	left: 0;
	top: 50%;
	translate: 0 -50%;
}

#masthead .gdw-agm-header__logo--color,
#masthead .gdw-agm-header__logo--blanco {
	transition: opacity 0.45s var(--agm-ease), visibility 0s linear 0.45s;
}

#masthead .gdw-agm-header__logo--blanco {
	opacity: 0;
	visibility: hidden;
}

body.gdw-agm-cab-noche #masthead .gdw-agm-header__logo--color,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead .gdw-agm-header__logo--color,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero--noche:first-child) #masthead .gdw-agm-header__logo--color {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.45s var(--agm-ease), visibility 0s linear 0.45s;
}

body.gdw-agm-cab-noche #masthead .gdw-agm-header__logo--blanco,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead .gdw-agm-header__logo--blanco,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero--noche:first-child) #masthead .gdw-agm-header__logo--blanco {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.45s var(--agm-ease), visibility 0s linear 0s;
}

#masthead .gdw-agm-header__logo--color {
	transition: opacity 0.45s var(--agm-ease), visibility 0s linear 0s;
}

/* En el editor se ven los dos, uno al lado del otro */
body.elementor-editor-active #masthead .gdw-agm-header__logo--blanco {
	position: relative !important;
	top: auto;
	translate: none;
	opacity: 1;
	visibility: visible;
	background: var(--agm-noche);
}

/* Las miniaturas del submenú (imágenes ocultas, en la cabecera o en el pie: el JS las copia al
   submenú). En el pie desde la segunda vuelta (en la cabecera, WordPress le daba fetchpriority a la primera) */
body:not(.elementor-editor-active) :is(.gdw-agm-header__minis, .gdw-agm-header__mini) {
	display: none !important;
}

@media (max-width: 767px) {
	#masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco) img {
		height: 34px !important;
	}

	body.gdw-is-scrolled #masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco) img {
		height: 30px !important;
	}
}

/* --------------------------------------------------------------------------
   3. Menú de escritorio (Ultimate Addons) y submenú «Sillones»
   -------------------------------------------------------------------------- */
/* Colores de la píldora y del punto de la página actual (blanca / sobre la noche) */
#masthead {
	--agm-cab-pildora: rgba(4, 24, 46, 0.06);
	--agm-cab-punto: var(--agm-menta-osc);
}

body.gdw-agm-cab-noche #masthead,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > :is(.gdw-home-hero, .gdw-home-video):first-child) #masthead,
body:not(.elementor-editor-active):not(.gdw-agm-cab-fija):has(#content [data-elementor-type="wp-page"] > .gdw-agm-phero--noche:first-child) #masthead {
	--agm-cab-pildora: rgba(255, 255, 255, 0.1);
	--agm-cab-punto: var(--agm-menta);
}

/* el contenedor del menú: la píldora (la crea el JS) va detrás de las opciones */
#masthead .gdw-header__nav--desktop .gdw-agm-nav {
	position: relative;
	isolation: isolate;
}

#masthead .gdw-header__nav--desktop ul.hfe-nav-menu {
	align-items: center;
	flex-wrap: nowrap !important;
}

#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item {
	flex: none;
}

/* siempre en una línea */
#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item {
	position: relative;
	z-index: 1;
	padding: 10px 14px !important;
	border: 0 !important;
	background-color: transparent !important;
	background-image: none !important;
	font-family: var(--agm-fb) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	color: var(--agm-cab-texto) !important;
	transition: color 0.35s var(--agm-ease) !important;
}

#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > a.hfe-menu-item:hover,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item:hover,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > a.hfe-menu-item:focus-visible,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item:focus-visible,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > .hfe-has-submenu-container > a.hfe-menu-item {
	color: var(--agm-cab-hover) !important;
}

/* la página actual (y la madre: «Sillones» en los sillones), con un punto debajo */
#masthead .gdw-header__nav--desktop .hfe-nav-menu > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > a.hfe-menu-item,
#masthead .gdw-header__nav--desktop .hfe-nav-menu > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > .hfe-has-submenu-container > a.hfe-menu-item {
	background-image: radial-gradient(circle, var(--agm-cab-punto) 0 2.5px, transparent 3px) !important;
	background-repeat: no-repeat !important;
	background-size: 6px 6px !important;
	background-position: 50% calc(100% - 1px) !important;
}

/* la píldora que se desliza entre opciones (con muelle: la mueve el JS) */
.gdw-agm-nav-pildora {
	position: absolute;
	left: 0;
	top: 50%;
	z-index: 0;
	width: 0;
	height: 36px;
	margin-top: -18px;
	border-radius: 999px;
	background: var(--agm-cab-pildora);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s var(--agm-ease), background-color 0.45s var(--agm-ease);
}

.gdw-agm-nav-pildora.is-visible {
	opacity: 1;
}

@media (min-width: 1025px) and (max-width: 1199px) {
	#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > a.hfe-menu-item,
	#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item {
		padding: 10px 9px !important;
		font-size: 14px !important;
	}
}

/* por si a 1025 px no cupiera: menos aire y un punto menos de letra antes que partirse */
@media (min-width: 1025px) and (max-width: 1099px) {
	#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > a.hfe-menu-item,
	#masthead .gdw-header__nav--desktop .hfe-nav-menu > .menu-item > .hfe-has-submenu-container > a.hfe-menu-item {
		padding: 10px 7px !important;
		font-size: 13.5px !important;
	}

	#masthead .gdw-header__nav--desktop .sub-arrow {
		margin-left: 4px;
	}
}

/* flecha del submenú, fina */
#masthead .gdw-header__nav--desktop .sub-arrow {
	display: inline-flex;
	align-items: center;
	margin-left: 6px;
	color: var(--agm-cab-texto);
}

#masthead .gdw-header__nav--desktop .sub-arrow i,
#masthead .gdw-header__nav--desktop .sub-arrow svg {
	display: none !important;
}

#masthead .gdw-header__nav--desktop .sub-arrow::after {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	rotate: 45deg;
	translate: 0 -2px;
	transition: rotate 0.4s var(--agm-ease), translate 0.4s var(--agm-ease);
}

#masthead .gdw-header__nav--desktop li:hover > .hfe-has-submenu-container .sub-arrow::after,
#masthead .gdw-header__nav--desktop li:focus-within > .hfe-has-submenu-container .sub-arrow::after {
	rotate: 225deg;
	translate: 0 2px;
}

/* el desplegable: tarjeta blanca limpia */
#masthead .gdw-header__nav--desktop .sub-menu {
	--agm-cab-texto: var(--agm-noche);
	--agm-cab-hover: var(--agm-azul);
	width: max-content !important;
	min-width: 270px !important;
	padding: 10px !important;
	border: 1px solid var(--agm-linea) !important;
	border-radius: 18px !important;
	background: var(--agm-blanco) !important;
	box-shadow: 0 30px 70px -30px rgba(4, 24, 46, 0.45) !important;
	translate: 0 8px;
	transition: translate 0.45s var(--agm-ease), opacity 0.35s var(--agm-ease), visibility 0.35s !important;
}

#masthead .gdw-header__nav--desktop li:hover > .sub-menu,
#masthead .gdw-header__nav--desktop li:focus-within > .sub-menu {
	visibility: visible !important;
	opacity: 1 !important;
	translate: 0 0;
}

#masthead .gdw-header__nav--desktop .sub-menu .menu-item {
	border: 0 !important;
}

#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item {
	display: flex !important;
	align-items: center;
	gap: 14px;
	padding: 10px 14px !important;
	border: 0 !important;
	border-radius: 12px;
	background: transparent !important;
	font-family: var(--agm-fb) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	white-space: nowrap !important;
	color: var(--agm-noche) !important;
	transition: background-color 0.3s var(--agm-ease), color 0.3s var(--agm-ease) !important;
}

#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:hover,
#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:focus-visible,
#masthead .gdw-header__nav--desktop .sub-menu .current-menu-item > a.hfe-sub-menu-item {
	background: var(--agm-niebla) !important;
	color: var(--agm-azul) !important;
}

/* con miniaturas (las pone el JS) */
.gdw-agm-submenu__mini {
	flex: none;
	display: grid;
	place-items: center;
	width: 64px;
	height: 52px;
	border-radius: 10px;
	background: var(--agm-niebla);
	overflow: hidden;
}

.gdw-agm-submenu__mini img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: scale 0.5s var(--agm-ease);
}

#masthead .sub-menu a.hfe-sub-menu-item:hover .gdw-agm-submenu__mini img {
	scale: 1.08;
}

#masthead .gdw-header__nav--desktop .sub-menu a.hfe-sub-menu-item:hover .gdw-agm-submenu__mini {
	background: var(--agm-blanco);
}

/* --------------------------------------------------------------------------
   4. Teléfono y botón de la cabecera
   -------------------------------------------------------------------------- */
#masthead .gdw-agm-header__tel {
	width: auto !important;
}

#masthead .gdw-agm-header__tel .elementor-heading-title,
#masthead .gdw-agm-header__tel .elementor-icon-list-text {
	font-family: var(--agm-fb);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--agm-cab-texto) !important;
}

#masthead .gdw-agm-header__tel a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--agm-cab-texto) !important;
	transition: color 0.35s var(--agm-ease);
}

#masthead .gdw-agm-header__tel .elementor-heading-title a::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}

#masthead .gdw-agm-header__tel a:hover,
#masthead .gdw-agm-header__tel a:focus-visible {
	color: var(--agm-cab-hover) !important;
}

#masthead .gdw-agm-header .gdw-agm-btn {
	width: auto !important;
}

/* el teléfono, solo cuando cabe (no entre 1025 y 1279 px, con el menú de escritorio, ni en el
   móvil); en el móvil, el botón va dentro del menú */
@media (min-width: 1025px) and (max-width: 1279px), (max-width: 767px) {
	#masthead .gdw-agm-header__tel {
		display: none !important;
	}
}

/* en tableta (sin menú de escritorio), el teléfono y el botón a la derecha, junto al botón del menú */
@media (min-width: 768px) and (max-width: 1024px) {
	#masthead .gdw-agm-header__tel {
		margin-left: auto !important;
	}

	#masthead .gdw-agm-header:not(:has(.gdw-agm-header__tel)) .gdw-agm-btn {
		margin-left: auto !important;
	}
}

@media (max-width: 767px) {
	#masthead .gdw-agm-header .gdw-agm-btn {
		display: none !important;
	}
}

/* --------------------------------------------------------------------------
   5. Menú móvil (flyout de Ultimate Addons): botón de dos líneas y panel
   noche a pantalla completa que se abre de arriba abajo. El icono de HFE
   queda encima del botón, transparente: es el que recibe el toque.
   -------------------------------------------------------------------------- */
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle {
	position: relative;
	display: flex;
	width: 44px;
	height: 44px;
	margin: 0 -10px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--agm-cab-texto);
	cursor: pointer;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon {
	position: absolute !important;
	inset: 0;
	z-index: 2;
	margin: 0 !important;
	opacity: 0;
	cursor: pointer;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon svg {
	width: 100% !important;
	height: 100% !important;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle::before,
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle::after {
	content: "";
	position: absolute;
	right: 10px;
	height: 1.5px;
	border-radius: 2px;
	background: currentColor;
	transition: width 0.45s var(--agm-ease);
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle::before {
	top: 17px;
	width: 24px;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle::after {
	top: 25px;
	width: 16px;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle:hover::after,
#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle:focus-visible::after {
	width: 24px;
}

#masthead .gdw-header__nav--mobile .hfe-nav-menu__toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 8px;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-overlay {
	display: none !important;
}

#masthead .gdw-header__nav--mobile .hfe-side {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	height: 100dvh !important;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	background:
		radial-gradient(70% 45% at 85% 0%, rgba(1, 78, 151, 0.55), rgba(1, 78, 151, 0) 70%),
		radial-gradient(60% 40% at 0% 100%, rgba(115, 251, 211, 0.12), rgba(115, 251, 211, 0) 70%),
		var(--agm-noche) !important;
	box-shadow: none !important;
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path 0.7s var(--agm-ease), visibility 0s linear 0.7s !important;
}

#masthead .gdw-header__nav--mobile .hfe-side.hfe-flyout-show {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	transition: clip-path 0.7s var(--agm-ease), visibility 0s linear 0s !important;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-content {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: calc(100px + var(--wp-admin--admin-bar--height, 0px)) 24px 32px !important;
	background: transparent !important;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-content > nav {
	flex: 1 0 auto;
}

#masthead .gdw-header__nav--mobile .hfe-side ul.hfe-nav-menu {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
}

#masthead .gdw-header__nav--mobile .hfe-side .hfe-nav-menu > li {
	margin: 0 !important;
	border: 0 !important;
	opacity: 0;
	translate: 0 18px;
	transition: opacity 0.6s var(--agm-ease), translate 0.7s var(--agm-ease);
}

#masthead .gdw-header__nav--mobile .hfe-side.hfe-flyout-show .hfe-nav-menu > li {
	opacity: 1;
	translate: 0 0;
	transition-delay: calc(0.22s + var(--agm-i, 0) * 0.06s);
}

#masthead .gdw-header__nav--mobile .hfe-side a.hfe-menu-item {
	display: inline-flex !important;
	padding: 9px 0 !important;
	border: 0 !important;
	background: none !important;
	font-family: var(--agm-ft) !important;
	font-size: clamp(26px, 7vw, 40px) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	color: var(--agm-blanco) !important;
	text-decoration: none !important;
}

/* la opción actual (y la madre): menta, con una barra a la izquierda */
#masthead .gdw-header__nav--mobile .hfe-side :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-side :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > .hfe-has-submenu-container > a.hfe-menu-item {
	padding-left: 16px !important;
	box-shadow: inset 3px 0 0 var(--agm-menta);
}

#masthead .gdw-header__nav--mobile .hfe-side a.hfe-menu-item:hover,
#masthead .gdw-header__nav--mobile .hfe-side a.hfe-menu-item:focus-visible,
#masthead .gdw-header__nav--mobile .hfe-side .current-menu-item > a.hfe-menu-item,
#masthead .gdw-header__nav--mobile .hfe-side .current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item {
	color: var(--agm-menta) !important;
}

#masthead .gdw-header__nav--mobile .hfe-side .hfe-menu-toggle,
#masthead .gdw-header__nav--mobile .hfe-side .sub-arrow {
	display: none !important;
}

/* submenús siempre abiertos, en una línea */
#masthead .gdw-header__nav--mobile .hfe-side .sub-menu {
	position: static !important;
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0;
	width: auto !important;
	height: auto !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 0 10px !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
}

#masthead .gdw-header__nav--mobile .hfe-side .sub-menu li {
	display: flex;
	align-items: center;
	margin: 0 !important;
	border: 0 !important;
}

/* «AGM S8 · AGM 8000C S3 PRO» */
#masthead .gdw-header__nav--mobile .hfe-side .sub-menu li + li::before {
	content: "\00B7";
	content: "\00B7" / "";
	margin: 0 12px;
	color: var(--agm-plata);
}

#masthead .gdw-header__nav--mobile .hfe-side a.hfe-sub-menu-item {
	padding: 4px 0 !important;
	border: 0 !important;
	background: none !important;
	font-family: var(--agm-fb) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	white-space: nowrap !important;
	color: var(--agm-plata) !important;
	text-decoration: none !important;
}

#masthead .gdw-header__nav--mobile .hfe-side .current-menu-item > a.hfe-sub-menu-item {
	color: var(--agm-menta) !important;
}

#masthead .gdw-header__nav--mobile .hfe-side a.hfe-sub-menu-item:hover,
#masthead .gdw-header__nav--mobile .hfe-side a.hfe-sub-menu-item:focus-visible {
	color: var(--agm-menta) !important;
}

/* cerrar: aspa fina en un círculo */
#masthead .gdw-header__nav--mobile .hfe-flyout-close {
	position: absolute !important;
	top: calc(16px + var(--wp-admin--admin-bar--height, 0px)) !important;
	right: 14px !important;
	left: auto !important;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	color: var(--agm-blanco);
	cursor: pointer;
	transition: border-color 0.3s var(--agm-ease), background-color 0.3s var(--agm-ease);
}

#masthead .gdw-header__nav--mobile .hfe-flyout-close svg,
#masthead .gdw-header__nav--mobile .hfe-flyout-close i {
	opacity: 0;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-close::before,
#masthead .gdw-header__nav--mobile .hfe-flyout-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 1.5px;
	margin: -0.75px 0 0 -9px;
	background: currentColor;
	rotate: 45deg;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-close::after {
	rotate: -45deg;
}

#masthead .gdw-header__nav--mobile .hfe-flyout-close:hover,
#masthead .gdw-header__nav--mobile .hfe-flyout-close:focus-visible {
	border-color: var(--agm-menta);
	background-color: rgba(115, 251, 211, 0.08);
}

#masthead .gdw-header__nav--mobile .hfe-flyout-close:focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

/* logo arriba y teléfono + botón abajo (los copia el JS de la cabecera) */
.gdw-agm-menu .gdw-agm-menu__logo {
	position: absolute;
	top: calc(22px + var(--wp-admin--admin-bar--height, 0px));
	left: 24px;
}

.gdw-agm-menu .gdw-agm-menu__logo a {
	display: block;
}

.gdw-agm-menu .gdw-agm-menu__logo img {
	display: block;
	width: auto !important;
	height: 34px !important;
	max-width: none !important;
}

.gdw-agm-menu .gdw-agm-menu__pie {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	opacity: 0;
	transition: opacity 0.6s var(--agm-ease);
}

.gdw-agm-menu.hfe-flyout-show .gdw-agm-menu__pie {
	opacity: 1;
	transition-delay: 0.55s;
}

.gdw-agm-menu .gdw-agm-menu__tel {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--agm-fb);
	font-size: 18px;
	font-weight: 600;
	color: var(--agm-blanco) !important;
	text-decoration: none !important;
}

.gdw-agm-menu .gdw-agm-menu__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 28px;
	border-radius: 999px;
	background: var(--agm-azul);
	font-family: var(--agm-ft);
	font-size: 16px;
	font-weight: 600;
	color: var(--agm-blanco) !important;
	text-decoration: none !important;
	transition: background-color 0.35s var(--agm-ease);
}

.gdw-agm-menu .gdw-agm-menu__cta:hover,
.gdw-agm-menu .gdw-agm-menu__cta:focus-visible {
	background: var(--agm-azul-2);
}

.gdw-agm-menu :is(.gdw-agm-menu__tel, .gdw-agm-menu__cta, .gdw-agm-menu__logo a):focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

/* Con el menú abierto: la página no se mueve debajo y WhatsApp y cookies se apartan */
html.gdw-agm-sin-scroll,
html.gdw-agm-sin-scroll body {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

#gdw-wa,
.cky-btn-revisit-wrapper {
	transition: opacity 0.3s;
}

body.gdw-agm-menu-abierto #gdw-wa,
body.gdw-agm-menu-abierto .cky-btn-revisit-wrapper {
	opacity: 0 !important;
	pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   6. Pie (plantilla 37): fondo noche
   gdw-agm-footer en cada contenedor de primer nivel del pie:
   __franja (logo blanco grande, frase y botón), __columnas (4: Equipamiento,
   Servicio, Contacto y Legal: __col--equipamiento/--servicio/--contacto/
   --legal, cada una con __titulo y __lista o __menu), __abajo (__copy,
   __credito, __arriba).
   -------------------------------------------------------------------------- */
.gdw-agm-footer {
	position: relative;
	background-color: var(--agm-noche);
	color: var(--agm-plata);
}

.gdw-agm-footer a {
	color: inherit;
	transition: color 0.3s var(--agm-ease);
}

.gdw-agm-footer a:hover,
.gdw-agm-footer a:focus-visible {
	color: var(--agm-menta);
}

/* Franja de arriba */
.gdw-agm-footer__franja {
	border-bottom: 1px solid var(--agm-linea-osc);
}

.gdw-agm-footer__logo {
	width: auto !important;
}

.gdw-agm-footer__logo img {
	display: block;
	width: auto !important;
	height: clamp(52px, 6vw, 84px) !important;
	max-width: 100% !important;
	object-fit: contain;
}

.gdw-agm-footer__frase .elementor-heading-title {
	max-width: 20em;
	font-family: var(--agm-ft);
	font-size: clamp(22px, 2.4vw, 34px);
	font-weight: 600;
	line-height: 1.25;
	color: var(--agm-blanco);
	text-wrap: balance;
}

/* Columnas */
.gdw-agm-footer__columnas,
.gdw-agm-footer__columnas > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-template-rows: none !important;
	grid-auto-rows: auto !important;
	gap: 40px 32px !important;
}

.gdw-agm-footer__col {
	width: auto !important;
	min-width: 0;
}

@media (max-width: 1024px) {
	.gdw-agm-footer__columnas,
	.gdw-agm-footer__columnas > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 480px) {
	.gdw-agm-footer__columnas,
	.gdw-agm-footer__columnas > .e-con-inner {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;
	}
}

.gdw-agm-footer__titulo .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--agm-menta);
}

.gdw-agm-footer__lista .elementor-icon-list-items {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.gdw-agm-footer__lista .elementor-icon-list-item {
	align-items: flex-start !important;
	padding: 5px 0 !important;
}

.gdw-agm-footer__lista .elementor-icon-list-item::after {
	display: none !important;
}

.gdw-agm-footer__lista .elementor-icon-list-text {
	font-family: var(--agm-fb);
	font-size: 15px;
	line-height: 1.5;
	color: var(--agm-plata);
	overflow-wrap: anywhere;
	transition: color 0.3s var(--agm-ease);
}

.gdw-agm-footer__lista a:hover .elementor-icon-list-text,
.gdw-agm-footer__lista a:focus-visible .elementor-icon-list-text {
	color: var(--agm-blanco);
}

.gdw-agm-footer__lista .elementor-icon-list-icon {
	padding-top: 3px;
	color: var(--agm-menta);
}

.gdw-agm-footer__lista .elementor-icon-list-icon svg {
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.gdw-agm-footer__lista .elementor-icon-list-icon i {
	font-size: 15px;
	color: currentColor;
}

/* táctil: cada enlace con 44 px de alto de zona de toque (WCAG 2.5.8 pide 24); se solapan
   3 px por arriba y por abajo para que la lista no se vea mucho más separada */
@media (pointer: coarse), (max-width: 1024px) {
	.gdw-agm-footer__lista .elementor-icon-list-items {
		gap: 0;
	}

	.gdw-agm-footer__lista .elementor-icon-list-item {
		padding: 0 !important;
		margin: -3px 0 !important;
	}

	.gdw-agm-footer__lista .elementor-icon-list-item > a {
		display: flex;
		align-items: center;
		min-height: 44px;
	}

	.gdw-agm-footer__menu ul.hfe-nav-menu {
		gap: 0;
	}

	.gdw-agm-footer__menu .menu-item {
		margin: -3px 0 !important;
	}

	.gdw-agm-footer__menu a.hfe-menu-item {
		display: flex !important;
		align-items: center;
		min-height: 44px;
		padding: 0 !important;
	}

	.gdw-agm-footer__abajo .elementor-heading-title a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* menú «legal» (Ultimate Addons) en columna */
.gdw-agm-footer__menu ul.hfe-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

.gdw-agm-footer__menu .menu-item {
	border: 0 !important;
}

.gdw-agm-footer__menu a.hfe-menu-item {
	padding: 5px 0 !important;
	border: 0 !important;
	background: none !important;
	font-family: var(--agm-fb) !important;
	font-size: 15px !important;
	color: var(--agm-plata) !important;
}

.gdw-agm-footer__menu a.hfe-menu-item:hover,
.gdw-agm-footer__menu a.hfe-menu-item:focus-visible {
	color: var(--agm-blanco) !important;
}

/* Línea final */
.gdw-agm-footer__abajo {
	border-top: 1px solid var(--agm-linea-osc);
}

.gdw-agm-footer__abajo > .elementor-widget,
.gdw-agm-footer__abajo > .e-con-inner > .elementor-widget {
	width: auto !important;
}

.gdw-agm-footer__abajo,
.gdw-agm-footer__abajo .elementor-heading-title,
.gdw-agm-footer__copy .hfe-copyright-wrapper,
.gdw-agm-footer__copy .hfe-copyright-wrapper a {
	font-family: var(--agm-fb);
	font-size: 14px;
	color: var(--agm-plata);
}

.gdw-agm-footer__credito .elementor-heading-title a,
.gdw-agm-footer__arriba .elementor-heading-title a {
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px;
	transition: background-size 0.5s var(--agm-ease), color 0.3s var(--agm-ease);
}

.gdw-agm-footer__credito .elementor-heading-title a:hover,
.gdw-agm-footer__arriba .elementor-heading-title a:hover,
.gdw-agm-footer__credito .elementor-heading-title a:focus-visible,
.gdw-agm-footer__arriba .elementor-heading-title a:focus-visible {
	background-size: 100% 1px;
}

.gdw-agm-footer :is(a, button):focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   7. «Reducir movimiento»
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	#masthead,
	#masthead .gdw-agm-header,
	#masthead .gdw-agm-header::after,
	#masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco),
	#masthead :is(.gdw-agm-header__logo--color, .gdw-agm-header__logo--blanco) img,
	#masthead .gdw-header__nav--desktop .sub-menu,
	#masthead .gdw-header__nav--mobile .hfe-side,
	#masthead .gdw-header__nav--mobile .hfe-side .hfe-nav-menu > li,
	.gdw-agm-menu .gdw-agm-menu__pie {
		transition: none !important;
	}
}
/* <<< fin AGM 30-cabecera-pie.css */

/* >>> AGM 40-ajustes.css */
/* ==========================================================================
   AGM Dental · 40-ajustes.css · 10-10-2026 · Mario (pide) · Claude
   Arreglos tras la primera revisión en el navegador (agmdental.es, 1440 y 375 px).
   ========================================================================== */

/* 1. Fotos verticales de producto (aspiraciones, compresores): que no pasen de
      la pantalla. En Sala de máquinas la vista grande del giro medía ~1000 px. */
.gdw-agm-giro--miniaturas .gdw-agm-giro__vista img,
.gdw-agm-config__vista img {
	width: auto !important;
	max-width: 100% !important;
	max-height: min(62vh, 560px) !important;
	margin-inline: auto;
	object-fit: contain;
}

/* 2. Colores del Max Piezo 3+: la foto verde es vertical y las otras dos,
      apaisadas. Caja de la misma proporción para que no salte al cambiar. */
.gdw-agm-colores__vista img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	max-height: min(56vh, 500px) !important;
	object-fit: contain;
}

/* 3. Datos que son texto («Toda la Península», «Repuestos originales»…):
      más pequeños que los números (la clase la pone 40-ajustes.js). */
.elementor-widget-heading.gdw-agm-dato__num.gdw-agm-dato__num--texto .elementor-heading-title {
	font-size: clamp(24px, 2.3vw, 36px);
	line-height: 1.12;
}

/* 4. Aviso de reCAPTCHA bajo el formulario: el gris de la base (#8A8A86)
      daba 3,2:1 sobre niebla. */
body .gdw-form__recaptcha,
body .gdw-form__recaptcha p {
	color: var(--agm-texto, #3E4A5C);
}

body .gdw-form__recaptcha a {
	color: var(--agm-azul, #014E97);
}

/* 5. Rejilla de piezas (bento) en el móvil: dos columnas en vez de una
      (4 piezas ocupaban ~1600 px de scroll). Revisión de móviles, 10-10-2026. */
@media (max-width: 600px) {
	.gdw-agm-bento,
	.gdw-agm-bento > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}

	.gdw-agm-bento .gdw-agm-bento__celda {
		padding: 14px !important;
		gap: 8px !important;
	}

	.gdw-agm-bento__celda .elementor-widget-image img {
		max-height: 150px;
	}

	.gdw-agm-bento__celda .elementor-widget-heading .elementor-heading-title {
		font-size: 16px;
		line-height: 1.25;
	}

	.gdw-agm-bento__celda .elementor-widget-text-editor,
	.gdw-agm-bento__celda .elementor-widget-text-editor p {
		font-size: 14px;
		line-height: 1.45;
	}
}

/* 7. Cabecera en tableta: el teléfono va oculto (Elementor) y la barra reparte el
      espacio entre logo, botón y menú: el botón quedaba en el centro. A la derecha. */
@media (max-width: 1024px) {
	#masthead .gdw-agm-header .gdw-agm-header__cta {
		margin-left: auto !important;
		margin-right: 14px !important;
	}
}

/* 8. Rótulos del plano (cotas) de la portada: las líneas del dibujo los cruzaban y
      no se leían bien (Mario: «que se vea bien siempre»). Halo oscuro alrededor de
      las letras, más claros y del todo opacos. */
body .gdw-home-hero.is-escaneado .gdw-home-hero__cota {
	opacity: 1;
}

body .gdw-home-hero .gdw-home-hero__cota .elementor-heading-title {
	font-size: 11.5px;
	color: #DCE7F2 !important;
	text-shadow:
		0 0 3px #020B16,
		0 0 6px #020B16,
		0 0 10px #020B16,
		0 0 16px rgba(2, 11, 22, 0.9);
}

/* (Las reglas de los rótulos, 8 y 10, llevan «body» delante: este archivo va antes que
   50-wow.css y, a igual especificidad, ganaría el de 50-wow.) */

/* 10. Rótulos del plano fuera de las líneas del dibujo (Mario: «Lámpara LED, como se
       mete en el dibujo, no se lee»). Posiciones libres en las dos vistas que usa el
       plano (perfil en escritorio; tres cuartos en pila): «Lámpara LED» a la derecha
       de la lámpara, «Pantalla táctil» encima de la pantalla (texto arriba, como la 1
       y la 3) y «Memoria» a la derecha del brazo superior. La 4 ya estaba libre. */
body .gdw-home-hero .gdw-home-hero__cota--1 { --agm-kx: 64%; --agm-ky: 22%; --agm-kw: 16%; }
body .gdw-home-hero .gdw-home-hero__cota--2 { --agm-kx: 84%; --agm-ky: 34%; --agm-kw: 14%; transform: translateY(-100%); }
body .gdw-home-hero .gdw-home-hero__cota--3 { --agm-kx: 76%; --agm-ky: 12%; --agm-kw: 18%; }

body .gdw-home-hero .gdw-home-hero__cota--2 .elementor-heading-title {
	padding: 0 0 9px;
}

body .gdw-home-hero .gdw-home-hero__cota--2 .elementor-heading-title::after {
	top: auto;
	bottom: 0;
}

/* con la linterna encima, el halo oscuro se mantiene (el brillo menta va por fuera) */
body .gdw-home-hero .gdw-home-hero__cota.is-luz .elementor-heading-title {
	text-shadow:
		0 0 3px #020B16,
		0 0 6px #020B16,
		0 0 10px #020B16,
		0 0 18px rgba(115, 251, 211, 0.55);
}

/* 11. Giro del S8 a pantalla completa (escena fija; la pone 20-producto.js con
       gdw-agm-giro-escena en la sección y gdw-agm-giro--fijo en el visor). La sección,
       sin relleno propio; el marco (su .e-con-inner) ocupa la pantalla, deja sitio a la
       cabecera fija y reparte título, sillón y mandos. */
html.gdw-agm-js .gdw-agm-sec.gdw-agm-giro-escena {
	--padding-top: 0px !important;
	--padding-bottom: 0px !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

html.gdw-agm-js .gdw-agm-giro-escena > .e-con-inner.gdw-agm-escena__marco {
	flex: 0 0 auto !important;   /* si no, crece hasta el alto de la sección y no se queda fijo */
	height: 100svh !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: safe center !important;
	align-items: center !important;
	gap: clamp(6px, 1.6vh, 20px) !important;
	box-sizing: border-box;
	padding: 108px 0 clamp(14px, 3vh, 32px) !important;
}

html.gdw-agm-js .gdw-agm-giro--fijo {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	width: 100% !important;
	justify-content: center !important;
}

html.gdw-agm-js .gdw-agm-giro--fijo .gdw-agm-giro__escena {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	max-height: min(56svh, 700px);
}

html.gdw-agm-js .gdw-agm-giro--fijo .gdw-agm-giro__vista img {
	width: auto !important;
	max-width: 100% !important;
	height: 100% !important;
	max-height: min(54svh, 680px) !important;
	margin-inline: auto;
	object-fit: contain;
}

@media (max-width: 767px) {
	html.gdw-agm-js .gdw-agm-giro-escena > .e-con-inner.gdw-agm-escena__marco {
		padding-top: 84px !important;
	}

	html.gdw-agm-js .gdw-agm-giro--fijo .gdw-agm-giro__escena {
		max-height: 46svh;
	}

	html.gdw-agm-js .gdw-agm-giro--fijo .gdw-agm-giro__vista img {
		max-height: 44svh !important;
	}
}

/* 12. Tarjetas de producto en rejilla (Sillones dentales: S8 y 8000C; Sala de máquinas: SD70 y SD140).
       Mario, 11-10-2026: «no respetan los tamaños de las fichas […] que queden cuadradas y del mismo
       tamaño». Las fotos tienen proporciones distintas (S8 cuadrada, 8000C apaisada) y todo lo de debajo
       empezaba a otra altura: la foto, en una caja 4:3 igual para todas (sin recortar el producto) y el
       botón, abajo del todo. (En la portada, 10-inicio.css ya lo hacía con sus cuatro tarjetas.) */
body .gdw-rejilla > .gdw-agm-tarjeta .gdw-agm-tarjeta__img img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: contain;
}

body .gdw-rejilla > .gdw-agm-tarjeta > .gdw-agm-botones:last-child,
body .gdw-rejilla > .gdw-agm-tarjeta > .e-con-inner > .gdw-agm-botones:last-child {
	margin-top: auto !important;
}

/* 13. Miniaturas de las vistas de aspiración (Sala de máquinas: frente, lado, detrás; 13-10-2026). En
       tableta y móvil la fila pasaba a varias líneas y cada miniatura salía a su tamaño real (712 px o más):
       siempre las tres en una fila, a partes iguales. */
body .gdw-sala-aspiracion__miniaturas {
	flex-wrap: nowrap !important;
}

body .gdw-sala-aspiracion__miniaturas > .gdw-sala-aspiracion__mini {
	flex: 1 1 0 !important;
	min-width: 0;
	max-width: 180px;
}

/* las tres del mismo alto (las fotos miden distinto: 0,58 a 0,64 de ancho por alto) */
body .gdw-sala-aspiracion__miniaturas > .gdw-sala-aspiracion__mini img {
	aspect-ratio: 3 / 5;
	object-fit: contain;
}

/* 14. Datos de Sobre nosotros (+10, España y Portugal…; gdw-sobre-nosotros-datos). Mario, 13-10-2026: «pon las
       tarjetas en fondo blanco y el borde con el mismo degradado que las imágenes» (y una sola línea de fondo:
       70-neon.js). Cada dato, tarjeta blanca con el borde en degradado de 92-fotos.css, sin la raya de arriba. */
body .gdw-sobre-nosotros-datos .gdw-agm-dato {
	padding: 28px 28px 30px !important;
	border: 1.5px solid transparent !important;
	border-radius: 24px;
	background: linear-gradient(#FFFFFF, #FFFFFF) padding-box, var(--agm-borde-degradado) border-box;
}

body .gdw-sobre-nosotros-datos .gdw-agm-dato::after {
	display: none;
}

@media (max-width: 767px) {
	body .gdw-sobre-nosotros-datos .gdw-agm-dato {
		padding: 20px 18px 22px !important;
		border-radius: 18px;
	}
}

/* 15. «Lo que nos diferencia» de Servicio técnico (gdw-servicio-tecnico-pilar). Mario, 13-10-2026: «a estas cards
       ponles el mismo borde de degradado de colores de las imágenes» y «hazlas más atractivas»: borde en
       degradado, un brillo de color en dos esquinas, el número de cada una en una pastilla, una raya en degradado
       bajo el título y, al pasar el ratón, la tarjeta sube un poco con una sombra de color y la raya se alarga.
       (La transición repite la de la aparición, gdw-agm-rv, para no perderla.) */
body .gdw-servicio-tecnico-pilares__rejilla {
	counter-reset: agm-pilar;
}

body .gdw-servicio-tecnico-pilar {
	counter-increment: agm-pilar;
	isolation: isolate;
	border: 1.5px solid transparent !important;
	background: linear-gradient(#FFFFFF, #FFFFFF) padding-box, var(--agm-borde-degradado) border-box !important;
	transition:
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s),
		transform 0.5s var(--agm-ease),
		box-shadow 0.5s var(--agm-ease);
}

/* brillo de color: menta arriba a la derecha y violeta abajo a la izquierda (detrás del texto) */
body .gdw-servicio-tecnico-pilar::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background:
		radial-gradient(70% 55% at 100% 0%, rgba(115, 251, 211, 0.16), rgba(115, 251, 211, 0) 70%),
		radial-gradient(60% 50% at 0% 100%, rgba(123, 92, 255, 0.09), rgba(123, 92, 255, 0) 70%);
	opacity: 0.75;
	transition: opacity 0.5s var(--agm-ease);
}

/* el número (01, 02…), en una pastilla menta encima del título */
body .gdw-servicio-tecnico-pilar > .elementor-widget-heading::before {
	content: counter(agm-pilar, decimal-leading-zero);
	display: inline-flex;
	align-items: center;
	margin-bottom: 18px;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(22, 199, 154, 0.1);
	box-shadow: inset 0 0 0 1px rgba(22, 199, 154, 0.28);
	color: #0A7A5E;
	font-family: var(--agm-fb);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.2;
}

/* raya en degradado bajo el título */
body .gdw-servicio-tecnico-pilar > .elementor-widget-heading::after {
	content: "";
	display: block;
	width: 56px;
	height: 2px;
	margin-top: 16px;
	border-radius: 2px;
	background: linear-gradient(90deg, #16C79A, #13A8E0, #7B5CFF);
	transform-origin: 0 50%;
	transition: transform 0.6s var(--agm-ease);
}

@media (hover: hover) and (pointer: fine) {
	body .gdw-servicio-tecnico-pilar:hover {
		transform: translateY(-6px);
		box-shadow:
			0 1px 0 rgba(4, 24, 46, 0.04),
			0 44px 80px -46px rgba(91, 108, 255, 0.5),
			0 28px 54px -36px rgba(22, 199, 154, 0.42) !important;
	}

	body .gdw-servicio-tecnico-pilar:hover::after {
		opacity: 1;
	}

	body .gdw-servicio-tecnico-pilar:hover > .elementor-widget-heading::after {
		transform: scaleX(1.8);
	}
}

@media (prefers-reduced-motion: reduce) {
	body .gdw-servicio-tecnico-pilar,
	body .gdw-servicio-tecnico-pilar::after,
	body .gdw-servicio-tecnico-pilar > .elementor-widget-heading::after {
		transition: none !important;
	}

	body .gdw-servicio-tecnico-pilar:hover {
		transform: none;
	}
}

/* 9. Móvil: «Desliza» quedaba encima del sillón (y del botón «¿Hablamos?») en la
      primera pantalla; el sillón que asoma ya invita a bajar. */
@media (max-width: 767px) {
	html.gdw-agm-js .gdw-home-hero .gdw-home-hero__desliza {
		display: none !important;
	}
}

/* 6. H1 largos en la cabecera de página (Servicio técnico: «Nos ocupamos de tu
      equipamiento…», 6 líneas a 80 px). La clase la pone 40-ajustes.js (> 48 letras). */
.gdw-agm-phero .elementor-widget-heading.gdw-agm-h.gdw-agm-h1--largo .elementor-heading-title {
	font-size: clamp(34px, 4.2vw, 60px);
	line-height: 1.08;
}
/* <<< fin AGM 40-ajustes.css */

/* >>> AGM 50-wow.css */
/* ==========================================================================
   AGM Dental · 50-wow.css (gdw-agm 1.1, 10-10-2026 · Mario pide · Claude)
   Segunda vuelta de la portada (DISENO §12.1 y §12.2). Lo mueven
   js/50-wow.js y js/10-inicio.js (tramos del hero). Estructura: ../LEEME.md.
    1. Hero: «Del plano al sillón» + «Linterna»
       Estados (en .gdw-home-hero): gdw-home-hero--plano (hay plano: 340svh),
       is-plano (el plano está dibujado), is-escaneando / is-escaneado,
       is-encendido (ya se ha bajado: queda el sillón real).
       Variables: --agm-scan (barrido, 0 → 1), --agm-lx / --agm-ly (foco, en %
       del sillón), --agm-lr (radio del foco) y --agm-enc (se enciende, 0 → 1).
    2. «Viaje al detalle» (gdw-home-viaje): secuencia normal (base) y escena
       en escritorio (.is-viaje). Variables: --agm-vc, --agm-vz, --agm-vb,
       --agm-vf, --agm-ve (sección), --agm-vp (pieza), --agm-vl (línea),
       --agm-vrx / --agm-vry (radios del hexágono), --agm-ux / --agm-uy.
   Sin JS, en el editor o con «reducir movimiento»: todo visible y quieto.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Hero: «Del plano al sillón» + «Linterna»
   -------------------------------------------------------------------------- */
.gdw-home-hero.gdw-home-hero--plano {
	--agm-alto: 340svh;
}

/* en pila (móvil y tableta vertical; misma consulta que 10-inicio.css) */
@media (max-width: 899px), (max-width: 1024px) and (orientation: portrait) {
	.gdw-home-hero.gdw-home-hero--plano {
		--agm-alto: 290svh;
		--agm-y0: 40svh;   /* el plano, debajo del texto y a la vista (en tableta vertical lo coloca el JS) */
	}
}

@media (max-width: 767px) {
	.gdw-home-hero.gdw-home-hero--plano {
		--agm-alto: 250svh;
	}
}

/* El radio efectivo del foco: crece hasta cubrirlo todo al «encenderse» */
.gdw-home-hero.is-plano .gdw-home-hero__sillon {
	--agm-lre: calc(var(--agm-lr, 130px) + var(--agm-enc, 0) * 180vmax);
}

/* El plano: encima de las vistas, con su misma caja (dentro del sillón) */
.gdw-home-hero .gdw-home-hero__plano {
	position: absolute !important;
	inset: 0;
	z-index: 2;
	display: none;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	pointer-events: none;
}

.gdw-home-hero.is-plano:not(.is-encendido) .gdw-home-hero__plano {
	display: block;
	opacity: calc(1 - var(--agm-enc, 0));
	/* fuera del foco, el plano; dentro, la foto */
	-webkit-mask-image: radial-gradient(circle at var(--agm-lx, 52%) var(--agm-ly, 48%), transparent 0, transparent var(--agm-lre), #000 calc(var(--agm-lre) + 90px));
	mask-image: radial-gradient(circle at var(--agm-lx, 52%) var(--agm-ly, 48%), transparent 0, transparent var(--agm-lre), #000 calc(var(--agm-lre) + 90px));
}

.gdw-home-hero .gdw-home-hero__plano-lienzo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 0 3px rgba(115, 251, 211, 0.5));
	/* el barrido: se ve hasta la línea de escaneo */
	-webkit-mask-image: linear-gradient(90deg, #000 calc(var(--agm-scan, 1) * 100%), transparent calc(var(--agm-scan, 1) * 100% + 5%));
	mask-image: linear-gradient(90deg, #000 calc(var(--agm-scan, 1) * 100%), transparent calc(var(--agm-scan, 1) * 100% + 5%));
}

.gdw-home-hero.is-escaneado .gdw-home-hero__plano-lienzo {
	-webkit-mask-image: none;
	mask-image: none;
}

/* el brillo vertical que acompaña al barrido */
.gdw-home-hero .gdw-home-hero__plano::after {
	content: "";
	position: absolute;
	top: -3%;
	bottom: -3%;
	left: calc(var(--agm-scan, 0) * 100%);
	width: 2px;
	margin-left: -1px;
	background: linear-gradient(180deg, rgba(115, 251, 211, 0) 0%, var(--agm-menta) 18%, var(--agm-menta) 82%, rgba(115, 251, 211, 0) 100%);
	box-shadow: 0 0 18px 5px rgba(115, 251, 211, 0.4);
	opacity: 0;
	transition: opacity 0.4s var(--agm-ease);
}

.gdw-home-hero.is-escaneando .gdw-home-hero__plano::after {
	opacity: 1;
}

/* la linterna: la foto solo dentro del foco mientras dura el plano */
.gdw-home-hero.is-plano:not(.is-encendido) .gdw-home-hero__vista {
	-webkit-mask-image: radial-gradient(circle at var(--agm-lx, 52%) var(--agm-ly, 48%), #000 0, #000 var(--agm-lre), transparent calc(var(--agm-lre) + 90px));
	mask-image: radial-gradient(circle at var(--agm-lx, 52%) var(--agm-ly, 48%), #000 0, #000 var(--agm-lre), transparent calc(var(--agm-lre) + 90px));
}

/* la rejilla de plano, en el escenario, mientras dura el plano */
.gdw-home-hero.is-plano .gdw-home-hero__escenario {
	isolation: isolate;
}

.gdw-home-hero.is-plano:not(.is-encendido) .gdw-home-hero__escenario::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(115, 251, 211, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(115, 251, 211, 0.07) 1px, transparent 1px),
		linear-gradient(rgba(115, 251, 211, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(115, 251, 211, 0.03) 1px, transparent 1px);
	background-size: 160px 160px, 160px 160px, 32px 32px, 32px 32px;
	background-position: center;
	-webkit-mask-image: radial-gradient(70% 70% at 64% 52%, #000 0%, transparent 78%);
	mask-image: radial-gradient(70% 70% at 64% 52%, #000 0%, transparent 78%);
	opacity: calc(1 - var(--agm-enc, 0));
}

/* «Desliza»: se va al empezar a bajar (con el plano, el texto sigue un poco más) */
html.gdw-agm-js .gdw-home-hero.gdw-home-hero--plano .gdw-home-hero__desliza {
	opacity: calc(1 - var(--agm-enc, 0) * 3);
}

/* Las cotas (decoración: el JS pone aria-hidden en su contenedor). Posición en % de
   la vista de perfil: --agm-kx (izquierda), --agm-ky (altura de la línea), --agm-kw
   (largo). Las 1 y 3, con el texto encima de la línea; las 2 y 4, debajo. */
.gdw-home-hero .gdw-home-hero__cotas {
	position: absolute !important;
	inset: 0;
	z-index: 3;
	display: none !important;
	width: 100% !important;
	padding: 0 !important;
	pointer-events: none;
}

.gdw-home-hero.is-plano:not(.is-encendido) .gdw-home-hero__cotas {
	display: block !important;
	opacity: calc(1 - var(--agm-enc, 0) * 1.5);
}

.gdw-home-hero .gdw-home-hero__cota {
	position: absolute !important;
	left: var(--agm-kx, 40%);
	top: var(--agm-ky, 50%);
	width: var(--agm-kw, 15%) !important;
	max-width: none !important;
	margin: 0 !important;
	transform: translateY(-100%);
	opacity: 0;
	translate: 0 6px;
	transition: opacity 0.6s var(--agm-ease), translate 0.6s var(--agm-ease) !important;
	transition-delay: var(--agm-kd, 0s) !important;
}

.gdw-home-hero .gdw-home-hero__cota--1 { --agm-kx: 46%; --agm-ky: 16%; --agm-kw: 17%; --agm-kd: 0s; }
.gdw-home-hero .gdw-home-hero__cota--2 { --agm-kx: 90%; --agm-ky: 50%; --agm-kw: 8%; --agm-kd: 0.15s; }
.gdw-home-hero .gdw-home-hero__cota--3 { --agm-kx: 73%; --agm-ky: 34%; --agm-kw: 15%; --agm-kd: 0.3s; }
.gdw-home-hero .gdw-home-hero__cota--4 { --agm-kx: 17%; --agm-ky: 84%; --agm-kw: 34%; --agm-kd: 0.45s; }

.gdw-home-hero .gdw-home-hero__cota--2,
.gdw-home-hero .gdw-home-hero__cota--4 {
	transform: none;
}

.gdw-home-hero.is-escaneado .gdw-home-hero__cota {
	opacity: 0.7;
	translate: 0 0;
}

.gdw-home-hero.is-escaneado .gdw-home-hero__cota.is-luz {
	opacity: 1;
}

.gdw-home-hero .gdw-home-hero__cota .elementor-heading-title {
	position: relative;
	display: flex;
	justify-content: center;
	padding: 0 0 9px;
	font-family: var(--agm-fb);
	font-size: 10.5px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--agm-plata) !important;
	transition: color 0.4s var(--agm-ease), text-shadow 0.4s var(--agm-ease);
}

.gdw-home-hero .gdw-home-hero__cota--2 .elementor-heading-title,
.gdw-home-hero .gdw-home-hero__cota--4 .elementor-heading-title {
	padding: 9px 0 0;
}

/* la línea de medida con sus topes */
.gdw-home-hero .gdw-home-hero__cota .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 7px;
	color: rgba(115, 251, 211, 0.55);
	background:
		linear-gradient(currentColor, currentColor) no-repeat 50% 50% / 100% 1px,
		linear-gradient(currentColor, currentColor) no-repeat 0 0 / 1px 100%,
		linear-gradient(currentColor, currentColor) no-repeat 100% 0 / 1px 100%;
	transition: color 0.4s var(--agm-ease);
}

.gdw-home-hero .gdw-home-hero__cota--2 .elementor-heading-title::after,
.gdw-home-hero .gdw-home-hero__cota--4 .elementor-heading-title::after {
	top: 0;
	bottom: auto;
}

.gdw-home-hero .gdw-home-hero__cota.is-luz .elementor-heading-title {
	color: var(--agm-blanco) !important;
	text-shadow: 0 0 12px rgba(115, 251, 211, 0.6);
}

.gdw-home-hero .gdw-home-hero__cota.is-luz .elementor-heading-title::after {
	color: var(--agm-menta);
}

/* En el editor: el plano como una caja y las cotas en fila, para editarlas */
body.elementor-editor-active .gdw-home-hero .gdw-home-hero__plano {
	position: relative !important;
	display: block;
	min-height: 40px;
	border: 1px dashed rgba(115, 251, 211, 0.4);
}

body.elementor-editor-active .gdw-home-hero .gdw-home-hero__cotas {
	position: relative !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
}

body.elementor-editor-active .gdw-home-hero .gdw-home-hero__cota {
	position: relative !important;
	left: auto;
	top: auto;
	width: auto !important;
	transform: none;
	opacity: 1;
	translate: none;
}

/* --------------------------------------------------------------------------
   2. «Viaje al detalle» (gdw-home-viaje)
   -------------------------------------------------------------------------- */
.gdw-home-viaje {
	--agm-gut: clamp(16px, 4vw, 56px);
	padding: 0 !important;
	background-color: var(--agm-negro);
}

/* ---- Secuencia normal (base: tablet, móvil, sin JS, editor, «reducir movimiento») ---- */
.gdw-home-viaje .gdw-home-viaje__marco {
	display: flex !important;
	flex-direction: column !important;
	gap: 40px !important;
	padding: clamp(72px, 9vw, 120px) var(--agm-gut) !important;
}

.gdw-home-viaje .gdw-home-viaje__cabeza {
	width: 100% !important;
	max-width: 720px;
	padding: 0 !important;
}

.gdw-home-viaje .gdw-home-viaje__lienzo {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px !important;
	width: 100% !important;
	padding: 0 !important;
}

.gdw-home-viaje .gdw-home-viaje__sillon,
.gdw-home-viaje .gdw-home-viaje__foco {
	grid-column: 1 / -1;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.gdw-home-viaje .gdw-home-viaje__sillon img {
	display: block;
	width: min(820px, 100%) !important;
	height: auto;
	max-width: none !important;
	margin: 0 auto;
}

.gdw-home-viaje .gdw-home-viaje__foco img {
	display: block;
	width: min(300px, 70%) !important;
	height: auto;
	margin: 0 auto;
	border-radius: 24px;
	background: var(--agm-blanco);
	box-shadow: 0 0 0 1px rgba(115, 251, 211, 0.3), 0 0 80px rgba(115, 251, 211, 0.14);
}

.gdw-home-viaje .gdw-home-viaje__pieza {
	position: relative;
	gap: 8px !important;
	width: auto !important;
	min-width: 0;
	padding: 14px !important;
	border: 1px solid var(--agm-linea-osc);
	border-radius: 20px !important;
	background: rgba(255, 255, 255, 0.04);
	text-align: center;
}

.gdw-home-viaje .gdw-home-viaje__pieza .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	border-radius: 14px;
	background: var(--agm-blanco);
}

.gdw-home-viaje .gdw-home-viaje__pieza .elementor-widget-heading .elementor-heading-title {
	font-size: 16px;
	line-height: 1.3;
}

.gdw-home-viaje .gdw-home-viaje__pieza .elementor-widget-text-editor {
	font-size: 14px;
	line-height: 1.5;
	color: var(--agm-c-suave);
}

.gdw-home-viaje .gdw-home-viaje__enlace {
	align-self: center;
	width: auto !important;
}

.gdw-home-viaje .gdw-home-viaje__linea {
	display: none;
}

/* las piezas aparecen al verse (solo con el motor) */
html.gdw-agm-js .gdw-home-viaje:not(.is-viaje) .gdw-home-viaje__pieza {
	transition: opacity 0.8s var(--agm-ease), translate 0.8s var(--agm-ease) !important;
	transition-delay: calc(var(--agm-i, 0) * 0.06s) !important;
}

html.gdw-agm-js .gdw-home-viaje:not(.is-viaje) .gdw-home-viaje__pieza:not(.is-vista) {
	opacity: 0;
	translate: 0 24px;
}

/* sin escena fija fuera del escritorio */
html.gdw-agm-js .gdw-home-viaje.gdw-agm-escena--fija:not(.is-viaje) {
	height: auto !important;
}

html.gdw-agm-js .gdw-home-viaje:not(.is-viaje) .gdw-agm-escena__marco {
	position: relative !important;
	height: auto !important;
	overflow: visible !important;
}

/* ---- Escena (1025 px o más, motor activo: .is-viaje) ---- */
.gdw-home-viaje.is-viaje .gdw-home-viaje__marco {
	display: block !important;
	padding: 0 !important;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__cabeza {
	position: absolute !important;
	left: var(--agm-gut);
	top: calc(var(--gdw-header-h, 76px) + 28px);
	z-index: 4;
	width: min(520px, 40%) !important;
	opacity: calc(1 - var(--agm-vc, 0));
	transform: translate3d(0, calc(var(--agm-vc, 0) * -40px), 0);
	transition: none !important;
}

.gdw-home-viaje.is-viaje.is-sin-cabeza .gdw-home-viaje__cabeza {
	visibility: hidden;      /* ya no se ve: que no se pueda recorrer con el teclado */
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__lienzo {
	position: absolute !important;
	inset: 0;
	display: block !important;
	--agm-vcy: 54%;          /* centro de la escena (el JS usa el mismo) */
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__sillon {
	--agm-w: min(70vw, 118svh);
	position: absolute !important;
	left: 50%;
	top: var(--agm-vcy);
	z-index: 0;
	width: var(--agm-w) !important;
	margin: calc(var(--agm-w) * -0.4553) 0 0 calc(var(--agm-w) / -2) !important;
	/* zoom hacia la pantalla táctil (90 % / 42 % de la imagen), que acaba en el centro */
	transform-origin: 90% 42%;
	transform:
		translate3d(calc(var(--agm-w) * -0.4 * var(--agm-vz, 0)), calc(var(--agm-w) * 0.0729 * var(--agm-vz, 0)), 0)
		scale(calc(1 + 2.2 * var(--agm-vz, 0)));
	filter: blur(calc(var(--agm-vb, 0) * 6px));
	opacity: calc(1 - var(--agm-vb, 0) * 0.72);
	transition: none !important;
	will-change: transform;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__sillon img {
	width: 100% !important;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__foco {
	position: absolute !important;
	left: 50%;
	top: var(--agm-vcy);
	z-index: 2;
	width: min(22vw, 30svh) !important;
	transform: translate(-50%, -50%) scale(calc(1.15 - 0.15 * var(--agm-vf, 0)));
	opacity: var(--agm-vf, 0);
	transition: none !important;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__foco img {
	width: 100% !important;
}

.gdw-home-viaje.is-viaje:not(.is-foco) .gdw-home-viaje__foco {
	visibility: hidden;      /* aún no se ve: tampoco se puede enfocar (lleva lupa) */
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__pieza {
	position: absolute !important;
	left: calc(50% + var(--agm-vrx, 30vw) * var(--agm-ux, 0));
	top: calc(var(--agm-vcy) + var(--agm-vry, 30svh) * var(--agm-uy, 0));
	z-index: 3;
	width: clamp(170px, 15vw, 220px) !important;
	padding: 12px !important;
	background: rgba(4, 24, 46, 0.78);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	/* sale del centro a su sitio (escala .2 → 1) */
	transform:
		translate(
			calc(-50% - var(--agm-vrx, 30vw) * var(--agm-ux, 0) * (1 - var(--agm-vp, 0))),
			calc(-50% - var(--agm-vry, 30svh) * var(--agm-uy, 0) * (1 - var(--agm-vp, 0))))
		scale(calc(0.2 + 0.8 * var(--agm-vp, 0)));
	opacity: var(--agm-vp, 0);
	transition: border-color 0.4s var(--agm-ease), background-color 0.4s var(--agm-ease) !important;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__pieza.is-fuera {
	visibility: hidden;
}

.gdw-home-viaje.is-viaje:not(.is-final) .gdw-home-viaje__pieza {
	pointer-events: none;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__pieza .elementor-widget-image img {
	width: min(100px, 12svh);
	margin: 0 auto;
}

@media (hover: hover) and (pointer: fine) {
	.gdw-home-viaje.is-viaje.is-final .gdw-home-viaje__pieza:hover {
		border-color: rgba(115, 251, 211, 0.45);
		background: rgba(4, 24, 46, 0.92);
	}
}

/* la lupa, más pequeña en estas piezas */
.gdw-home-viaje .gdw-agm-lupa__lente {
	width: 120px;
	height: 120px;
}

@media (max-height: 760px) {
	.gdw-home-viaje.is-viaje .gdw-home-viaje__pieza .elementor-widget-text-editor {
		display: none;
	}
}

/* las líneas del centro a cada pieza (las crea el JS: posición, largo y ángulo) */
.gdw-home-viaje.is-viaje .gdw-home-viaje__linea {
	position: absolute;
	z-index: 1;
	display: block;
	height: 1px;
	transform-origin: 0 50%;
	scale: var(--agm-vl, 0) 1;
	background: linear-gradient(90deg, rgba(115, 251, 211, 0.75), rgba(115, 251, 211, 0.15));
	pointer-events: none;
}

.gdw-home-viaje.is-viaje .gdw-home-viaje__enlace {
	position: absolute !important;
	left: 50%;
	bottom: clamp(20px, 4svh, 36px);
	z-index: 4;
	transform: translate(-50%, calc((1 - var(--agm-ve, 0)) * 16px));
	opacity: var(--agm-ve, 0);
	transition: none !important;
}

.gdw-home-viaje.is-viaje:not(.is-enlace) .gdw-home-viaje__enlace {
	visibility: hidden;
}

/* --------------------------------------------------------------------------
   3. «Reducir movimiento»
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.gdw-home-hero .gdw-home-hero__cota,
	.gdw-home-viaje .gdw-home-viaje__pieza {
		transition: none !important;
	}
}
/* <<< fin AGM 50-wow.css */

/* >>> AGM 60-contacto.css */
/* ==========================================================================
   AGM Dental · 60-contacto.css (gdw-agm 1.1, 10-10-2026 · Mario pide · Claude)
   Contacto en toda la web (DISENO §12.3). Lo mueve js/60-contacto.js.
   Estructura: ../LEEME.md.
    1. Botón fijo «¿Hablamos?» (gdw-agm-contacto__abrir): abajo a la derecha,
       a 24 px del borde (16 en el móvil); píldora azul con icono de chat.
    2. Panel (gdw-agm-contacto__panel): diálogo lateral noche que entra por la
       derecha, con su velo. Sin JS no se ve (el botón lleva a Contacto); en el
       editor se ve en su sitio.
    3. Formulario de Contacto: la línea «Consulta sobre: …».
   No sale en Contacto (página 11).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. El contenedor no ocupa sitio en el pie; el botón va fijo
   -------------------------------------------------------------------------- */
body:not(.elementor-editor-active) .gdw-agm-contacto {
	position: relative;
	z-index: 9990;
	height: 0;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: visible !important;
}

body.page-id-11 .gdw-agm-contacto,
.gdw-agm-contacto.is-oculto {
	display: none !important;
}

body:not(.elementor-editor-active) .gdw-agm-contacto .gdw-agm-contacto__abrir {
	position: fixed !important;
	right: 24px;
	bottom: 24px;
	z-index: 9991;
	width: auto !important;
	margin: 0 !important;
	animation: agm-contacto-entra 0.7s var(--agm-ease) 1.2s both;
}

.gdw-agm-contacto.con-whatsapp .gdw-agm-contacto__abrir {
	bottom: 96px !important;
}

@keyframes agm-contacto-entra {
	from {
		opacity: 0;
		translate: 0 16px;
	}
}

.gdw-agm-contacto__abrir .elementor-button {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	padding: 14px 22px 14px 18px !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	border-radius: 999px !important;
	background: var(--agm-azul) !important;
	color: var(--agm-blanco) !important;
	font-family: var(--agm-ft) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	white-space: nowrap;
	box-shadow: 0 16px 40px -14px rgba(1, 78, 151, 0.75), 0 2px 6px rgba(2, 11, 22, 0.25) !important;
	transition: background-color 0.35s var(--agm-ease), box-shadow 0.35s var(--agm-ease), scale 0.35s var(--agm-ease) !important;
}

/* el icono de chat (el de Elementor, si lo hubiera, no se usa) */
.gdw-agm-contacto__abrir .elementor-button::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gdw-agm-contacto__abrir .elementor-button-icon {
	display: none !important;
}

.gdw-agm-contacto__abrir .elementor-button:hover,
.gdw-agm-contacto__abrir .elementor-button:focus-visible {
	background: var(--agm-azul-2) !important;
	box-shadow: 0 20px 46px -14px rgba(10, 99, 189, 0.85), 0 2px 6px rgba(2, 11, 22, 0.25) !important;
}

.gdw-agm-contacto__abrir .elementor-button:focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

.gdw-agm-contacto.is-abierto .gdw-agm-contacto__abrir .elementor-button {
	scale: 0.92;
}

/* en el móvil, píldora compacta */
@media (max-width: 767px) {
	body:not(.elementor-editor-active) .gdw-agm-contacto .gdw-agm-contacto__abrir {
		right: 16px;
		bottom: 16px;
	}

	.gdw-agm-contacto.con-whatsapp .gdw-agm-contacto__abrir {
		bottom: 84px !important;
	}

	.gdw-agm-contacto__abrir .elementor-button {
		gap: 8px;
		padding: 12px 16px 12px 14px !important;
		font-size: 14px !important;
	}

	.gdw-agm-contacto__abrir .elementor-button::before {
		width: 18px;
		height: 18px;
	}
}

/* con el menú móvil o el visor abiertos, el botón se aparta */
body.gdw-agm-menu-abierto .gdw-agm-contacto__abrir,
html.gdw-agm-sin-scroll body:not(.gdw-agm-contacto-abierto) .gdw-agm-contacto__abrir {
	opacity: 0 !important;
	pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   2. El panel (diálogo lateral) y su velo
   -------------------------------------------------------------------------- */
body:not(.elementor-editor-active) .gdw-agm-contacto__panel {
	display: none !important;          /* sin JS: el botón lleva a Contacto */
}

.gdw-agm-contacto__panel {
	--agm-c-titulo: var(--agm-blanco);
	--agm-c-texto: rgba(255, 255, 255, 0.82);
	--agm-c-suave: var(--agm-plata);
	--agm-c-eyebrow: var(--agm-menta);
	--agm-c-linea: var(--agm-linea-osc);
	--agm-c-enlace: var(--agm-menta);
	--agm-c-acento: var(--agm-menta);
	--agm-c-foco: var(--agm-menta);
	color: var(--agm-c-texto);
}

body:not(.elementor-editor-active) .gdw-agm-contacto.is-listo .gdw-agm-contacto__panel {
	position: fixed !important;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 9993;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 18px !important;
	width: min(440px, 100vw) !important;
	max-width: none !important;
	margin: 0 !important;
	padding: calc(40px + var(--wp-admin--admin-bar--height, 0px)) 32px 32px !important;
	overflow-y: auto;
	overscroll-behavior: contain;
	background:
		radial-gradient(80% 50% at 100% 0%, rgba(1, 78, 151, 0.55), rgba(1, 78, 151, 0) 70%),
		radial-gradient(70% 40% at 0% 100%, rgba(115, 251, 211, 0.1), rgba(115, 251, 211, 0) 70%),
		var(--agm-noche) !important;
	border-left: 1px solid var(--agm-linea-osc);
	box-shadow: -30px 0 80px -30px rgba(0, 0, 0, 0.7);
	translate: 100% 0;
	visibility: hidden;
	transition: translate 0.55s var(--agm-ease), visibility 0s linear 0.55s !important;
}

body:not(.elementor-editor-active) .gdw-agm-contacto.is-listo.is-abierto .gdw-agm-contacto__panel {
	translate: 0 0;
	visibility: visible;
	transition: translate 0.55s var(--agm-ease), visibility 0s linear 0s !important;
}

.gdw-agm-contacto__panel:focus {
	outline: none;
}

.gdw-agm-contacto__velo {
	position: fixed;
	inset: 0;
	z-index: 9992;
	background: rgba(2, 11, 22, 0.55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s var(--agm-ease);
}

.gdw-agm-contacto.is-abierto .gdw-agm-contacto__velo {
	opacity: 1;
	pointer-events: auto;
}

.gdw-agm-contacto__panel > .elementor-element,
.gdw-agm-contacto__panel > .e-con-inner > .elementor-element {
	width: 100% !important;
	max-width: none !important;
}

.gdw-agm-contacto__titulo .elementor-heading-title {
	padding-right: 56px;                 /* deja sitio al aspa */
	font-family: var(--agm-ft);
	font-size: clamp(26px, 3vw, 32px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--agm-blanco) !important;
}

.gdw-agm-contacto__equipo {
	margin: -8px 0 0 !important;
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--agm-menta);
}

.gdw-agm-contacto__texto,
.gdw-agm-contacto__texto p {
	font-family: var(--agm-fb);
	font-size: 16px;
	line-height: 1.6;
	color: var(--agm-plata);
}

.gdw-agm-contacto__texto p:last-child {
	margin-bottom: 0;
}

.gdw-agm-contacto__lista .elementor-icon-list-items {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 0;
}

.gdw-agm-contacto__lista .elementor-icon-list-item {
	align-items: center !important;
	min-height: 44px;
	padding: 0 !important;
	border-bottom: 1px solid var(--agm-linea-osc);
}

.gdw-agm-contacto__lista .elementor-icon-list-item::after {
	display: none !important;
}

.gdw-agm-contacto__lista .elementor-icon-list-item > a {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 44px;
}

.gdw-agm-contacto__lista .elementor-icon-list-text {
	padding-left: 12px !important;
	font-family: var(--agm-fb);
	font-size: 17px;
	font-weight: 500;
	color: var(--agm-blanco);
	overflow-wrap: anywhere;
	transition: color 0.3s var(--agm-ease);
}

.gdw-agm-contacto__lista a:hover .elementor-icon-list-text,
.gdw-agm-contacto__lista a:focus-visible .elementor-icon-list-text {
	color: var(--agm-menta);
}

.gdw-agm-contacto__lista .elementor-icon-list-icon {
	color: var(--agm-menta);
}

.gdw-agm-contacto__lista .elementor-icon-list-icon svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.gdw-agm-contacto__lista .elementor-icon-list-icon i {
	font-size: 18px;
	color: currentColor;
}

.gdw-agm-contacto__panel .gdw-agm-contacto__form {
	width: auto !important;
	margin-top: 6px !important;
}

/* Cerrar: aspa fina en un círculo, arriba a la derecha (el texto queda para los lectores) */
body:not(.elementor-editor-active) .gdw-agm-contacto__panel .gdw-agm-contacto__cerrar {
	position: absolute !important;
	top: calc(24px + var(--wp-admin--admin-bar--height, 0px));
	right: 22px;
	width: auto !important;
	margin: 0 !important;
}

.gdw-agm-contacto__cerrar .elementor-button {
	position: relative;
	display: grid !important;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.3) !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--agm-blanco) !important;
	font-size: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color 0.3s var(--agm-ease), background-color 0.3s var(--agm-ease) !important;
}

.gdw-agm-contacto__cerrar .elementor-button::before,
.gdw-agm-contacto__cerrar .elementor-button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 1.5px;
	margin: -0.75px 0 0 -9px;
	background: currentColor;
	rotate: 45deg;
}

.gdw-agm-contacto__cerrar .elementor-button::after {
	rotate: -45deg;
}

.gdw-agm-contacto__cerrar .elementor-button:hover,
.gdw-agm-contacto__cerrar .elementor-button:focus-visible {
	border-color: var(--agm-menta) !important;
	background: rgba(115, 251, 211, 0.08) !important;
}

.gdw-agm-contacto__cerrar .elementor-button:focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
}

.gdw-agm-contacto__panel :is(a, [role="button"]):focus-visible {
	outline: 2px solid var(--agm-menta);
	outline-offset: 3px;
	border-radius: 6px;
}

/* En el editor: todo en su sitio, a la vista, para editarlo */
body.elementor-editor-active .gdw-agm-contacto__panel {
	background: var(--agm-noche);
	padding: 24px !important;
}

/* --------------------------------------------------------------------------
   3. Contacto: «Consulta sobre: …» encima del formulario (la pone el JS)
   -------------------------------------------------------------------------- */
.gdw-agm-consulta {
	margin: 0 0 20px !important;
	padding: 12px 16px;
	border-left: 3px solid var(--agm-azul);
	border-radius: 10px;
	background: rgba(1, 78, 151, 0.07);
	font-family: var(--agm-fb);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--agm-azul);
}

/* --------------------------------------------------------------------------
   4. «Solicitar información de este equipo» (los pone el constructor:
   gdw-agm-btn gdw-agm-solicitar; los de cada modelo, además
   gdw-agm-solicitar__modelo: de contorno y pequeños)
   -------------------------------------------------------------------------- */
.elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button {
	padding: 12px 22px;
	border-color: rgba(4, 24, 46, 0.24);
	background-color: transparent;
	color: var(--agm-noche);
	font-size: 14px;
	box-shadow: none;
}

.elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button:hover,
.elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button:focus-visible {
	border-color: var(--agm-azul);
	background-color: transparent;
	color: var(--agm-azul);
	box-shadow: none;
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button {
	border-color: rgba(255, 255, 255, 0.34);
	color: var(--agm-blanco);
}

:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button:hover,
:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta, .gdw-agm-tarjeta--noche, .gdw-agm-oscuro) .elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button:focus-visible {
	border-color: var(--agm-menta);
	color: var(--agm-menta);
}

/* una tarjeta clara dentro de una sección noche vuelve a lo claro */
:is(.gdw-agm-tarjeta:not(.gdw-agm-tarjeta--noche), .gdw-agm-bento__celda, .gdw-agm-claro) .elementor-widget-button.gdw-agm-solicitar__modelo .elementor-button {
	border-color: rgba(4, 24, 46, 0.24);
	color: var(--agm-noche);
}

/* --------------------------------------------------------------------------
   5. «Reducir movimiento»
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	body:not(.elementor-editor-active) .gdw-agm-contacto .gdw-agm-contacto__abrir {
		animation: none;
	}

	.gdw-agm-contacto__abrir .elementor-button,
	.gdw-agm-contacto__velo,
	body:not(.elementor-editor-active) .gdw-agm-contacto.is-listo .gdw-agm-contacto__panel,
	body:not(.elementor-editor-active) .gdw-agm-contacto.is-listo.is-abierto .gdw-agm-contacto__panel {
		transition: none !important;
	}
}
/* <<< fin AGM 60-contacto.css */

/* >>> AGM 70-neon.css */
/* ==========================================================================
   AGM Dental · 70-neon.css · 13-10-2026 · Mario (pide) · Claude
   «Sala de máquinas» de la portada (gdw-home-sala), v3. Mario: «me parece demasiado sencilla; hazla con un
   fondo más espectacular de líneas de neón como las del vídeo de Planmeca, adaptado al prompt de Seedance» y
   «las imágenes, dentro de cards sin fondo o muy transparente, desbordadas en un lateral, como marca de agua».
   1. gdw-agm-neon: fondo casi negro y el <canvas> de las líneas (lo crea y lo anima js/70-neon.js).
   2. Cabecera de la sección.
   3. Tarjetas de cristal (gdw-home-sala__tarjeta) con la foto del equipo de marca de agua (__marca),
      cortada por el lado derecho; al pasar el ratón, la foto se enciende y una luz sigue al puntero.
   (Las reglas de 10-inicio.css §8 son de la versión anterior; aquí se anula la sombra de las fotos.)
   ========================================================================== */

/* 1. Fondo ----------------------------------------------------------------- */
body .gdw-agm-sec.gdw-agm-neon {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background-color: #020814 !important;
}

.gdw-agm-neon > .e-con-inner,
.gdw-agm-neon > .elementor-element {
	position: relative;
	z-index: 1;
}

.gdw-agm-neon__lienzo {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
	/* el brillo y el fundido con las secciones de arriba y de abajo los pinta el JS en el propio lienzo:
	   con filter/mask de CSS, el navegador los recalculaba en cada fotograma (2 fps en la prueba) */
}

/* 1b. Cierre de la portada (gdw-home-cierre, «¿Equipas o renuevas tu clínica?»). Mario, 13-10-2026: «quita las
       líneas en movimiento y que sea un fondo de degradados fades desenfocados». La capa de la aurora (::after de
       00-base.css, que se mueve con el scroll y el ratón) pasa a llevar halos de los colores flúor de la sala,
       desenfocados y a la deriva muy despacio (translate y scale: los mueve la tarjeta gráfica, sin repintar). */
/* El mismo fondo, en la franja final «¿Hablamos de tu clínica?» de todas las páginas (gdw-agm-cta) y en la
   cabecera de Contacto (gdw-contacto-hero; Mario, 13-10-2026): sin su degradado propio de 00-base.css, para
   que sea igual que el cierre de la portada. */
:is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero) > .e-con-inner {
	position: relative;
	z-index: 1;
}

body .gdw-agm-sec:is(.gdw-agm-cta, .gdw-contacto-hero) {
	background-image: none !important;
}

/* Dos capas que derivan en direcciones contrarias y a distinto ritmo (Mario: «anímalo para que el degradado
   no se quede tan estático»): ::after con el menta, el violeta y el azul; ::before con el cian y el magenta,
   girando un poco. Solo translate, rotate y scale: no se repinta nada. */
body :is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero)::after {
	inset: -30% -20%;
	background:
		radial-gradient(34% 46% at 18% 30%, rgba(115, 251, 211, 0.32), rgba(115, 251, 211, 0) 70%),
		radial-gradient(30% 42% at 82% 24%, rgba(123, 92, 255, 0.38), rgba(123, 92, 255, 0) 70%),
		radial-gradient(46% 42% at 50% 52%, rgba(1, 78, 151, 0.42), rgba(1, 78, 151, 0) 76%);
	filter: blur(36px);
	animation: agm-fluor-a 10s ease-in-out infinite alternate;
}

/* el ::before de un contenedor lo usa Elementor para su capa: se anulan su posición, tamaño y transición */
body :is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero)::before {
	content: "" !important;
	position: absolute !important;
	top: -30% !important;
	left: -20% !important;
	width: 140% !important;
	height: 160% !important;
	z-index: -1;
	border-radius: 0 !important;
	opacity: 1;   /* sin !important: la animación la cambia (y ya gana a la de Elementor por especificidad) */
	pointer-events: none;
	background:
		radial-gradient(32% 40% at 70% 72%, rgba(46, 230, 255, 0.32), rgba(46, 230, 255, 0) 70%),
		radial-gradient(26% 34% at 26% 78%, rgba(255, 79, 216, 0.24), rgba(255, 79, 216, 0) 70%),
		radial-gradient(22% 30% at 52% 18%, rgba(115, 251, 211, 0.2), rgba(115, 251, 211, 0) 70%);
	filter: blur(42px);
	mix-blend-mode: screen;
	transition: none !important;
	animation: agm-fluor-b 7s ease-in-out infinite alternate;
}

/* 13-10-2026 (Mario: «que se note un poco más la animación»): más recorrido, más cambio de tamaño, algo
   más deprisa y la capa de cian y magenta que gira más y sube y baja de intensidad */
@keyframes agm-fluor-a {
	0% {
		translate: -15% -9%;
		scale: 1;
	}

	50% {
		translate: 12% 7%;
		scale: 1.3;
	}

	100% {
		translate: -6% 13%;
		scale: 1.1;
	}
}

@keyframes agm-fluor-b {
	0% {
		translate: 14% 8%;
		rotate: 0deg;
		scale: 1.15;
		opacity: 0.75;
	}

	50% {
		translate: -12% -10%;
		rotate: 18deg;
		scale: 0.88;
		opacity: 1;
	}

	100% {
		translate: 9% -13%;
		rotate: -14deg;
		scale: 1.3;
		opacity: 0.85;
	}
}

@media (prefers-reduced-motion: reduce) {
	body :is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero)::after,
	body :is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero)::before {
		animation: none;
	}
}

@media print {
	body :is(.gdw-home-cierre, .gdw-agm-cta, .gdw-contacto-hero)::before {
		display: none !important;
	}
}

/* 1c. Líneas sobre fondo claro (variante «clara» de 70-neon.js, quieta): «Del sillón a la sala de máquinas»
       (gdw-home-gama) y cualquier sección con gdw-agm-neon--clara. Mario, 13-10-2026: «sin animar y manteniendo
       el fondo blanco; si me gusta, en todas las secciones blancas». El lienzo va detrás del contenido (z-index
       -1 dentro del marco o de la sección, aislados), sin tocar la posición de nada. */
.gdw-home-gama .gdw-agm-escena__marco,
.gdw-agm-neon--clara {
	isolation: isolate;
}

.gdw-home-gama .gdw-agm-neon__lienzo,
.gdw-agm-neon--clara > .gdw-agm-neon__lienzo {
	z-index: -1;
}

/* 1d. Variante sutil en el resto de secciones blancas o gris claro (la clase gdw-agm-neon--sutil la pone
       70-neon.js). Mario, 13-10-2026: «en todas las secciones que lleven el fondo blanco, pero de forma sutil». */
.gdw-agm-neon--sutil {
	position: relative;
	isolation: isolate;
}

.gdw-agm-neon--sutil .gdw-agm-escena__marco {
	isolation: isolate;
}

.gdw-agm-neon--sutil .gdw-agm-neon__lienzo {
	z-index: -1;
}

/* 1e. Primera sección de las páginas interiores, menos Contacto (la clase gdw-agm-neon--cabecera la pone
       70-neon.js): líneas en movimiento detrás del texto y del producto; en las oscuras, por encima de su aurora
       (que baja a -2). Mario, 13-10-2026. */
.gdw-agm-neon--cabecera {
	position: relative;
	isolation: isolate;
}

.gdw-agm-neon--cabecera > .gdw-agm-neon__lienzo {
	z-index: -1;
}

body .gdw-agm-neon--cabecera::after {
	z-index: -2 !important;
}

/* 2. Cabecera --------------------------------------------------------------- */
.gdw-home-sala .gdw-home-sala__cabeza {
	max-width: 720px;
}

.gdw-home-sala .gdw-home-sala__cabeza .elementor-heading-title {
	text-shadow: 0 2px 24px rgba(2, 8, 20, 0.85);
}

/* 3. Tarjetas --------------------------------------------------------------- */
.gdw-home-sala .gdw-home-sala__tarjetas {
	align-items: stretch;
}

.gdw-home-sala .gdw-home-sala__tarjeta {
	--cx: 72%;
	--cy: 30%;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: clamp(380px, 32vw, 460px);
	padding: clamp(26px, 2.4vw, 36px) !important;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--agm-radio);
	/* 13-10-2026 (Mario: «sube un poco más la opacidad de las cards»): cristal oscuro algo más opaco */
	background-color: rgba(8, 22, 44, 0.72) !important;   /* 0,5 → 0,72 (Mario, 13-10-2026: «sube la opacidad») */
	background-image:
		radial-gradient(280px circle at var(--cx) var(--cy), rgba(115, 251, 211, 0), transparent 70%),
		linear-gradient(0deg, rgba(2, 8, 20, 0.72) 0%, rgba(2, 8, 20, 0) 62%),
		linear-gradient(160deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 30px 60px -40px rgba(0, 0, 0, 0.8);
	/* sin backdrop-filter: desenfocar las líneas que se mueven detrás, en cada fotograma, es muy caro */
}

/* la aparición del motor (gdw-agm-rv: opacidad, translate y desenfoque) y el realce al pasar el ratón */
html.gdw-agm-js .gdw-home-sala .gdw-home-sala__tarjeta {
	transition:
		opacity 0.9s var(--agm-ease) var(--agm-d, 0s),
		filter 0.9s var(--agm-ease) var(--agm-d, 0s),
		translate 0.5s var(--agm-ease),
		border-color 0.4s var(--agm-ease),
		box-shadow 0.4s var(--agm-ease);
}

/* la foto del equipo: grande, a la derecha, cortada por el borde y fundida hacia el texto */
.gdw-home-sala .gdw-home-sala__tarjeta > .gdw-home-sala__marca {
	position: absolute !important;
	z-index: -1;
	top: 4%;
	bottom: 4%;
	right: -20%;
	width: 82% !important;
	max-width: none !important;
	margin: 0 !important;
	pointer-events: none;
	/* 13-10-2026 (Mario: «las imágenes de fondo se ven muy poco»): más opacas y con menos fundido */
	opacity: 0.82;   /* 0,6 → 0,82 (Mario, 13-10-2026: «sube la opacidad de las imágenes») */
	-webkit-mask-image: linear-gradient(270deg, #000 70%, transparent 100%);
	mask-image: linear-gradient(270deg, #000 70%, transparent 100%);
	transition: opacity 0.6s var(--agm-ease), transform 0.9s var(--agm-ease);
}

.gdw-home-sala .gdw-home-sala__tarjeta > .gdw-home-sala__marca img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain;
	object-position: right center;
	filter: none;
}

/* el texto, encima de la foto y abajo */
.gdw-home-sala .gdw-home-sala__tarjeta > :not(.gdw-home-sala__marca) {
	position: relative;
	max-width: 78%;
}

.gdw-home-sala .gdw-home-sala__titulo .elementor-heading-title {
	font-size: clamp(22px, 1.9vw, 28px);
	line-height: 1.15;
}

.gdw-home-sala .gdw-home-sala__texto,
.gdw-home-sala .gdw-home-sala__texto p {
	color: rgba(255, 255, 255, 0.82);
}

.gdw-home-sala .gdw-home-sala__enlace {
	margin-top: 6px !important;
}

@media (hover: hover) and (pointer: fine) {
	.gdw-home-sala .gdw-home-sala__tarjeta:hover {
		translate: 0 -4px;
		border-color: rgba(115, 251, 211, 0.42);
		background-image:
			radial-gradient(280px circle at var(--cx) var(--cy), rgba(115, 251, 211, 0.13), transparent 70%),
			linear-gradient(0deg, rgba(2, 8, 20, 0.72) 0%, rgba(2, 8, 20, 0) 62%),
			linear-gradient(160deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.025));
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(115, 251, 211, 0.12), 0 30px 80px -34px rgba(115, 251, 211, 0.28);
	}

	.gdw-home-sala .gdw-home-sala__tarjeta:hover > .gdw-home-sala__marca {
		opacity: 1;
		transform: translateX(-7%) scale(1.04);
	}
}

/* tableta: una tarjeta por fila, más baja y más ancha (la foto ocupa la mitad derecha) */
@media (max-width: 1024px) {
	.gdw-home-sala .gdw-home-sala__tarjeta {
		min-height: 300px;
	}

	.gdw-home-sala .gdw-home-sala__tarjeta > .gdw-home-sala__marca {
		right: -6%;
		width: 58% !important;
	}

	.gdw-home-sala .gdw-home-sala__tarjeta > :not(.gdw-home-sala__marca) {
		max-width: 60%;
	}
}

/* móvil: la foto, más tenue, y el texto a lo ancho */
@media (max-width: 767px) {
	.gdw-home-sala .gdw-home-sala__tarjeta {
		min-height: 320px;
	}

	.gdw-home-sala .gdw-home-sala__tarjeta > .gdw-home-sala__marca {
		top: 2%;
		bottom: 30%;
		right: -18%;
		width: 80% !important;
		opacity: 0.8;
	}

	.gdw-home-sala .gdw-home-sala__tarjeta > :not(.gdw-home-sala__marca) {
		max-width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gdw-home-sala .gdw-home-sala__tarjeta,
	.gdw-home-sala .gdw-home-sala__tarjeta > .gdw-home-sala__marca {
		transition: none;
	}
}
/* <<< fin AGM 70-neon.css */

/* >>> AGM 80-video.css */
/* ==========================================================================
   AGM Dental · 80-video.css · 13-10-2026 · Mario (pide) · Claude
   Primera sección de la portada (gdw-home-video): el vídeo de fondo en bucle (fondo de vídeo nativo de
   Elementor; empieza y acaba en negro, salida/video/) con el H1, la entradilla y los botones encima.
   1. Sección a pantalla completa y velo sobre el vídeo (el texto, a la izquierda, siempre se lee).
   2. Entrada del texto con el primer pintado (como el hero de antes, 00-base.css §13).
   3. «Desliza».
   El JS (80-video.js) lo pausa fuera de pantalla y, con «reducir movimiento», lo deja quieto.
   ========================================================================== */

/* 1. Sección y velo --------------------------------------------------------- */
body .gdw-agm-sec.gdw-home-video {
	position: relative;
	isolation: isolate;
	overflow: clip;
	min-height: 100svh !important;
	background-color: #000 !important;
}

/* Elementor mete el vídeo dentro de .e-con-inner (el contenido, de 1320 px): sin posición propia, el marco
   del vídeo es la sección entera, de lado a lado; el texto, encima */
.gdw-home-video > .e-con-inner {
	position: static !important;
}

.gdw-home-video > .e-con-inner > .elementor-element {
	position: relative;
	z-index: 1;
}

.gdw-home-video .elementor-background-video-container {
	z-index: 0;
}

.gdw-home-video .elementor-background-video-container::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(2, 8, 20, 0.84) 0%, rgba(2, 8, 20, 0.55) 30%, rgba(2, 8, 20, 0) 62%),
		linear-gradient(0deg, rgba(2, 8, 20, 0.8) 0%, rgba(2, 8, 20, 0) 26%),
		linear-gradient(180deg, rgba(2, 8, 20, 0.6) 0%, rgba(2, 8, 20, 0) 22%);
}

.gdw-home-video .gdw-home-video__texto {
	max-width: 640px;
}

.gdw-home-video .gdw-home-video__titulo .elementor-heading-title {
	text-shadow: 0 2px 30px rgba(2, 8, 20, 0.6);
}

/* 2. Entrada del texto -------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	body:not(.elementor-editor-active) .gdw-home-video__texto > .elementor-element {
		animation: agm-entra 1.1s var(--agm-ease) both;
		animation-delay: 0.25s;
	}

	body:not(.elementor-editor-active) .gdw-home-video__texto > :nth-child(2) {
		animation-delay: 0.4s;
	}

	body:not(.elementor-editor-active) .gdw-home-video__texto > :nth-child(3) {
		animation-delay: 0.55s;
	}

	body:not(.elementor-editor-active) .gdw-home-video__texto > :nth-child(n+4) {
		animation-delay: 0.7s;
	}
}

/* 3. «Desliza»: abajo en el centro, con una línea que baja ------------------- */
.gdw-home-video .gdw-home-video__desliza {
	position: absolute !important;
	left: 50%;
	bottom: 26px;
	width: auto !important;
	translate: -50% 0;
	z-index: 2;
}

.gdw-home-video .gdw-home-video__desliza .elementor-heading-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	font-family: var(--agm-fb);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}

.gdw-home-video .gdw-home-video__desliza .elementor-heading-title::after {
	content: "";
	width: 1px;
	height: 38px;
	background: linear-gradient(180deg, var(--agm-menta), rgba(115, 251, 211, 0));
	transform-origin: top;
	animation: agm-desliza 2.2s var(--agm-ease) infinite;
}

@keyframes agm-desliza {
	0% {
		scale: 1 0;
		opacity: 1;
	}

	55% {
		scale: 1 1;
		opacity: 1;
	}

	100% {
		scale: 1 1;
		opacity: 0;
	}
}

/* móvil: el texto abajo (el sillón del vídeo queda en el centro) y sin «Desliza» (taparía el botón de contacto) */
@media (max-width: 767px) {
	/* abajo, sitio para los botones fijos (accesibilidad y «¿Hablamos?»): si no, tapaban «Ver el equipamiento» */
	body .gdw-agm-sec.gdw-home-video {
		padding-bottom: 104px !important;
	}

	.gdw-home-video > .e-con-inner {
		justify-content: flex-end !important;
	}

	.gdw-home-video .elementor-background-video-container::after {
		background:
			linear-gradient(0deg, rgba(2, 8, 20, 0.92) 0%, rgba(2, 8, 20, 0.6) 38%, rgba(2, 8, 20, 0) 62%),
			linear-gradient(180deg, rgba(2, 8, 20, 0.6) 0%, rgba(2, 8, 20, 0) 20%);
	}

	.gdw-home-video .gdw-home-video__desliza {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gdw-home-video .gdw-home-video__desliza .elementor-heading-title::after {
		animation: none;
	}
}
/* <<< fin AGM 80-video.css */

/* >>> AGM 85-luces.css */
/* ==========================================================================
   AGM Dental · 85-luces.css · 13-10-2026 · Mario (pide) · Claude
   «Cada detalle, a la luz.» (gdw-home-luces): escena fija de la portada, después del manifiesto.
   v2 (Mario: «prefiero una imagen de la silla y que vayan saliendo círculos con el detalle de la parte, como una
   lupa que la amplía, y que los textos vayan cambiando»): el sillón entero a la derecha (__base,
   lo crea 85-luces.js con la foto de la primera toma) y, encima, una lupa redonda (__lupa) que amplía la pieza que
   tiene debajo y, con el scroll, se queda en cada pieza y viaja a la siguiente. A la izquierda, el nombre y la
   explicación de la pieza (los __pie de cada toma) entran y salen. Puntos de cada pieza en la foto: --fx / --fy
   de cada toma (los mismos del explorador del S8). El fondo de líneas: 70-neon.js (variante «luces»).
   Sin JS, con «reducir movimiento» o en el editor (sin html.gdw-agm-js): las cinco tomas en rejilla, quietas.
   ========================================================================== */

body .gdw-agm-sec.gdw-home-luces {
	background-color: #020814 !important;
}

/* dónde está cada pieza en la foto de tres cuartos (porcentajes de la imagen) y, si hace falta, cuánto amplía
   su lupa respecto a las otras (--fz; la base, menos, para que se reconozca) */
.gdw-home-luces .gdw-home-luces__toma--1 { --fx: 53%; --fy: 26%; }   /* lámpara LED */
.gdw-home-luces .gdw-home-luces__toma--2 { --fx: 93%; --fy: 41%; }   /* pantalla táctil */
.gdw-home-luces .gdw-home-luces__toma--3 { --fx: 42%; --fy: 41%; }   /* escupidera */
.gdw-home-luces .gdw-home-luces__toma--4 { --fx: 47%; --fy: 57%; }   /* respaldo */
.gdw-home-luces .gdw-home-luces__toma--5 { --fx: 44%; --fy: 76%; --fz: 0.6; }   /* base con sensores */

.gdw-home-luces .gdw-home-luces__num .elementor-heading-title {
	font-family: var(--agm-fb);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--agm-menta);
}

.gdw-home-luces .gdw-home-luces__nombre .elementor-heading-title {
	font-size: clamp(30px, 3.4vw, 50px);
	line-height: 1.05;
}

.gdw-home-luces .gdw-home-luces__texto,
.gdw-home-luces .gdw-home-luces__texto p {
	color: rgba(255, 255, 255, 0.8);
}

/* 1. Sin la escena (sin JS, «reducir movimiento», editor): rejilla de cinco detalles, quietos ---------------- */
html:not(.gdw-agm-js) .gdw-home-luces .gdw-home-luces__marco {
	padding: 110px 50px 120px !important;
	gap: 48px !important;
}

html:not(.gdw-agm-js) .gdw-home-luces .gdw-home-luces__escenario {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 28px;
}

html:not(.gdw-agm-js) .gdw-home-luces .gdw-home-luces__img {
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 45%, rgba(115, 251, 211, 0.12), rgba(10, 26, 48, 0.9) 70%);
	box-shadow: 0 0 0 2px rgba(115, 251, 211, 0.6), 0 0 30px rgba(46, 230, 255, 0.2);
}

html:not(.gdw-agm-js) .gdw-home-luces .gdw-home-luces__img img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: var(--fx, 50%) var(--fy, 50%);
	transform: translate(calc(50% - var(--fx, 50%)), calc(50% - var(--fy, 50%))) scale(2.4);
	transform-origin: var(--fx, 50%) var(--fy, 50%);
}

/* 2. La escena: marco a pantalla completa; cabecera arriba a la izquierda, el sillón y la lupa a la derecha y el
      texto de la pieza abajo a la izquierda. Las fotos de las tomas no se ven (la lupa usa la del sillón). ------ */
html.gdw-agm-js .gdw-home-luces .gdw-home-luces__marco {
	padding: 0 !important;
	overflow: hidden;
}

html.gdw-agm-js .gdw-home-luces .gdw-home-luces__cabeza {
	position: absolute !important;
	z-index: 5;
	top: clamp(96px, 13vh, 132px);
	left: max(50px, calc((100% - 1320px) / 2));
	width: min(520px, 36vw) !important;
}

html.gdw-agm-js .gdw-home-luces .gdw-home-luces__escenario {
	position: absolute !important;
	inset: 0;
	z-index: 4;
	pointer-events: none;
}

html.gdw-agm-js .gdw-home-luces .gdw-home-luces__toma {
	position: absolute !important;
	inset: 0;
	pointer-events: none;
}

html.gdw-agm-js .gdw-home-luces.is-lupa .gdw-home-luces__toma > .gdw-home-luces__img {
	display: none !important;
}

/* el texto de cada pieza, a media altura (Mario: «que no aparezcan tan abajo, que aparezcan en el medio»):
   sube y aparece, y luego sube y se va */
html.gdw-agm-js .gdw-home-luces .gdw-home-luces__pie {
	position: absolute !important;
	z-index: 4;
	left: max(50px, calc((100% - 1320px) / 2));
	top: 54%;
	width: min(420px, 32vw) !important;
	opacity: calc(var(--ent, 0) - var(--sal, 0));
	translate: 0 calc(-50% + (1 - var(--ent, 0)) * 28px - var(--sal, 0) * 28px);
	pointer-events: auto;
}

/* el sillón entero, con su luz de suelo (13-10-2026, Mario: «sube el brillo de la silla, está muy oscura»: ya sin
   penumbra) */
.gdw-home-luces .gdw-home-luces__base {
	position: absolute;
	z-index: 1;
	right: 3%;
	top: 50%;
	width: min(58%, 920px);
	translate: 0 -46%;
	pointer-events: none;
}

.gdw-home-luces .gdw-home-luces__base img {
	display: block;
	width: 100%;
	height: auto;
}

.gdw-home-luces .gdw-home-luces__base::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: 14%;
	right: 14%;
	bottom: 2%;
	height: 12%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(46, 230, 255, 0.2), rgba(46, 230, 255, 0));
	filter: blur(6px);
}

/* capa de las lupas (la crea el JS): por cada pieza, un punto sobre el sillón, un hilo de luz y la lupa */
.gdw-home-luces .gdw-home-luces__capa {
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
}

/* los puntos de las piezas: siempre a la vista (Mario: «que estén siempre visibles y con una animación que indique
   que están ahí»), con dos ondas que salen de cada uno (desfasadas entre puntos: --retraso, del JS); el de la
   pieza que se está viendo, más grande y más luminoso */
.gdw-home-luces .gdw-home-luces__punto {
	position: absolute;
	left: 0;
	top: 0;
	width: 14px;
	height: 14px;
	margin: -7px 0 0 -7px;
	border-radius: 50%;
	background: #73FBD3;
	box-shadow: 0 0 0 4px rgba(115, 251, 211, 0.25), 0 0 16px rgba(115, 251, 211, 0.8);
	transition: scale 0.4s var(--agm-ease), box-shadow 0.4s var(--agm-ease);
}

.gdw-home-luces .gdw-home-luces__punto::before,
.gdw-home-luces .gdw-home-luces__punto::after {
	content: "";
	position: absolute;
	inset: -12px;
	border-radius: 50%;
	border: 1.5px solid rgba(115, 251, 211, 0.85);
	opacity: 0;
	animation: agm-lupa-pulso 2.4s ease-out infinite;
	animation-delay: var(--retraso, 0s);
}

.gdw-home-luces .gdw-home-luces__punto::after {
	animation-delay: calc(var(--retraso, 0s) + 1.2s);
}

.gdw-home-luces .gdw-home-luces__punto.is-activo {
	scale: 1.35;
	box-shadow: 0 0 0 5px rgba(115, 251, 211, 0.35), 0 0 26px rgba(115, 251, 211, 1);
}

@keyframes agm-lupa-pulso {
	0% {
		scale: 0.45;
		opacity: 0.95;
	}

	100% {
		scale: 1.9;
		opacity: 0;
	}
}

/* el hilo: del punto al borde de la lupa (largo y giro, del JS) */
.gdw-home-luces .gdw-home-luces__hilo {
	position: absolute;
	left: 0;
	top: 0;
	height: 1.5px;
	margin-top: -0.75px;
	transform-origin: 0 50%;
	background: linear-gradient(90deg, rgba(115, 251, 211, 0.95), rgba(46, 230, 255, 0.6));
	box-shadow: 0 0 8px rgba(46, 230, 255, 0.6);
	opacity: 0;
}

/* la lupa: un círculo de cristal con aro de neón que amplía la pieza (fondo: la misma foto, más grande; tamaño
   del fondo, posición y escala los pone el JS) */
.gdw-home-luces .gdw-home-luces__lupa {
	--lupa: clamp(190px, 19vw, 280px);
	position: absolute;
	left: 0;
	top: 0;
	width: var(--lupa);
	height: var(--lupa);
	border-radius: 50%;
	background-color: #0B1A2E;
	background-repeat: no-repeat;
	box-shadow:
		0 0 0 2px rgba(115, 251, 211, 0.95),
		0 0 0 9px rgba(115, 251, 211, 0.1),
		0 0 46px rgba(46, 230, 255, 0.4),
		0 34px 70px -24px rgba(0, 0, 0, 0.75);
	scale: 0;
	will-change: translate, scale;
}

/* reflejo de cristal y viñeta interior */
.gdw-home-luces .gdw-home-luces__lupa::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background:
		radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0) 38%),
		radial-gradient(circle at 50% 50%, rgba(2, 8, 20, 0) 62%, rgba(2, 8, 20, 0.45) 100%);
}

/* un segundo aro, fino, que respira */
.gdw-home-luces .gdw-home-luces__lupa::before {
	content: "";
	position: absolute;
	inset: -18px;
	border-radius: 50%;
	border: 1px solid rgba(115, 251, 211, 0.35);
	animation: agm-lupa-aro 2.8s ease-in-out infinite;
}

@keyframes agm-lupa-aro {
	0%, 100% {
		scale: 1;
		opacity: 0.8;
	}

	50% {
		scale: 1.06;
		opacity: 0.25;
	}
}

/* tableta en vertical y móvil: cabecera arriba, el texto de la pieza en el medio (Mario: «en móvil también») y el
   sillón abajo, a lo ancho (como mucho, el 46 % del alto, para que quepa debajo del texto) */
@media (max-width: 767px), (max-width: 1024px) and (orientation: portrait) {
	html.gdw-agm-js .gdw-home-luces .gdw-home-luces__cabeza {
		top: 84px;
		left: 20px;
		right: 20px;
		width: auto !important;
	}

	.gdw-home-luces .gdw-home-luces__base {
		left: 50%;
		right: auto;
		top: auto;
		bottom: 3%;
		width: min(92%, 46svh);
		translate: -50% 0;
	}

	.gdw-home-luces .gdw-home-luces__lupa {
		--lupa: clamp(130px, 36vw, 190px);
	}

	html.gdw-agm-js .gdw-home-luces .gdw-home-luces__pie {
		left: 20px;
		right: 20px;
		top: 45%;
		width: auto !important;
	}

	.gdw-home-luces .gdw-home-luces__nombre .elementor-heading-title {
		font-size: 30px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gdw-home-luces .gdw-home-luces__lupa::before,
	.gdw-home-luces .gdw-home-luces__punto::before,
	.gdw-home-luces .gdw-home-luces__punto::after {
		animation: none;
	}
}
/* <<< fin AGM 85-luces.css */

/* >>> AGM 90-solicitar.css */
/* ==========================================================================
   AGM Dental · 90-solicitar.css · 13-10-2026 · Mario (pide) · Claude
   Franjas con solo el botón «Solicitar información de este equipo» (gdw-<página>-solicitar: AGM S8,
   AGM 8000C S3 PRO, Sala de máquinas y Profilaxis). Mario: «haz que ese botón se anime con un zoomIn y se
   sincronice con el scroll». El JS (90-solicitar.js) pone gdw-agm-zoom en la franja y --agm-zoom (0 → 1)
   mientras la franja sube por la pantalla; sin JS o con «reducir movimiento», el botón a su tamaño.
   ========================================================================== */
html.gdw-agm-js .gdw-agm-zoom .elementor-widget-button.gdw-agm-solicitar {
	scale: calc(0.55 + 0.45 * var(--agm-zoom, 1));
	opacity: calc(0.15 + 0.85 * var(--agm-zoom, 1));
	transform-origin: 50% 50%;
}
/* <<< fin AGM 90-solicitar.css */

/* >>> AGM 92-fotos.css */
/* ==========================================================================
   AGM Dental · 92-fotos.css · 13-10-2026 · Mario (pide) · Claude
   Marco de las imágenes del sitio (gdw-agm-foto, la pone 92-fotos.js). Primero solo en las fotos de estudio,
   para que su fondo no se cortara contra el de la sección; después, Mario: «hazlo en todas las imágenes del
   sitio, salvo las de las diagramaciones de las sillas dentales» (las composiciones del sillón: escáner de la
   portada, giro, explorador, «Viaje al detalle», lupas, «Frente a frente» y la primera sección de cada página).
   v4 (Mario, con captura del bento del 8000C: «me gusta más este estilo de borde, como un degradado de colores a
   transparente, y sin nada más»): solo el borde. Esquinas redondeadas y un borde de 1,5 px que va de menta y cian
   a transparente y de transparente a violeta; sin paspartú, escuadras, brillos, destello ni movimiento.
   Detrás (--foto-fondo): en las de estudio, un degradado con los colores de sus bordes; en los recortes, un fondo
   claro (o de cristal oscuro), con aire alrededor. Sobre fondo oscuro, el borde más luminoso.
   Tipos (los pone el JS): --estudio (fondo propio liso), --recorte (fondo transparente), --llena (foto de
   ambiente), --oscuro (sobre fondo oscuro), --peque (miniaturas).
   ========================================================================== */
/* el degradado del borde, también para otras tarjetas (los datos de Sobre nosotros, 40-ajustes.css §14) */
:root {
	--agm-borde-degradado: linear-gradient(135deg, rgba(115, 251, 211, 0.95), rgba(46, 230, 255, 0.5) 28%, rgba(46, 230, 255, 0) 48%, rgba(123, 92, 255, 0) 60%, rgba(123, 92, 255, 0.85));
}

.gdw-agm-foto {
	--foto-borde: var(--agm-borde-degradado);
	--foto-fondo: linear-gradient(180deg, #FFFFFF, #EEF2F7);
	--foto-radio: 24px;
}

/* sobre fondo oscuro: el borde, más luminoso, y los recortes sobre cristal oscuro */
:is(.gdw-agm-sec--noche, .gdw-agm-sec--negro, .gdw-agm-sec--azul, .gdw-agm-phero--noche, .gdw-agm-cta) .gdw-agm-foto,
.gdw-agm-foto.gdw-agm-foto--oscuro {
	--foto-borde: linear-gradient(135deg, #73FBD3, rgba(46, 230, 255, 0.7) 28%, rgba(46, 230, 255, 0) 48%, rgba(123, 92, 255, 0) 60%, #7B5CFF);
	--foto-fondo: linear-gradient(180deg, #16293F, #0A1729);
}

/* las de estudio, con los colores de sus bordes (también sobre fondo oscuro) */
.gdw-agm-foto.gdw-agm-foto--estudio {
	--foto-fondo: linear-gradient(180deg, var(--foto-arriba, #FFFFFF), var(--foto-abajo, #F1F3F6));
}

/* miniaturas (menos de 220 px de ancho) */
.gdw-agm-foto.gdw-agm-foto--peque {
	--foto-radio: 14px;
}

/* la foto: el fondo, dentro del borde; el degradado, solo en el borde (lo transparente deja ver la sección) */
.gdw-agm-foto img {
	border: 1.5px solid transparent !important;
	border-radius: var(--foto-radio) !important;
	background: var(--foto-fondo) padding-box, var(--foto-borde) border-box !important;
	box-shadow: none !important;
}

/* los recortes, con aire entre el producto y el borde */
.gdw-agm-foto.gdw-agm-foto--recorte img {
	box-sizing: border-box;
	padding: clamp(10px, 6%, 32px) !important;
}

.gdw-agm-foto.gdw-agm-foto--peque.gdw-agm-foto--recorte img {
	padding: 8px !important;
}

/* las de ambiente llenan su marco */
.gdw-agm-foto.gdw-agm-foto--llena img {
	object-fit: cover !important;
}

/* la foto, del tamaño de su contenido: si algo le limita el alto, el ancho baja con él (si no, con object-fit:
   contain quedaban franjas a los lados dentro del marco; pasaba en el configurador en tableta). La clase
   repetida, para ganar a 20-producto.css (.gdw-agm-config .gdw-agm-config__vista img { width: 100% !important }).
   Las tarjetas en rejilla siguen con su caja 4:3 (40-ajustes.css §12, que pesa más): todas del mismo tamaño. */
.gdw-agm-foto.gdw-agm-foto.gdw-agm-foto img {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	margin-left: auto;
	margin-right: auto;
}

/* con marco no flotan */
html.gdw-agm-js .gdw-agm-foto.gdw-agm-flota img {
	transform: none !important;
}

@media (max-width: 767px) {
	.gdw-agm-foto {
		--foto-radio: 18px;
	}
}
/* <<< fin AGM 92-fotos.css */

/* >>> AGM 94-zoom.css */
/* ==========================================================================
   AGM Dental · 94-zoom.css · 13-10-2026 · Mario (pide) · Claude
   Foto que crece con el scroll hasta el ancho de la pantalla (gdw-agm-zoompin, la pone 94-zoom.js; hoy, el
   gabinete del 8000C: gdw-s3pro-ambiente). Mario: «que la imagen vaya haciendo un zoomIn sincronizado con el
   scroll y que se quede fija hasta que ocupe el 100 % del ancho de la pantalla».
   La sección es una escena fija (motor: gdw-agm-escena--fija, 260svh) y su caja (.e-con-inner, o
   .gdw-agm-zoompin__marco si va a todo el ancho) el marco de 100svh. La foto mide ya el ancho de la pantalla y se escala (--zp-esc, de 0,58 a 1: barato, sin recalcular la
   página), con las esquinas redondeadas que se van cuadrando; dentro, la foto se acerca un poco al revés
   (--zp-int, de 1,16 a 1). Cuando llena el ancho, un velo oscuro y la frase encima (--zp-fr), que entra palabra
   a palabra. En móvil y tableta en vertical, la foto, a lo ancho con su proporción, y la frase debajo.
   Sin el motor (sin JS, «reducir movimiento», editor): como estaba (foto con parallax y la frase debajo).
   ========================================================================== */

html.gdw-agm-js .gdw-agm-sec.gdw-agm-zoompin {
	--padding-top: 0px !important;
	--padding-bottom: 0px !important;
	--padding-left: 0px !important;
	--padding-right: 0px !important;
	padding: 0 !important;
}

/* el marco (la caja interior de la sección, o uno que crea el JS si la sección va a todo el ancho): si crece hasta
   el alto de la sección, no se queda fijo (aprendido con el giro del S8) */
html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco {
	display: block !important;
	flex: 0 0 auto !important;
	height: 100svh !important;
	width: 100%;
	max-width: none !important;
	padding: 0 !important;
}

/* la foto: del ancho de la pantalla (y del alto, como mucho), escalada */
html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-image {
	position: absolute !important;
	left: 50%;
	top: 50%;
	width: 100% !important;
	max-width: none !important;
	height: min(100svh, 75vw);
	margin: 0 !important;
	translate: -50% -50%;
	scale: var(--zp-esc, 0.58);
	border-radius: calc(28px * var(--zp-q, 1.72));
	overflow: hidden !important;
	will-change: scale;
}

html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover;
	object-position: 50% 62%;
	transform: scale(var(--zp-int, 1.16)) !important;
	transform-origin: 50% 62%;
}

/* velo para que la frase se lea encima de la foto */
html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-image::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(0deg, rgba(2, 11, 22, 0.84), rgba(2, 11, 22, 0.4) 42%, rgba(2, 11, 22, 0) 70%);
	opacity: var(--zp-fr, 0);
}

/* la frase, abajo, sobre la foto */
html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-heading {
	position: absolute !important;
	z-index: 2;
	left: 50%;
	bottom: 9%;
	width: min(980px, 86vw) !important;
	max-width: none !important;
	margin: 0 !important;
	translate: -50% 0;
	opacity: var(--zp-fr, 0);
}

/* sus palabras entran cuando la foto ya llena el ancho (is-zp, del JS; no basta el is-in del motor, que la da por
   vista en cuanto la sección entra en pantalla) */
html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-heading:not(.is-zp) .agm-w__i {
	translate: 0 110%;
	opacity: 0;
}

/* móvil y tableta en vertical: la foto, con su proporción, y la frase debajo, sobre el negro */
@media (max-width: 767px), (max-width: 1024px) and (orientation: portrait) {
	html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-image {
		border-radius: calc(18px * var(--zp-q, 1.72));
	}

	html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-image::after {
		content: none;
	}

	html.gdw-agm-js .gdw-agm-zoompin .gdw-agm-escena__marco > .elementor-widget-heading {
		top: calc(50% + 37.5vw + 28px);
		bottom: auto;
		width: calc(100% - 40px) !important;
	}
}
/* <<< fin AGM 94-zoom.css */
