/*!
 * Acero & Grúas — Núcleo · ayg-core.css (rediseño v3)
 * Todo el CSS del sitio. Ninguna regla vive en widgets HTML de Elementor.
 * Títulos: Barlow Condensed · Texto: Plus Jakarta Sans 300 · Botones: Barlow.
 */

/* ======================================================================
   1. Tokens
   ====================================================================== */
:root {
	--ayg-noche: #07090C;
	--ayg-noche-2: #0D1014;
	--ayg-noche-3: #141820;
	--ayg-tinta: #0D1014;
	--ayg-texto: #41484F;
	--ayg-gris: #6B737A;
	--ayg-gris-2: #8C949B;
	--ayg-gris-claro: #B9C0C6;
	--ayg-linea: #E3E1DB;
	--ayg-papel: #F3F2EE;
	--ayg-blanco: #FFFFFF;
	--ayg-acento: #12A6C9;
	--ayg-acento-hover: #3FC3E3;
	--ayg-acento-osc: #0E8CAB;
	--ayg-sobre-acento: #031B22;
	--ayg-amarillo: #FFC21A;
	--ayg-wa: #25D366;
	--ayg-display: 'Barlow Condensed', 'Arial Narrow', system-ui, sans-serif;
	--ayg-sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ayg-radio: 22px;
	--ayg-radio-md: 16px;
	--ayg-radio-sm: 12px;
	--ayg-ease: cubic-bezier(.22, 1, .36, 1);
	--ayg-ease-io: cubic-bezier(.65, 0, .35, 1);
	--ayg-header-h: 96px;
	--ayg-sombra: 0 30px 60px -32px rgba(7, 9, 12, .45);
	--ayg-sombra-sm: 0 14px 30px -18px rgba(7, 9, 12, .35);
	--ayg-glass: rgba(13, 16, 20, .48);
	--ayg-glass-borde: rgba(255, 255, 255, .12);
}
@media (max-width: 1024px) { :root { --ayg-header-h: 84px; --ayg-radio: 20px; } }
@media (max-width: 767px)  { :root { --ayg-header-h: 76px; --ayg-radio: 18px; } }

/* ======================================================================
   2. Base
   ====================================================================== */
html { scroll-padding-top: calc(var(--ayg-header-h) + 16px); }
body {
	background: var(--ayg-papel);
	color: var(--ayg-texto);
	font-family: var(--ayg-sans);
	font-size: 16px;
	line-height: 1.45;
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body p { text-wrap: pretty; }
.elementor .ayg-accent,
.elementor .elementor-heading-title .ayg-accent { color: var(--ayg-acento); }
::selection { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
:focus-visible { outline: 2px solid var(--ayg-acento); outline-offset: 3px; border-radius: 6px; }
.elementor .elementor-widget-text-editor p { margin: 0 0 .7em; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Fondos de sección */
.elementor .ayg-paper { background-color: var(--ayg-papel); }
.elementor .ayg-white { background-color: var(--ayg-blanco); }
.elementor .ayg-dark  { background-color: var(--ayg-noche); color: var(--ayg-gris-claro); }
.elementor .ayg-sec { position: relative; }

/* Resplandor de acento en secciones oscuras */
.elementor .ayg-glow { position: relative; overflow: hidden; isolation: isolate; }
.elementor .ayg-glow::before {
	content: "";
	position: absolute;
	inset: -20% -10% auto auto;
	width: 70vw;
	height: 70vw;
	max-width: 900px;
	max-height: 900px;
	background: radial-gradient(closest-side, rgba(18, 166, 201, .2), rgba(18, 166, 201, 0));
	pointer-events: none;
	z-index: 0;
}
.elementor .ayg-glow::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 64px 64px;
	-webkit-mask-image: radial-gradient(ellipse at 70% 0%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse at 70% 0%, #000 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}
.elementor .ayg-glow > .e-con-inner,
.elementor .ayg-glow > .elementor-element { position: relative; z-index: 1; }

/* ======================================================================
   3. Tipografía
   ====================================================================== */
.elementor .ayg-h1 .elementor-heading-title,
.elementor .ayg-h2 .elementor-heading-title,
.elementor .ayg-h3 .elementor-heading-title {
	font-family: var(--ayg-display);
	color: var(--ayg-tinta);
	letter-spacing: -.005em;
	text-wrap: balance;
}
.elementor .ayg-h1 .elementor-heading-title {
	font-weight: 700;
	font-size: clamp(3rem, 1.5rem + 5.6vw, 7.25rem);
	line-height: .9;
}
.elementor .ayg-h1--md .elementor-heading-title { font-size: clamp(2.7rem, 1.6rem + 3.9vw, 5.4rem); line-height: .92; }
.elementor .ayg-h2 .elementor-heading-title {
	font-weight: 700;
	font-size: clamp(2.4rem, 1.5rem + 2.9vw, 4.25rem);
	line-height: .94;
}
.elementor .ayg-h2--sm .elementor-heading-title { font-size: clamp(2.1rem, 1.5rem + 1.8vw, 3.1rem); }
.elementor .ayg-h3 .elementor-heading-title {
	font-weight: 600;
	font-size: clamp(1.55rem, 1.3rem + .7vw, 2rem);
	line-height: 1;
}
.elementor .ayg-h2-sub .elementor-heading-title {
	font-family: var(--ayg-display);
	font-weight: 500;
	font-size: clamp(1.35rem, 1.15rem + .6vw, 1.7rem);
	line-height: 1.12;
	color: var(--ayg-gris);
}

/* Etiqueta tipo píldora */
.elementor .ayg-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 7px 13px 7px 11px;
	border-radius: 999px;
	border: 1px solid rgba(13, 16, 20, .12);
	background: rgba(255, 255, 255, .7);
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 11.5px;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ayg-tinta);
}
.elementor .ayg-eyebrow .elementor-heading-title::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ayg-acento);
	box-shadow: 0 0 0 0 rgba(18, 166, 201, .55);
	animation: ayg-ping 2.4s var(--ayg-ease) infinite;
	flex: 0 0 auto;
}
.elementor .ayg-dark .ayg-eyebrow .elementor-heading-title,
.elementor .ayg-eyebrow--light .elementor-heading-title {
	color: var(--ayg-blanco);
	border-color: rgba(255, 255, 255, .16);
	background: rgba(255, 255, 255, .06);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
@keyframes ayg-ping {
	0% { box-shadow: 0 0 0 0 rgba(18, 166, 201, .55); }
	70%, 100% { box-shadow: 0 0 0 9px rgba(18, 166, 201, 0); }
}

.elementor .ayg-mono .elementor-heading-title,
.elementor .ayg-meta .elementor-heading-title {
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 11.5px;
	line-height: 1.4;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--ayg-acento-osc);
}
.elementor .ayg-meta--muted .elementor-heading-title { color: var(--ayg-gris); text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 13px; }

.elementor .ayg-lead,
.elementor .ayg-lead p {
	font-size: clamp(1rem, .95rem + .25vw, 1.125rem);
	line-height: 1.45;
	color: var(--ayg-texto);
}
.elementor .ayg-lead-dark,
.elementor .ayg-lead-dark p {
	font-size: clamp(1.05rem, .98rem + .3vw, 1.2rem);
	line-height: 1.45;
	color: var(--ayg-tinta);
}
.elementor .ayg-prose,
.elementor .ayg-prose p { font-size: 16px; line-height: 1.52; color: var(--ayg-texto); }
.elementor .ayg-prose p { margin: 0 0 1em; }
.elementor .ayg-prose p:last-child { margin-bottom: 0; }
.elementor .ayg-prose ul { margin: 0 0 1em; padding: 0; list-style: none; }
.elementor .ayg-prose li { position: relative; padding: 0 0 0 24px; margin: 0 0 .5em; }
.elementor .ayg-prose ul li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .62em;
	width: 8px;
	height: 8px;
	border-radius: 3px;
	background: var(--ayg-acento);
}
.elementor .ayg-prose a { color: var(--ayg-acento-osc); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.elementor .ayg-prose a:hover { color: var(--ayg-acento); }
.elementor .ayg-prose strong { color: var(--ayg-tinta); font-weight: 600; }
.elementor .ayg-caption .elementor-heading-title { font-size: 13px; color: var(--ayg-gris); font-weight: 500; }

/* Texto sobre fondo oscuro */
.elementor .ayg-dark .ayg-h1 .elementor-heading-title,
.elementor .ayg-dark .ayg-h2 .elementor-heading-title,
.elementor .ayg-dark .ayg-h3 .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-lead,
.elementor .ayg-dark .ayg-lead p,
.elementor .ayg-dark .elementor-widget-text-editor,
.elementor .ayg-dark .elementor-widget-text-editor p,
.elementor .ayg-dark .ayg-prose,
.elementor .ayg-dark .ayg-prose p { color: var(--ayg-gris-claro); }
.elementor .ayg-dark .ayg-h2-sub .elementor-heading-title { color: var(--ayg-gris-2); }
.elementor .ayg-dark .ayg-meta .elementor-heading-title { color: var(--ayg-acento); }
.elementor .ayg-dark .elementor-widget-text-editor a { color: var(--ayg-acento-hover); }
.elementor .ayg-dark .ayg-prose strong { color: var(--ayg-blanco); }

/* ======================================================================
   4. Header glass flotante + mega menú
   ====================================================================== */
[data-elementor-type="header"] {
	position: sticky;
	top: 0;
	z-index: 1000;
	transition: transform .55s var(--ayg-ease);
}
.admin-bar [data-elementor-type="header"] { top: 32px; }
@media (max-width: 782px) { .admin-bar [data-elementor-type="header"] { top: 46px; } }
@media (max-width: 600px) { .admin-bar [data-elementor-type="header"] { top: 0; } }
.ayg-hdr-hidden [data-elementor-type="header"] { transform: translateY(-115%); }
.ayg-menu-open [data-elementor-type="header"] { transform: none; }

.elementor .ayg-header { background: transparent; pointer-events: none; }
.elementor .ayg-header > .e-con-inner { pointer-events: none; }
.elementor .ayg-header__bar {
	pointer-events: auto;
	min-height: 68px;
	border-radius: 18px;
	background: rgba(13, 16, 20, .32);
	border: 1px solid rgba(255, 255, 255, .12);
	-webkit-backdrop-filter: blur(18px) saturate(160%);
	backdrop-filter: blur(18px) saturate(160%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
	transition: background-color .45s var(--ayg-ease), box-shadow .45s var(--ayg-ease), border-color .45s ease;
}
.ayg-scrolled .elementor .ayg-header__bar {
	background: rgba(9, 11, 14, .78);
	border-color: rgba(255, 255, 255, .08);
	box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .05);
}
.elementor .ayg-logo { flex: 0 0 auto; width: auto; }
.elementor .ayg-logo img { width: 54px; height: auto; max-width: none; display: block; transition: transform .5s var(--ayg-ease); }
.elementor .ayg-logo a:hover img { transform: scale(1.05) rotate(-2deg); }
.elementor .ayg-header__cta { width: auto; flex: 0 0 auto; }
.elementor .ayg-header__cta .elementor-widget { width: auto; }
@media (max-width: 767px) { .elementor .ayg-logo img { width: 46px; } }

/* Mega menú (widget Menú de Elementor Pro) */
.elementor .ayg-mega { flex: 1 1 auto; width: auto; }
.elementor .ayg-mega .e-n-menu-heading { justify-content: center; gap: 2px; }
.elementor .ayg-mega .e-n-menu-title {
	border-radius: 10px;
	transition: background-color .3s ease;
	background: transparent;
}
.elementor .ayg-mega .e-n-menu-title-container,
.elementor .ayg-mega .e-n-menu-title-text {
	font-family: var(--ayg-sans);
	font-weight: 500;
	font-size: 14.5px;
	line-height: 1;
	letter-spacing: 0;
	color: var(--ayg-blanco);
	padding: 0;
}
.elementor .ayg-mega .e-n-menu-title { padding: 11px 13px; }
.elementor .ayg-mega .e-n-menu-title:hover,
.elementor .ayg-mega .e-n-menu-item.e-active > .e-n-menu-title,
.elementor .ayg-mega .e-n-menu-title[aria-expanded="true"] { background: rgba(255, 255, 255, .09); }
.elementor .ayg-mega .e-n-menu-title.e-current .e-n-menu-title-text { color: var(--ayg-acento-hover); }
.elementor .ayg-mega .e-n-menu-dropdown-icon { color: var(--ayg-gris-2); margin-left: 6px; }
.elementor .ayg-mega .e-n-menu-dropdown-icon i { font-size: 9px; }
.elementor .ayg-mega .e-n-menu-dropdown-icon svg { width: 9px; height: 9px; fill: currentColor; }
.elementor .ayg-mega .e-n-menu-toggle {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, .16);
	background: rgba(255, 255, 255, .06);
	color: var(--ayg-blanco);
	place-items: center;
}
.elementor .ayg-mega .e-n-menu-toggle i { color: var(--ayg-blanco); font-size: 17px; }
.elementor .ayg-mega .e-n-menu-toggle svg { fill: var(--ayg-blanco); width: 17px; height: 17px; }
.elementor .ayg-mega .e-n-menu-content { background: transparent !important; padding-top: 18px; }

.elementor .ayg-mega__panel {
	max-width: 1180px;
	margin: 0 auto;
	padding: 22px;
	border-radius: 22px;
	background: rgba(9, 11, 14, .9);
	border: 1px solid rgba(255, 255, 255, .1);
	-webkit-backdrop-filter: blur(22px) saturate(150%);
	backdrop-filter: blur(22px) saturate(150%);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7);
	animation: ayg-drop .45s var(--ayg-ease) both;
}
@keyframes ayg-drop { from { opacity: 0; transform: translateY(-8px) scale(.99); } to { opacity: 1; transform: none; } }
.elementor .ayg-mega__col { justify-content: flex-start; }
.elementor .ayg-mega__title .elementor-heading-title {
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 11.5px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ayg-gris-2);
}
.elementor .ayg-mega__grid > .ayg-mega__item { flex: 0 0 calc(50% - 4px) !important; width: auto !important; }
.elementor .ayg-mega__grid--3 > .ayg-mega__item { flex: 0 0 calc(33.333% - 6px) !important; }
.elementor .ayg-mega__panel .ayg-link-arrow .elementor-button { color: var(--ayg-blanco); }
.elementor .ayg-mega__panel .ayg-link-arrow--underline .elementor-button::after { background-image: linear-gradient(90deg, var(--ayg-acento) 50%, rgba(255, 255, 255, .2) 50%); }
.elementor .ayg-mega__item {
	padding: 10px;
	border-radius: 14px;
	border: 1px solid transparent;
	transition: background-color .35s ease, border-color .35s ease, transform .45s var(--ayg-ease);
}
.elementor .ayg-mega__item:hover { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .08); transform: translateX(3px); }
.elementor .ayg-mega__item > .elementor-widget,
.elementor .ayg-mega__thumb { flex: 0 0 auto !important; width: auto; }
.elementor .ayg-mega__item > .e-con { flex: 1 1 auto !important; min-width: 0; }
.elementor .ayg-mega__thumb img { width: 74px; height: 56px; object-fit: cover; border-radius: 10px; display: block; }
.elementor .ayg-mega__name .elementor-heading-title {
	font-family: var(--ayg-display);
	font-weight: 600;
	font-size: 20px;
	line-height: 1.02;
	color: var(--ayg-blanco);
}
.elementor .ayg-mega__name .elementor-heading-title a { color: inherit; transition: color .3s ease; }
.elementor .ayg-mega__item:hover .ayg-mega__name .elementor-heading-title a { color: var(--ayg-acento-hover); }
.elementor .ayg-mega__meta .elementor-heading-title { font-size: 12.5px; line-height: 1.35; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-mega__ico .elementor-icon {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	background: rgba(18, 166, 201, .14);
	color: var(--ayg-acento-hover);
	font-size: 16px;
	transition: background-color .35s ease, color .35s ease;
}
.elementor .ayg-mega__ico .elementor-icon svg { width: 16px; height: 16px; fill: currentColor; }
.elementor .ayg-mega__item:hover .ayg-mega__ico .elementor-icon { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-mega__list > .ayg-mega__item--row { border-radius: 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); padding: 13px 4px; }
.elementor .ayg-mega__list > .ayg-mega__item--row:hover { background: transparent; }
.elementor .ayg-mega__year { flex: 0 0 104px; width: auto; }
.elementor .ayg-mega__year .elementor-heading-title { font-size: 12.5px; font-weight: 600; color: var(--ayg-acento-hover); font-variant-numeric: tabular-nums; }
.elementor .ayg-mega__item--row .ayg-mega__name .elementor-heading-title { font-size: 22px; }
.elementor .ayg-mega__promo { position: relative; overflow: hidden; border-radius: 18px; justify-content: flex-end; min-height: 260px; isolation: isolate; }
.elementor .ayg-mega__promo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(7, 9, 12, .15) 0%, rgba(7, 9, 12, .92) 78%);
}
.elementor .ayg-mega__promo-title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 30px; line-height: .98; color: var(--ayg-blanco); }
.elementor .ayg-mega__pic img { width: 100%; aspect-ratio: 4 / 3; max-height: 240px; object-fit: cover; border-radius: 16px; display: block; }
.elementor .ayg-mega__caption .elementor-heading-title { font-size: 12.5px; color: var(--ayg-gris-2); font-weight: 500; }

@media (max-width: 1024px) {
	.elementor .ayg-mega { flex: 0 0 auto; order: 3; }
	.elementor .ayg-mega .e-n-menu-toggle { display: inline-grid; }
	.elementor .ayg-header__cta { margin-left: auto; }
	.elementor .ayg-mega .e-n-menu-wrapper {
		background: rgba(9, 11, 14, .97);
		border: 1px solid rgba(255, 255, 255, .1);
		border-radius: 18px;
		margin-top: 12px;
		padding: 8px;
		max-height: calc(100vh - 120px);
		overflow-y: auto;
		box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .7);
	}
	.elementor .ayg-mega .e-n-menu-title { padding: 15px 14px; }
	.elementor .ayg-mega .e-n-menu-title-text { font-size: 17px; }
	.elementor .ayg-mega .e-n-menu-content { padding-top: 0; }
	.elementor .ayg-mega__panel { padding: 4px 4px 12px; border: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; border-radius: 0; animation: none; }
	.elementor .ayg-mega__promo,
	.elementor .ayg-mega__pic,
	.elementor .ayg-mega__pic + *,
	.elementor .ayg-mega__title { display: none !important; }
	.elementor .ayg-mega__inner > .e-con:has(.ayg-mega__pic) { display: none !important; }
	.elementor .ayg-mega__inner > .e-con { width: 100% !important; flex: 1 1 100% !important; }
	.elementor .ayg-mega__grid > .ayg-mega__item,
	.elementor .ayg-mega__grid--3 > .ayg-mega__item { flex: 0 0 100% !important; }
	.elementor .ayg-mega__thumb img { width: 56px; height: 42px; }
	.elementor .ayg-mega__item { padding: 8px; }
}

/* ======================================================================
   5. Botones
   ====================================================================== */
.elementor .ayg-btn .elementor-button,
.elementor .ayg-form .elementor-button[type="submit"] {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1;
	padding: 17px 22px 17px 24px;
	border-radius: 14px;
	border: 1px solid transparent;
	transition: color .45s var(--ayg-ease), border-color .45s ease, box-shadow .5s var(--ayg-ease), transform .5s var(--ayg-ease);
	will-change: transform;
}
/* Relleno que sube desde abajo al pasar el mouse */
.elementor .ayg-btn .elementor-button::before,
.elementor .ayg-form .elementor-button[type="submit"]::before {
	content: "";
	position: absolute;
	left: -10%;
	right: -10%;
	top: 100%;
	height: 260%;
	z-index: -1;
	border-radius: 50% 50% 0 0 / 30% 30% 0 0;
	background: var(--ayg-fill, var(--ayg-blanco));
	transition: transform .6s var(--ayg-ease), border-radius .6s var(--ayg-ease);
	pointer-events: none;
}
.elementor .ayg-btn .elementor-button:hover::before,
.elementor .ayg-form .elementor-button[type="submit"]:hover::before { transform: translateY(-62%); border-radius: 0; }
.elementor .ayg-btn .elementor-button:active { transform: scale(.97); }
.elementor .ayg-btn .elementor-button-content-wrapper { gap: 12px; align-items: center; }
/* Flecha que sale y vuelve a entrar */
.elementor .ayg-btn .elementor-button-icon {
	display: inline-grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: rgba(3, 27, 34, .12);
	overflow: hidden;
	font-size: 12px;
	transition: background-color .45s ease;
}
.elementor .ayg-btn .elementor-button-icon svg { width: 12px; height: 12px; fill: currentColor; }
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon i,
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon svg { animation: ayg-arrow .6s var(--ayg-ease) both; }
.elementor .ayg-btn .elementor-button[href*="wa.me"] .elementor-button-icon i,
.elementor .ayg-btn .elementor-button[href*="wa.me"] .elementor-button-icon svg,
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon i,
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon svg { animation: none; }
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon { transform: rotate(-12deg) scale(1.08); }
.elementor .ayg-btn .elementor-button[href*="wa.me"] .elementor-button-icon { transition: transform .45s var(--ayg-ease), background-color .45s ease; }
@keyframes ayg-arrow {
	0% { transform: translateX(0); }
	45% { transform: translateX(140%); opacity: 1; }
	46% { transform: translateX(-140%); opacity: 0; }
	47% { opacity: 1; }
	100% { transform: translateX(0); }
}

.elementor .ayg-btn--primary .elementor-button { background: var(--ayg-acento); color: var(--ayg-sobre-acento); --ayg-fill: var(--ayg-blanco); box-shadow: 0 10px 30px -12px rgba(18, 166, 201, .7); }
.elementor .ayg-btn--primary .elementor-button:hover { color: var(--ayg-noche); box-shadow: 0 18px 40px -14px rgba(18, 166, 201, .8); }
.elementor .ayg-white .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-paper .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-specs-card .ayg-btn--primary .elementor-button:hover { --ayg-fill: var(--ayg-noche); color: var(--ayg-blanco); }
.elementor .ayg-paper .ayg-dark .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-cta .ayg-btn--primary .elementor-button:hover { --ayg-fill: var(--ayg-blanco); color: var(--ayg-noche); }
.elementor .ayg-btn--ghost .elementor-button { background: rgba(255, 255, 255, .04); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .26); --ayg-fill: var(--ayg-blanco); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.elementor .ayg-btn--ghost .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .1); }
.elementor .ayg-btn--ghost .elementor-button:hover { color: var(--ayg-noche); border-color: var(--ayg-blanco); }
.elementor .ayg-btn--ghost .elementor-button:hover .elementor-button-icon { background: rgba(3, 27, 34, .1); }
.elementor .ayg-paper .ayg-btn--ghost:not(.ayg-dark *) .elementor-button,
.elementor .ayg-white .ayg-btn--ghost:not(.ayg-dark *) .elementor-button { color: var(--ayg-tinta); border-color: rgba(13, 16, 20, .2); --ayg-fill: var(--ayg-noche); }
.elementor .ayg-paper .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover,
.elementor .ayg-white .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover { color: var(--ayg-blanco); border-color: var(--ayg-noche); }
.elementor .ayg-btn--dark .elementor-button { background: var(--ayg-noche); color: var(--ayg-blanco); --ayg-fill: var(--ayg-acento); }
.elementor .ayg-btn--dark .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .12); }
.elementor .ayg-btn--dark .elementor-button:hover { color: var(--ayg-sobre-acento); }
.elementor .ayg-btn--line .elementor-button { background: transparent; color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .22); --ayg-fill: var(--ayg-wa); }
.elementor .ayg-btn--line .elementor-button:hover { color: #04210F; border-color: var(--ayg-wa); }
.elementor .ayg-btn--line .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .08); }
.elementor .ayg-btn--icon .elementor-button { padding: 0; width: 46px; height: 46px; border-radius: 13px; background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); color: var(--ayg-blanco); --ayg-fill: var(--ayg-wa); }
.elementor .ayg-btn--icon .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.elementor .ayg-btn--icon .elementor-button-icon { background: none; width: auto; height: auto; font-size: 18px; }
.elementor .ayg-btn--icon .elementor-button-icon svg { width: 18px; height: 18px; }
.elementor .ayg-btn--icon .elementor-button:hover { color: #04210F; border-color: var(--ayg-wa); }
.elementor .ayg-btn--sm .elementor-button { padding: 12px 14px 12px 18px; font-size: 14px; border-radius: 12px; }
.elementor .ayg-btn--sm .elementor-button .elementor-button-icon { width: 22px; height: 22px; border-radius: 7px; font-size: 11px; }
.elementor .ayg-btn--block,
.elementor .ayg-btn--block .elementor-button { width: 100%; }
.elementor .ayg-btn--block .elementor-button-content-wrapper { justify-content: center; }
.elementor .ayg-btns .elementor-widget { width: auto; }
.elementor .ayg-btn.is-empty { display: none; }

/* Enlaces con flecha */
.elementor .ayg-link-arrow .elementor-button {
	background: none;
	padding: 6px 0;
	border-radius: 0;
	color: var(--ayg-tinta);
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 14.5px;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.3;
	box-shadow: none;
	position: relative;
}
.elementor .ayg-link-arrow .elementor-button:hover { color: var(--ayg-acento-osc); background: none; }
.elementor .ayg-link-arrow .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.elementor .ayg-link-arrow .elementor-button-icon { transition: transform .5s var(--ayg-ease); font-size: 12px; color: var(--ayg-acento); }
.elementor .ayg-link-arrow .elementor-button-icon svg { width: 12px; height: 12px; fill: var(--ayg-acento); }
.elementor .ayg-link-arrow .elementor-button:hover .elementor-button-icon { transform: translateX(5px); }
.elementor .ayg-link-arrow--underline .elementor-button { padding-bottom: 8px; }
.elementor .ayg-link-arrow--underline .elementor-button::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--ayg-acento) 50%, rgba(13, 16, 20, .15) 50%);
	background-size: 200% 100%;
	background-position: 100% 0;
	transition: background-position .6s var(--ayg-ease);
}
.elementor .ayg-link-arrow--underline .elementor-button:hover::after { background-position: 0 0; }
.elementor .ayg-dark .ayg-link-arrow .elementor-button { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-link-arrow .elementor-button:hover { color: var(--ayg-acento-hover); }
.elementor .ayg-dark .ayg-link-arrow--underline .elementor-button::after { background-image: linear-gradient(90deg, var(--ayg-acento) 50%, rgba(255, 255, 255, .2) 50%); }
.elementor .ayg-back .elementor-button { color: var(--ayg-gris-2); font-size: 13.5px; font-weight: 500; }
.elementor .ayg-back .elementor-button-content-wrapper { flex-direction: row-reverse; }
.elementor .ayg-back .elementor-button-icon { transform: rotate(180deg); }
.elementor .ayg-back .elementor-button:hover .elementor-button-icon { transform: rotate(180deg) translateX(5px); }
.elementor .ayg-dark .ayg-back .elementor-button:hover { color: var(--ayg-blanco); }

/* Botón redondo con flecha diagonal (tarjetas) */
.elementor .ayg-arrowbtn { width: auto; flex: 0 0 auto; }
.elementor .ayg-arrowbtn .elementor-button {
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background: var(--ayg-noche);
	color: var(--ayg-blanco);
	display: grid;
	place-items: center;
	transition: background-color .4s ease, color .4s ease, transform .5s var(--ayg-ease);
}
.elementor .ayg-arrowbtn .elementor-button-text { display: none; }
.elementor .ayg-arrowbtn .elementor-button-icon { font-size: 14px; margin: 0; transform: rotate(-45deg); transition: transform .5s var(--ayg-ease); }
.elementor .ayg-arrowbtn .elementor-button-icon svg { width: 14px; height: 14px; fill: currentColor; }
.ayg-card:hover .ayg-arrowbtn .elementor-button { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.ayg-card:hover .ayg-arrowbtn .elementor-button-icon { transform: rotate(0deg); }

/* ======================================================================
   6. Hero
   ====================================================================== */
.elementor .ayg-hero { position: relative; overflow: hidden; isolation: isolate; }
.elementor .ayg-hero > .e-con-inner { position: relative; z-index: 2; }
.elementor .ayg-hero--photo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(7, 9, 12, .55) 0%, rgba(7, 9, 12, 0) 26%),
		linear-gradient(90deg, rgba(7, 9, 12, .82) 0%, rgba(7, 9, 12, .35) 62%, rgba(7, 9, 12, .1) 100%),
		linear-gradient(0deg, rgba(7, 9, 12, .9) 0%, rgba(7, 9, 12, 0) 40%);
	pointer-events: none;
}
.elementor .ayg-hero--plain::before,
.elementor .ayg-hero--ficha::before,
.elementor .ayg-hero--proyecto::before,
.elementor .ayg-hero:not(.ayg-hero--photo)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(60% 70% at 85% 10%, rgba(18, 166, 201, .22) 0%, rgba(18, 166, 201, 0) 60%),
		radial-gradient(40% 50% at 0% 100%, rgba(18, 166, 201, .1) 0%, rgba(18, 166, 201, 0) 70%);
	pointer-events: none;
}
.elementor .ayg-hero:not(.ayg-hero--photo)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: 72px 72px;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
	mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
	pointer-events: none;
}
.elementor .ayg-hero .ayg-lead { max-width: 600px; }
.elementor .ayg-hero .ayg-h1 { max-width: 1040px; }
.elementor .ayg-hero__body { justify-content: center; }
.elementor .ayg-hero__note { max-width: 520px; padding-left: 14px; border-left: 2px solid var(--ayg-acento); }
.elementor .ayg-hero__note p { font-size: 14px; line-height: 1.42; color: var(--ayg-gris-claro); }

/* Imagen lateral del hero en marco glass */
.elementor .ayg-hero__side {
	position: relative;
	padding: 8px;
	border-radius: 28px;
	border: 1px solid rgba(255, 255, 255, .1);
	background: rgba(255, 255, 255, .03);
}
.elementor .ayg-hero__side .ayg-hero__img img,
.elementor .ayg-hero__img img { border-radius: 21px; max-height: 540px; }
.elementor .ayg-hero__side--ficha .ayg-glass-stats {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 20px;
	z-index: 2;
	width: auto;
}

/* Cifras glass */
.elementor .ayg-glass-stats { width: 100%; }
.elementor .ayg-glass-stats > .ayg-glass-stat { flex: 1 1 0; min-width: 0; width: auto; }
.elementor .ayg-glass-stats--hero { max-width: 760px; margin-top: 18px; }
.elementor .ayg-glass-stats--hero > .ayg-glass-stat { flex: 1 1 calc(25% - 10px) !important; min-width: 140px; }
.elementor .ayg-glass-stat {
	padding: 16px 18px;
	border-radius: 16px;
	background: rgba(13, 16, 20, .42);
	border: 1px solid rgba(255, 255, 255, .13);
	-webkit-backdrop-filter: blur(14px) saturate(150%);
	backdrop-filter: blur(14px) saturate(150%);
	transition: border-color .4s ease, transform .5s var(--ayg-ease);
}
.elementor .ayg-glass-stat:hover { border-color: rgba(18, 166, 201, .55); transform: translateY(-3px); }
.elementor .ayg-glass-stat__v .elementor-heading-title {
	font-family: var(--ayg-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.6rem);
	line-height: .95;
	color: var(--ayg-blanco);
	font-variant-numeric: tabular-nums;
}
.elementor .ayg-glass-stat__k .elementor-heading-title { font-size: 12.5px; line-height: 1.3; color: var(--ayg-gris-claro); font-weight: 500; }

/* Pasos en píldoras */
.elementor .ayg-flow { margin-top: 6px; }
.elementor .ayg-flow__title .elementor-heading-title { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ayg-gris-2); }
.elementor .ayg-flow__pills .elementor-heading-title { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.elementor .ayg-flow__pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .16);
	background: rgba(255, 255, 255, .04);
	font-family: var(--ayg-sans);
	font-weight: 500;
	font-size: 13.5px;
	line-height: 1;
	color: var(--ayg-gris-claro);
	transition: background-color .5s var(--ayg-ease), color .5s ease, border-color .5s ease, transform .5s var(--ayg-ease);
}
.elementor .ayg-flow__pill:not(.is-last)::after { content: "→"; color: var(--ayg-gris-2); margin-left: 4px; font-size: 12px; }
.elementor .ayg-flow__pill.is-active,
.elementor .ayg-flow__pill:hover { background: var(--ayg-acento); border-color: var(--ayg-acento); color: var(--ayg-sobre-acento); transform: translateY(-2px); }
.elementor .ayg-flow__pill.is-active::after,
.elementor .ayg-flow__pill:hover::after { color: var(--ayg-sobre-acento); }

/* Chips */
.elementor .ayg-chip { width: auto; }
.elementor .ayg-chip .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	padding: 6px 11px;
	border-radius: 999px;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 12px;
	line-height: 1.1;
	letter-spacing: 0;
	white-space: nowrap;
	background: rgba(13, 16, 20, .06);
	color: var(--ayg-tinta);
}
.elementor .ayg-chip .elementor-heading-title:empty { display: none; }
.elementor .ayg-chip--glass .elementor-heading-title {
	background: rgba(9, 11, 14, .5);
	color: var(--ayg-blanco);
	border: 1px solid rgba(255, 255, 255, .18);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.elementor .ayg-chip--accent .elementor-heading-title { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-chips .elementor-widget { width: auto; }

/* ======================================================================
   7. Imágenes con proporción fija
   ====================================================================== */
.elementor .ayg-media { width: 100%; }
.elementor .ayg-media img {
	width: 100%;
	height: auto;
	object-fit: cover;
	display: block;
	border-radius: var(--ayg-radio);
}
.elementor .ayg-media--43 img { aspect-ratio: 4 / 3; max-height: 520px; }
.elementor .ayg-media--45 img { aspect-ratio: 4 / 5; max-height: 560px; }
.elementor .ayg-media--169 img { aspect-ratio: 16 / 9; max-height: 480px; }
.elementor .ayg-media--11 img { aspect-ratio: 1 / 1; max-height: 480px; }
.elementor .ayg-img-reveal { overflow: hidden; border-radius: var(--ayg-radio); }

/* ======================================================================
   8. Marquees (texto y fotos)
   ====================================================================== */
.elementor .ayg-mq-sec { border-top: 1px solid rgba(255, 255, 255, .08); border-bottom: 1px solid rgba(255, 255, 255, .08); overflow: hidden; }
.elementor .ayg-mq-sec > .e-con-inner { max-width: none; }
.elementor .ayg-mq { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.elementor .ayg-mq .elementor-heading-title { display: block; white-space: nowrap; line-height: 1; }
.elementor .ayg-mq__track { display: inline-flex; width: max-content; animation: ayg-mq var(--ayg-mq-dur, 42s) linear infinite; }
.elementor .ayg-mq:hover .ayg-mq__track { animation-play-state: paused; }
.elementor .ayg-mq__group { display: inline-flex; align-items: center; flex: 0 0 auto; }
.elementor .ayg-mq__item {
	font-family: var(--ayg-display);
	font-weight: 600;
	font-size: clamp(2.2rem, 1.6rem + 2.4vw, 4rem);
	line-height: 1;
	color: var(--ayg-blanco);
	display: inline-flex;
	align-items: baseline;
	gap: 14px;
}
.elementor .ayg-mq__item em {
	font-style: normal;
	font-family: var(--ayg-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--ayg-acento-hover);
	-webkit-text-stroke: 0;
	transform: translateY(-.6em);
}
.elementor .ayg-mq__sep { color: var(--ayg-acento); font-size: 22px; margin: 0 clamp(22px, 3vw, 44px); display: inline-block; animation: ayg-spin 8s linear infinite; }
.elementor .ayg-mq--outline .ayg-mq__item { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .42); transition: color .4s ease; }
.elementor .ayg-mq--outline .ayg-mq__item:hover { color: var(--ayg-blanco); -webkit-text-stroke-color: var(--ayg-blanco); }
@keyframes ayg-mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ayg-spin { to { transform: rotate(360deg); } }

.elementor .ayg-mqi-sec { overflow: hidden; }
.elementor .ayg-mqi-sec > .e-con-inner { max-width: none; }
.elementor .ayg-mqi {
	width: max-content !important;
	max-width: none !important;
	flex-wrap: nowrap !important;
	align-items: center;
	padding-right: 16px;
	animation: ayg-mq 70s linear infinite;
}
.elementor .ayg-mqi:hover { animation-play-state: paused; }
.elementor .ayg-mqi > .ayg-mqi__img { flex: 0 0 auto; width: 320px !important; }
.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) { width: 240px !important; }
.elementor .ayg-mqi__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 18px; transition: transform .7s var(--ayg-ease), filter .5s ease; filter: saturate(.9); }
.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) img { aspect-ratio: 4 / 5; }
.elementor .ayg-mqi__img:hover img { transform: scale(1.03); filter: saturate(1.1); }
@media (max-width: 767px) {
	.elementor .ayg-mqi > .ayg-mqi__img { width: 230px !important; }
	.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) { width: 170px !important; }
}

/* ======================================================================
   9. Encabezado de sección
   ====================================================================== */
.elementor .ayg-sec-head__text { max-width: 760px; }
.elementor .ayg-sec-head__lead,
.elementor .ayg-sec-head__lead p { font-size: 16.5px; line-height: 1.45; color: var(--ayg-gris); max-width: 620px; }
.elementor .ayg-dark .ayg-sec-head__lead,
.elementor .ayg-dark .ayg-sec-head__lead p { color: var(--ayg-gris-claro); }
.elementor .ayg-sec-head--center { text-align: center; }
.elementor .ayg-sec-head--center .ayg-sec-head__text { align-items: center; margin: 0 auto; }
.elementor .ayg-sec-head--center .ayg-sec-head__lead p { margin-left: auto; margin-right: auto; }
.elementor .ayg-sec-head .ayg-link-arrow { width: auto; flex: 0 0 auto; }

/* ======================================================================
   10. Efecto spotlight (sigue al cursor) en tarjetas
   ====================================================================== */
.elementor .ayg-spot { position: relative; isolation: isolate; }
.elementor .ayg-spot::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(18, 166, 201, .14), transparent 45%);
	opacity: 0;
	transition: opacity .5s ease;
	pointer-events: none;
	z-index: 0;
}
.elementor .ayg-spot:hover::before { opacity: 1; }
.elementor .ayg-spot > .elementor-element,
.elementor .ayg-spot > .e-con-inner { position: relative; z-index: 1; }

/* ======================================================================
   11. Tarjetas numeradas, tiles, servicios, ciclo, cifras
   ====================================================================== */
.elementor .ayg-ncard {
	background: var(--ayg-blanco);
	border: 1px solid var(--ayg-linea);
	border-radius: var(--ayg-radio);
	transition: transform .6s var(--ayg-ease), box-shadow .6s var(--ayg-ease), border-color .4s ease;
}
.elementor .ayg-ncard:hover { transform: translateY(-4px); border-color: rgba(18, 166, 201, .45); box-shadow: var(--ayg-sombra); }
.elementor .ayg-ncard > .ayg-ncard__n,
.elementor .ayg-ncard > .ayg-ncard__icon { flex: 0 0 auto; width: auto; }
.elementor .ayg-ncard__body { flex: 1 1 auto; }
.elementor .ayg-ncard__n .elementor-heading-title {
	font-family: var(--ayg-display);
	font-weight: 700;
	font-size: 64px;
	line-height: .8;
	color: transparent;
	-webkit-text-stroke: 1.2px rgba(13, 16, 20, .25);
	transition: color .5s ease, -webkit-text-stroke-color .5s ease;
	min-width: 64px;
}
.elementor .ayg-ncard:hover .ayg-ncard__n .elementor-heading-title { color: var(--ayg-acento); -webkit-text-stroke-color: var(--ayg-acento); }
.elementor .ayg-ncard__icon .elementor-icon,
.elementor .ayg-tile__icon .elementor-icon,
.elementor .ayg-bigstat__icon .elementor-icon {
	width: 52px;
	height: 52px;
	border-radius: 15px;
	display: grid;
	place-items: center;
	font-size: 19px;
	background: var(--ayg-noche);
	color: var(--ayg-acento-hover);
	transition: background-color .45s ease, color .45s ease, transform .6s var(--ayg-ease);
}
.elementor .ayg-ncard__icon .elementor-icon svg,
.elementor .ayg-tile__icon .elementor-icon svg,
.elementor .ayg-bigstat__icon .elementor-icon svg { width: 19px; height: 19px; fill: currentColor; }
.elementor .ayg-ncard:hover .ayg-ncard__icon .elementor-icon,
.elementor .ayg-tile:hover .ayg-tile__icon .elementor-icon,
.elementor .ayg-bigstat:hover .ayg-bigstat__icon .elementor-icon { background: var(--ayg-acento); color: var(--ayg-sobre-acento); transform: rotate(-8deg); }
.elementor .ayg-ncard__label .elementor-heading-title { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ayg-acento-osc); }
.elementor .ayg-ncard__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.45rem, 1.25rem + .6vw, 1.85rem); line-height: 1.02; color: var(--ayg-tinta); }
.elementor .ayg-ncard__text,
.elementor .ayg-ncard__text p { font-size: 15px; line-height: 1.45; color: var(--ayg-gris); }

.elementor .ayg-tiles > .ayg-tile,
.elementor .ayg-tiles > .e-con { flex: 1 1 calc(33.333% - 16px); width: auto; min-width: 0; }
.elementor .ayg-tiles--4 > .ayg-tile { flex-basis: calc(25% - 16px); }
.elementor .ayg-tile {
	background: var(--ayg-blanco);
	border: 1px solid var(--ayg-linea);
	border-radius: var(--ayg-radio);
	transition: transform .6s var(--ayg-ease), box-shadow .6s var(--ayg-ease), border-color .4s ease;
}
.elementor .ayg-paper .ayg-tile { background: var(--ayg-blanco); }
.elementor .ayg-white .ayg-tile { background: var(--ayg-papel); border-color: transparent; }
.elementor .ayg-tile:hover { transform: translateY(-4px); box-shadow: var(--ayg-sombra); border-color: rgba(18, 166, 201, .35); }
.elementor .ayg-tile__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.45rem, 1.3rem + .5vw, 1.8rem); line-height: 1.02; color: var(--ayg-tinta); }
.elementor .ayg-tile__text,
.elementor .ayg-tile__text p { font-size: 15px; line-height: 1.45; color: var(--ayg-gris); }
.elementor .ayg-tile--accent { background: var(--ayg-noche) !important; border-color: var(--ayg-noche) !important; }
.elementor .ayg-tile--accent .ayg-tile__title .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-tile--accent .ayg-prose,
.elementor .ayg-tile--accent .ayg-prose p { color: var(--ayg-gris-claro); }
.elementor .ayg-tile--accent .ayg-tile__icon .elementor-icon { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-tile--tall { justify-content: flex-start; }
.elementor .ayg-tile .ayg-media img { border-radius: var(--ayg-radio-md); }
.elementor .ayg-tiles > .e-con:not(.ayg-tile) .ayg-media img { height: 100%; max-height: none; }
.elementor .ayg-dark .ayg-tile { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.elementor .ayg-dark .ayg-tile__title .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-tile__text,
.elementor .ayg-dark .ayg-tile__text p { color: var(--ayg-gris-claro); }
.elementor .ayg-dark .ayg-tile .ayg-tile__icon .elementor-icon { background: rgba(18, 166, 201, .16); }
.elementor .ayg-dark .ayg-tile:hover { border-color: rgba(18, 166, 201, .5); box-shadow: none; }

/* Tarjetas de contacto */
.elementor .ayg-cc__k .elementor-heading-title { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ayg-gris-2); }
.elementor .ayg-cc__v .elementor-heading-title { font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--ayg-tinta); overflow-wrap: anywhere; }
.elementor .ayg-cc__v .elementor-heading-title a { color: inherit; transition: color .3s ease; }
.elementor .ayg-cc:hover .ayg-cc__v .elementor-heading-title a { color: var(--ayg-acento-osc); }
.elementor .ayg-dark .ayg-cc__v .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-cc:hover .ayg-cc__v .elementor-heading-title a { color: var(--ayg-acento-hover); }
.elementor .ayg-hero .ayg-tiles { margin-top: 26px; }

/* Servicios con foto */
.elementor .ayg-svcs > .ayg-svc { flex: 1 1 0; width: auto; min-width: 0; }
.elementor .ayg-svc {
	background: var(--ayg-blanco);
	border: 1px solid var(--ayg-linea);
	border-radius: var(--ayg-radio);
	transition: transform .6s var(--ayg-ease), box-shadow .6s var(--ayg-ease);
}
.elementor .ayg-svc:hover { transform: translateY(-5px); box-shadow: var(--ayg-sombra); }
.elementor .ayg-svc > .elementor-element:not(.ayg-svc__img) { margin-left: 16px; margin-right: 16px; width: auto; }
.elementor .ayg-svc__img img { border-radius: 16px; aspect-ratio: 16 / 11; max-height: 300px; transition: transform 1s var(--ayg-ease); }
.elementor .ayg-svc:hover .ayg-svc__img img { transform: scale(1.05); }
.elementor .ayg-svc__n .elementor-heading-title { font-size: 12.5px; font-weight: 600; color: var(--ayg-acento-osc); margin-top: 8px; }
.elementor .ayg-svc__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.6rem, 1.4rem + .6vw, 2rem); line-height: 1; color: var(--ayg-tinta); }
.elementor .ayg-svc__text,
.elementor .ayg-svc__text p { font-size: 15px; line-height: 1.45; color: var(--ayg-gris); }

/* Ciclo / línea de tiempo */
.elementor .ayg-cycle {
	border-radius: 26px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .015));
	border: 1px solid rgba(255, 255, 255, .1);
}
.elementor .ayg-cycle__title .elementor-heading-title { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ayg-gris-2); }
.elementor .ayg-cycle__steps > .ayg-cycle__step { flex: 1 1 0; width: auto; min-width: 0; position: relative; padding-top: 30px; }
.elementor .ayg-cycle__step::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 0;
	right: -24px;
	height: 1px;
	background: rgba(255, 255, 255, .14);
}
.elementor .ayg-cycle__step:last-child::before { right: 0; }
.elementor .ayg-cycle__step::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ayg-noche);
	border: 2px solid var(--ayg-acento);
	transition: background-color .5s ease, box-shadow .5s ease, transform .5s var(--ayg-ease);
}
.elementor .ayg-cycle__step.is-active::after,
.elementor .ayg-cycle__step:hover::after { background: var(--ayg-acento); box-shadow: 0 0 0 6px rgba(18, 166, 201, .18), 0 0 22px rgba(18, 166, 201, .7); transform: scale(1.1); }
.elementor .ayg-cycle__n .elementor-heading-title { font-size: 12.5px; font-weight: 600; color: var(--ayg-acento-hover); font-variant-numeric: tabular-nums; }
.elementor .ayg-cycle__t .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.5rem, 1.3rem + .6vw, 1.9rem); line-height: 1; color: var(--ayg-blanco); }
.elementor .ayg-cycle__d,
.elementor .ayg-cycle__d p { font-size: 14.5px; line-height: 1.42; color: var(--ayg-gris-claro); }
@media (max-width: 1024px) {
	.elementor .ayg-cycle__steps > .ayg-cycle__step { padding: 0 0 0 30px; }
	.elementor .ayg-cycle__step::before { top: 6px; bottom: -30px; left: 5px; right: auto; width: 1px; height: auto; }
	.elementor .ayg-cycle__step:last-child::before { display: none; }
	.elementor .ayg-cycle__step::after { top: 1px; }
}

/* Cifras grandes */
.elementor .ayg-bigstats > .ayg-bigstat { flex: 1 1 calc(25% - 14px); width: auto; min-width: 0; }
.elementor .ayg-bigstat {
	background: var(--ayg-blanco);
	border: 1px solid var(--ayg-linea);
	border-radius: var(--ayg-radio);
	transition: transform .6s var(--ayg-ease), box-shadow .6s var(--ayg-ease);
}
.elementor .ayg-bigstat:hover { transform: translateY(-4px); box-shadow: var(--ayg-sombra-sm); }
.elementor .ayg-bigstat__icon .elementor-icon { width: 44px; height: 44px; border-radius: 12px; font-size: 16px; margin-bottom: 10px; }
.elementor .ayg-bigstat__v .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(2.2rem, 1.8rem + 1.2vw, 3rem); line-height: .95; color: var(--ayg-tinta); }
.elementor .ayg-bigstat__v .elementor-heading-title:empty::before { content: "—"; color: var(--ayg-gris-2); }
.elementor .ayg-bigstat__k .elementor-heading-title { font-size: 13px; line-height: 1.35; color: var(--ayg-gris); font-weight: 500; }
.elementor .ayg-bigstats-sec { margin-top: -1px; }

/* Cifras en franja (proyectos) */
.elementor .ayg-stats-sec > .e-con-inner { padding: 0; }
.elementor .ayg-stats { border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--ayg-radio); overflow: hidden; background: rgba(255, 255, 255, .02); }
.elementor .ayg-stats > .ayg-stat { flex: 1 1 25%; width: auto; padding: 30px 28px; border-right: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-stats > .ayg-stat:last-child { border-right: 0; }
.elementor .ayg-stat__value .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(2.6rem, 2rem + 1.8vw, 3.8rem); line-height: .9; color: var(--ayg-blanco); font-variant-numeric: tabular-nums; }
.elementor .ayg-stat__label .elementor-heading-title { font-size: 13px; line-height: 1.35; color: var(--ayg-gris-claro); font-weight: 500; }
@media (max-width: 767px) {
	.elementor .ayg-stats > .ayg-stat { flex: 1 1 50%; padding: 22px 18px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.elementor .ayg-stats > .ayg-stat:nth-child(2n) { border-right: 0; }
	.elementor .ayg-stats > .ayg-stat:nth-last-child(-n+2) { border-bottom: 0; }
}

/* Lista de consorcios */
.elementor .ayg-list__row { padding: 22px 6px; border-bottom: 1px solid rgba(255, 255, 255, .1); transition: padding .5s var(--ayg-ease), background-color .4s ease; border-radius: 0; }
.elementor .ayg-list__row:first-child { border-top: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-list__row:hover { padding-left: 18px; background: rgba(255, 255, 255, .03); }
.elementor .ayg-list__row > .elementor-element { width: auto; }
.elementor .ayg-list__k { flex: 0 0 110px; }
.elementor .ayg-list__t { flex: 1 1 auto; }
.elementor .ayg-list__k .elementor-heading-title { font-size: 13px; font-weight: 600; color: var(--ayg-acento-hover); font-variant-numeric: tabular-nums; }
.elementor .ayg-list__t .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.6rem, 1.3rem + .9vw, 2.2rem); line-height: 1; color: var(--ayg-blanco); }
.elementor .ayg-list__d .elementor-heading-title { font-size: 14px; color: var(--ayg-gris-claro); }
.elementor .ayg-list__d .elementor-heading-title a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .25); text-underline-offset: 4px; transition: color .3s ease; }
.elementor .ayg-list__row:hover .ayg-list__d .elementor-heading-title a { color: var(--ayg-acento-hover); }

/* ======================================================================
   12. Tarjetas de Loop Grid (Grúas, Proyectos, Blog)
   ====================================================================== */
.elementor .elementor-loop-container .e-loop-item,
.elementor .elementor-loop-container .e-loop-item > .ayg-card { height: 100%; }
.elementor .ayg-card {
	background: var(--ayg-blanco);
	border: 1px solid var(--ayg-linea);
	border-radius: var(--ayg-radio);
	transition: transform .6s var(--ayg-ease), border-color .4s ease, box-shadow .6s var(--ayg-ease);
}
.elementor .ayg-white .ayg-card { background: var(--ayg-papel); border-color: transparent; }
.elementor .ayg-card:hover { transform: translateY(-6px); border-color: rgba(18, 166, 201, .35); box-shadow: var(--ayg-sombra); }
.elementor .ayg-card__media { position: relative; overflow: hidden; border-radius: 15px; }
.elementor .ayg-card__img,
.elementor .ayg-card__img a { display: block; }
.elementor .ayg-card__img img {
	width: 100%;
	aspect-ratio: 16 / 11;
	max-height: 280px;
	object-fit: cover;
	display: block;
	border-radius: 15px;
	transition: transform 1.1s var(--ayg-ease);
}
.elementor .ayg-card--proyecto .ayg-card__img img { aspect-ratio: 3 / 2; max-height: 260px; }
.elementor .ayg-card--post .ayg-card__img img { aspect-ratio: 16 / 10; max-height: 240px; }
.elementor .ayg-loop--feature .ayg-card--proyecto .ayg-card__img img { aspect-ratio: 16 / 9; max-height: 330px; }
.elementor .ayg-card:hover .ayg-card__img img { transform: scale(1.06); }
.elementor .ayg-card__chips { position: absolute !important; top: 12px; left: 12px; right: 12px; z-index: 2; width: auto !important; pointer-events: none; }
.elementor .ayg-card__chips .elementor-widget { width: auto; }
.elementor .ayg-card__body { padding: 18px 12px 8px; flex-grow: 1; }
.elementor .ayg-card__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.5rem, 1.35rem + .5vw, 1.85rem); line-height: 1; color: var(--ayg-tinta); }
.elementor .ayg-card__title .elementor-heading-title a { color: inherit; transition: color .3s ease; }
.elementor .ayg-card__title .elementor-heading-title a:hover { color: var(--ayg-acento-osc); }
.elementor .ayg-card__text,
.elementor .ayg-card__text p { font-size: 14.5px; line-height: 1.45; color: var(--ayg-gris); }
.elementor .ayg-card__text p { margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.elementor .ayg-card__meta .elementor-widget { width: auto; }
.elementor .ayg-card__kvs { border-top: 1px solid var(--ayg-linea); border-bottom: 1px solid var(--ayg-linea); margin-top: 4px; }
.elementor .ayg-card__kvs > .ayg-kv { flex: 1 1 0; width: auto; padding: 12px 0; min-width: 0; }
.elementor .ayg-card__kvs > .ayg-kv + .ayg-kv { border-left: 1px solid var(--ayg-linea); padding-left: 14px; }
.elementor .ayg-kv__v .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 22px; line-height: 1; color: var(--ayg-tinta); white-space: nowrap; }
.elementor .ayg-kv__v--sm .elementor-heading-title { font-family: var(--ayg-sans); font-size: 15px; font-weight: 600; white-space: normal; line-height: 1.35; }
.elementor .ayg-kv__k .elementor-heading-title { font-size: 11.5px; font-weight: 500; color: var(--ayg-gris); }
.elementor .ayg-dark .ayg-kv__v .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-kv__k .elementor-heading-title { color: var(--ayg-gris-2); }
.elementor .ayg-card__foot { margin-top: auto; padding-top: 6px; }
.elementor .ayg-card__foot > .elementor-widget:first-child { width: auto; flex: 1 1 auto; min-width: 0; }
.elementor .ayg-card__cta .elementor-button { font-size: 14px; }

/* Datos del proyecto en el hero */
.elementor .ayg-kvs { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 18px; margin-top: 4px; }
.elementor .ayg-kvs > .ayg-kv { flex: 1 1 0; width: auto; min-width: 0; padding-right: 16px; }
.elementor .ayg-kvs > .ayg-kv + .ayg-kv { padding-left: 16px; border-left: 1px solid rgba(255, 255, 255, .12); }
@media (max-width: 767px) {
	.elementor .ayg-kvs > .ayg-kv + .ayg-kv { padding-left: 0; border-left: 0; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .1); }
}

/* Paginación y vacío del Loop Grid */
.elementor .ayg-loop .elementor-pagination { margin-top: 44px; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; font-size: 14px; font-weight: 600; }
.elementor .ayg-loop .elementor-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 16px; display: inline-grid; place-items: center; border-radius: 12px; border: 1px solid var(--ayg-linea); color: var(--ayg-tinta); background: var(--ayg-blanco); text-decoration: none; transition: all .3s ease; }
.elementor .ayg-loop .elementor-pagination .page-numbers.current,
.elementor .ayg-loop .elementor-pagination a.page-numbers:hover { background: var(--ayg-noche); border-color: var(--ayg-noche); color: var(--ayg-blanco); }
.elementor .ayg-loop .e-loop-nothing-found-message { text-align: center; padding: 48px 24px; border: 1px dashed var(--ayg-linea); border-radius: var(--ayg-radio); color: var(--ayg-gris); }

/* ======================================================================
   13. Ficha técnica
   ====================================================================== */
.elementor .ayg-spec { padding: 12px 0; border-bottom: 1px solid var(--ayg-linea); }
.elementor .ayg-spec:last-child { border-bottom: 0; }
.elementor .ayg-spec.is-empty { display: none !important; }
.elementor .ayg-spec > .elementor-widget { width: auto; }
.elementor .ayg-spec__label { flex: 0 0 auto; }
.elementor .ayg-spec__value { flex: 1 1 auto; text-align: right; }
.elementor .ayg-spec__label .elementor-heading-title { font-size: 13.5px; font-weight: 500; color: var(--ayg-gris); line-height: 1.35; }
.elementor .ayg-spec__value .elementor-heading-title,
.elementor .ayg-spec__value p { font-size: 15px; font-weight: 600; color: var(--ayg-tinta); line-height: 1.35; margin: 0; }
.elementor .ayg-spec__value a { color: var(--ayg-tinta); text-decoration: none; transition: color .3s ease; }
.elementor .ayg-spec__value a:hover { color: var(--ayg-acento-osc); }
.elementor .ayg-specs-card {
	background: var(--ayg-noche-2);
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, .06);
	box-shadow: var(--ayg-sombra);
}
.elementor .ayg-specs-card .ayg-specs { margin-bottom: 6px; }
.elementor .ayg-specs__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 32px; line-height: 1; color: var(--ayg-blanco); }
.elementor .ayg-specs-card .ayg-spec { border-bottom-color: rgba(255, 255, 255, .08); }
.elementor .ayg-specs-card .ayg-spec__label .elementor-heading-title { color: var(--ayg-gris-2); }
.elementor .ayg-specs-card .ayg-spec__value .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-specs__head { padding-bottom: 14px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-specs__head .elementor-widget { width: auto; }

/* Recuadros de llamado */
.elementor .ayg-boxcta { border-radius: var(--ayg-radio); border: 1px solid rgba(255, 255, 255, .08); overflow: hidden; position: relative; isolation: isolate; }
.elementor .ayg-boxcta::before { content: ""; position: absolute; inset: auto -30% -50% auto; width: 300px; height: 300px; background: radial-gradient(closest-side, rgba(18, 166, 201, .3), transparent); z-index: -1; pointer-events: none; }
.elementor .ayg-boxcta .ayg-h3 .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-boxcta a:not(.elementor-button) { color: var(--ayg-acento-hover); }

/* Listas con check */
.elementor .ayg-checks .elementor-icon-list-item { padding: 6px 0; align-items: flex-start; }
.elementor .ayg-checks .elementor-icon-list-icon { width: 22px; height: 22px; min-width: 22px; border-radius: 7px; background: rgba(18, 166, 201, .14); display: inline-grid; place-items: center; margin-top: 1px; }
.elementor .ayg-checks .elementor-icon-list-icon i { color: var(--ayg-acento); font-size: 10px; }
.elementor .ayg-checks .elementor-icon-list-icon svg { fill: var(--ayg-acento); width: 10px; height: 10px; }
.elementor .ayg-checks .elementor-icon-list-text { font-size: 15px; line-height: 1.45; color: var(--ayg-texto); padding-left: 10px; }
.elementor .ayg-checks--light .elementor-icon-list-text,
.elementor .ayg-dark .ayg-checks .elementor-icon-list-text { color: var(--ayg-gris-claro); }
.elementor .ayg-checks--sm .elementor-icon-list-text { font-size: 14px; }
.elementor .ayg-checks a .elementor-icon-list-text { transition: color .3s ease; }
.elementor .ayg-checks a:hover .elementor-icon-list-text { color: var(--ayg-acento-hover); }

/* ======================================================================
   14. Acordeones
   ====================================================================== */
.elementor .ayg-accordion .elementor-accordion { display: flex; flex-direction: column; gap: 10px; }
.elementor .ayg-accordion .elementor-accordion-item,
.elementor .ayg-accordion .e-n-accordion-item {
	border: 1px solid var(--ayg-linea);
	border-radius: 16px;
	background: var(--ayg-blanco);
	overflow: hidden;
	transition: border-color .4s ease, box-shadow .5s var(--ayg-ease);
}
.elementor .ayg-white .ayg-accordion .elementor-accordion-item,
.elementor .ayg-white .ayg-accordion .e-n-accordion-item { background: var(--ayg-papel); border-color: transparent; }
.elementor .ayg-accordion .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--ayg-linea); }
.elementor .ayg-white .ayg-accordion .elementor-accordion-item + .elementor-accordion-item { border-top-color: transparent; }
.elementor .ayg-accordion .elementor-accordion-item:hover,
.elementor .ayg-accordion .e-n-accordion-item:hover { border-color: rgba(18, 166, 201, .4); }
.elementor .ayg-accordion .elementor-tab-title,
.elementor .ayg-accordion .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px 18px 22px;
	border: 0;
	background: none;
	cursor: pointer;
}
.elementor .ayg-accordion .elementor-tab-title .elementor-accordion-title,
.elementor .ayg-accordion .e-n-accordion-item-title-text {
	font-family: var(--ayg-sans);
	font-size: 16px;
	font-weight: 600;
	color: var(--ayg-tinta);
	line-height: 1.35;
	transition: color .3s ease;
}
.elementor .ayg-accordion .elementor-tab-title.elementor-active .elementor-accordion-title,
.elementor .ayg-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--ayg-acento-osc); }
.elementor .ayg-accordion .elementor-accordion-icon,
.elementor .ayg-accordion .e-n-accordion-item-title-icon {
	order: 2;
	width: 30px;
	height: 30px;
	min-width: 30px;
	border-radius: 9px;
	display: inline-grid;
	place-items: center;
	background: var(--ayg-papel);
	color: var(--ayg-tinta);
	font-size: 11px;
	transition: background-color .35s ease, color .35s ease, transform .5s var(--ayg-ease);
}
.elementor .ayg-white .ayg-accordion .elementor-accordion-icon,
.elementor .ayg-white .ayg-accordion .e-n-accordion-item-title-icon { background: var(--ayg-blanco); }
.elementor .ayg-accordion .elementor-accordion-icon svg,
.elementor .ayg-accordion .e-n-accordion-item-title-icon svg { fill: currentColor; width: 11px; height: 11px; }
.elementor .ayg-accordion .e-n-accordion-item-title-icon i { color: currentColor; font-size: 11px; }
.elementor .ayg-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon,
.elementor .ayg-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-accordion .elementor-tab-content,
.elementor .ayg-accordion .ayg-acc-body {
	padding: 0 22px 22px;
	border: 0;
	font-size: 15.5px;
	line-height: 1.52;
	color: var(--ayg-texto);
}
.elementor .ayg-accordion .elementor-tab-content p { margin: 0 0 .9em; }
.elementor .ayg-accordion .elementor-tab-content p:last-child { margin-bottom: 0; }
.elementor .ayg-dark .ayg-accordion .elementor-accordion-item,
.elementor .ayg-dark .ayg-accordion .e-n-accordion-item { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.elementor .ayg-dark .ayg-accordion .elementor-accordion-title,
.elementor .ayg-dark .ayg-accordion .e-n-accordion-item-title-text { color: var(--ayg-blanco); }
.elementor .ayg-dark .ayg-accordion .elementor-tab-content { color: var(--ayg-gris-claro); }
.elementor .ayg-dark .ayg-accordion .elementor-accordion-icon { background: rgba(255, 255, 255, .08); color: var(--ayg-blanco); }

/* Guías largas (final de cada página y singles) */
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-title,
.elementor .ayg-guia .ayg-accordion--guia .e-n-accordion-item-title { padding: 20px 22px; }
.elementor .ayg-guia .ayg-accordion--guia .e-n-accordion-item-title-text { font-family: var(--ayg-display); font-size: 24px; font-weight: 600; line-height: 1.05; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-title .elementor-accordion-title { font-size: 16.5px; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content img { margin: 14px 0 4px; border-radius: var(--ayg-radio-md); width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; max-height: 380px; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content ul { list-style: none; padding: 0; margin: 0 0 1em; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content li { position: relative; padding-left: 22px; margin-bottom: .45em; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content li::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 3px; background: var(--ayg-acento); }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content a { color: var(--ayg-acento-osc); text-decoration: underline; text-underline-offset: 3px; }
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content h3,
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content h4 { font-family: var(--ayg-display); font-weight: 600; font-size: 22px; line-height: 1.05; color: var(--ayg-tinta); margin: 1.2em 0 .45em; }
.elementor .ayg-guia .ayg-toc--guia { margin-top: 8px; }
.elementor .ayg-guia .ayg-sticky-col,
.elementor .ayg-article-side { align-self: flex-start; justify-content: flex-start; }
.elementor .ayg-legal .elementor-tab-content { font-size: 15px; }

/* ======================================================================
   15. Galería de fotos (6 campos Imagen de ACF gratis)
   ====================================================================== */
.elementor .ayg-fotos { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.elementor .ayg-fotos > .e-con-inner { display: contents; }
.elementor .ayg-fotos .ayg-foto { width: auto !important; max-width: none !important; margin: 0 !important; }
.elementor .ayg-fotos .ayg-foto:not(:has(img)) { display: none; }
.elementor .ayg-fotos .ayg-foto a { display: block; overflow: hidden; border-radius: var(--ayg-radio-md); cursor: zoom-in; height: 100%; position: relative; }
.elementor .ayg-fotos .ayg-foto a::after { content: "+"; position: absolute; right: 12px; bottom: 12px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(9, 11, 14, .55); color: #fff; font-size: 18px; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transform: translateY(6px); transition: opacity .4s ease, transform .5s var(--ayg-ease); }
.elementor .ayg-fotos .ayg-foto a:hover::after { opacity: 1; transform: none; }
.elementor .ayg-fotos .ayg-foto img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	border-radius: var(--ayg-radio-md);
	transition: transform 1.1s var(--ayg-ease);
}
.elementor .ayg-fotos .ayg-foto a:hover img { transform: scale(1.05); }
.elementor .ayg-fotos .ayg-foto > .elementor-widget-container { height: 100%; }
/* Rejilla ordenada según cuántas fotos haya (la clase la pone el JS) */
.elementor .ayg-fotos .ayg-foto:first-child:nth-last-child(n+3) { grid-column: span 2; grid-row: span 2; }
.elementor .ayg-fotos .ayg-foto:first-child:nth-last-child(n+3) img { aspect-ratio: auto; height: 100%; min-height: 100%; max-height: none; position: absolute; inset: 0; }
.elementor .ayg-fotos .ayg-foto:first-child:nth-last-child(n+3) a { position: relative; min-height: 100%; }
.elementor .ayg-fotos--1 { grid-template-columns: 1fr; }
.elementor .ayg-fotos--1 .ayg-foto img { aspect-ratio: 16 / 9; max-height: 520px; }
.elementor .ayg-fotos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.elementor .ayg-fotos--3 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.elementor .ayg-fotos--3 .ayg-foto:not(:first-child) { grid-column: span 2; }
.elementor .ayg-fotos--3 .ayg-foto:not(:first-child) img { aspect-ratio: 16 / 9; }
.elementor .ayg-fotos--4 .ayg-foto:last-child { grid-column: span 2; }
.elementor .ayg-fotos--4 .ayg-foto:last-child img { aspect-ratio: 8 / 3; }
.elementor .ayg-fotos--6 .ayg-foto:nth-child(n+4) img { aspect-ratio: 4 / 3; }
.elementor .ayg-fotos--6 .ayg-foto:last-child { grid-column: 1 / -1; }
.elementor .ayg-fotos--6 .ayg-foto:last-child img { aspect-ratio: 7 / 2; }
@media (max-width: 1024px) {
	.elementor .ayg-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.elementor .ayg-fotos .ayg-foto { grid-column: auto !important; grid-row: auto !important; }
	.elementor .ayg-fotos .ayg-foto:first-child:nth-last-child(n+3) { grid-column: 1 / -1 !important; }
	.elementor .ayg-fotos .ayg-foto img { aspect-ratio: 4 / 3 !important; max-height: 420px; }
	.elementor .ayg-fotos .ayg-foto:first-child:nth-last-child(n+3) img { aspect-ratio: 16 / 9 !important; position: static; height: auto; min-height: 0; }
}
@media (max-width: 767px) {
	.elementor .ayg-fotos { gap: 10px; }
	.elementor .ayg-fotos .ayg-foto img { max-height: 260px; }
}
.ayg-is-hidden { display: none !important; }

/* Galería básica de respaldo */
.elementor .ayg-gallery .gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; }
.elementor .ayg-gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.elementor .ayg-gallery .gallery-icon { overflow: hidden; border-radius: var(--ayg-radio-md); }
.elementor .ayg-gallery .gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border: 0 !important; }
.elementor .ayg-gallery br { display: none; }

/* ======================================================================
   16. Tabla comparativa
   ====================================================================== */
.elementor .ayg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--ayg-radio); border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .02); }
.elementor .ayg-table { width: 100%; min-width: 640px; border-collapse: collapse; margin: 0; border: 0; }
.elementor .ayg-table th,
.elementor .ayg-table td { border: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); padding: 16px 18px; text-align: left; background: none; }
.elementor .ayg-table tr:last-child td { border-bottom: 0; }
.elementor .ayg-table th { font-weight: 600; font-size: 11.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--ayg-gris-2); background: rgba(255, 255, 255, .03); }
.elementor .ayg-table td { color: var(--ayg-gris-claro); font-size: 14.5px; }
.elementor .ayg-table td:first-child a { color: var(--ayg-blanco); font-weight: 600; text-decoration: none; transition: color .3s ease; }
.elementor .ayg-table td:first-child a:hover { color: var(--ayg-acento-hover); }
.elementor .ayg-table td:nth-child(2) { color: var(--ayg-acento-hover); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.elementor .ayg-table td:nth-child(3),
.elementor .ayg-table td:nth-child(4) { font-family: var(--ayg-display); font-size: 20px; font-weight: 600; color: var(--ayg-blanco); white-space: nowrap; }
.elementor .ayg-table tbody tr { transition: background-color .35s ease; }
.elementor .ayg-table tbody tr:hover { background: rgba(18, 166, 201, .06); }

/* ======================================================================
   17. Formularios (Form de Elementor Pro)
   ====================================================================== */
.elementor .ayg-formcard { background: var(--ayg-blanco); border: 1px solid var(--ayg-linea); border-radius: 26px; box-shadow: var(--ayg-sombra-sm); }
.elementor .ayg-formcard__title .elementor-heading-title,
.elementor .ayg-pc__form-title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(1.8rem, 1.5rem + .8vw, 2.3rem); line-height: 1; color: var(--ayg-tinta); }
.elementor .ayg-form .elementor-form-fields-wrapper { row-gap: 0; }
.elementor .ayg-form .elementor-field-group { margin-bottom: 16px; }
.elementor .ayg-form .elementor-field-label {
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ayg-tinta);
	margin-bottom: 7px;
}
.elementor .ayg-form .elementor-field-textual,
.elementor .ayg-form .elementor-select-wrapper select {
	border: 1px solid var(--ayg-linea);
	border-radius: 12px;
	background: #F7F6F3;
	padding: 13px 15px;
	font-family: var(--ayg-sans);
	font-size: 15px;
	line-height: 1.4;
	color: var(--ayg-tinta);
	box-shadow: none;
	min-height: 48px;
	transition: border-color .3s ease, box-shadow .3s ease, background-color .3s ease;
}
.elementor .ayg-form .elementor-field-textual::placeholder { color: #9EA4AA; }
.elementor .ayg-form .elementor-field-textual:hover,
.elementor .ayg-form .elementor-select-wrapper select:hover { border-color: #CFCCC4; }
.elementor .ayg-form .elementor-field-textual:focus,
.elementor .ayg-form .elementor-select-wrapper select:focus { border-color: var(--ayg-acento); background: var(--ayg-blanco); outline: none; box-shadow: 0 0 0 4px rgba(18, 166, 201, .14); }
.elementor .ayg-form .elementor-select-wrapper::before { color: var(--ayg-gris); font-size: 12px; right: 14px; }
.elementor .ayg-form textarea.elementor-field-textual { resize: vertical; min-height: 104px; }
.elementor .ayg-form .elementor-field-type-acceptance .elementor-field-subgroup label { font-size: 13.5px; color: var(--ayg-gris); line-height: 1.45; }
.elementor .ayg-form .elementor-field-type-acceptance a { color: var(--ayg-acento-osc); text-decoration: underline; }
.elementor .ayg-form .elementor-field-type-acceptance input { accent-color: var(--ayg-acento); width: 16px; height: 16px; }
.elementor .ayg-form .elementor-field-type-submit { margin-top: 6px; }
.elementor .ayg-form .elementor-button[type="submit"] {
	width: 100%;
	background: var(--ayg-acento);
	color: var(--ayg-sobre-acento);
	--ayg-fill: var(--ayg-noche);
	padding: 18px 24px;
	min-height: 0;
	box-shadow: 0 12px 30px -14px rgba(18, 166, 201, .7);
}
.elementor .ayg-form .elementor-button[type="submit"]:hover { color: var(--ayg-blanco); }
.elementor .ayg-form .elementor-button[type="submit"] .elementor-button-content-wrapper { gap: 12px; align-items: center; justify-content: center; }
.elementor .ayg-form .elementor-button[type="submit"]:hover .elementor-button-icon i,
.elementor .ayg-form .elementor-button[type="submit"]:hover .elementor-button-icon svg { animation: ayg-arrow .6s var(--ayg-ease) both; }
.elementor .ayg-form .elementor-button[type="submit"] .elementor-button-icon svg { width: 13px; height: 13px; fill: currentColor; }
.elementor .ayg-form .elementor-message { font-size: 14.5px; margin-top: 16px; padding: 14px 16px; border-radius: var(--ayg-radio-sm); }
.elementor .ayg-form .elementor-message-success { background: rgba(18, 166, 201, .1); color: var(--ayg-tinta); }
.elementor .ayg-form .elementor-message-danger { background: rgba(200, 50, 50, .08); color: #A12C2C; }
.elementor .ayg-form .elementor-message::before { display: none; }
.elementor .ayg-form .elementor-error .elementor-field-textual { border-color: #C8423C; }
.elementor .ayg-form .elementor-help-inline { color: #C8423C; font-size: 12.5px; margin-top: 6px; }
.elementor .ayg-form--sent .elementor-form-fields-wrapper,
.elementor .ayg-form--sent .elementor-message-success { display: none; }

/* Formulario sobre fondo oscuro (popup) */
.ayg-form--popup .elementor-field-label,
.elementor .ayg-form--popup .elementor-field-label { color: var(--ayg-gris-claro); }
.elementor .ayg-form--popup .elementor-field-textual,
.elementor .ayg-form--popup .elementor-select-wrapper select { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: var(--ayg-blanco); }
.elementor .ayg-form--popup .elementor-select-wrapper select option { color: var(--ayg-tinta); }
.elementor .ayg-form--popup .elementor-field-textual:hover,
.elementor .ayg-form--popup .elementor-select-wrapper select:hover { border-color: rgba(255, 255, 255, .24); }
.elementor .ayg-form--popup .elementor-field-textual:focus,
.elementor .ayg-form--popup .elementor-select-wrapper select:focus { background: rgba(255, 255, 255, .08); border-color: var(--ayg-acento); }
.elementor .ayg-form--popup .elementor-field-textual::placeholder { color: #6F777E; }
.elementor .ayg-form--popup .elementor-select-wrapper::before { color: var(--ayg-gris-2); }
.elementor .ayg-form--popup .elementor-field-type-acceptance .elementor-field-subgroup label { color: var(--ayg-gris-2); }
.elementor .ayg-form--popup .elementor-field-type-acceptance a { color: var(--ayg-acento-hover); }
.elementor .ayg-form--popup .elementor-button[type="submit"] { --ayg-fill: var(--ayg-blanco); }
.elementor .ayg-form--popup .elementor-button[type="submit"]:hover { color: var(--ayg-noche); }
.elementor .ayg-form--popup .elementor-field-group { margin-bottom: 12px; }
.elementor .ayg-form--popup textarea.elementor-field-textual { min-height: 84px; }

/* Confirmación en el mismo lugar (respaldo si el popup no carga) */
.ayg-confirm { background: var(--ayg-noche); color: var(--ayg-gris-claro); border-radius: var(--ayg-radio); padding: 34px; font-family: var(--ayg-sans); }
.ayg-confirm__eyebrow { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; color: var(--ayg-acento); margin: 0 0 10px; text-transform: uppercase; }
.ayg-confirm__title { font-family: var(--ayg-display); font-size: 2.2rem; font-weight: 700; color: var(--ayg-blanco); margin: 0 0 10px; line-height: .98; }
.ayg-confirm__text { font-size: 15.5px; line-height: 1.45; margin: 0 0 20px; }
.ayg-confirm__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ayg-confirm__wa { display: inline-flex; align-items: center; gap: 10px; background: var(--ayg-acento); color: var(--ayg-sobre-acento); font-weight: 600; font-size: 15px; padding: 15px 22px; border-radius: 14px; text-decoration: none; transition: background-color .35s ease, transform .45s var(--ayg-ease); }
.ayg-confirm__wa:hover { background: var(--ayg-acento-hover); color: var(--ayg-sobre-acento); transform: translateY(-2px); }
.ayg-confirm__wa svg { width: 18px; height: 18px; fill: currentColor; }
.ayg-confirm__again { background: none; border: 0; color: var(--ayg-gris-2); font-size: 14px; font-weight: 500; cursor: pointer; padding: 10px 4px; }
.ayg-confirm__again:hover { color: var(--ayg-blanco); }

/* Mapa */
.elementor .ayg-map iframe { border-radius: var(--ayg-radio); filter: grayscale(.4) contrast(1.05); display: block; }

/* ======================================================================
   18. Popups (cotizar y confirmación)
   ====================================================================== */
.ayg-popup-modal .dialog-widget-content { border-radius: 24px !important; overflow: hidden; border: 1px solid rgba(255, 255, 255, .08); }
.ayg-popup-modal .dialog-message { max-height: 94vh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.ayg-popup-modal .dialog-close-button {
	top: 16px;
	right: 16px;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .12);
	display: grid;
	place-items: center;
	z-index: 5;
	transition: background-color .3s ease, transform .5s var(--ayg-ease);
}
.ayg-popup-modal .dialog-close-button:hover { background: var(--ayg-acento); transform: rotate(90deg); }
.ayg-popup-modal .dialog-close-button i,
.ayg-popup-modal .dialog-close-button svg { color: #fff; fill: #fff; font-size: 14px; width: 14px; height: 14px; }

/* Popup cotizar */
.elementor .ayg-pc { align-items: stretch; }
.elementor .ayg-pc__side { position: relative; isolation: isolate; justify-content: flex-start; }
.elementor .ayg-pc__side::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7, 9, 12, .62) 0%, rgba(7, 9, 12, .9) 70%, rgba(7, 9, 12, .96) 100%); }
.elementor .ayg-pc__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(2rem, 1.6rem + 1.2vw, 2.7rem); line-height: .95; color: var(--ayg-blanco); }
.elementor .ayg-pc__text,
.elementor .ayg-pc__text p { font-size: 14.5px; line-height: 1.45; color: var(--ayg-gris-claro); }
.elementor .ayg-pc__small .elementor-heading-title { font-size: 13px; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-pc__side .ayg-checks .elementor-icon-list-item { padding: 4px 0; }
.elementor .ayg-pc__side .ayg-checks .elementor-icon-list-text { font-size: 14px; }
.elementor .ayg-pc__form .ayg-pc__form-title .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-pc__side > .e-con:last-child { margin-top: auto; }
@media (max-width: 1024px) { .elementor .ayg-pc__side { min-height: 0; } }

/* Popup confirmación (fondo oscuro) */
.elementor .ayg-popup { text-align: center; align-items: center; position: relative; }
.elementor .ayg-popup::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, transparent, var(--ayg-acento), transparent); }
.elementor .ayg-popup__icon .elementor-icon { width: 68px; height: 68px; font-size: 24px; display: grid; place-items: center; background: rgba(18, 166, 201, .14) !important; color: var(--ayg-acento-hover) !important; border-radius: 22px; padding: 0; }
.elementor .ayg-popup__icon .elementor-icon svg { fill: var(--ayg-acento-hover); width: 24px; height: 24px; }
.ayg-anim .elementor .ayg-popup__icon .elementor-icon { animation: ayg-pop .6s var(--ayg-ease) both .15s; }
@keyframes ayg-pop { from { transform: scale(.4) rotate(-20deg); opacity: 0; } to { transform: none; opacity: 1; } }
.elementor .ayg-popup-eyebrow .elementor-heading-title { color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .06); }
.elementor .ayg-popup-title .elementor-heading-title { font-family: var(--ayg-display); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.6rem); line-height: .95; color: var(--ayg-blanco); }
.elementor .ayg-popup-text,
.elementor .ayg-popup-text p { color: var(--ayg-gris-claro); font-size: 15px; line-height: 1.45; max-width: 420px; }
.elementor .ayg-popup-resumen { width: 100%; color: var(--ayg-gris-claro); font-size: 14.5px; }
.elementor .ayg-popup-list { display: grid; grid-template-columns: auto 1fr; gap: 0; margin: 4px 0 12px; text-align: left; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); border-radius: 14px; padding: 4px 16px; }
.elementor .ayg-popup-list dt,
.elementor .ayg-popup-list dd { padding: 9px 0; border-bottom: 1px solid rgba(255, 255, 255, .07); margin: 0; }
.elementor .ayg-popup-list dt { font-size: 12.5px; font-weight: 500; color: var(--ayg-gris-2); padding-right: 16px; align-self: center; }
.elementor .ayg-popup-list dd { font-size: 14.5px; font-weight: 600; color: var(--ayg-blanco); overflow-wrap: anywhere; }
.elementor .ayg-popup-list dt:nth-last-of-type(1),
.elementor .ayg-popup-list dd:last-of-type { border-bottom: 0; }
.elementor .ayg-popup-hint { font-size: 13.5px; color: var(--ayg-gris-2); margin: 0; }
.elementor .ayg-popup-wa { width: 100%; }
.elementor .ayg-popup-foot .elementor-heading-title { font-size: 12.5px; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-btn--link .elementor-button { background: none !important; color: var(--ayg-gris-2) !important; padding: 10px 0 !important; font-size: 14px; box-shadow: none !important; }
.elementor .ayg-btn--link .elementor-button::before { display: none; }
.elementor .ayg-btn--link .elementor-button:hover { color: var(--ayg-blanco) !important; }
@media (max-width: 767px) { .elementor .ayg-popup-list { grid-template-columns: 1fr; } .elementor .ayg-popup-list dt { border-bottom: 0; padding-bottom: 0; } }

/* ======================================================================
   19. CTA final
   ====================================================================== */
.elementor .ayg-cta__card { position: relative; overflow: hidden; isolation: isolate; border-radius: 30px; }
.elementor .ayg-cta__card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(50% 80% at 100% 100%, rgba(18, 166, 201, .35) 0%, rgba(18, 166, 201, 0) 70%),
		linear-gradient(90deg, rgba(7, 9, 12, .94) 0%, rgba(7, 9, 12, .75) 55%, rgba(7, 9, 12, .35) 100%);
}
.elementor .ayg-cta__card::after {
	content: "";
	position: absolute;
	right: -80px;
	top: -80px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	border: 1px dashed rgba(255, 255, 255, .18);
	z-index: -1;
	animation: ayg-spin 40s linear infinite;
}
.elementor .ayg-cta__card .ayg-h2 .elementor-heading-title { color: var(--ayg-blanco); max-width: 760px; }
.elementor .ayg-cta__card .ayg-lead,
.elementor .ayg-cta__card .ayg-lead p { color: var(--ayg-gris-claro); max-width: 560px; }

/* ======================================================================
   20. Artículos, índice, compartir, búsqueda
   ====================================================================== */
.elementor .ayg-prose--article { max-width: 720px; font-size: 16.5px; }
.elementor .ayg-prose--article p,
.elementor .ayg-prose--article li { font-size: 16.5px; line-height: 1.45; }
.elementor .ayg-article .ayg-prose--article,
.elementor .ayg-guia .ayg-prose--article { max-width: none; margin: 0; }
.elementor .ayg-prose--article > *:first-child { margin-top: 0; }
.elementor .ayg-prose--article h2 {
	position: relative;
	font-family: var(--ayg-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 1.6rem + 1vw, 2.5rem);
	line-height: .98;
	color: var(--ayg-tinta);
	margin: 1.5em 0 .5em;
	padding-top: 18px;
	scroll-margin-top: calc(var(--ayg-header-h) + 24px);
}
.elementor .ayg-prose--article h2::before { content: ""; position: absolute; top: 0; left: 0; width: 34px; height: 3px; border-radius: 2px; background: var(--ayg-acento); }
.elementor .ayg-prose--article h3 { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.4rem, 1.25rem + .5vw, 1.7rem); line-height: 1.05; color: var(--ayg-tinta); margin: 1.3em 0 .45em; scroll-margin-top: calc(var(--ayg-header-h) + 24px); }
.elementor .ayg-prose ol { margin: 0 0 1.2em; padding: 0; list-style: none; counter-reset: ayg-ol; }
.elementor .ayg-prose ol li { position: relative; padding: 0 0 0 42px; margin: 0 0 .8em; counter-increment: ayg-ol; }
.elementor .ayg-prose ol li::before {
	content: counter(ayg-ol, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	width: 28px;
	height: 28px;
	border-radius: 9px;
	background: var(--ayg-noche);
	color: var(--ayg-acento-hover);
	font-size: 11.5px;
	font-weight: 600;
	display: grid;
	place-items: center;
}
.elementor .ayg-prose figure { margin: 1.6em 0; }
.elementor .ayg-prose figure img,
.elementor .ayg-prose p > img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; max-height: 420px; display: block; border-radius: var(--ayg-radio); }
.elementor .ayg-prose figcaption { margin-top: 10px; font-size: 13px; color: var(--ayg-gris); }
.elementor .ayg-prose .wp-block-table,
.elementor .ayg-accordion table { margin: 1.4em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.elementor .ayg-prose table,
.elementor .ayg-accordion table { width: 100%; border-collapse: collapse; font-size: 14.5px; background: var(--ayg-blanco); border-radius: var(--ayg-radio-sm); overflow: hidden; border: 1px solid var(--ayg-linea); }
.elementor .ayg-prose th,
.elementor .ayg-accordion th { background: var(--ayg-noche); color: var(--ayg-blanco); text-align: left; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding: 13px 15px; }
.elementor .ayg-prose td,
.elementor .ayg-accordion td { padding: 12px 15px; border-bottom: 1px solid var(--ayg-linea); color: var(--ayg-texto); vertical-align: top; }
.elementor .ayg-prose tr:last-child td,
.elementor .ayg-accordion tr:last-child td { border-bottom: 0; }
.elementor .ayg-prose td:first-child { color: var(--ayg-tinta); font-weight: 600; }
.elementor .ayg-prose blockquote { margin: 1.6em 0; padding: 20px 24px; border-left: 3px solid var(--ayg-acento); background: var(--ayg-papel); border-radius: 0 var(--ayg-radio-md) var(--ayg-radio-md) 0; font-family: var(--ayg-display); font-size: 1.5em; line-height: 1.1; color: var(--ayg-tinta); }
.elementor .ayg-prose .ayg-cta-inline { padding: 20px 22px; border-radius: var(--ayg-radio-md); background: var(--ayg-noche); color: var(--ayg-gris-claro); }
.elementor .ayg-prose .ayg-cta-inline a { color: var(--ayg-acento-hover); }
.elementor .ayg-post-tags .elementor-heading-title { font-size: 0; }
.elementor .ayg-post-tags .elementor-heading-title a { font-size: 13px; font-weight: 500; color: var(--ayg-texto); padding: 6px 12px; border: 1px solid var(--ayg-linea); border-radius: 999px; display: inline-block; margin: 0 6px 8px 0; text-decoration: none; transition: all .3s ease; }
.elementor .ayg-post-tags .elementor-heading-title a::before { content: "#"; color: var(--ayg-acento); margin-right: 2px; }
.elementor .ayg-post-tags .elementor-heading-title a:hover { border-color: var(--ayg-acento); color: var(--ayg-acento-osc); }

/* Índice (Tabla de contenidos de Elementor Pro) */
.elementor .ayg-toc { border: 1px solid var(--ayg-linea); border-radius: 18px; padding: 18px 20px; background: var(--ayg-blanco); }
.elementor .ayg-white .ayg-toc { background: var(--ayg-papel); border-color: transparent; }
.elementor .ayg-toc .elementor-toc { border: 0; padding: 0; background: none; }
.elementor .ayg-toc .elementor-toc__header { background: none; padding: 0 0 10px; border-bottom: 1px solid var(--ayg-linea); }
.elementor .ayg-toc .elementor-toc__header-title { font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--ayg-gris); font-weight: 600; }
.elementor .ayg-toc .elementor-toc__body { padding: 12px 0 0; max-height: 56vh; }
.elementor .ayg-toc .elementor-toc__list-item-text { font-size: 14px; line-height: 1.4; color: var(--ayg-texto); text-decoration: none; transition: color .25s ease; }
.elementor .ayg-toc .elementor-toc__list-item-text:hover,
.elementor .ayg-toc .elementor-toc__list-item-text.elementor-item-active { color: var(--ayg-acento-osc); }
.elementor .ayg-toc .elementor-toc__list-wrapper { gap: 6px; }
.elementor .ayg-toc .elementor-toc__list-item::marker,
.elementor .ayg-toc .elementor-toc__list-item-text-wrapper::before { color: var(--ayg-acento); font-size: 12px; font-weight: 600; }
.elementor .ayg-toc .elementor-toc__toggle-button { color: var(--ayg-acento); }
.elementor .ayg-side__title .elementor-heading-title { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ayg-gris); }

/* Compartir */
.elementor .ayg-share .elementor-share-btn { width: 42px !important; height: 42px !important; border-radius: 12px !important; background: var(--ayg-papel) !important; border: 1px solid var(--ayg-linea) !important; transition: all .35s var(--ayg-ease); display: flex !important; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; }
.elementor .ayg-share .elementor-share-btn__icon { width: auto !important; display: flex; align-items: center; justify-content: center; }
.elementor .ayg-share .elementor-grid { display: flex !important; gap: 8px; flex-wrap: wrap; }
.elementor .ayg-share .elementor-share-btn__icon i,
.elementor .ayg-share .elementor-share-btn__icon svg { color: var(--ayg-tinta) !important; fill: var(--ayg-tinta) !important; font-size: 15px; }
.elementor .ayg-share .elementor-share-btn:hover { background: var(--ayg-acento) !important; border-color: var(--ayg-acento) !important; transform: translateY(-3px); }
.elementor .ayg-share .elementor-share-btn:hover i,
.elementor .ayg-share .elementor-share-btn:hover svg { color: var(--ayg-sobre-acento) !important; fill: var(--ayg-sobre-acento) !important; }

/* Búsqueda */
.elementor .ayg-search .elementor-search-form__container { border-radius: 16px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .06); min-height: 58px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); padding: 5px; }
.elementor .ayg-search .elementor-search-form__input { color: var(--ayg-blanco); font-family: var(--ayg-sans); font-size: 15.5px; padding: 0 18px; background: transparent; }
.elementor .ayg-search .elementor-search-form__input::placeholder { color: var(--ayg-gris-2); }
.elementor .ayg-search .elementor-search-form__submit { background: var(--ayg-acento); color: var(--ayg-sobre-acento); min-width: 48px; border-radius: 12px; transition: background .3s ease; }
.elementor .ayg-search .elementor-search-form__submit:hover { background: var(--ayg-acento-hover); }
.elementor .ayg-search .elementor-search-form__container:focus-within { border-color: var(--ayg-acento); box-shadow: 0 0 0 4px rgba(18, 166, 201, .18); }
.elementor .ayg-search--hero { max-width: 580px; }
.elementor .ayg-search-links { padding-top: 28px; border-top: 1px solid var(--ayg-linea); }
.elementor .ayg-search-links .elementor-widget { width: auto; }

/* 404 */
.elementor .ayg-hero--404 > .e-con-inner::after { content: "404"; position: absolute; right: 0; bottom: -6vw; font-family: var(--ayg-display); font-weight: 700; font-size: clamp(10rem, 28vw, 26rem); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .12); pointer-events: none; z-index: -1; }

/* Columna lateral del artículo y columnas fijas */
@media (min-width: 1025px) {
	.elementor .ayg-sticky-col { position: sticky !important; top: calc(var(--ayg-header-h) + 20px); align-self: flex-start; }
}
.elementor .ayg-article-side .ayg-meta { margin-top: 8px; }

/* ======================================================================
   21. Footer
   ====================================================================== */
.elementor .ayg-footer { overflow: hidden; position: relative; isolation: isolate; }
.elementor .ayg-footer::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -30%;
	width: 120%;
	height: 80%;
	transform: translateX(-50%);
	background: radial-gradient(closest-side, rgba(18, 166, 201, .16), transparent);
	pointer-events: none;
	z-index: 0;
}
.elementor .ayg-footer > .e-con-inner { position: relative; z-index: 1; }
.elementor .ayg-mq--footer { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw !important; max-width: 100vw; padding: 26px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); -webkit-mask-image: none; mask-image: none; }
.elementor .ayg-mq--footer .ayg-mq__item { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 3rem); color: var(--ayg-blanco); }
.elementor .ayg-mq--footer .ayg-mq__group > .ayg-mq__item:nth-child(4n+3) { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .45); }
.elementor .ayg-mq--footer .ayg-mq__track { --ayg-mq-dur: 34s; }
.elementor .ayg-footer__cols { padding-top: 8px; }
.elementor .ayg-footer__lead { max-width: 400px; }
.elementor .ayg-logo--footer img { width: 70px; }
.elementor .ayg-footer__claim .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(2rem, 1.6rem + 1.2vw, 2.7rem); line-height: .95; color: var(--ayg-blanco); }
.elementor .ayg-footer__about,
.elementor .ayg-footer__about p { font-size: 14.5px; line-height: 1.45; color: var(--ayg-gris-claro); max-width: 360px; }
.elementor .ayg-footer__title .elementor-heading-title { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ayg-gris-2); }
.elementor .ayg-footer__links .elementor-icon-list-item { padding: 5px 0; }
.elementor .ayg-footer__links .elementor-icon-list-icon { display: none; }
.elementor .ayg-footer__links .elementor-icon-list-text {
	color: var(--ayg-blanco);
	font-size: 14.5px;
	padding-left: 0;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: color .3s ease, background-size .5s var(--ayg-ease), padding .5s var(--ayg-ease);
}
.elementor .ayg-footer__links a:hover .elementor-icon-list-text { color: var(--ayg-acento-hover); background-size: 100% 1px; }
.elementor .ayg-footer__contact .elementor-icon-list-item { padding: 6px 0; align-items: flex-start; }
.elementor .ayg-footer__contact .elementor-icon-list-icon { width: 30px; min-width: 30px; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, .06); display: inline-grid; place-items: center; }
.elementor .ayg-footer__contact .elementor-icon-list-icon i { color: var(--ayg-acento-hover); font-size: 12px; }
.elementor .ayg-footer__contact .elementor-icon-list-icon svg { fill: var(--ayg-acento-hover); width: 12px; height: 12px; }
.elementor .ayg-footer__contact .elementor-icon-list-text { color: var(--ayg-gris-claro); font-size: 14px; line-height: 1.45; padding-left: 10px; padding-top: 5px; transition: color .3s ease; }
.elementor .ayg-footer__contact a:hover .elementor-icon-list-text { color: var(--ayg-blanco); }
.elementor .ayg-footer__word { overflow: hidden; }
.elementor .ayg-footer__word .elementor-heading-title {
	font-family: var(--ayg-display);
	font-weight: 700;
	font-size: clamp(4.2rem, 17.4vw, 16.5rem);
	line-height: .78;
	letter-spacing: -.01em;
	white-space: nowrap;
	text-align: center;
	color: transparent;
	background: linear-gradient(180deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .06) 95%);
	-webkit-background-clip: text;
	background-clip: text;
	padding-bottom: .04em;
	transition: background .6s ease;
}
.elementor .ayg-footer__word:hover .elementor-heading-title { background: linear-gradient(180deg, rgba(18, 166, 201, .7) 0%, rgba(18, 166, 201, .05) 92%); -webkit-background-clip: text; background-clip: text; }
.elementor .ayg-footer__bottom { padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-footer__bottom .elementor-widget { width: auto; }
.elementor .ayg-footer__legal .elementor-heading-title { font-size: 13px; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-footer__legal .elementor-heading-title a { color: inherit; transition: color .3s ease; }
.elementor .ayg-footer__legal .elementor-heading-title a:hover { color: var(--ayg-blanco); }
@media (max-width: 1024px) {
	.elementor .ayg-footer__cols > .ayg-footer__lead { flex: 1 1 100%; max-width: none; }
	.elementor .ayg-footer__cols > .e-con:not(.ayg-footer__lead) { flex: 1 1 calc(33% - 40px); }
}
@media (max-width: 767px) {
	.elementor .ayg-footer__cols > .e-con:not(.ayg-footer__lead) { flex: 1 1 100%; }
	.elementor .ayg-footer__bottom { flex-direction: column; }
}

/* Botón flotante de WhatsApp */
.elementor .ayg-wa-float { position: fixed !important; right: 20px; bottom: 20px; width: auto !important; z-index: 990; margin: 0 !important; }
.elementor .ayg-wa-float .elementor-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	background: var(--ayg-wa);
	color: #04210F;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 14.5px;
	line-height: 1;
	padding: 14px 18px 14px 16px;
	border-radius: 999px;
	box-shadow: 0 14px 34px -10px rgba(37, 211, 102, .65);
	transition: transform .5s var(--ayg-ease), box-shadow .5s var(--ayg-ease);
}
.elementor .ayg-wa-float .elementor-button::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: 0 0 0 0 rgba(37, 211, 102, .6); animation: ayg-wa 2.6s ease-out infinite; pointer-events: none; }
.elementor .ayg-wa-float .elementor-button:hover { transform: translateY(-3px) scale(1.03); color: #04210F; }
.elementor .ayg-wa-float .elementor-button-content-wrapper { gap: 9px; align-items: center; }
.elementor .ayg-wa-float .elementor-button-icon { font-size: 20px; }
.elementor .ayg-wa-float .elementor-button-icon svg { width: 20px; height: 20px; fill: currentColor; }
@keyframes ayg-wa { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 80%, 100% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } }
@media (max-width: 767px) {
	.elementor .ayg-wa-float { right: 14px; bottom: 14px; }
	.elementor .ayg-wa-float .elementor-button { padding: 15px; }
	.elementor .ayg-wa-float .elementor-button-text { display: none; }
}

/* ======================================================================
   22. Animaciones: estado inicial (solo si hay JS y movimiento permitido)
   ====================================================================== */
.ayg-anim:not(.ayg-ready) .ayg-reveal,
.ayg-anim:not(.ayg-ready) .ayg-stagger > *,
.ayg-anim:not(.ayg-ready) .ayg-split { opacity: 0; }
.ayg-anim.ayg-anim-timeout .ayg-reveal,
.ayg-anim.ayg-anim-timeout .ayg-stagger > *,
.ayg-anim.ayg-anim-timeout .ayg-split { opacity: 1 !important; transform: none !important; }
.ayg-w { display: inline-block; will-change: transform; }
.ayg-line-mask { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }

/* En el editor de Elementor todo se ve sin animar */
.elementor-editor-active .ayg-reveal,
.elementor-editor-active .ayg-stagger > *,
.elementor-editor-active .ayg-split { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .ayg-wa-float { position: relative !important; right: auto; bottom: auto; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.ayg-reveal, .ayg-stagger > *, .ayg-split { opacity: 1 !important; transform: none !important; }
	.elementor .ayg-mq__track, .elementor .ayg-mqi { animation: none !important; }
	.elementor .ayg-card:hover, .elementor .ayg-tile:hover, .elementor .ayg-ncard:hover { transform: none; }
}

/* ======================================================================
   23. Ajustes responsive generales
   ====================================================================== */
@media (max-width: 1024px) {
	.elementor .ayg-hero .ayg-hero__body { width: 100%; }
	.elementor .ayg-hero__side { width: 100%; }
	.elementor .ayg-tiles--4 > .ayg-tile,
	.elementor .ayg-tiles > .ayg-tile { flex-basis: calc(50% - 16px); }
	.elementor .ayg-tiles--3 > .ayg-tile { flex-basis: 100%; }
	.elementor .ayg-bigstats > .ayg-bigstat { flex-basis: calc(50% - 14px); }
	.elementor .ayg-svcs > .ayg-svc { flex-basis: 100%; }
	.elementor .ayg-svc__img img { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
	.elementor .ayg-btns { width: 100%; }
	.elementor .ayg-btns .elementor-widget,
	.elementor .ayg-btns .elementor-button { width: 100%; }
	.elementor .ayg-btns .elementor-button-content-wrapper { justify-content: center; }
	.elementor .ayg-header__cta .elementor-button { width: auto; }
	.ayg-hide-mobile, .elementor .ayg-hide-mobile { display: none !important; }
	.elementor .ayg-tiles > .ayg-tile,
	.elementor .ayg-tiles--4 > .ayg-tile { flex-basis: 100%; }
	.elementor .ayg-bigstats { flex-direction: row !important; flex-wrap: wrap !important; }
	.elementor .ayg-bigstats > .ayg-bigstat { flex: 1 1 calc(50% - 14px) !important; padding: 18px !important; }
	.elementor .ayg-bigstat__v .elementor-heading-title { font-size: 1.9rem; }
	.elementor .ayg-glass-stats--hero > .ayg-glass-stat { flex: 1 1 calc(50% - 10px) !important; min-width: 0; }
	.elementor .ayg-hero__side--ficha .ayg-glass-stats { left: 12px; right: 12px; bottom: 12px; gap: 6px !important; }
	.elementor .ayg-hero__side--ficha .ayg-glass-stat { padding: 10px 11px; }
	.elementor .ayg-glass-stat { padding: 13px 14px; }
	.elementor .ayg-ncard__n .elementor-heading-title { font-size: 48px; }
	.elementor .ayg-mq__sep { font-size: 16px; }
	.elementor .ayg-cta__card { border-radius: 22px; }
	.elementor .ayg-formcard { border-radius: 20px; }
	.elementor .ayg-list__k { flex-basis: auto; }
	.elementor .ayg-confirm { padding: 26px 20px; }
	.elementor .ayg-header__cta .ayg-btn--sm .elementor-button { padding: 11px 12px 11px 14px; font-size: 13.5px; }
}
@media (max-width: 400px) {
	.elementor .ayg-header__cta .ayg-btn--sm .elementor-button-icon { display: none; }
}

/* ======================================================================
   v4 · Header doble, mega menú de ElementsKit, menú del celular en popup,
   popup lateral de cotizar, formulario por pasos, páginas de servicio,
   página de gracias y ficha de grúa sin columnas fijas
   ====================================================================== */

/* --- Header: barra de escritorio y barra de celular -------------------- */
.elementor .ayg-header__bar--desk { position: relative; }
.elementor .ayg-header__bar--mob { min-height: 62px; border-radius: 16px; }
.elementor .ayg-burger { width: auto; flex: 0 0 auto; }
.elementor .ayg-burger .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 0 14px;
	height: 44px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .16);
	color: var(--ayg-blanco);
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	transition: background-color .35s ease, border-color .35s ease;
}
.elementor .ayg-burger .elementor-button:hover { background: rgba(255, 255, 255, .14); color: var(--ayg-blanco); }
.elementor .ayg-burger .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.elementor .ayg-burger .elementor-button-icon { font-size: 16px; }
.elementor .ayg-burger .elementor-button-icon svg { width: 16px; height: 16px; fill: currentColor; }
.elementor .ayg-btn--xs .elementor-button { padding: 0 14px; height: 44px; font-size: 13.5px; }
.elementor .ayg-btn--xs .elementor-button-icon { display: none; }
@media (max-width: 380px) { .elementor .ayg-burger .elementor-button-text { display: none; } }

/* --- Menú de ElementsKit (escritorio) ---------------------------------- */
.elementor .ayg-ekit { flex: 1 1 auto; width: auto; }
.elementor .ayg-ekit,
.elementor .ayg-ekit > .elementor-widget-container,
.ayg-ekit .ekit-wid-con,
.ayg-ekit .elementskit-menu-container,
.ayg-ekit .elementskit-navbar-nav,
.ayg-ekit .elementskit-navbar-nav > li { position: static !important; }
.ayg-ekit .elementskit-menu-container { background: transparent !important; height: auto !important; max-width: none !important; border: 0 !important; box-shadow: none !important; }
.ayg-ekit .elementskit-menu-hamburger,
.ayg-ekit .elementskit-menu-close,
.ayg-ekit .elementskit-nav-identity-panel { display: none !important; }
.ayg-ekit .elementskit-navbar-nav { display: flex !important; justify-content: center; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.ayg-ekit .elementskit-navbar-nav > li > a {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	font-family: var(--ayg-sans) !important;
	font-weight: 500 !important;
	font-size: 14.5px !important;
	line-height: 1 !important;
	color: var(--ayg-blanco) !important;
	padding: 12px 14px !important;
	border-radius: 10px;
	background: transparent;
	transition: background-color .3s ease, color .3s ease;
}
.ayg-ekit .elementskit-navbar-nav > li:hover > a,
.ayg-ekit .elementskit-navbar-nav > li:focus-within > a { background: rgba(255, 255, 255, .09); }
.ayg-ekit .elementskit-navbar-nav > li.current-menu-item > a,
.ayg-ekit .elementskit-navbar-nav > li.current-menu-ancestor > a { color: var(--ayg-acento-hover) !important; }
.ayg-ekit .elementskit-submenu-indicator { font-size: 9px; color: var(--ayg-gris-2) !important; margin: 0 !important; transition: transform .35s var(--ayg-ease); }
.ayg-ekit .elementskit-navbar-nav > li:hover .elementskit-submenu-indicator { transform: rotate(180deg); }
/* Panel del mega menú: se abre debajo de la barra, a su mismo ancho */
.ayg-ekit .elementskit-megamenu-panel {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: calc(100% + 12px) !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 22px !important;
	border-radius: 22px;
	background: rgba(9, 11, 14, .94) !important;
	border: 1px solid rgba(255, 255, 255, .1);
	-webkit-backdrop-filter: blur(22px) saturate(150%);
	backdrop-filter: blur(22px) saturate(150%);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7);
	visibility: hidden;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .3s ease, transform .45s var(--ayg-ease), visibility 0s linear .3s;
	z-index: 999;
}
.ayg-ekit .elementskit-megamenu-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.ayg-ekit .elementskit-navbar-nav > li:hover > .elementskit-megamenu-panel,
.ayg-ekit .elementskit-navbar-nav > li:focus-within > .elementskit-megamenu-panel {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity .3s ease, transform .45s var(--ayg-ease), visibility 0s;
}
.elementor .ayg-ekit-mega,
.elementor .ayg-ekit-mega > .e-con-inner { padding: 0 !important; max-width: none !important; background: transparent; }
.elementor .ayg-ekit-mega .ayg-link-arrow .elementor-button { color: var(--ayg-blanco); }
.elementor .ayg-ekit-mega .ayg-link-arrow--underline .elementor-button::after { background-image: linear-gradient(90deg, var(--ayg-acento) 50%, rgba(255, 255, 255, .2) 50%); }

/* --- Popups laterales (cotizar y menú del celular) --------------------- */
.ayg-popup-modal--side .dialog-widget-content { border-radius: 24px 0 0 24px !important; border-right: 0; height: 100vh; height: 100dvh; max-height: none; }
.ayg-popup-modal--side .dialog-message { max-height: none; height: 100%; overflow: hidden; }
.ayg-popup-modal--side [data-elementor-type="popup"],
.ayg-popup-modal--side [data-elementor-type="popup"] > .e-con { height: 100%; }
@media (max-width: 767px) { .ayg-popup-modal--side .dialog-widget-content { border-radius: 0 !important; border: 0; } }

/* Menú del celular */
.elementor .ayg-mnav { height: 100%; min-height: 100vh; min-height: 100dvh; justify-content: space-between; background: var(--ayg-noche-2); }
.elementor .ayg-mnav__head { padding-right: 52px; }
.elementor .ayg-logo--mnav img { width: 48px; }
.elementor .ayg-mnav__eb { display: none; }
.elementor .ayg-mnav__body { flex: 1 1 auto; justify-content: flex-start; overflow-y: auto; overscroll-behavior: contain; margin: 0 -4px; padding: 0 4px; }
.elementor .ayg-mnav__acc .e-n-accordion-item { border-bottom: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-mnav__acc .e-n-accordion-item-title { padding: 16px 2px !important; background: none !important; border: 0 !important; }
.elementor .ayg-mnav__acc .e-n-accordion-item-title-text,
.elementor .ayg-mnav__item .elementor-heading-title,
.elementor .ayg-mnav__item .elementor-heading-title a { font-family: var(--ayg-display); font-weight: 600; font-size: 30px !important; line-height: 1 !important; color: var(--ayg-blanco) !important; }
.elementor .ayg-mnav__acc .e-n-accordion-item-title-icon i,
.elementor .ayg-mnav__acc .e-n-accordion-item-title-icon svg { color: var(--ayg-acento-hover); fill: var(--ayg-acento-hover); font-size: 14px; }
.elementor .ayg-mnav__acc .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--ayg-acento-hover) !important; }
.elementor .ayg-mnav__acc .ayg-acc-body { padding: 0 0 14px !important; background: none !important; border: 0 !important; }
.elementor .ayg-mnav__links .elementor-icon-list-item { padding: 7px 0 !important; }
.elementor .ayg-mnav__links .elementor-icon-list-text { font-size: 15.5px; font-weight: 500; color: var(--ayg-gris-claro); padding: 0 !important; transition: color .25s ease; }
.elementor .ayg-mnav__links .elementor-icon-list-item:hover .elementor-icon-list-text { color: var(--ayg-blanco); }
.elementor .ayg-mnav__links .elementor-icon-list-item:last-child .elementor-icon-list-text { color: var(--ayg-acento-hover); font-weight: 600; }
.elementor .ayg-mnav__item { padding: 16px 2px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-mnav__item a { display: block; }
.elementor .ayg-mnav__item:hover .elementor-heading-title a { color: var(--ayg-acento-hover) !important; }
.elementor .ayg-mnav__foot { padding-top: 6px; }
.elementor .ayg-mnav__meta .elementor-heading-title { font-size: 13.5px; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-mnav__meta .elementor-heading-title a { color: inherit; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__acc .e-n-accordion-item,
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__item { animation: ayg-mnav-in .55s var(--ayg-ease) both; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__acc .e-n-accordion-item:nth-child(2) { animation-delay: .05s; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__acc .e-n-accordion-item:nth-child(3) { animation-delay: .1s; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__item:nth-child(1) { animation-delay: .15s; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__item:nth-child(2) { animation-delay: .2s; }
.ayg-anim .ayg-popup-modal--menu .ayg-mnav__item:nth-child(3) { animation-delay: .25s; }
@keyframes ayg-mnav-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }

/* Popup de cotizar: cabecera con foto, formulario y pie; todo cabe en la pantalla */
.elementor .ayg-pc { height: 100%; min-height: 100vh; min-height: 100dvh; background: var(--ayg-noche-2); flex-wrap: nowrap; }
.elementor .ayg-pc__head { position: relative; isolation: isolate; flex: 0 0 auto; padding-right: 64px !important; }
.elementor .ayg-pc__head::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7, 9, 12, .55) 0%, rgba(13, 16, 20, .96) 100%); }
.elementor .ayg-pc__head .ayg-pc__title .elementor-heading-title { font-size: clamp(1.9rem, 1.5rem + 1vw, 2.4rem); }
.elementor .ayg-pc__chips .ayg-chip .elementor-heading-title { font-size: 12px; padding: 6px 10px; }
.elementor .ayg-pc__form { flex: 1 1 auto; justify-content: flex-start; min-height: 0; overflow: hidden; }
.elementor .ayg-pc__foot { flex: 0 0 auto; border-top: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-pc__foot .elementor-widget { width: auto; }
.elementor .ayg-link-arrow--light .elementor-button { color: var(--ayg-blanco); font-size: 14px; }
.elementor .ayg-link-arrow--light .elementor-button:hover { color: var(--ayg-acento-hover); }
@media (max-height: 760px) {
	.elementor .ayg-pc__chips { display: none !important; }
	.elementor .ayg-pc__head { padding-top: 22px !important; padding-bottom: 16px !important; }
	.elementor .ayg-form--popup .elementor-field-group { margin-bottom: 9px; }
	.elementor .ayg-form--popup .elementor-field-textual,
	.elementor .ayg-form--popup .elementor-select-wrapper select { min-height: 42px; padding-top: 10px; padding-bottom: 10px; }
}
@media (max-height: 640px) { .elementor .ayg-pc__head .ayg-eyebrow { display: none; } .elementor .ayg-pc__foot { display: none; } }

/* --- Formulario por pasos (campo «Paso» de Elementor Pro) -------------- */
.elementor .ayg-form .e-form__indicators {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0 10px 20px;
	padding: 0;
	flex-wrap: nowrap;
}
.elementor .ayg-form .e-form__indicators__indicator { display: flex; flex-direction: row; align-items: center; gap: 8px; flex: 0 0 auto; padding: 0; }
.elementor .ayg-form .e-form__indicators__indicator__number {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 13px;
	border: 1px solid var(--ayg-linea);
	background: transparent;
	color: var(--ayg-gris);
	margin: 0;
	transition: background-color .35s ease, color .35s ease, border-color .35s ease;
}
.elementor .ayg-form .e-form__indicators__indicator__label { font-size: 13px; font-weight: 600; color: var(--ayg-gris); white-space: nowrap; }
.elementor .ayg-form .e-form__indicators__indicator__separator { flex: 1 1 auto; height: 2px; min-width: 12px; border-radius: 2px; background: var(--ayg-linea); margin: 0; }
.elementor .ayg-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number { background: var(--ayg-acento); border-color: var(--ayg-acento); color: var(--ayg-sobre-acento); box-shadow: 0 0 0 5px rgba(18, 166, 201, .16); }
.elementor .ayg-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: var(--ayg-tinta); }
.elementor .ayg-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: var(--ayg-noche); border-color: var(--ayg-noche); color: var(--ayg-blanco); }
.elementor .ayg-form .e-form__indicators__indicator--state-completed + .e-form__indicators__indicator__separator { background: var(--ayg-acento); }
.elementor .ayg-form--popup .e-form__indicators__indicator__number { border-color: rgba(255, 255, 255, .18); color: var(--ayg-gris-2); }
.elementor .ayg-form--popup .e-form__indicators__indicator__label { color: var(--ayg-gris-2); }
.elementor .ayg-form--popup .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: var(--ayg-blanco); }
.elementor .ayg-form--popup .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: rgba(18, 166, 201, .2); border-color: var(--ayg-acento); color: var(--ayg-acento-hover); }
.elementor .ayg-form--popup .e-form__indicators__indicator__separator { background: rgba(255, 255, 255, .12); }
.elementor .ayg-form .e-form__buttons { display: flex; gap: 10px; width: 100%; padding: 4px 10px 0; margin: 0; }
.elementor .ayg-form .e-form__buttons__wrapper { flex: 1 1 0; padding: 0; margin: 0; }
.elementor .ayg-form .e-form__buttons__wrapper.elementor-field-type-previous { flex: 0 0 auto; }
.elementor .ayg-form .e-form__buttons__wrapper__button {
	width: 100%;
	min-height: 52px;
	border-radius: 14px;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .35s ease, color .35s ease, border-color .35s ease, transform .4s var(--ayg-ease);
}
.elementor .ayg-form .e-form__buttons__wrapper__button-next { background: var(--ayg-acento) !important; color: var(--ayg-sobre-acento) !important; border: 0 !important; padding: 0 22px; }
.elementor .ayg-form .e-form__buttons__wrapper__button-next::after { content: "→"; margin-left: 10px; display: inline-block; transition: transform .4s var(--ayg-ease); }
.elementor .ayg-form .e-form__buttons__wrapper__button-next:hover { background: var(--ayg-acento-hover) !important; }
.elementor .ayg-form .e-form__buttons__wrapper__button-next:hover::after { transform: translateX(4px); }
.elementor .ayg-form .e-form__buttons__wrapper__button-previous { background: transparent !important; color: var(--ayg-tinta) !important; border: 1px solid var(--ayg-linea) !important; padding: 0 18px; }
.elementor .ayg-form .e-form__buttons__wrapper__button-previous:hover { border-color: var(--ayg-tinta) !important; }
.elementor .ayg-form--popup .e-form__buttons__wrapper__button-previous { color: var(--ayg-blanco) !important; border-color: rgba(255, 255, 255, .18) !important; }
.elementor .ayg-form--popup .e-form__buttons__wrapper__button-previous:hover { border-color: var(--ayg-blanco) !important; }
.elementor .ayg-form .e-form__step,
.elementor .ayg-form .elementor-field-type-step { width: 100%; }
.ayg-anim .elementor .ayg-form .e-form__step:not(.elementor-hidden) { animation: ayg-step .45s var(--ayg-ease) both; }
@keyframes ayg-step { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
/* Último paso: «Atrás» y «Enviar» en la misma fila */
.elementor .ayg-form .e-form__step:last-of-type { align-items: flex-end; }
/* Archivo y fecha */
.elementor .ayg-form .elementor-upload-field {
	width: 100%;
	border: 1px dashed var(--ayg-linea);
	border-radius: 12px;
	padding: 11px 12px;
	font-size: 13.5px;
	color: var(--ayg-gris);
	background: #F7F6F3;
	cursor: pointer;
}
.elementor .ayg-form .elementor-upload-field::file-selector-button {
	margin-right: 12px;
	border: 0;
	border-radius: 9px;
	padding: 8px 12px;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 13px;
	background: var(--ayg-noche);
	color: var(--ayg-blanco);
	cursor: pointer;
}
.elementor .ayg-form--popup .elementor-upload-field { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .18); color: var(--ayg-gris-2); }
.elementor .ayg-form--popup .elementor-upload-field::file-selector-button { background: rgba(255, 255, 255, .12); }
.elementor .ayg-form input[type="date"].elementor-field-textual { min-height: 48px; color-scheme: light; }
.elementor .ayg-form--popup input[type="date"].elementor-field-textual { color-scheme: dark; }
.elementor .ayg-form--popup textarea.elementor-field-textual { min-height: 64px; }
@media (max-width: 767px) {
	.elementor .ayg-form .e-form__indicators__indicator__label { display: none; }
	.elementor .ayg-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { display: block; }
}
/* Enviando: barra que corre arriba del formulario mientras llega la página de gracias */
.elementor .ayg-form--sending { position: relative; pointer-events: none; }
.elementor .ayg-form--sending .elementor-form { opacity: .35; transition: opacity .3s ease; }
.elementor .ayg-form--sending::before { content: "Enviando tu solicitud…"; position: absolute; left: 0; right: 0; top: 30%; text-align: center; font-family: var(--ayg-display); font-weight: 700; font-size: 26px; color: var(--ayg-blanco); z-index: 3; }
.elementor .ayg-form--sending::after { content: ""; position: absolute; left: 10%; right: 10%; top: calc(30% + 44px); height: 6px; border-radius: 6px; background: linear-gradient(90deg, var(--ayg-acento) 0 40%, rgba(255, 255, 255, .12) 40%); background-size: 250% 100%; animation: ayg-sending 1.2s linear infinite; z-index: 3; }
.elementor .ayg-paper .ayg-form--sending::before,
.elementor .ayg-white .ayg-form--sending::before { color: var(--ayg-tinta); }
@keyframes ayg-sending { from { background-position: 100% 0; } to { background-position: -150% 0; } }

/* --- Página de gracias --------------------------------------------------- */
.elementor .ayg-thanks { min-height: 100vh; }
.elementor .ayg-thanks__bar { width: 100%; max-width: 560px; padding: 20px 22px; border-radius: 18px; background: var(--ayg-glass); border: 1px solid var(--ayg-glass-borde); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.elementor .ayg-thanks__state .elementor-heading-title { font-size: 14.5px; font-weight: 600; color: var(--ayg-blanco); }
.elementor .ayg-thanks__pct .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 24px; line-height: 1; color: var(--ayg-acento-hover); font-variant-numeric: tabular-nums; }
.elementor .ayg-thanks__progress .elementor-title { display: none; }
.elementor .ayg-thanks__progress .elementor-progress-wrapper { height: 10px; border-radius: 10px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.elementor .ayg-thanks__progress .elementor-progress-bar { height: 100%; border-radius: 10px; background: linear-gradient(90deg, var(--ayg-acento-osc), var(--ayg-acento-hover)); line-height: 10px; }
.elementor .ayg-thanks__progress .elementor-progress-text,
.elementor .ayg-thanks__progress .elementor-progress-percentage { display: none; }
.elementor .ayg-thanks.is-done .ayg-thanks__state .elementor-heading-title::before { content: "✓"; display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: var(--ayg-acento); color: var(--ayg-sobre-acento); font-size: 12px; }
.elementor .ayg-thanks__redirect { opacity: 0; transform: translateY(4px); transition: opacity .4s ease, transform .5s var(--ayg-ease); }
.elementor .ayg-thanks__redirect.is-visible { opacity: 1; transform: none; }
.elementor .ayg-thanks__redirect .elementor-heading-title { font-size: 13.5px; font-weight: 500; color: var(--ayg-gris-2); }
.elementor .ayg-thanks__redirect b { color: var(--ayg-blanco); font-variant-numeric: tabular-nums; }
.elementor .ayg-thanks__redirect a { color: var(--ayg-acento-hover); text-decoration: underline; }
.elementor .ayg-thanks__card { border-radius: var(--ayg-radio); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-thanks__eb .elementor-heading-title { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; color: var(--ayg-acento-hover); }
.elementor .ayg-thanks__resumen,
.elementor .ayg-thanks__resumen p { font-size: 14.5px; color: var(--ayg-gris-claro); }
.elementor .ayg-thanks__list { display: grid; grid-template-columns: auto 1fr; margin: 0; }
.elementor .ayg-thanks__list dt,
.elementor .ayg-thanks__list dd { margin: 0; padding: 9px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-thanks__list dt { font-size: 12.5px; color: var(--ayg-gris-2); padding-right: 16px; }
.elementor .ayg-thanks__list dd { font-size: 14.5px; font-weight: 600; color: var(--ayg-blanco); overflow-wrap: anywhere; }
.elementor .ayg-thanks__nota .elementor-heading-title { font-size: 13.5px; line-height: 1.45; font-weight: 500; color: var(--ayg-gris-2); }

/* --- Bloques de las páginas de servicio --------------------------------- */
.elementor .ayg-prose--lead p { font-size: 17.5px; line-height: 1.5; color: var(--ayg-texto); }
.elementor .ayg-chip--line .elementor-heading-title { background: transparent; border: 1px solid var(--ayg-linea); color: var(--ayg-tinta); }
.elementor .ayg-tiles--3 > .ayg-tile { flex: 1 1 calc(33.333% - 11px) !important; }
.elementor .ayg-tiles--4 > .ayg-tile { flex: 1 1 calc(25% - 12px) !important; }
@media (max-width: 1024px) { .elementor .ayg-tiles--4 > .ayg-tile { flex-basis: calc(50% - 8px) !important; } }
@media (max-width: 767px) { .elementor .ayg-tiles--3 > .ayg-tile, .elementor .ayg-tiles--4 > .ayg-tile { flex-basis: 100% !important; } }

/* Aplicaciones: rejilla numerada de dos columnas con líneas finas */
.elementor .ayg-apps { border-top: 1px solid var(--ayg-linea); }
.elementor .ayg-apps > .ayg-app { flex: 0 0 50% !important; width: 50% !important; padding: 28px 28px 28px 0; border-bottom: 1px solid var(--ayg-linea); transition: background-color .4s ease; }
.elementor .ayg-apps > .ayg-app:nth-child(2n) { padding-left: 28px; padding-right: 0; border-left: 1px solid var(--ayg-linea); }
.elementor .ayg-app__n { flex: 0 0 auto; width: auto; }
.elementor .ayg-app__n .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 18px; color: var(--ayg-acento-osc); line-height: 1.2; font-variant-numeric: tabular-nums; }
.elementor .ayg-app__t .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.4rem, 1.25rem + .5vw, 1.75rem); line-height: 1.02; color: var(--ayg-tinta); }
.elementor .ayg-app__d p { font-size: 15px; line-height: 1.45; color: var(--ayg-gris); }
.elementor .ayg-app:hover .ayg-app__t .elementor-heading-title { color: var(--ayg-acento-osc); }
@media (max-width: 767px) {
	.elementor .ayg-apps > .ayg-app,
	.elementor .ayg-apps > .ayg-app:nth-child(2n) { flex-basis: 100% !important; width: 100% !important; padding: 22px 0; border-left: 0; }
}

/* Tarjetas de grúa estáticas */
.elementor .ayg-gcards > .ayg-gcard { flex: 1 1 calc(33.333% - 11px) !important; min-width: 0; }
.elementor .ayg-gcards--5 > .ayg-gcard { flex-basis: calc(20% - 13px) !important; }
.elementor .ayg-gcard { background: var(--ayg-blanco); border: 1px solid var(--ayg-linea); border-radius: var(--ayg-radio); overflow: hidden; transition: transform .5s var(--ayg-ease), box-shadow .5s var(--ayg-ease), border-color .4s ease; }
.elementor .ayg-paper .ayg-gcard { background: var(--ayg-blanco); }
.elementor .ayg-white .ayg-gcard { background: var(--ayg-papel); border-color: transparent; }
.elementor .ayg-gcard:hover { transform: translateY(-4px); box-shadow: var(--ayg-sombra); }
.elementor .ayg-gcard__img img { border-radius: 0 !important; }
.elementor .ayg-gcard__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: 22px; line-height: 1; color: var(--ayg-tinta); }
.elementor .ayg-gcard__title a { color: inherit; }
.elementor .ayg-gcard__more .elementor-heading-title { font-size: 13.5px; font-weight: 600; color: var(--ayg-acento-osc); }
.elementor .ayg-gcard__more .elementor-heading-title a::after { content: " →"; transition: margin .4s var(--ayg-ease); }
.elementor .ayg-gcard:hover .ayg-gcard__more .elementor-heading-title a::after { margin-left: 4px; }
@media (max-width: 1024px) { .elementor .ayg-gcards > .ayg-gcard, .elementor .ayg-gcards--5 > .ayg-gcard { flex-basis: calc(50% - 8px) !important; } }
@media (max-width: 767px) { .elementor .ayg-gcards > .ayg-gcard, .elementor .ayg-gcards--5 > .ayg-gcard { flex-basis: 100% !important; } }

/* Proyectos en filas (fondo noche) */
.elementor .ayg-prows { border-top: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-prow { padding: 22px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); transition: padding .5s var(--ayg-ease); }
.elementor .ayg-prow:hover { padding-left: 12px; padding-right: 12px; }
.elementor .ayg-prow > .elementor-widget { flex: 0 0 auto !important; width: auto; }
.elementor .ayg-prow > .e-con { flex: 1 1 auto !important; }
.elementor .ayg-prow__year .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 20px; color: var(--ayg-acento-hover); width: 110px; }
.elementor .ayg-prow__title .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.4rem); line-height: 1; color: var(--ayg-blanco); }
.elementor .ayg-prow__title a { color: inherit; }
.elementor .ayg-prow__meta .elementor-heading-title { font-size: 13.5px; color: var(--ayg-gris-2); font-weight: 500; }
.elementor .ayg-prow__img img { width: 150px; height: 96px; object-fit: cover; border-radius: 14px; display: block; opacity: .85; transition: opacity .4s ease, transform .6s var(--ayg-ease); }
.elementor .ayg-prow:hover .ayg-prow__img img { opacity: 1; transform: scale(1.04) rotate(-1.5deg); }
.elementor .ayg-prow .ayg-arrowbtn .elementor-button { background: rgba(255, 255, 255, .08); }
.elementor .ayg-prow:hover .ayg-arrowbtn .elementor-button { background: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-prow:hover .ayg-arrowbtn .elementor-button-icon { transform: rotate(0); }
@media (max-width: 767px) {
	.elementor .ayg-prow { flex-wrap: wrap !important; gap: 10px 16px !important; }
	.elementor .ayg-prow__img { display: none; }
	.elementor .ayg-prow__year .elementor-heading-title { width: auto; font-size: 16px; }
	.elementor .ayg-prow > .e-con { flex-basis: calc(100% - 70px) !important; order: 3; }
	.elementor .ayg-prow .ayg-arrowbtn { order: 2; margin-left: auto; }
}

/* Servicios en zigzag (página Servicios) */
.elementor .ayg-zz__n .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 18px; color: var(--ayg-acento-osc); }
.elementor .ayg-zz__title .elementor-heading-title { font-size: clamp(2rem, 1.5rem + 1.6vw, 3.1rem) !important; line-height: .95 !important; }
.elementor .ayg-zz__title a { color: inherit; }
.elementor .ayg-zz__text p { font-size: 16.5px; line-height: 1.5; color: var(--ayg-gris); max-width: 520px; }
.elementor .ayg-zz__img img { border-radius: var(--ayg-radio); }
.elementor .ayg-btn--link:not(.ayg-btn--link-light) .elementor-button { color: var(--ayg-tinta) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.elementor .ayg-btn--link:not(.ayg-btn--link-light) .elementor-button:hover { color: var(--ayg-acento-osc) !important; }
.elementor .ayg-dark .ayg-btn--link .elementor-button { color: var(--ayg-blanco) !important; }
.elementor .ayg-btn--link .elementor-button-icon { background: none !important; }

/* Guía SEO sin columna fija */
.elementor .ayg-guia__cols .ayg-accordion--guia .elementor-accordion-item { margin-bottom: 10px; }
.elementor .ayg-guia__head .ayg-toc { max-width: 520px; }

/* Ciclo con 4 pasos */
.elementor .ayg-cycle--4 .ayg-cycle__steps > .ayg-cycle__step { flex: 1 1 25%; }
.elementor .ayg-cycle-sec > .e-con-inner { padding-top: 0; }
.elementor .ayg-noche { background-color: var(--ayg-noche); }

/* --- Ficha de grúa v4 --------------------------------------------------- */
/* Insignia redonda con texto girando (descargar PDF) */
.elementor .ayg-badge { width: auto; flex: 0 0 auto; }
.elementor .ayg-badge .elementor-button {
	position: relative;
	width: 132px;
	height: 132px;
	padding: 0;
	border-radius: 50%;
	background: var(--ayg-acento);
	color: var(--ayg-sobre-acento);
	display: grid;
	place-items: center;
	box-shadow: 0 20px 40px -18px rgba(18, 166, 201, .8);
	transition: transform .6s var(--ayg-ease), background-color .4s ease;
}
.elementor .ayg-badge .elementor-button:hover { transform: scale(1.06); background: var(--ayg-blanco); }
.elementor .ayg-badge .elementor-button-content-wrapper { position: static; }
.elementor .ayg-badge .elementor-button-text { position: absolute; inset: 10px; display: block; font-size: 0; animation: ayg-spin 14s linear infinite; }
.elementor .ayg-badge .elementor-button-text:not([data-ring]) { font-size: 11px; inset: auto; position: static; animation: none; text-align: center; padding: 0 14px; }
.elementor .ayg-badge .ayg-badge__ch {
	position: absolute;
	left: 50%;
	top: 0;
	height: 50%;
	width: 12px;
	margin-left: -6px;
	transform-origin: 50% 100%;
	font-family: var(--ayg-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0;
	text-transform: uppercase;
	text-align: center;
	line-height: 1;
}
.elementor .ayg-badge .elementor-button-icon { position: absolute; inset: 0; display: grid; place-items: center; font-size: 22px; margin: 0; }
.elementor .ayg-badge .elementor-button-icon svg { width: 22px; height: 22px; fill: currentColor; }
.elementor .ayg-badge .elementor-button:hover .elementor-button-icon i,
.elementor .ayg-badge .elementor-button:hover .elementor-button-icon svg { animation: ayg-drop-arrow .7s var(--ayg-ease) both; }
@keyframes ayg-spin { to { transform: rotate(360deg); } }
@keyframes ayg-drop-arrow { 0% { transform: none; } 45% { transform: translateY(140%); opacity: 1; } 46% { transform: translateY(-140%); opacity: 0; } 47% { opacity: 1; } 100% { transform: none; } }
.elementor .ayg-badge.is-empty { display: none; }
.elementor .ayg-hero__side--ficha { position: relative; }
.elementor .ayg-badge--hero { position: absolute !important; left: -40px; bottom: -36px; z-index: 4; }
@media (max-width: 1024px) { .elementor .ayg-badge--hero { left: auto; right: 16px; bottom: -40px; } .elementor .ayg-badge .elementor-button { width: 112px; height: 112px; } }
@media (prefers-reduced-motion: reduce) { .elementor .ayg-badge .elementor-button-text { animation: none; } }
.elementor .ayg-btn--link-light .elementor-button { color: var(--ayg-blanco) !important; padding: 10px 0 !important; font-size: 15px !important; font-weight: 600; }
.elementor .ayg-btn--link-light .elementor-button-text { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--ayg-ease); padding-bottom: 3px; }
.elementor .ayg-btn--link-light .elementor-button:hover .elementor-button-text { background-size: 100% 1px; }
.elementor .ayg-btn--link-light .elementor-button-icon { width: auto !important; font-size: 17px; color: var(--ayg-wa); }
.elementor .ayg-btn--link-light .elementor-button-icon svg { fill: var(--ayg-wa); width: 17px; height: 17px; }

/* Franja oscura de cifras (sin tarjetas) */
.elementor .ayg-strip-sec { padding-top: 0 !important; padding-bottom: 0 !important; }
.elementor .ayg-strip { border-top: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-strip > .ayg-strip__item { flex: 1 1 25% !important; padding: 34px 28px; border-left: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-strip > .ayg-strip__item:first-child { border-left: 0; padding-left: 0; }
.elementor .ayg-strip__v .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(2.6rem, 2rem + 2vw, 4.2rem); line-height: .9; color: var(--ayg-blanco); }
.elementor .ayg-strip__k .elementor-heading-title { font-size: 13px; font-weight: 500; color: var(--ayg-gris-2); }
@media (max-width: 767px) {
	.elementor .ayg-strip > .ayg-strip__item { flex: 0 0 50% !important; width: 50% !important; padding: 22px 16px; border-top: 1px solid rgba(255, 255, 255, .1); }
	.elementor .ayg-strip > .ayg-strip__item:nth-child(-n+2) { border-top: 0; }
	.elementor .ayg-strip > .ayg-strip__item:nth-child(odd) { border-left: 0; padding-left: 0; }
}

/* Descripción a dos columnas con foto */
.elementor .ayg-desc__img img { border-radius: var(--ayg-radio); }
.elementor .ayg-desc__pic.ayg-is-hidden + .e-con { width: 100% !important; max-width: 820px; }
.elementor .ayg-accordion--line .e-n-accordion-item { border-bottom: 1px solid var(--ayg-linea); }
.elementor .ayg-accordion--line .e-n-accordion-item-title { background: none !important; border: 0 !important; padding: 18px 0 !important; border-radius: 0 !important; }
.elementor .ayg-accordion--line .ayg-acc-body { padding: 0 0 18px !important; background: none !important; border: 0 !important; }

/* Ficha técnica en rejilla a todo el ancho */
.elementor .ayg-specs-sec .ayg-sec-head .ayg-h2 .elementor-heading-title { color: var(--ayg-blanco); }
.elementor .ayg-chip--lg .elementor-heading-title { font-size: 15px; padding: 10px 16px; }
.elementor .ayg-specgrid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid rgba(255, 255, 255, .1); border-left: 1px solid rgba(255, 255, 255, .1); }
.elementor .ayg-specgrid > .ayg-spec {
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	padding: 22px 22px 24px !important;
	border: 0 !important;
	border-right: 1px solid rgba(255, 255, 255, .1) !important;
	border-bottom: 1px solid rgba(255, 255, 255, .1) !important;
	transition: background-color .35s ease;
}
.elementor .ayg-specgrid > .ayg-spec:hover { background: rgba(255, 255, 255, .03); }
.elementor .ayg-specgrid .ayg-spec__label .elementor-heading-title { font-size: 12.5px; color: var(--ayg-gris-2); }
.elementor .ayg-specgrid .ayg-spec__value .elementor-heading-title { font-family: var(--ayg-display); font-weight: 600; font-size: 22px; line-height: 1.05; color: var(--ayg-blanco); text-align: left; }
@media (max-width: 1024px) { .elementor .ayg-specgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .elementor .ayg-specgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .elementor .ayg-specgrid > .ayg-spec { padding: 16px 14px 18px !important; } .elementor .ayg-specgrid .ayg-spec__value .elementor-heading-title { font-size: 18px; } }

/* Botones en tarjeta */
.elementor .ayg-tilebtns > .ayg-tilebtn { flex: 1 1 0 !important; min-width: 0; position: relative; }
.elementor .ayg-tilebtn .elementor-button {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: flex;
	width: 100%;
	min-height: 150px;
	padding: 24px 24px 22px;
	border-radius: 20px;
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .12);
	color: var(--ayg-blanco);
	text-align: left;
	transition: border-color .4s ease, color .45s var(--ayg-ease), transform .5s var(--ayg-ease);
}
.elementor .ayg-tilebtn .elementor-button::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--ayg-blanco); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .6s var(--ayg-ease); }
.elementor .ayg-tilebtn .elementor-button::after { content: "↗"; position: absolute; right: 22px; top: 18px; font-size: 22px; line-height: 1; transition: transform .5s var(--ayg-ease); }
.elementor .ayg-tilebtn .elementor-button:hover { color: var(--ayg-noche); border-color: var(--ayg-blanco); transform: translateY(-3px); }
.elementor .ayg-tilebtn .elementor-button:hover::before { transform: scaleY(1); }
.elementor .ayg-tilebtn .elementor-button:hover::after { transform: translate(3px, -3px) rotate(45deg); }
.elementor .ayg-tilebtn .elementor-button-content-wrapper { display: flex; flex-direction: column !important; align-items: flex-start; justify-content: space-between; gap: 30px; width: 100%; }
.elementor .ayg-tilebtn .elementor-button-icon { font-size: 24px; color: var(--ayg-acento-hover); margin: 0 !important; transition: color .4s ease; }
.elementor .ayg-tilebtn .elementor-button-icon svg { width: 24px; height: 24px; fill: currentColor; }
.elementor .ayg-tilebtn .elementor-button-text { font-family: var(--ayg-display); font-weight: 700; font-size: 28px; line-height: 1; padding-bottom: 20px; }
.elementor .ayg-tilebtn[data-sub]::after { content: attr(data-sub); position: absolute; left: 25px; bottom: 20px; font-size: 13px; font-weight: 500; color: var(--ayg-gris-2); pointer-events: none; transition: color .4s ease; }
.elementor .ayg-tilebtn:hover[data-sub]::after { color: var(--ayg-gris); }
.elementor .ayg-tilebtn--accent .elementor-button { background: var(--ayg-acento); border-color: var(--ayg-acento); color: var(--ayg-sobre-acento); }
.elementor .ayg-tilebtn--accent .elementor-button-icon { color: var(--ayg-sobre-acento); }
.elementor .ayg-tilebtn--accent[data-sub]::after { color: rgba(3, 27, 34, .7); }
.elementor .ayg-tilebtn .elementor-button[href*="wa.me"] .elementor-button-icon { color: var(--ayg-wa); }
.elementor .ayg-tilebtn.is-empty { display: none; }
@media (max-width: 1024px) { .elementor .ayg-tilebtn .elementor-button { min-height: 120px; } .elementor .ayg-tilebtn .elementor-button-text { font-size: 24px; } }

/* Guía larga del equipo: el artículo a dos columnas en pantallas grandes */
@media (min-width: 1200px) { .elementor .ayg-prose--cols { column-count: 2; column-gap: 56px; } .elementor .ayg-prose--cols h2, .elementor .ayg-prose--cols h3, .elementor .ayg-prose--cols figure, .elementor .ayg-prose--cols img { break-inside: avoid; } .elementor .ayg-prose--cols h2 { break-before: auto; } }

/* Inicio: «Por dónde empezar» en rejilla de 2 × 2 */
.elementor .ayg-ncards--grid > .ayg-ncard { flex: 0 0 calc(50% - 8px) !important; width: calc(50% - 8px) !important; flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; }
.elementor .ayg-ncards--grid > .ayg-ncard > .ayg-ncard__n { position: absolute; right: 30px; top: 22px; }
.elementor .ayg-ncards--grid > .ayg-ncard { position: relative; }
@media (max-width: 767px) { .elementor .ayg-ncards--grid > .ayg-ncard { flex-basis: 100% !important; width: 100% !important; } }

/* Footer con 5 columnas */
@media (max-width: 1024px) { .elementor .ayg-footer__cols > .e-con:first-child { width: 100% !important; } }

/* Rejilla de ficha técnica: la última celda se estira para cerrar la fila */
@media (min-width: 1025px) {
	.elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(4n+3) { grid-column: span 2; }
	.elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(4n+2) { grid-column: span 3; }
	.elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(4n+1) { grid-column: span 4; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(3n+2) { grid-column: span 2; }
	.elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(3n+1) { grid-column: span 3; }
}
@media (max-width: 767px) { .elementor .ayg-specgrid > .ayg-spec:last-child:nth-child(odd) { grid-column: span 2; } }
.elementor .ayg-guia__head { align-items: flex-start !important; }
/* Acordeones en línea (menú del celular y descripción de la ficha): sin tarjeta, solo líneas */
.elementor .ayg-accordion.ayg-mnav__acc .e-n-accordion-item,
.elementor .ayg-white .ayg-accordion.ayg-accordion--line .e-n-accordion-item,
.elementor .ayg-accordion.ayg-accordion--line .e-n-accordion-item { background: transparent !important; border: 0 !important; border-radius: 0 !important; overflow: visible; }
.elementor .ayg-accordion.ayg-mnav__acc .e-n-accordion-item { border-bottom: 1px solid rgba(255, 255, 255, .08) !important; }
.elementor .ayg-accordion.ayg-accordion--line .e-n-accordion-item { border-bottom: 1px solid var(--ayg-linea) !important; }
.elementor .ayg-accordion.ayg-mnav__acc .e-n-accordion-item-title-icon { background: rgba(255, 255, 255, .08) !important; color: var(--ayg-blanco) !important; }
.elementor .ayg-accordion.ayg-mnav__acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--ayg-acento) !important; color: var(--ayg-sobre-acento) !important; }
.elementor .ayg-accordion.ayg-accordion--line .e-n-accordion-item-title-icon { background: var(--ayg-papel); }
.elementor .ayg-mnav__body { min-height: 0; }
.elementor .ayg-accordion.ayg-mnav__acc .ayg-acc-body { color: var(--ayg-gris-claro); }
/* Ciclo fuera de una sección oscura: la tarjeta lleva su propio fondo noche */
.elementor .ayg-cycle-sec .ayg-cycle { background: var(--ayg-noche); border-radius: var(--ayg-radio); position: relative; overflow: hidden; isolation: isolate; }
.elementor .ayg-cycle-sec .ayg-cycle::before { content: ""; position: absolute; inset: auto -10% -60% auto; width: 60%; height: 140%; z-index: -1; background: radial-gradient(closest-side, rgba(18, 166, 201, .22), transparent); }
.elementor .ayg-cycle-sec .ayg-cycle__title .elementor-heading-title { color: var(--ayg-gris-2); }
.elementor .ayg-hero--servicio .ayg-h1 .elementor-heading-title { font-size: clamp(2.7rem, 1.6rem + 3.9vw, 5.4rem); line-height: .92; }
.elementor .ayg-thanks .ayg-h1 .elementor-heading-title { font-size: clamp(2.6rem, 1.6rem + 3.4vw, 4.8rem); }
.elementor .ayg-header__bar--desk > .ayg-ekit,
.elementor .ayg-header__bar--desk > .ayg-mega { flex: 1 1 auto !important; }
.elementor .ayg-header__bar > .ayg-header__cta { flex: 0 0 auto !important; width: auto !important; margin-left: auto; }
.elementor .ayg-header__bar > .ayg-logo { flex: 0 0 auto !important; }

/* ======================================================================
   v5 · Correcciones de Cami (15 oct): texto negro y más liviano, hovers suaves sin borde azul,
   brillo beige que sigue al mouse, separador en línea, carrusel parejo, guía del post, formulario y calendario
   ====================================================================== */
:root { --ayg-texto: #16191D; }

/* --- Texto corrido: negro, más pequeño, más liviano y con menos interlineado --- */
body { font-size: 15px; line-height: 1.42; font-weight: 380; color: var(--ayg-texto); }
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor p { font-weight: 380; }
.elementor .ayg-lead,
.elementor .ayg-lead p { font-size: clamp(.98rem, .94rem + .18vw, 1.06rem); line-height: 1.42; color: var(--ayg-texto); }
.elementor .ayg-lead-dark,
.elementor .ayg-lead-dark p { font-size: clamp(1rem, .95rem + .2vw, 1.1rem); line-height: 1.42; }
.elementor .ayg-prose,
.elementor .ayg-prose p,
.elementor .ayg-prose--article p,
.elementor .ayg-prose--article li { font-size: 15.5px; line-height: 1.5; color: var(--ayg-texto); }
.elementor .ayg-prose--lead p { font-size: 16.5px; line-height: 1.45; color: var(--ayg-texto); }
.elementor .ayg-sec-head__lead,
.elementor .ayg-sec-head__lead p { font-size: 15.5px; line-height: 1.42; color: var(--ayg-texto); }
.elementor .ayg-ncard__text p,
.elementor .ayg-tile__text p,
.elementor .ayg-svc__text p,
.elementor .ayg-app__d p { font-size: 14.5px; line-height: 1.42; color: var(--ayg-texto); }
.elementor .ayg-card__text,
.elementor .ayg-card__text p { font-size: 14px; line-height: 1.42; color: var(--ayg-texto); }
.elementor .ayg-zz__text p { font-size: 15.5px; line-height: 1.45; color: var(--ayg-texto); }
.elementor .ayg-checks .elementor-icon-list-text { font-size: 14.5px; color: var(--ayg-texto); }
.elementor .ayg-spec__label .elementor-heading-title,
.elementor .ayg-kv__k .elementor-heading-title,
.elementor .ayg-bigstat__k .elementor-heading-title { color: #4A5056; }
/* En secciones oscuras el texto sigue claro */
.elementor .ayg-dark .ayg-lead,
.elementor .ayg-dark .ayg-lead p,
.elementor .ayg-dark .elementor-widget-text-editor,
.elementor .ayg-dark .elementor-widget-text-editor p,
.elementor .ayg-dark .ayg-prose,
.elementor .ayg-dark .ayg-prose p,
.elementor .ayg-dark .ayg-sec-head__lead p,
.elementor .ayg-dark .ayg-tile__text p,
.elementor .ayg-dark .ayg-card__text p { color: var(--ayg-gris-claro); }

/* --- Brillo que sigue al mouse: beige del fondo, muy sutil --- */
.elementor .ayg-spot::before { background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%), rgba(214, 206, 188, .32), transparent 60%); transition: opacity .8s ease; }
.elementor .ayg-dark .ayg-spot::before { background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%), rgba(243, 242, 238, .05), transparent 60%); }

/* --- Hover de tarjetas: sin borde azul; solo una sombra suave y un leve ascenso --- */
.elementor .ayg-card,
.elementor .ayg-tile,
.elementor .ayg-ncard { transition: transform .8s var(--ayg-ease), box-shadow .8s var(--ayg-ease); }
.elementor .ayg-card:hover { transform: translateY(-3px); border-color: var(--ayg-linea); box-shadow: 0 24px 48px -30px rgba(7, 9, 12, .35); }
.elementor .ayg-white .ayg-card:hover { border-color: transparent; }
.elementor .ayg-tile:hover,
.elementor .ayg-ncard:hover { transform: translateY(-3px); border-color: var(--ayg-linea); box-shadow: 0 24px 48px -30px rgba(7, 9, 12, .3); }
.elementor .ayg-white .ayg-tile:hover { border-color: transparent; }
.elementor .ayg-dark .ayg-tile:hover { border-color: rgba(255, 255, 255, .1); box-shadow: none; }
.elementor .ayg-glass-stat:hover { border-color: rgba(255, 255, 255, .16); transform: none; }
.elementor .ayg-accordion .e-n-accordion-item:hover { border-color: var(--ayg-linea); }
.elementor .ayg-card:hover .ayg-card__img img { transform: scale(1.03); }

/* --- Botones: misma forma, hover suave (cambio de color), sin borde azul ni movimiento brusco --- */
.elementor .ayg-btn .elementor-button,
.elementor .ayg-form .elementor-button[type="submit"] { transition: background-color .45s ease, color .45s ease, box-shadow .6s ease; transform: none !important; }
.elementor .ayg-btn .elementor-button::before,
.elementor .ayg-form .elementor-button[type="submit"]::before { display: none; }
.elementor .ayg-btn .elementor-button:active { transform: none; }
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon i,
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon svg,
.elementor .ayg-form .elementor-button[type="submit"]:hover .elementor-button-icon i,
.elementor .ayg-form .elementor-button[type="submit"]:hover .elementor-button-icon svg { animation: none; }
.elementor .ayg-btn .elementor-button-icon i,
.elementor .ayg-btn .elementor-button-icon svg { transition: transform .5s var(--ayg-ease); }
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon i,
.elementor .ayg-btn .elementor-button:hover .elementor-button-icon svg { transform: translateX(2px); }
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon { transform: none; }
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon i,
.elementor .ayg-btn .elementor-button[href*="wa.me"]:hover .elementor-button-icon svg { transform: none; }

.elementor .ayg-btn--primary .elementor-button,
.elementor .ayg-form .elementor-button[type="submit"] { border: 0 !important; box-shadow: 0 10px 26px -16px rgba(18, 166, 201, .8); }
.elementor .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-white .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-paper .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-specs-card .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-cta .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-paper .ayg-dark .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-form .elementor-button[type="submit"]:hover,
.elementor .ayg-form--popup .elementor-button[type="submit"]:hover { background: var(--ayg-acento-hover); color: var(--ayg-sobre-acento); box-shadow: 0 14px 30px -16px rgba(18, 166, 201, .9); }
.elementor .ayg-btn--primary .elementor-button .elementor-button-icon { background: rgba(3, 27, 34, .1); }

.elementor .ayg-btn--ghost .elementor-button:hover { background: rgba(255, 255, 255, .12); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .26); }
.elementor .ayg-btn--ghost .elementor-button:hover .elementor-button-icon { background: rgba(255, 255, 255, .14); }
.elementor .ayg-paper .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover,
.elementor .ayg-white .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover { background: rgba(13, 16, 20, .06); color: var(--ayg-tinta); border-color: rgba(13, 16, 20, .2); }
.elementor .ayg-paper .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover .elementor-button-icon,
.elementor .ayg-white .ayg-btn--ghost:not(.ayg-dark *) .elementor-button:hover .elementor-button-icon { background: rgba(13, 16, 20, .08); }
.elementor .ayg-btn--dark .elementor-button:hover { background: #20262E; color: var(--ayg-blanco); }
.elementor .ayg-btn--line .elementor-button:hover { background: rgba(37, 211, 102, .12); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .22); }
.elementor .ayg-btn--icon .elementor-button:hover { background: rgba(37, 211, 102, .16); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .14); }
.elementor .ayg-tilebtn .elementor-button { transition: background-color .5s ease, color .5s ease; }
.elementor .ayg-tilebtn .elementor-button:hover { transform: none; border-color: rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .1); color: var(--ayg-blanco); }
.elementor .ayg-tilebtn--accent .elementor-button:hover { background: var(--ayg-acento-hover); border-color: var(--ayg-acento-hover); color: var(--ayg-sobre-acento); }
.elementor .ayg-tilebtn:hover[data-sub]::after { color: var(--ayg-gris-2); }
/* Pasos del formulario: el texto siempre visible al pasar el mouse */
.elementor .ayg-form .e-form__buttons__wrapper__button-next:hover { background: var(--ayg-acento-hover) !important; color: var(--ayg-sobre-acento) !important; }
.elementor .ayg-form .e-form__buttons__wrapper__button-previous:hover { background: rgba(13, 16, 20, .05) !important; color: var(--ayg-tinta) !important; border-color: var(--ayg-linea) !important; }
.elementor .ayg-form--popup .e-form__buttons__wrapper__button-previous:hover { background: rgba(255, 255, 255, .08) !important; color: var(--ayg-blanco) !important; border-color: rgba(255, 255, 255, .18) !important; }

/* --- CTA final: botón de WhatsApp visible sobre la foto oscura --- */
.elementor .ayg-cta .ayg-cta__card .ayg-btn--ghost .elementor-button { color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .08); }
.elementor .ayg-cta .ayg-cta__card .ayg-btn--ghost .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .12); }

/* --- Marquee de frase: separador en línea corta (reemplaza la estrella) --- */
.elementor .ayg-mq__sep { width: 46px; height: 2px; border-radius: 2px; background: var(--ayg-acento); font-size: 0; color: transparent; margin: 0 clamp(24px, 3vw, 46px); animation: none; align-self: center; }
.elementor .ayg-mq--frase .ayg-mq__group > .ayg-mq__item:nth-child(4n+3) { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .45); }
.elementor .ayg-mq--footer { border-bottom: 0; }
.elementor .ayg-footer > .e-con-inner > .ayg-mq--footer,
.elementor .ayg-footer .ayg-mq--footer { box-shadow: 0 1px 0 rgba(255, 255, 255, .08); }
@media (max-width: 767px) { .elementor .ayg-mq__sep { width: 30px; } }

/* --- Carrusel de fotos: todas del mismo tamaño --- */
.elementor .ayg-mqi > .ayg-mqi__img,
.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) { width: 340px !important; }
.elementor .ayg-mqi__img img,
.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) img { aspect-ratio: 4 / 3; height: auto; }
@media (max-width: 767px) {
	.elementor .ayg-mqi > .ayg-mqi__img,
	.elementor .ayg-mqi > .ayg-mqi__img:nth-child(3n+2) { width: 240px !important; }
}

/* --- Mega menú: el panel no se cierra al bajar el mouse hasta él --- */
.ayg-ekit .elementskit-megamenu-panel::before { top: -44px; height: 44px; }
.ayg-ekit .elementskit-megamenu-panel { transition: opacity .3s ease .15s, transform .45s var(--ayg-ease) .15s, visibility 0s linear .45s; }
.ayg-ekit .elementskit-navbar-nav > li:hover > .elementskit-megamenu-panel,
.ayg-ekit .elementskit-navbar-nav > li:focus-within > .elementskit-megamenu-panel { transition: opacity .3s ease, transform .45s var(--ayg-ease), visibility 0s; }
.elementor .ayg-mega .e-n-menu-content { padding-top: 0; margin-top: 0; }
.elementor .ayg-mega__panel { position: relative; }
.elementor .ayg-mega__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -44px; height: 44px; }

/* --- Header siempre fijo arriba --- */
.ayg-hdr-hidden [data-elementor-type="header"] { transform: none; }

/* --- Guía del post (grúa y proyecto): índice en rejilla y artículo a una columna --- */
.elementor .ayg-guia__card { background: var(--ayg-blanco); border: 1px solid var(--ayg-linea); border-radius: var(--ayg-radio); overflow: hidden; }
.elementor .ayg-guia__card .ayg-toc--grid { border: 0; border-radius: 0; background: transparent; padding: 26px 28px 22px; border-bottom: 1px solid var(--ayg-linea); }
.elementor .ayg-toc--grid .elementor-toc__header { border: 0; padding: 0 0 14px; }
.elementor .ayg-toc--grid .elementor-toc__toggle-button { display: none !important; }
.elementor .ayg-toc--grid .elementor-toc__body { max-height: none; padding: 0; display: block !important; }
.elementor .ayg-toc--grid .elementor-toc__list-wrapper { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; counter-reset: ayg-toc; }
.elementor .ayg-toc--grid .elementor-toc__list-item { margin: 0; counter-increment: ayg-toc; }
.elementor .ayg-toc--grid .elementor-toc__list-item::marker { content: ""; }
.elementor .ayg-toc--grid .elementor-toc__list-item-text-wrapper { display: flex; align-items: flex-start; gap: 12px; height: 100%; padding: 13px 14px; border-radius: 14px; background: var(--ayg-papel); transition: background-color .4s ease; }
.elementor .ayg-toc--grid .elementor-toc__list-item-text-wrapper::before { content: counter(ayg-toc, decimal-leading-zero); flex: 0 0 auto; font-family: var(--ayg-display); font-weight: 700; font-size: 17px; line-height: 1.1; color: var(--ayg-acento-osc); }
.elementor .ayg-toc--grid .elementor-toc__list-item-text-wrapper:hover { background: #EAE7E0; }
.elementor .ayg-toc--grid .elementor-toc__list-item-text { font-size: 14px; line-height: 1.35; color: var(--ayg-tinta); font-weight: 500; }
.elementor .ayg-toc--grid .elementor-toc__list-item-text-wrapper > i,
.elementor .ayg-toc--grid .elementor-toc__list-item-text-wrapper > svg { display: none; }
@media (max-width: 1024px) { .elementor .ayg-toc--grid .elementor-toc__list-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .elementor .ayg-toc--grid .elementor-toc__list-wrapper { grid-template-columns: 1fr; } .elementor .ayg-guia__card .ayg-toc--grid { padding: 20px 18px 16px; } }
.elementor .ayg-accordion--flat .e-n-accordion-item { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; margin: 0 !important; }
.elementor .ayg-accordion--flat .e-n-accordion-item-title { padding: 20px 28px !important; }
.elementor .ayg-accordion--flat .e-n-accordion-item > [role="region"],
.elementor .ayg-accordion--flat .e-n-accordion-item > .e-con { padding: 6px 28px 40px !important; }
.elementor .ayg-prose--read { max-width: 760px !important; margin: 0 auto !important; column-count: 1 !important; }
.elementor .ayg-prose--read h2 { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.3rem); margin-top: 1.5em; }
.elementor .ayg-prose--read img { border-radius: var(--ayg-radio-md); }
@media (max-width: 767px) { .elementor .ayg-accordion--flat .e-n-accordion-item-title { padding: 18px 18px !important; } .elementor .ayg-accordion--flat .e-n-accordion-item > [role="region"], .elementor .ayg-accordion--flat .e-n-accordion-item > .e-con { padding: 4px 18px 28px !important; } }

/* --- Formulario: textos siempre visibles (Elementor pinta los campos en blanco por defecto) --- */
.elementor .ayg-form .elementor-field-group .elementor-field-textual,
.elementor .ayg-form .elementor-field-group .elementor-select-wrapper select { background-color: #F7F6F3 !important; color: var(--ayg-tinta) !important; border-color: var(--ayg-linea) !important; }
.elementor .ayg-form--popup .elementor-field-group .elementor-field-textual,
.elementor .ayg-form--popup .elementor-field-group .elementor-select-wrapper select { background-color: rgba(255, 255, 255, .06) !important; color: var(--ayg-blanco) !important; border-color: rgba(255, 255, 255, .14) !important; }
.elementor .ayg-form--popup .elementor-field-group .elementor-field-textual:focus,
.elementor .ayg-form--popup .elementor-field-group .elementor-select-wrapper select:focus { background-color: rgba(255, 255, 255, .1) !important; border-color: var(--ayg-acento) !important; }
.elementor .ayg-form .elementor-select-wrapper select option { color: var(--ayg-tinta); background: var(--ayg-blanco); }
.elementor .ayg-form .elementor-select-wrapper select:invalid,
.elementor .ayg-form .elementor-select-wrapper select.is-placeholder { color: #8C949B !important; }
.elementor .ayg-form input.flatpickr-input,
.elementor .ayg-form .elementor-field-type-date input { cursor: pointer; background-image: none; }

/* Calendario (flatpickr de Elementor) con el estilo del sitio */
.flatpickr-calendar { font-family: var(--ayg-sans); background: var(--ayg-blanco); border: 1px solid var(--ayg-linea); border-radius: 18px; box-shadow: 0 30px 60px -28px rgba(7, 9, 12, .45); padding: 10px 10px 12px; width: 328px !important; }
.flatpickr-calendar::before, .flatpickr-calendar::after { display: none; }
.flatpickr-calendar.open { z-index: 100000 !important; }
.flatpickr-months { align-items: center; padding: 4px 0 8px; }
.flatpickr-months .flatpickr-month { height: 40px; color: var(--ayg-tinta); fill: var(--ayg-tinta); }
.flatpickr-current-month { font-size: 16px; font-weight: 600; padding-top: 8px; }
.flatpickr-current-month .flatpickr-monthDropdown-months { font-weight: 600; appearance: none; background: transparent; }
.flatpickr-current-month input.cur-year { font-weight: 600; }
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { top: 12px; width: 34px; height: 34px; padding: 10px; border-radius: 10px; transition: background-color .3s ease; }
.flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover { background: var(--ayg-papel); }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--ayg-acento-osc); }
.flatpickr-weekdays { height: 30px; }
span.flatpickr-weekday { font-size: 11.5px; font-weight: 600; color: var(--ayg-gris); text-transform: uppercase; letter-spacing: .04em; }
.flatpickr-days, .dayContainer { width: 306px; min-width: 306px; max-width: 306px; }
.flatpickr-day { border-radius: 10px; color: var(--ayg-tinta); font-weight: 500; height: 40px; line-height: 40px; max-width: 40px; border: 0; }
.flatpickr-day:hover, .flatpickr-day:focus { background: var(--ayg-papel); }
.flatpickr-day.today { border: 1px solid var(--ayg-acento); }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.startRange, .flatpickr-day.endRange { background: var(--ayg-acento); color: var(--ayg-sobre-acento); border-color: var(--ayg-acento); }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.flatpickr-disabled { color: #C2C6CA; }

/* --- Sitio en construcción (modo mantenimiento) --- */
.elementor .ayg-mant { min-height: 100vh; min-height: 100dvh; }
.elementor .ayg-mant > .e-con-inner { min-height: inherit; justify-content: space-between; gap: 40px; }
.elementor .ayg-mant__body { max-width: 760px; }
.elementor .ayg-logo--mant img { width: 78px; height: auto; margin-bottom: 18px; }
.elementor .ayg-mant__progress { max-width: 460px; margin: 6px 0 4px; }
.elementor .ayg-mant__progress .elementor-title { font-size: 12.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ayg-gris-claro); margin-bottom: 10px; }
.elementor .ayg-mant__progress .elementor-progress-wrapper { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.elementor .ayg-mant__progress .elementor-progress-bar { height: 8px; border-radius: 99px; background: linear-gradient(90deg, var(--ayg-acento-osc), var(--ayg-acento-hover)); }
.elementor .ayg-mant__progress .elementor-progress-percentage { display: none; }
.elementor .ayg-mant__contact .elementor-icon-list-items { gap: 6px 22px; }
.elementor .ayg-mant__contact .elementor-icon-list-item a,
.elementor .ayg-mant__contact .elementor-icon-list-text { color: var(--ayg-gris-claro); }
.elementor .ayg-mant__legal .elementor-heading-title { font-size: 12.5px; color: var(--ayg-gris-2); }
@media (max-width: 767px) { .elementor .ayg-logo--mant img { width: 62px; } }

/* ======================================================================
   v6 · Ajustes finales de Cami (15 oct, 23 puntos): Plus Jakarta Sans 300, botones en Barlow y azul oscuro,
   hover en vidrio sobre fondos oscuros, bullets con check, footer y WhatsApp, guía en acordeones, legales
   ====================================================================== */
:root {
	--ayg-sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ayg-btn-font: 'Barlow', 'Barlow Condensed', system-ui, sans-serif;
	--ayg-texto: #0D1014;
	--ayg-boton: #0A7D9C;
	--ayg-wa-osc: #1FAF54;
	--ayg-vidrio: rgba(255, 255, 255, .14);
	--ayg-vidrio-borde: rgba(255, 255, 255, .3);
	--ayg-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230A7D9C' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E");
	--ayg-check-claro: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%233FC3E3' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E");
	--ayg-flecha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='white' d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E");
}

/* --- 17. Tipografía: Plus Jakarta Sans 300, letras más juntas y menos interlineado --- */
html, body { overflow-x: clip !important; }
body { font-family: var(--ayg-sans); font-weight: 300; font-size: 15px; line-height: 1.4; letter-spacing: -.01em; color: var(--ayg-texto); }
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor p,
.elementor .ayg-prose, .elementor .ayg-prose p, .elementor .ayg-prose li,
.elementor .ayg-lead, .elementor .ayg-lead p,
.elementor .ayg-lead-dark, .elementor .ayg-lead-dark p,
.elementor .ayg-sec-head__lead, .elementor .ayg-sec-head__lead p,
.elementor .ayg-accordion .elementor-tab-content,
.elementor .ayg-accordion .ayg-acc-body { font-weight: 300; letter-spacing: -.01em; }
.elementor .ayg-prose, .elementor .ayg-prose p, .elementor .ayg-prose--article p, .elementor .ayg-prose--article li { line-height: 1.46; }
.elementor .ayg-lead, .elementor .ayg-lead p, .elementor .ayg-lead-dark, .elementor .ayg-lead-dark p { line-height: 1.38; }
.elementor .ayg-prose strong, .elementor .elementor-widget-text-editor strong, .elementor b { font-weight: 600; }
/* Etiquetas, menús y datos cortos: mismo tipo, un poco más de peso para que se lean */
.elementor .ayg-accordion .elementor-tab-title .elementor-accordion-title,
.elementor .ayg-accordion .e-n-accordion-item-title-text { letter-spacing: -.01em; font-weight: 600; }
.elementor .ayg-h1 .elementor-heading-title,
.elementor .ayg-h2 .elementor-heading-title,
.elementor .ayg-h3 .elementor-heading-title { letter-spacing: -.012em; }
/* Texto corrido: negro sobre claro, blanco sobre oscuro */
.elementor .ayg-white, .elementor .ayg-paper { color: var(--ayg-texto); }
.elementor .ayg-h2-sub .elementor-heading-title,
.elementor .ayg-svc__text, .elementor .ayg-svc__text p,
.elementor .ayg-card__text, .elementor .ayg-card__text p,
.elementor .ayg-ncard__text p, .elementor .ayg-tile__text p { color: var(--ayg-texto); }
.elementor .ayg-dark .ayg-lead, .elementor .ayg-dark .ayg-lead p,
.elementor .ayg-dark .elementor-widget-text-editor, .elementor .ayg-dark .elementor-widget-text-editor p,
.elementor .ayg-dark .ayg-prose, .elementor .ayg-dark .ayg-prose p, .elementor .ayg-dark .ayg-prose li,
.elementor .ayg-dark .ayg-sec-head__lead p, .elementor .ayg-dark .ayg-tile__text p, .elementor .ayg-dark .ayg-card__text p,
.elementor .ayg-dark .ayg-cycle__d p, .elementor .ayg-dark .ayg-h2-sub .elementor-heading-title,
.elementor .ayg-dark .ayg-accordion .elementor-tab-content,
.elementor .ayg-footer__about p, .elementor .ayg-footer__contact .elementor-icon-list-text,
.elementor .ayg-footer__links .elementor-icon-list-text,
.ayg-popup-modal .elementor-widget-text-editor p { color: var(--ayg-blanco); }

/* --- 5. Hero: las «g» ya no se cortan y el interlineado es más cerrado --- */
.elementor .ayg-h1 .elementor-heading-title { line-height: .86; }
.elementor .ayg-h1--md .elementor-heading-title { line-height: .88; }
.elementor .ayg-h2 .elementor-heading-title { line-height: .92; }
.ayg-line-mask { padding: .1em .02em .22em; margin: -.1em -.02em -.22em; }

/* --- 18. Botones: tipografía Barlow, azul oscuro con letra blanca; hover en vidrio sobre fondo oscuro --- */
.elementor .ayg-btn .elementor-button,
.elementor .ayg-form .elementor-button,
.elementor .ayg-form .e-form__buttons__wrapper__button,
.elementor .ayg-tilebtn .elementor-button-text,
.elementor .ayg-burger .elementor-button,
.elementor .ayg-wa-float .elementor-button,
.elementor .ayg-link-arrow .elementor-button,
.elementor .ayg-badge .elementor-button { font-family: var(--ayg-btn-font) !important; letter-spacing: .005em; }
.elementor .ayg-btn .elementor-button { font-size: 15.5px; font-weight: 600; }
.elementor .ayg-btn--primary .elementor-button,
.elementor .ayg-form .elementor-button[type="submit"],
.elementor .ayg-form .e-form__buttons__wrapper__button-next {
	background: var(--ayg-boton) !important;
	color: var(--ayg-blanco) !important;
	border: 1px solid var(--ayg-boton) !important;
	box-shadow: 0 12px 26px -18px rgba(10, 125, 156, .9);
	transition: background-color .5s ease, border-color .5s ease, color .5s ease, box-shadow .6s ease;
}
.elementor .ayg-btn--primary .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .16); color: var(--ayg-blanco); }
.elementor .ayg-btn--primary .elementor-button .elementor-button-icon svg { fill: var(--ayg-blanco); }
/* Fondo claro: pasa a negro tinta */
.elementor .ayg-btn--primary .elementor-button:hover,
.elementor .ayg-form .elementor-button[type="submit"]:hover,
.elementor .ayg-form .e-form__buttons__wrapper__button-next:hover { background: var(--ayg-tinta) !important; border-color: var(--ayg-tinta) !important; color: var(--ayg-blanco) !important; box-shadow: 0 16px 30px -18px rgba(7, 9, 12, .6); }
/* Fondo oscuro: vidrio (como el botón secundario en reposo) */
.elementor :is(.ayg-dark, .ayg-header, .ayg-ekit-mega, .ayg-boxcta, .ayg-mnav, .ayg-pc) .ayg-btn--primary .elementor-button:hover,
.ayg-popup-modal .ayg-btn--primary .elementor-button:hover,
.ayg-popup-modal .ayg-form .elementor-button[type="submit"]:hover,
.ayg-popup-modal .ayg-form .e-form__buttons__wrapper__button-next:hover,
.elementor .ayg-form--popup .elementor-button[type="submit"]:hover,
.elementor .ayg-form--popup .e-form__buttons__wrapper__button-next:hover {
	background: var(--ayg-vidrio) !important;
	border-color: var(--ayg-vidrio-borde) !important;
	color: var(--ayg-blanco) !important;
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	backdrop-filter: blur(14px) saturate(160%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
/* Secundario en fondo oscuro: vidrio */
.elementor :is(.ayg-dark, .ayg-header, .ayg-boxcta, .ayg-mnav, .ayg-pc) .ayg-btn--ghost .elementor-button,
.ayg-popup-modal .ayg-btn--ghost .elementor-button { background: rgba(255, 255, 255, .07); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .26); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.elementor :is(.ayg-dark, .ayg-header, .ayg-boxcta, .ayg-mnav, .ayg-pc) .ayg-btn--ghost .elementor-button:hover,
.ayg-popup-modal .ayg-btn--ghost .elementor-button:hover { background: rgba(255, 255, 255, .16); color: var(--ayg-blanco); border-color: rgba(255, 255, 255, .36); }
/* 13. Secundarios sobre fondo claro: ya no quedan blancos sobre blanco */
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--ghost:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button,
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--line:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button { background: transparent; color: var(--ayg-tinta); border: 1px solid rgba(13, 16, 20, .24); -webkit-backdrop-filter: none; backdrop-filter: none; }
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--ghost:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button .elementor-button-icon,
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--line:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button .elementor-button-icon { background: rgba(13, 16, 20, .06); color: var(--ayg-tinta); }
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--ghost:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button:hover,
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--line:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button:hover { background: var(--ayg-tinta); color: var(--ayg-blanco); border-color: var(--ayg-tinta); }
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--ghost:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button:hover .elementor-button-icon,
.elementor :is(.ayg-paper, .ayg-white) .ayg-btn--line:not(:is(.ayg-dark, .ayg-boxcta) *) .elementor-button:hover .elementor-button-icon { background: rgba(255, 255, 255, .14); color: var(--ayg-blanco); }
.elementor .ayg-btn [href*="wa.me"] .elementor-button-icon i,
.elementor .ayg-btn [href*="wa.me"] .elementor-button-icon svg { color: inherit; fill: currentColor; }
/* Botón negro (sobre claro): hover azul oscuro */
.elementor .ayg-btn--dark .elementor-button { background: var(--ayg-tinta); color: var(--ayg-blanco); border-color: var(--ayg-tinta); }
.elementor .ayg-btn--dark .elementor-button:hover { background: var(--ayg-boton); border-color: var(--ayg-boton); color: var(--ayg-blanco); }
/* Botón verde de WhatsApp (sobre claro) */
.elementor .ayg-btn--wa .elementor-button { background: var(--ayg-wa-osc); border: 1px solid var(--ayg-wa-osc); color: var(--ayg-blanco); box-shadow: 0 12px 26px -18px rgba(31, 175, 84, .9); transition: background-color .5s ease, border-color .5s ease; }
.elementor .ayg-btn--wa .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .18); color: var(--ayg-blanco); }
.elementor .ayg-btn--wa .elementor-button:hover { background: var(--ayg-tinta); border-color: var(--ayg-tinta); color: var(--ayg-blanco); }
/* Formulario: botón Atrás */
.elementor .ayg-form .e-form__buttons__wrapper__button-previous { font-family: var(--ayg-btn-font) !important; }

/* --- 7. Botones en tarjeta (ficha de grúa): sin borde azul; la flecha en círculo como en el home --- */
.elementor .ayg-tilebtn .elementor-button::before { display: none !important; }
.elementor .ayg-tilebtn .elementor-button,
.elementor .ayg-tilebtn .elementor-button:hover { transform: none !important; }
.elementor .ayg-tilebtn .elementor-button { background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1) !important; color: var(--ayg-blanco); transition: background-color .6s ease; }
.elementor .ayg-tilebtn .elementor-button:hover { background: rgba(255, 255, 255, .08); color: var(--ayg-blanco); }
.elementor .ayg-tilebtn .elementor-button::after {
	content: "";
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1) var(--ayg-flecha) center / 14px no-repeat;
	transform: rotate(-45deg);
	transition: transform .6s var(--ayg-ease), background-color .5s ease;
}
.elementor .ayg-tilebtn .elementor-button:hover::after { transform: rotate(0deg); background-color: var(--ayg-boton); }
.elementor .ayg-tilebtn--accent .elementor-button { background: var(--ayg-boton); border-color: var(--ayg-boton) !important; color: var(--ayg-blanco); }
.elementor .ayg-tilebtn--accent .elementor-button:hover { background: var(--ayg-boton); color: var(--ayg-blanco); }
.elementor .ayg-tilebtn--accent .elementor-button-icon { color: var(--ayg-blanco); }
.elementor .ayg-tilebtn--accent .elementor-button::after { background-color: rgba(255, 255, 255, .18); }
.elementor .ayg-tilebtn--accent .elementor-button:hover::after { background-color: var(--ayg-tinta); }
.elementor .ayg-tilebtn[data-sub]::after,
.elementor .ayg-tilebtn:hover[data-sub]::after { color: rgba(255, 255, 255, .72); }
.elementor .ayg-tilebtn .elementor-button-text { font-family: var(--ayg-display) !important; }

/* --- 3. Botón flotante de WhatsApp: texto e icono en blanco --- */
.elementor .ayg-wa-float .elementor-button,
.elementor .ayg-wa-float .elementor-button:hover { background: var(--ayg-wa-osc); color: var(--ayg-blanco); }
.elementor .ayg-wa-float .elementor-button-icon i { color: var(--ayg-blanco); }
.elementor .ayg-wa-float .elementor-button-icon svg { fill: var(--ayg-blanco); }
.elementor .ayg-wa-float .elementor-button:hover { transform: translateY(-2px); }

/* --- 14. Viñetas con check --- */
.elementor .ayg-prose ul li,
.elementor .ayg-accordion .elementor-tab-content ul li,
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content li,
.elementor .ayg-gacc__body ul li { position: relative; list-style: none; padding-left: 30px; margin-bottom: .55em; }
.elementor .ayg-accordion .elementor-tab-content ul { list-style: none; padding: 0; margin: 0 0 1em; }
.elementor .ayg-prose ul li::before,
.elementor .ayg-accordion .elementor-tab-content ul li::before,
.elementor .ayg-guia .ayg-accordion--guia .elementor-tab-content li::before,
.elementor .ayg-gacc__body ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .12em;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: rgba(18, 166, 201, .13) var(--ayg-check) center / 11px no-repeat;
}
.elementor .ayg-dark .ayg-prose ul li::before,
.elementor .ayg-dark .ayg-accordion .elementor-tab-content ul li::before { background: rgba(63, 195, 227, .14) var(--ayg-check-claro) center / 11px no-repeat; }

/* --- 1 y 22. Footer: franja con los dos botones lado a lado, políticas y espacio para el botón de WhatsApp --- */
.elementor .ayg-footer__lead { max-width: 380px; }
.elementor .ayg-footer__cta { padding: 26px 30px; border-radius: var(--ayg-radio); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); }
.elementor .ayg-footer__cta-txt { flex: 1 1 auto; min-width: 0; }
.elementor .ayg-footer__cta-t .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem); line-height: .95; color: var(--ayg-blanco); }
.elementor .ayg-footer__cta-d .elementor-heading-title { font-size: 14.5px; font-weight: 300; color: var(--ayg-blanco); }
.elementor .ayg-footer__cta-btns { flex: 0 0 auto; width: auto; flex-wrap: nowrap; }
.elementor .ayg-footer__cta-btns .elementor-widget { width: auto; }
.elementor .ayg-footer__legal-links .elementor-icon-list-items { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 20px; margin: 0; }
.elementor .ayg-footer__legal-links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.elementor .ayg-footer__legal-links .elementor-icon-list-item::after { display: none !important; }
.elementor .ayg-footer__legal-links .elementor-icon-list-text { font-size: 13px; font-weight: 400; color: rgba(255, 255, 255, .7); transition: color .3s ease; padding: 0 !important; }
.elementor .ayg-footer__legal-links a:hover .elementor-icon-list-text { color: var(--ayg-blanco); }
.elementor .ayg-footer__legal .elementor-heading-title { color: rgba(255, 255, 255, .7); font-weight: 400; }
.elementor .ayg-footer__bottom { align-items: center; }
.elementor .ayg-footer__bottom > .elementor-widget:last-child { flex: 1 1 auto; }
@media (max-width: 1024px) {
	.elementor .ayg-footer__cta { padding: 24px 22px; }
	.elementor .ayg-footer__legal-links .elementor-icon-list-items { justify-content: flex-start; }
}
@media (max-width: 767px) {
	.elementor .ayg-footer__cta-btns { flex-wrap: wrap; }
	.elementor .ayg-footer__cta-btns .elementor-widget { flex: 1 1 auto; }
	.elementor .ayg-footer__cta-btns .elementor-button { width: 100%; }
}
/* 11. Marquee del footer: de borde a borde en todas las páginas */
.elementor .ayg-footer .ayg-mq--footer { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; align-self: flex-start; }
.elementor .ayg-footer > .e-con-inner { overflow: visible; }

/* --- 8. Cierre de los popups: alineado con el contenido y sin color brusco --- */
.ayg-popup-modal .dialog-close-button {
	top: 24px !important;
	right: 24px !important;
	left: auto !important;
	margin: 0 !important;
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .1) !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 15px !important;
	line-height: 1 !important;
	transform: none !important;
	transition: background-color .4s ease;
}
.ayg-popup-modal .dialog-close-button:hover { background: rgba(255, 255, 255, .2) !important; transform: none !important; }
.ayg-popup-modal .dialog-close-button i,
.ayg-popup-modal .dialog-close-button svg { width: 15px !important; height: 15px !important; font-size: 15px !important; line-height: 1 !important; margin: 0 !important; color: #fff !important; fill: #fff !important; display: block; }
.ayg-popup-modal--menu .dialog-close-button { top: 20px !important; right: 20px !important; }
@media (max-width: 767px) { .ayg-popup-modal .dialog-close-button { top: 18px !important; right: 16px !important; } }

/* --- 16. Menú del celular: el JS bloquea el scroll mientras un popup está abierto --- */
html.ayg-lock, html.ayg-lock body { overflow: hidden !important; }
.elementor .ayg-burger .elementor-button { touch-action: manipulation; cursor: pointer; }
[data-elementor-type="header"] { z-index: 1000; }

/* --- 15. Volver arriba (Happy Addons) con fondo de vidrio --- */
.ha-scroll-to-top-wrap,
.ayg-totop { position: fixed !important; right: 28px !important; bottom: 92px !important; left: auto !important; z-index: 989 !important; }
.ha-scroll-to-top-wrap .ha-scroll-to-top-button,
.ayg-totop {
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: rgba(13, 16, 20, .34) !important;
	border: 1px solid rgba(255, 255, 255, .26) !important;
	-webkit-backdrop-filter: blur(16px) saturate(170%);
	backdrop-filter: blur(16px) saturate(170%);
	box-shadow: 0 16px 32px -16px rgba(7, 9, 12, .55), inset 0 1px 0 rgba(255, 255, 255, .14);
	color: #fff !important;
	cursor: pointer;
	transition: background-color .4s ease, transform .5s var(--ayg-ease), opacity .4s ease, visibility .4s;
}
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:hover,
.ayg-totop:hover { background: rgba(13, 16, 20, .55) !important; transform: translateY(-2px); }
.ha-scroll-to-top-wrap .ha-scroll-to-top-button i,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button svg,
.ayg-totop svg { color: #fff !important; fill: #fff !important; font-size: 15px !important; width: 15px; height: 15px; }
.ayg-totop { opacity: 0; visibility: hidden; transform: translateY(10px); padding: 0; }
.ayg-totop.is-on { opacity: 1; visibility: visible; transform: none; }
@media (max-width: 767px) {
	.ha-scroll-to-top-wrap, .ayg-totop { right: 16px !important; bottom: 80px !important; }
	.ha-scroll-to-top-wrap .ha-scroll-to-top-button, .ayg-totop { width: 46px !important; height: 46px !important; }
}

/* --- 6. Ficha de grúa: la foto ocupa todo el alto de la columna de texto --- */
.elementor .ayg-desc__pic { align-self: stretch; }
.elementor .ayg-desc__pic > .elementor-widget,
.elementor .ayg-desc__pic .elementor-widget-container { height: 100%; }
.elementor .ayg-media--fill img { width: 100%; height: 100% !important; min-height: 420px; max-height: none !important; aspect-ratio: auto !important; object-fit: cover; }
@media (max-width: 1024px) { .elementor .ayg-media--fill img { min-height: 0; aspect-ratio: 4 / 3 !important; height: auto !important; } }

/* --- 9. Guía del post: mismo diseño de las guías de las páginas (acordeones cerrados a dos columnas) --- */
.elementor .ayg-guia__post { width: 100%; }
.elementor .ayg-guia__post.is-split { max-width: none !important; column-count: 1 !important; }
.elementor .ayg-gacc__intro { max-width: 820px; margin: 0 0 22px; }
.elementor .ayg-gacc__intro p { font-size: 16px; line-height: 1.46; }
.elementor .ayg-gacc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; align-items: start; }
.elementor .ayg-gacc__col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.elementor .ayg-gacc__item { background: var(--ayg-papel); border-radius: 16px; overflow: hidden; transition: background-color .4s ease; }
.elementor .ayg-paper .ayg-gacc__item { background: var(--ayg-blanco); }
.elementor .ayg-gacc__title { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; cursor: pointer; list-style: none; }
.elementor .ayg-gacc__title::-webkit-details-marker { display: none; }
.elementor .ayg-gacc__title::marker { content: ""; }
.elementor .ayg-prose .ayg-gacc__title h2,
.elementor .ayg-gacc__title .ayg-gacc__h { margin: 0 !important; font-family: var(--ayg-display); font-weight: 600; font-size: 24px !important; line-height: 1.05 !important; letter-spacing: -.01em; color: var(--ayg-tinta); padding: 0; border: 0; transition: color .3s ease; }
.elementor .ayg-gacc__title .ayg-gacc__h::before { display: none !important; }
.elementor .ayg-gacc__icon { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 9px; background: var(--ayg-blanco); position: relative; transition: background-color .35s ease, transform .5s var(--ayg-ease); }
.elementor .ayg-paper .ayg-gacc__icon { background: var(--ayg-papel); }
.elementor .ayg-gacc__icon::before,
.elementor .ayg-gacc__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.6px; margin: -.8px 0 0 -5.5px; background: var(--ayg-tinta); border-radius: 2px; transition: transform .45s var(--ayg-ease), background-color .3s ease; }
.elementor .ayg-gacc__icon::after { transform: rotate(90deg); }
.elementor .ayg-gacc__item[open] .ayg-gacc__icon { background: var(--ayg-boton); }
.elementor .ayg-gacc__item[open] .ayg-gacc__icon::before,
.elementor .ayg-gacc__item[open] .ayg-gacc__icon::after { background: var(--ayg-blanco); }
.elementor .ayg-gacc__item[open] .ayg-gacc__icon::after { transform: rotate(0deg); }
.elementor .ayg-gacc__item[open] .ayg-gacc__h { color: var(--ayg-boton); }
.elementor .ayg-gacc__body { padding: 0 22px 24px; }
.elementor .ayg-gacc__body > *:first-child { margin-top: 0; }
.elementor .ayg-gacc__body p, .elementor .ayg-gacc__body li { font-size: 15.5px; line-height: 1.48; }
.elementor .ayg-gacc__body img { width: 100%; height: auto; border-radius: var(--ayg-radio-md); aspect-ratio: 16 / 9; object-fit: cover; max-height: 380px; margin: 12px 0 4px; }
.elementor .ayg-gacc__body h3 { font-family: var(--ayg-display); font-weight: 600; font-size: 22px; line-height: 1.05; margin: 1.1em 0 .4em; }
.elementor .ayg-gacc__body table { width: 100%; display: block; overflow-x: auto; }
.elementor .ayg-gacc__item.is-opening .ayg-gacc__body { animation: ayg-gacc-in .55s var(--ayg-ease) both; }
@keyframes ayg-gacc-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 1024px) { .elementor .ayg-gacc { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .elementor .ayg-gacc__title { padding: 18px 18px; } .elementor .ayg-gacc__body { padding: 0 18px 20px; } .elementor .ayg-gacc__title .ayg-gacc__h { font-size: 21px !important; } }

/* --- 20. Home: las tarjetas de servicios con el enlace siempre abajo y alineado --- */
.elementor .ayg-svcs { align-items: stretch; }
.elementor .ayg-svc { height: auto; }
.elementor .ayg-svc > .ayg-svc__text { flex: 1 1 auto; }
.elementor .ayg-svc > .elementor-widget-button:last-child { margin-top: auto; }
.elementor .ayg-svc:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -30px rgba(7, 9, 12, .35); }

/* --- 12. Home: Sobre nosotros --- */
.elementor .ayg-about { align-items: center; }
.elementor .ayg-about__pics { position: relative; padding: 0 0 56px 0; }
.elementor .ayg-about__img img { aspect-ratio: 4 / 4.4; max-height: 640px; border-radius: var(--ayg-radio); }
.elementor .ayg-about__float { position: absolute !important; right: -28px; bottom: 0; width: 46% !important; z-index: 2; }
.elementor .ayg-about__float img { border-radius: 18px; border: 6px solid var(--ayg-blanco); box-shadow: 0 30px 60px -30px rgba(7, 9, 12, .5); aspect-ratio: 16 / 11; }
.elementor .ayg-about__badge { position: absolute !important; left: 22px; top: 22px; width: auto !important; z-index: 2; padding: 16px 18px; border-radius: 18px; background: rgba(13, 16, 20, .4); border: 1px solid rgba(255, 255, 255, .22); -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%); }
.elementor .ayg-about__badge-v .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: 44px; line-height: .9; color: var(--ayg-blanco); }
.elementor .ayg-about__badge-k .elementor-heading-title { font-size: 12.5px; font-weight: 500; color: var(--ayg-blanco); }
.elementor .ayg-about__lead,
.elementor .ayg-about__lead p { font-size: clamp(1.25rem, 1.05rem + .75vw, 1.75rem); line-height: 1.3; font-weight: 300; letter-spacing: -.02em; color: var(--ayg-tinta); }
.elementor .ayg-about__kvs { border-top: 1px solid var(--ayg-linea); padding-top: 18px; }
.elementor .ayg-about__kvs > .ayg-kv { flex: 1 1 0; }
.elementor .ayg-about__kvs .ayg-kv__v .elementor-heading-title { font-family: var(--ayg-display); font-weight: 700; font-size: clamp(1.7rem, 1.4rem + 1vw, 2.4rem); line-height: 1; color: var(--ayg-tinta); }
.elementor .ayg-about__kvs .ayg-kv__k .elementor-heading-title { font-size: 13px; font-weight: 400; color: var(--ayg-texto); }
@media (max-width: 1024px) { .elementor .ayg-about__float { right: 12px; } }
@media (max-width: 767px) {
	.elementor .ayg-about__pics { padding-bottom: 40px; }
	.elementor .ayg-about__float { width: 52% !important; right: 8px; }
	.elementor .ayg-about__badge { left: 12px; top: 12px; padding: 12px 14px; }
	.elementor .ayg-about__badge-v .elementor-heading-title { font-size: 34px; }
}

/* --- 19. Animaciones: texto que se ilumina con el scroll y fotos con leve parallax --- */
.ayg-scrub-on .ayg-scrub .ayg-w { opacity: .16; }
.ayg-parallax { overflow: hidden; border-radius: var(--ayg-radio); }
.ayg-parallax img { will-change: transform; }

/* --- 22. Páginas legales y PQRSF --- */
.elementor .ayg-legal-side { gap: 16px; }
.elementor .ayg-legal-nav__t .elementor-heading-title { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; color: var(--ayg-texto); margin-top: 10px; }
.elementor .ayg-legal-nav .elementor-icon-list-items { border-top: 1px solid var(--ayg-linea); }
.elementor .ayg-legal-nav .elementor-icon-list-item { padding: 0 !important; border-bottom: 1px solid var(--ayg-linea); }
.elementor .ayg-legal-nav .elementor-icon-list-item a { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 12px 2px; }
.elementor .ayg-legal-nav .elementor-icon-list-item a::after { content: "→"; font-size: 14px; color: var(--ayg-texto); transition: transform .4s var(--ayg-ease); }
.elementor .ayg-legal-nav .elementor-icon-list-item a:hover::after { transform: translateX(3px); }
.elementor .ayg-legal-nav .elementor-icon-list-text { font-size: 14.5px; font-weight: 500; color: var(--ayg-tinta); }
.elementor .ayg-legal-nav .elementor-icon-list-item.is-current .elementor-icon-list-text { color: var(--ayg-boton); font-weight: 600; }
.elementor .ayg-legal .elementor-tab-content ul { margin-top: .4em; }
.elementor .ayg-pq__tipos > .ayg-pq__tipo { flex: 1 1 calc(20% - 12px) !important; min-width: 180px; }
.elementor .ayg-pq__tipo .ayg-tile__title .elementor-heading-title { font-size: 1.5rem; }
.elementor .ayg-formcard__note p { font-size: 13.5px; color: var(--ayg-texto); }
@media (max-width: 1024px) { .elementor .ayg-pq__tipos > .ayg-pq__tipo { flex-basis: calc(50% - 12px) !important; } }
@media (max-width: 767px) { .elementor .ayg-pq__tipos > .ayg-pq__tipo { flex-basis: 100% !important; } }

/* --- 21. Pulido general --- */
.elementor .ayg-accordion .elementor-accordion-item:hover,
.elementor .ayg-accordion .e-n-accordion-item:hover { border-color: var(--ayg-linea); }
.elementor .ayg-white .ayg-accordion .elementor-accordion-item:hover,
.elementor .ayg-white .ayg-accordion .e-n-accordion-item:hover { border-color: transparent; }
.elementor .ayg-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon,
.elementor .ayg-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--ayg-boton); color: var(--ayg-blanco); }
.elementor .ayg-accordion .elementor-tab-title.elementor-active .elementor-accordion-title,
.elementor .ayg-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--ayg-boton); }
.elementor .ayg-cta.ayg-white { background-color: var(--ayg-blanco); }
.elementor .ayg-eyebrow .elementor-heading-title { font-family: var(--ayg-sans); letter-spacing: .06em; }
@media (max-width: 767px) {
	.elementor .ayg-btns > .elementor-widget-button { max-width: 100%; }
	.elementor .ayg-hero .ayg-btns .elementor-button { width: 100%; justify-content: center; }
	.elementor .ayg-h1 .elementor-heading-title { line-height: .88; }
}
.elementor .ayg-legal-nav .elementor-icon-list-icon { display: none !important; }
.elementor .ayg-legal-nav .elementor-icon-list-text { flex: 1 1 auto; text-align: left; }
.elementor .ayg-hero--legal .ayg-h1 .elementor-heading-title { font-size: clamp(2.6rem, 1.5rem + 3.6vw, 5rem); max-width: 16ch; }
@media (max-width: 767px) { .elementor .ayg-footer__cta-btns .elementor-widget { flex: 1 1 100%; } }

/* --- v6.1 Volver arriba: a la izquierda y con flecha siempre visible --- */
.ha-scroll-to-top-wrap,
.ayg-totop { left: 24px !important; right: auto !important; bottom: 24px !important; }
.ha-scroll-to-top-wrap .ha-scroll-to-top-button,
.ayg-totop {
	position: relative;
	background-color: rgba(13, 16, 20, .62) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='white' d='M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 15px 15px !important;
	border: 1px solid rgba(255, 255, 255, .4) !important;
}
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:hover,
.ayg-totop:hover { background-color: rgba(13, 16, 20, .82) !important; }
/* el ícono propio de Happy Addons se oculta para que no salgan dos flechas */
.ha-scroll-to-top-wrap .ha-scroll-to-top-button > *,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button::before,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button::after,
.ayg-totop svg { display: none !important; }
@media (max-width: 767px) {
	.ha-scroll-to-top-wrap,
	.ayg-totop { left: 14px !important; right: auto !important; bottom: 14px !important; }
}

/* --- v6.2 Rejillas siempre en columnas (las que sobran no se estiran) --- */
.elementor .ayg-gcards > .ayg-gcard { flex: 0 0 calc((100% - 32px) / 3) !important; max-width: calc((100% - 32px) / 3); }
.elementor .ayg-gcards--5 > .ayg-gcard { flex: 0 0 calc((100% - 64px) / 5) !important; max-width: calc((100% - 64px) / 5); }
.elementor .ayg-gcard__img, .elementor .ayg-gcard__img .elementor-widget-container, .elementor .ayg-gcard__img a { display: block; width: 100%; }
.elementor .ayg-gcard__img img { width: 100% !important; max-width: none !important; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.elementor .ayg-tiles--3 > .ayg-tile { flex: 0 0 calc((100% - 32px) / 3) !important; max-width: calc((100% - 32px) / 3); }
.elementor .ayg-tiles--4 > .ayg-tile { flex: 0 0 calc((100% - 48px) / 4) !important; max-width: calc((100% - 48px) / 4); }
@media (max-width: 1024px) {
	.elementor .ayg-gcards > .ayg-gcard, .elementor .ayg-gcards--5 > .ayg-gcard,
	.elementor .ayg-tiles--3 > .ayg-tile, .elementor .ayg-tiles--4 > .ayg-tile { flex: 0 0 calc((100% - 16px) / 2) !important; max-width: calc((100% - 16px) / 2); }
}
@media (max-width: 767px) {
	.elementor .ayg-gcards > .ayg-gcard, .elementor .ayg-gcards--5 > .ayg-gcard,
	.elementor .ayg-tiles--3 > .ayg-tile, .elementor .ayg-tiles--4 > .ayg-tile { flex: 0 0 100% !important; max-width: 100%; }
}

/* --- v6.2 Aire debajo del cuadro «Así trabajamos» en los servicios --- */
.elementor .ayg-cycle-sec { padding-bottom: 110px !important; }
@media (max-width: 1024px) { .elementor .ayg-cycle-sec { padding-bottom: 80px !important; } }
@media (max-width: 767px) { .elementor .ayg-cycle-sec { padding-bottom: 64px !important; } }

/* --- v6.2 Formularios parejos: tipo y número de documento a 50/50 --- */
.elementor .elementor-form .elementor-field-group-tipo_doc,
.elementor .elementor-form .elementor-field-group-documento { width: 50% !important; max-width: 50% !important; flex: 0 0 50% !important; }
.elementor .elementor-form .elementor-field-group .elementor-select-wrapper,
.elementor .elementor-form .elementor-field-group > .elementor-field:not([type="checkbox"]),
.elementor .elementor-form .elementor-field-group .elementor-field-textual { width: 100% !important; max-width: 100%; }
.elementor .elementor-form .elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option { display: flex; align-items: center; gap: 8px; }
.elementor .elementor-form .elementor-field-type-acceptance input[type="checkbox"] { margin: 0; flex: 0 0 auto; }

/* --- v6.3 Volver arriba: la flecha va en una capa propia, encima del botón,
       para que el hover de Happy Addons (que reescribe el fondo) no la borre --- */
.ha-scroll-to-top-wrap .ha-scroll-to-top-button,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:hover,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:focus,
.ayg-totop, .ayg-totop:hover, .ayg-totop:focus { background-image: none !important; }
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:hover,
.ha-scroll-to-top-wrap .ha-scroll-to-top-button:focus { background-color: rgba(13, 16, 20, .82) !important; transform: none !important; }
.ha-scroll-to-top-wrap { width: 48px; height: 48px; }
.ha-scroll-to-top-wrap::after,
.ayg-totop::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 15px; height: 15px; margin: -7.5px 0 0 -7.5px;
	pointer-events: none; z-index: 3; opacity: 1 !important; visibility: visible !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='white' d='M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z'/%3E%3C/svg%3E") center / 15px 15px no-repeat;
	transition: transform .35s var(--ayg-ease, ease);
}
.ha-scroll-to-top-wrap:hover::after, .ayg-totop:hover::after { transform: translateY(-2px); }
.ayg-totop { position: fixed !important; }
@media (max-width: 767px) { .ha-scroll-to-top-wrap { width: 46px; height: 46px; } }
