/* GML: tokens y utilidades. Los valores salen de marca/tokens.css (medidos en los artes). */

@font-face { font-family: "Vin Sans Pro"; src: url("../fonts/VinSansPro-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Vin Mono Pro"; src: url("../fonts/VinMonoPro-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
/* Barlow y Barlow Semi Condensed (OFL) servidas desde el tema; Elementor no las pide a Google. */
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-ExtraLightItalic.woff2") format("woff2"); font-weight: 200; font-style: italic; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-MediumItalic.woff2") format("woff2"); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("../fonts/Barlow-SemiBoldItalic.woff2") format("woff2"); font-weight: 600; font-style: italic; font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; src: url("../fonts/BarlowSemiCondensed-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; src: url("../fonts/BarlowSemiCondensed-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --gml-navy: #000063;
  --gml-indigo: #000099;
  --gml-indigo-text: #00009F;
  --gml-royal: #0024C3;
  --gml-blue: #0054FF;
  --gml-sky: #0087FF;
  --gml-text: #4D4D4D;
  --gml-line: #E5E5E5;
  --gml-bg-1: #F9F9F9;
  --gml-bg-2: #EEEEEE;
  --gml-people: #FFBB00;
  --gml-lime: #9AF100;
  --gml-odoo: #00E2FF;
  --gml-hiva: #00B4FF;
  --gml-intelligence: #8F00E1;
  --gml-accent: var(--gml-blue);
  --gml-frame: clamp(16px, 2.9vw, 55px);
}

/* Acento por vertical: se pone la clase en el body (ajustes de página) o en un contenedor */
.gml-people { --gml-accent: var(--gml-people); }
.gml-solutions { --gml-accent: var(--gml-lime); }
.gml-intelligence { --gml-accent: var(--gml-intelligence); }

body { color: var(--gml-text); -webkit-font-smoothing: antialiased; }

/* Rejilla de líneas finas (arte de GML + referencia Armory): las dos del marco a 55 px de los bordes y tres
   interiores que dividen el contenido en cuatro columnas. Con mix-blend-mode: difference se aclaran sobre fondos
   oscuros y se oscurecen sobre claros, así se ven igual de sutiles en navy, azul y gris. */
html::before {
  --l: rgba(255, 255, 255, .09);
  content: ""; position: fixed; top: 0; bottom: 0; left: var(--gml-frame); right: var(--gml-frame); z-index: 90;
  pointer-events: none; mix-blend-mode: difference;
  border-left: 1px solid var(--l); border-right: 1px solid var(--l);
  background:
    linear-gradient(var(--l), var(--l)) 25% 0 / 1px 100% no-repeat,
    linear-gradient(var(--l), var(--l)) 50% 0 / 1px 100% no-repeat,
    linear-gradient(var(--l), var(--l)) 75% 0 / 1px 100% no-repeat;
}
@media (max-width: 767px) { html::before { display: none; } }

/* Etiqueta de sección: raya + texto. La tipografía viene del global "etiqueta" del kit. */
.gml-eyebrow .elementor-heading-title,
.gml-eyebrow p {
  display: inline-flex; align-items: center; gap: 12px;
}
.gml-eyebrow .elementor-heading-title::before { content: ""; width: 48px; height: 2px; background: currentColor; flex: none; }

/* Palabra resaltada en caja de color: <span class="gml-hl">palabra</span> */
.gml-hl { background: var(--gml-hl-bg, var(--gml-blue)); color: #fff; padding: 0 .12em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* Cuadro de rayas diagonales */
.gml-hatch { width: 70px; height: 70px; flex: none;
  background: repeating-linear-gradient(135deg, var(--gml-hatch, var(--gml-accent)) 0 1.5px, transparent 1.5px 6px); }

/* Patrón de puntos (People) y triángulos (Solutions) junto al logo de vertical */
.gml-dots { width: 150px; height: 46px;
  background-image: radial-gradient(circle, transparent 2.5px, var(--gml-accent) 3px, var(--gml-accent) 4px, transparent 4.5px);
  background-size: 25px 18px; }

/* Botones con >> */
.gml-btn .elementor-button { font-family: "Vin Mono Pro", monospace; font-weight: 300; text-transform: uppercase; letter-spacing: .04em; border-radius: 0; }
.gml-btn .elementor-button-text::after { content: " »"; }

/* Cifras */
.gml-stat .elementor-counter-number-wrapper { font-family: "Vin Mono Pro", monospace; font-weight: 300; }

/* Lista de diferenciales con divisores verticales */
.gml-cols > .e-con-inner > .e-con:not(:last-child),
.gml-cols > .e-con:not(:last-child) { border-right: 1px solid var(--gml-line); }
@media (max-width: 1024px) {
  .gml-cols > .e-con-inner > .e-con, .gml-cols > .e-con { border-right: 0 !important; border-bottom: 1px solid var(--gml-line); }
}

/* Textura de ruido sobre los fondos degradados de los hero */
.gml-grain { position: relative; isolation: isolate; }
.gml-grain::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .35; mix-blend-mode: overlay;
  background-image: url("../img/textura.jpg"); background-size: 400px; }
.gml-grain > * { position: relative; z-index: 1; }

/* Marquesina de logos */
.gml-marquee { overflow: hidden; }
.gml-marquee > .e-con-inner, .gml-marquee > .e-con { animation: gml-marquee 40s linear infinite; flex-wrap: nowrap !important; width: max-content !important; }
@keyframes gml-marquee { to { transform: translateX(-50%); } }

/* Párrafo que se ilumina con el scroll (lo arma gml.js) */
/* (ver bloque de Movimiento) */
.gml-reveal .w.on { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .gml-marquee > .e-con-inner, .gml-marquee > .e-con { animation: none; }
  .gml-reveal .w { opacity: 1; }
}

/* Título condensado (global "titulo-cond"): la parte resaltada va en <strong> */
.gml-titulo-cond strong, .gml-titulo-cond b { font-weight: 700; }

/* ===================== Piezas globales (sección 1) ===================== */

.gml-lista { list-style: none; margin: 0; padding: 0; }

/* Filas cuyos hijos toman el ancho de su contenido (Elementor les da 100 % por defecto) */
.gml-fila-auto > .e-con, .gml-fila-auto > .e-con-inner > .e-con,
.gml-fila-auto > .elementor-widget, .gml-fila-auto > .e-con-inner > .elementor-widget { --width: auto; width: auto; flex: 0 1 auto; }
@media (max-width: 767px) {
  /* Pie en móvil: menús de a dos columnas; logo y sello a lo ancho */
  .gml-pie .gml-fila-auto { flex-direction: row !important; flex-wrap: wrap !important; column-gap: 20px !important; row-gap: 40px !important; }
  .gml-pie .gml-fila-auto > .e-con { width: calc(50% - 10px); }
  .gml-pie .gml-fila-auto > .elementor-widget, .gml-pie .gml-fila-auto > .gml-pie__iso { width: 100%; }
}

/* Redes: [gml_redes clase="..."] */
.gml-redes { display: flex; align-items: center; gap: 14px; list-style: none; margin: 0; padding: 0; }
.gml-redes a { display: block; width: 15px; height: 15px; color: inherit; transition: opacity .2s; }
.gml-redes a:hover { opacity: .7; }
.gml-redes svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.gml-redes--pie { gap: 30px; }
.gml-redes--pie a { width: 26px; height: 26px; color: var(--gml-people); }
.gml-redes--menu { color: var(--gml-navy); }
.gml-redes--menu a { width: 18px; height: 18px; }

/* El pie siempre al fondo de la ventana, aunque la página sea corta */
body { min-height: 100vh; display: flex; flex-direction: column; }
body > * { flex-shrink: 0; }
.elementor-location-footer { margin-top: auto; }

/* Cabecera: sólida en navy por defecto. Solo va transparente sobre el hero en las páginas que lo piden
   con el campo gml_cabecera = transparente (hero oscuro) o clara (hero amarillo o claro). */
.elementor-location-header { position: relative; z-index: 100; background: var(--gml-navy); }
.gml-cabecera-sobre-hero .elementor-location-header { position: absolute; top: 0; left: 0; right: 0; background: transparent; }
body.admin-bar.gml-cabecera-sobre-hero .elementor-location-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar.gml-cabecera-sobre-hero .elementor-location-header { top: 46px; } }
/* Enlaces en azul cielo y no en el azul del arte: #0054FF sobre navy da 3,1:1 y no pasa AA; #0087FF da 5:1 */
.gml-cabecera { --gml-cab-texto: rgba(255, 255, 255, .85); --gml-cab-enlace: var(--gml-sky); --gml-cab-logo: #fff; }
.gml-cabecera-clara .gml-cabecera { --gml-cab-texto: var(--gml-navy); --gml-cab-enlace: var(--gml-navy); --gml-cab-logo: var(--gml-navy); }

/* Barra superior */
.gml-topbar { min-height: clamp(34px, 2.3vw, 44px); border-bottom: 1px solid rgba(255, 255, 255, .45);
  padding-inline: calc(var(--gml-frame) + 10px) !important; color: var(--gml-cab-texto); }
.gml-cabecera-clara .gml-topbar { border-bottom-color: rgba(0, 0, 99, .3); }
/* Sobre fotos, un velo navy translúcido mantiene legible la barra en la parte clara de la imagen */
.gml-cabecera-sobre-hero:not(.gml-cabecera-clara) .gml-topbar { background: rgba(0, 0, 60, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-bottom-color: rgba(255, 255, 255, .25); }
.gml-topbar .elementor-heading-title,
.gml-topbar .elementor-heading-title a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; font-size: 13px;
  line-height: 1.2; letter-spacing: .02em; text-transform: none; color: var(--gml-cab-texto); }
.gml-topbar .gml-topbar__enlace .elementor-heading-title,
.gml-topbar .gml-topbar__enlace .elementor-heading-title a { color: var(--gml-cab-enlace); text-transform: uppercase; font-family: "Barlow", sans-serif; letter-spacing: .04em; }
.gml-topbar .gml-redes { color: var(--gml-cab-enlace); }
.gml-idioma .elementor-heading-title { display: inline-flex; align-items: center; gap: 6px; font-family: "Barlow", sans-serif !important; font-weight: 600 !important; }
.gml-idioma .elementor-heading-title::before { content: ""; width: 20px; height: 12px; flex: none;
  background: linear-gradient(#FCD116 0 50%, #003893 50% 75%, #CE1126 75%); }
@media (max-width: 1024px) { .gml-topbar__dato { display: none; } }
@media (max-width: 767px) { .gml-topbar { display: none !important; } }

/* Barra del logo y la hamburguesa */
.gml-cabecera__barra { padding-inline: calc(var(--gml-frame) + 10px) !important; background: var(--gml-navy); }
.gml-cabecera-sobre-hero .gml-cabecera__barra:not(.is-fija) { background: transparent; }
.gml-cabecera__barra.is-fija { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: var(--gml-navy);
  padding-block: 8px !important; box-shadow: 0 2px 16px rgba(0, 0, 40, .25); --gml-cab-logo: #fff; }
body.admin-bar .gml-cabecera__barra.is-fija { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gml-cabecera__barra.is-fija { top: 46px; } }
.gml-logo img { width: clamp(84px, 6.5vw, 125px) !important; height: auto; display: block; }
.gml-cabecera__barra.is-fija .gml-logo img { width: clamp(72px, 5vw, 96px) !important; }
/* Logo en color sobre fondos claros: el logo blanco hace de máscara */
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-logo a { display: inline-block; background: var(--gml-cab-logo);
  -webkit-mask: url("../../assets/medios/logos/GML-Logo-White.webp") left center / contain no-repeat;
  mask: url("../../assets/medios/logos/GML-Logo-White.webp") left center / contain no-repeat; }
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-logo img { opacity: 0; }

/* !important: el kit aplica el estilo de botón a todos los <button> */
.gml-hamburguesa, .gml-menu__cerrar { width: 44px; height: 44px; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: none !important; box-shadow: none !important; cursor: pointer; display: grid; place-content: center; gap: 6px; color: #fff !important; }
.gml-menu__cerrar { color: var(--gml-navy) !important; }

.gml-hamburguesa span { display: block; width: 24px; height: 2px; background: currentColor; transition: transform .25s; }
/* Recuadro navy: se lee sobre fotos oscuras, claras y fondos amarillos */
.gml-hamburguesa { width: 52px !important; height: 52px !important; background: var(--gml-navy) !important; }
.gml-hamburguesa:hover span:nth-child(2) { transform: translateX(-5px); }
.gml-cabecera__barra.is-fija .gml-hamburguesa { background: transparent !important; }
@media (prefers-reduced-motion: reduce) { .gml-hamburguesa span { transition: none; } }
.gml-hamburguesa:focus-visible, .gml-menu__cerrar:focus-visible, .gml-menu a:focus-visible,
.gml-pie a:focus-visible, .gml-topbar a:focus-visible { outline: 2px solid var(--gml-people); outline-offset: 3px; }
.gml-menu a:focus-visible, .gml-menu__cerrar:focus-visible { outline-color: var(--gml-blue); }

/* Menú a pantalla completa (modelo: docs/referencias/armory-menu.jpg) */
.gml-menu { position: fixed !important; inset: 0; z-index: 1000; overflow-y: auto; visibility: hidden; opacity: 0;
  transition: opacity .35s ease, visibility 0s linear .35s; }
.gml-menu.is-abierta { visibility: visible; opacity: 1; transition: opacity .35s ease, visibility 0s; }
body.gml-menu-abierto { overflow: hidden; }
body.admin-bar .gml-menu { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gml-menu { top: 46px; } }
.elementor-editor-active .gml-menu { position: relative !important; visibility: visible; opacity: 1; min-height: 760px; }
.gml-menu__direccion .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300;
  font-style: normal; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.gml-menu__cerrar { position: relative; }
.gml-menu__cerrar span { position: absolute; left: 8px; top: 21px; width: 28px; height: 2px; background: currentColor; }
.gml-menu__cerrar span:first-child { transform: rotate(45deg); }
.gml-menu__cerrar span:last-child { transform: rotate(-45deg); }
.gml-menu .gml-lista { display: grid; gap: 12px; }
.gml-menu .gml-lista a { font-family: "Barlow", sans-serif; font-size: 20px; font-weight: 400; color: var(--gml-navy); text-decoration: none; }
.gml-menu .gml-lista a::after { content: " \2197"; font-size: .7em; vertical-align: .15em; color: var(--gml-blue); }
.gml-menu .gml-lista a:hover { color: var(--gml-blue); }
.gml-menu .gml-lista--servicios { gap: 8px; }
.gml-menu .gml-lista--servicios a { font-size: 17px; }
.gml-menu .gml-lista--servicios .gml-vertical { margin-top: 12px; }
.gml-menu .gml-lista--servicios .gml-vertical:first-child { margin-top: 0; }
.gml-menu .gml-lista--servicios .gml-vertical a { font-weight: 600; font-style: italic; text-transform: uppercase; font-size: 14px;
  letter-spacing: .03em; color: var(--gml-royal); }
.gml-menu__foto { flex-grow: 1; min-height: 220px; }
@media (max-width: 1024px) {
  .gml-menu__izq { display: none !important; }
  .gml-menu__der { width: 100% !important; }
  .gml-menu__foto { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .gml-menu, .gml-menu.is-abierta, .gml-cabecera__barra { transition: none; }
}

/* Pie */
.gml-pie { color: #fff; }
.gml-pie .gml-pie__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 400; font-style: normal;
  text-transform: uppercase; font-size: clamp(15px, 14.51px + .129vw, 17px); letter-spacing: .03em; line-height: 1.2; color: #fff; }
.gml-pie .gml-lista { display: grid; gap: 6px; grid-auto-rows: calc(clamp(14px, 13.51px + .129vw, 16px) * 1.6); }
.gml-pie .gml-lista a { font-family: "Barlow", sans-serif; font-weight: 400; font-size: clamp(14px, 13.51px + .129vw, 16px); color: #fff; text-decoration: none; }
.gml-pie .gml-lista a::before { content: "/ "; }
.gml-pie .gml-lista .gml-sub a { padding-left: 12px; }
.gml-pie .gml-lista .gml-sub a::before { content: "|"; }
.gml-pie .gml-lista .gml-punto a::before { content: "\2022\a0"; }
/* Las viñetas (Blog, Políticas...) empiezan en la misma fila en todas las columnas, como en el arte */
.gml-pie .gml-lista .gml-punto--primero { grid-row-start: 5; }
.gml-pie .gml-lista .gml-punto--primero + .gml-punto { grid-row-start: 6; }
.gml-pie .gml-lista .gml-punto--primero + .gml-punto + .gml-punto { grid-row-start: 7; }
@media (max-width: 767px) {
  .gml-pie .gml-lista .gml-punto--primero, .gml-pie .gml-lista .gml-punto--primero + .gml-punto, .gml-pie .gml-lista .gml-punto--primero + .gml-punto + .gml-punto { grid-row-start: auto; }
  .gml-pie .gml-lista .gml-punto--primero { margin-top: 12px; }
}
.gml-pie .gml-lista a:hover { color: var(--gml-people); }
.gml-pie__iso { border-left: 1px solid rgba(255, 255, 255, .6); }
.gml-pie__iso p { margin: 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 13px;
  line-height: 1.45; letter-spacing: .06em; color: rgba(255, 255, 255, .78); }
.gml-pie .gml-lista a { background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: color .2s, background-size .25s; }
.gml-pie .gml-lista a:hover, .gml-pie .gml-lista a:focus-visible { background-size: 100% 1px; }
.gml-menu .gml-lista a { transition: color .2s; }
@media (prefers-reduced-motion: reduce) { .gml-pie .gml-lista a { transition: none; } }
.gml-pie__logo img { width: clamp(120px, 9vw, 170px) !important; height: auto; }
.gml-pie__creditos p { margin: 0; font-family: "Barlow", sans-serif; font-size: 17px; color: #fff; }
.gml-pie__creditos strong { color: var(--gml-people); font-weight: 700; letter-spacing: .02em; margin-left: 6px; }

/* ===================== Hero ===================== */

.gml-hero { position: relative; isolation: isolate; }
.gml-hero > * { position: relative; z-index: 1; }
/* Velo navy desde la izquierda para que el texto se lea sobre cualquier foto */
.gml-hero--home::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(0, 0, 99, .88) 0%, rgba(0, 0, 99, .62) 34%, rgba(0, 0, 99, .12) 62%, rgba(0, 0, 99, 0) 80%),
              linear-gradient(0deg, rgba(0, 0, 40, .45) 0%, rgba(0, 0, 40, 0) 30%); }
.gml-hero--home { padding: calc(clamp(34px, 2.3vw, 44px) + clamp(90px, 8vw, 130px)) calc(var(--gml-frame) + 2px) clamp(80px, 9vw, 140px) !important; }
@media (max-width: 767px) {
  .gml-hero--home { padding: 120px 20px 64px !important; background-position: 70% center !important; }
  .gml-hero--home::before { background: linear-gradient(180deg, rgba(0, 0, 99, .55) 0%, rgba(0, 0, 99, .82) 45%, rgba(0, 0, 99, .9) 100%); }
  .gml-confianza { padding-inline: 20px !important; }
  .gml-confianza__fila { justify-content: flex-start !important; column-gap: 20px !important; }
  .gml-confianza__item .elementor-heading-title { font-size: 12px; }
}
.gml-hero__contenido { max-width: 820px; }
.gml-hero__titulo .elementor-heading-title { letter-spacing: -.005em; }
.gml-hero__titulo .gml-hl { padding: 0 .14em .04em; margin-left: -.04em; }
.gml-hero__antetitulo .elementor-heading-title { font-weight: 500 !important; font-size: clamp(14px, 13.51px + .129vw, 16px) !important; }
.gml-hero__bajada { max-width: 36em; }
.gml-hero__bajada p { margin: 0; color: rgba(255, 255, 255, .92); }

/* Botones del hero: Barlow Semi Condensed Light en mayúsculas, como "EXPLORA QUÉ HACEMOS" en el arte */
.elementor-widget.gml-cta .elementor-button { font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-style: normal;
  font-size: clamp(15px, 14.51px + .129vw, 17px); line-height: 1; letter-spacing: .04em; text-transform: uppercase;
  padding: .85em 1.2em; border-radius: 0; border: 1px solid transparent; transition: background-color .2s, color .2s, border-color .2s; }
.elementor-widget.gml-cta--solido .elementor-button { background: var(--gml-blue); color: #fff; }
.elementor-widget.gml-cta--solido .elementor-button:hover,
.elementor-widget.gml-cta--solido .elementor-button:focus-visible { background: #fff; color: var(--gml-navy); }
.elementor-widget.gml-cta--contorno .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.elementor-widget.gml-cta--contorno .elementor-button:hover,
.elementor-widget.gml-cta--contorno .elementor-button:focus-visible { background: #fff; color: var(--gml-navy); border-color: #fff; }
.elementor-widget.gml-cta .elementor-button:focus-visible { outline: 2px solid var(--gml-people); outline-offset: 3px; }
@media (max-width: 767px) { .elementor-widget.gml-cta .elementor-button { width: 100%; justify-content: center; } }

/* Entrada escalonada al cargar */
@keyframes gml-sube { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.gml-hero__contenido > * { animation: gml-sube .7s cubic-bezier(.2, .7, .2, 1) both; }
.gml-hero__contenido > *:nth-child(2) { animation-delay: .08s; }
.gml-hero__contenido > *:nth-child(3) { animation-delay: .18s; }
.gml-hero__contenido > *:nth-child(4) { animation-delay: .28s; }
.elementor-editor-active .gml-hero__contenido > * { animation: none; }
@media (prefers-reduced-motion: reduce) { .gml-hero__contenido > * { animation: none; } }

/* Banda de confianza bajo el hero */
.gml-confianza { padding-inline: calc(var(--gml-frame) + 2px) !important; border-bottom: 1px solid var(--gml-line); }
.gml-confianza__fila { row-gap: 10px !important; column-gap: 28px !important; }
.gml-confianza__item .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; font-family: "Vin Mono Pro", ui-monospace, monospace;
  font-weight: 300; font-style: normal; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--gml-royal); }
.gml-confianza__item .elementor-heading-title::before { content: ""; width: 7px; height: 7px; flex: none; background: var(--gml-blue); }

/* ===================== Estructura de la referencia Teckko ===================== */

/* Íconos de la barra superior (trazos de Lucide, ISC) */
.gml-ico .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; }
.gml-ico .elementor-heading-title::before { content: ""; width: 14px; height: 14px; flex: none; background: var(--gml-cab-enlace);
  -webkit-mask: var(--gml-ico) center / contain no-repeat; mask: var(--gml-ico) center / contain no-repeat; }
.gml-ico--ubicacion { --gml-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.gml-ico--correo { --gml-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 5L2 7'/%3E%3C/svg%3E"); }
.gml-ico--telefono { --gml-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }

/* Barra principal: logo | línea | menú | botón */
.gml-cabecera__barra { min-height: clamp(72px, 4.9vw, 94px); border-bottom: 1px solid rgba(255, 255, 255, .12); column-gap: 0 !important; }
.gml-cabecera__barra > .gml-logo { align-self: stretch; display: flex; align-items: center;
  padding-right: clamp(24px, 2.4vw, 46px); margin-right: clamp(24px, 2.4vw, 46px); border-right: 1px solid rgba(255, 255, 255, .14); }
.gml-cabecera__barra.is-fija { min-height: 64px; }
.gml-cabecera__nav { flex: 1 1 auto !important; }
.gml-nav__lista { display: flex; align-items: center; gap: clamp(20px, 2.1vw, 40px); list-style: none; margin: 0; padding: 0; }
.gml-nav__item { position: relative; }
.gml-nav__item > a { display: inline-flex; align-items: center; gap: 6px; padding: 30px 0; font-family: "Barlow", sans-serif; font-weight: 500;
  font-size: clamp(15px, 14.76px + .065vw, 16px); color: #fff; text-decoration: none; transition: color .2s; }
.gml-cabecera__barra.is-fija .gml-nav__item > a { padding: 20px 0; }
.gml-nav__item > a:hover, .gml-nav__item:focus-within > a { color: var(--gml-sky); }
.gml-nav__item--sub > a::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0;
  transform: translateY(-2px) rotate(45deg); }
.gml-nav__panel { position: absolute; top: 100%; left: -28px; min-width: 300px; padding: 26px 28px; background: #fff;
  box-shadow: 0 18px 40px rgba(0, 0, 40, .22); border-top: 3px solid var(--gml-blue);
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility 0s linear .2s; }
.gml-nav__item--sub:hover .gml-nav__panel, .gml-nav__item--sub:focus-within .gml-nav__panel { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.gml-nav__panel .gml-lista { display: grid; gap: 8px; }
.gml-nav__panel .gml-lista a { font-family: "Barlow", sans-serif; font-size: 16px; color: var(--gml-navy); text-decoration: none; }
.gml-nav__panel .gml-lista a:hover { color: var(--gml-blue); }
.gml-nav__panel .gml-vertical { margin-top: 10px; }
.gml-nav__panel .gml-vertical:first-child { margin-top: 0; }
.gml-nav__panel .gml-vertical a { font-weight: 600; font-style: italic; text-transform: uppercase; font-size: 13px; letter-spacing: .04em; color: var(--gml-royal); }
.gml-cabecera__barra .gml-btn .elementor-button { padding: 14px 20px; }
.gml-cabecera__hamburguesa { display: none; }
@media (max-width: 1180px) {
  .gml-cabecera__nav, .gml-cabecera__barra > .gml-btn { display: none; }
  .gml-cabecera__hamburguesa { display: block; margin-left: auto; }
  .gml-cabecera__barra > .gml-logo { border-right: 0; margin-right: 0; }
}
@media (prefers-reduced-motion: reduce) { .gml-nav__panel { transition: none; } }

/* Hero con cifras y foto */
.gml-hero--teckko { padding: clamp(48px, 4.6vw, 88px) var(--gml-frame) clamp(56px, 5vw, 96px) calc(var(--gml-frame) + 2px) !important; overflow: hidden; }
.gml-hero--teckko::before { content: ""; position: absolute; z-index: 0; pointer-events: none; width: 62vw; aspect-ratio: 1;
  right: -24vw; top: -18vw; border-radius: 50%; border: clamp(40px, 5vw, 96px) solid rgba(0, 84, 255, .10); }
.gml-hero__cabeza { max-width: 1200px; }
.gml-hero__cuerpo { align-items: stretch !important; }
.gml-hero__texto { justify-content: flex-start; }
.gml-cifras { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 28px !important; }
.gml-cifra { padding-right: clamp(20px, 2.4vw, 46px); margin-right: clamp(20px, 2.4vw, 46px); border-right: 1px solid rgba(255, 255, 255, .2); }
.gml-cifra:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.gml-cifra__numero .elementor-heading-title { color: #fff; }
.gml-cifra__etiqueta .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 400; font-style: normal; text-transform: none;
  font-size: 14px; color: rgba(255, 255, 255, .75); }
.gml-hero__sellos .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal;
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gml-sky); }
.gml-hero__media { min-height: 0; }
.gml-hero__foto, .gml-hero__foto .elementor-widget-container { height: 100%; }
.gml-hero__foto img { width: 100%; height: 100% !important; min-height: 360px; max-height: 520px; object-fit: cover; object-position: 78% center; display: block; }
@media (max-width: 767px) {
  .gml-hero--teckko { padding: 56px 20px 64px !important; }
  .gml-hero__media { min-height: 0; }
  .gml-hero__foto img { min-height: 280px; height: 280px !important; }
  .gml-cifra { padding-right: 14px; margin-right: 14px; }
}

/* Titular de borde a borde: [gml_gigante] */
/* Selector reforzado: el kit aplica la tipografía de los H2 con .elementor-kit-N h2 */
.elementor-kit-6 .gml-gigante, .gml-gigante { margin: 0; font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-style: normal;
  text-transform: none; line-height: .9; letter-spacing: -.01em; font-size: clamp(32px, 22.29px + 2.589vw, 72px); color: #fff; }
/* Primera línea en otro color. Antes era letra hueca: con Vin Sans Light no se leía (ver docs/pendientes.md) */
.gml-gigante__contorno { color: inherit; }
.gml-gigante--mueve { overflow: hidden; white-space: nowrap; }
.gml-gigante__pista { display: inline-flex; animation: gml-desliza 38s linear infinite; }
.gml-gigante__frase { display: inline-flex; align-items: center; }
.gml-gigante__sep { display: inline-block; width: .42em; height: .42em; margin: 0 .45em; flex: none;
  background: repeating-linear-gradient(135deg, var(--gml-blue) 0 3px, transparent 3px 10px); }
@keyframes gml-desliza { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .gml-gigante__pista { animation: none; } }
.gml-banda-gigante { padding: clamp(18px, 2vw, 36px) 0 !important; border-top: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1); }

/* Sello circular: [gml_sello] */
.gml-sello { position: relative; width: clamp(130px, 9vw, 170px); aspect-ratio: 1; display: grid; place-items: center; }
.gml-sello__giro { position: absolute; inset: 0; width: 100%; height: 100%; animation: gml-gira 22s linear infinite; }
.gml-sello__giro text { font-family: "Vin Mono Pro", ui-monospace, monospace; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; fill: #fff; }
.gml-sello::after { content: ""; position: absolute; inset: 22%; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .35); }
.gml-sello__logo { width: 34%; height: auto; }
@keyframes gml-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .gml-sello__giro { animation: none; } }

/* Presentación */
.gml-presentacion { padding: clamp(56px, 5vw, 96px) calc(var(--gml-frame) + 2px) !important; }
.gml-presentacion__texto p { margin: 0; color: rgba(255, 255, 255, .85); max-width: 38em; }
.gml-presentacion__sello { align-items: center !important; }

/* Cierre */
.gml-cierre { padding: clamp(56px, 5vw, 96px) calc(var(--gml-frame) + 2px) !important; overflow: hidden; }
.elementor-kit-6 .gml-cierre .gml-gigante { color: var(--gml-royal); font-size: clamp(28px, 23.15px + 1.294vw, 48px); }
.gml-cierre__pie > .elementor-widget-button { flex: none !important; }
.gml-cierre__pie .elementor-button { white-space: nowrap; }
.gml-cierre .gml-gigante__contorno { color: var(--gml-navy); display: block; }
.gml-cierre .gml-gigante .gml-hl { padding: 0 .12em .02em; }
.gml-cierre__texto { max-width: 40em; }
.gml-cierre__texto p { margin: 0; }
@media (max-width: 767px) { .gml-cierre { padding: 56px 20px !important; } .gml-cierre__pie { align-items: flex-start !important; } }

/* Barra legal del pie */
.gml-pie__creditos { padding-inline: calc(var(--gml-frame) + 2px) !important; }
.gml-pie__creditos p { font-size: 14px !important; color: rgba(255, 255, 255, .8); }
.gml-pie__legal .gml-lista { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.gml-pie__legal .gml-lista a { font-family: "Barlow", sans-serif; font-size: 14px; color: rgba(255, 255, 255, .8); text-decoration: none; }
.gml-pie__legal .gml-lista a:hover { color: var(--gml-people); }
.gml-pie__iso-sans { font-family: "Vin Sans Pro", sans-serif; }

.gml-pie .gml-pie__legal .gml-lista a::before { content: none; }
.gml-nav__panel .gml-lista { gap: 4px; }
.gml-nav__panel .gml-lista li, .gml-menu .gml-lista li, .gml-pie .gml-lista li { line-height: 1.35; }
.gml-cierre__pie > .gml-cierre__texto { flex: 1 1 0 !important; min-width: 0; }
@media (max-width: 767px) {
  .gml-cifras { display: grid !important; grid-template-columns: repeat(3, 1fr); }
  .gml-cifra { width: auto !important; padding-right: 10px; margin-right: 10px; }
  .gml-cifra__numero .elementor-heading-title { font-size: 28px !important; }
  .gml-cifra__etiqueta .elementor-heading-title { font-size: 13px; }
}

/* ===================== Trabaja con nosotros ===================== */
/* Fondo por vertical: azul (Home, People), cian (Solutions); el texto se adapta para mantener el contraste */
.gml-trabaja { --gml-tr-fondo: var(--gml-blue); --gml-tr-texto: #fff; --gml-tr-etiqueta: #fff;
  background: var(--gml-tr-fondo); padding: clamp(48px, 3.6vw, 68px) calc(var(--gml-frame) + 2px) clamp(56px, 4.2vw, 80px) clamp(24px, 15vw, 290px) !important; }
.gml-solutions .gml-trabaja { --gml-tr-fondo: var(--gml-odoo); --gml-tr-texto: var(--gml-navy); --gml-tr-etiqueta: var(--gml-navy); }
.gml-trabaja .gml-eyebrow .elementor-heading-title { color: var(--gml-tr-etiqueta) !important; }
.gml-trabaja__texto p { margin: 0; color: var(--gml-tr-texto) !important; max-width: 15em; }
.gml-trabaja__titulo .elementor-heading-title { line-height: 1.05; }
.gml-trabaja__sello .gml-sello { width: clamp(110px, 7vw, 140px); }
.gml-trabaja .gml-sello__giro text { fill: var(--gml-tr-texto); font-size: 15px; }
.gml-trabaja .gml-sello::after { border-color: var(--gml-tr-texto); opacity: .4; }
.gml-trabaja__foto img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; display: block; box-shadow: 18px -18px 0 0 var(--gml-navy); }
@media (max-width: 1024px) { .gml-trabaja { padding-left: 24px !important; padding-right: 24px !important; } .gml-trabaja__sello { display: none; } }
@media (max-width: 767px) { .gml-trabaja__foto img { box-shadow: none; } }

/* ===================== Bloque de contacto (#contacto) ===================== */
.gml-contacto { padding: clamp(48px, 4vw, 80px) calc(var(--gml-frame) + 2px) clamp(56px, 5vw, 96px) clamp(24px, 21vw, 415px) !important; scroll-margin-top: 80px; }
@media (max-width: 1024px) { .gml-contacto { padding-left: 24px !important; padding-right: 24px !important; } }
.gml-contacto__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 300; font-style: normal; text-transform: uppercase;
  font-size: clamp(22px, 20.54px + .388vw, 28px); line-height: 1; color: var(--gml-royal); }
.gml-contacto__datos p { margin: 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 14px;
  line-height: 1.5; color: var(--gml-navy); }
.gml-contacto__datos a { color: inherit; text-decoration: none; }
.gml-contacto__datos a:hover { color: var(--gml-blue); }
/* Campos subrayados con la etiqueta sobre la línea, como en el arte (la etiqueta es real, no un placeholder) */
.gml-contacto__form .elementor-form-fields-wrapper { row-gap: clamp(18px, 1.6vw, 30px); }
.gml-contacto__form .elementor-field-group:not(.elementor-field-type-acceptance):not(.elementor-field-type-submit) {
  display: flex; align-items: baseline; gap: 10px; border-bottom: 1px solid #999; }
.gml-contacto__form .elementor-field-group .elementor-field-label { margin: 0; padding: 0; white-space: nowrap;
  font-family: "Barlow", sans-serif; font-weight: 300; font-size: clamp(16px, 15.51px + .129vw, 18px); color: #737373; }
.gml-contacto__form .elementor-field-group .elementor-field-label::after { display: none; }
.elementor-kit-6 .gml-contacto__form .elementor-field-group .elementor-field:not(.elementor-select-wrapper) {
  flex: 1; min-width: 0; background: transparent; border: 0; border-radius: 0; padding: 4px 0; box-shadow: none;
  font-family: "Barlow", sans-serif; font-size: clamp(16px, 15.51px + .129vw, 18px); color: var(--gml-navy); }
.gml-contacto__form textarea.elementor-field { resize: vertical; min-height: 2.4em; }
.gml-contacto__form .elementor-field-group:focus-within { border-bottom-color: var(--gml-blue); }
.gml-contacto__form .elementor-field-type-acceptance .elementor-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.gml-contacto__form .elementor-field-type-acceptance label, .gml-contacto__form .elementor-field-type-acceptance .elementor-field-option label {
  font-family: "Barlow", sans-serif; font-weight: 300; font-size: 14px; line-height: 1.2; color: #4D4D4D; }
.gml-contacto__form .elementor-field-type-acceptance a { color: var(--gml-royal); }
.gml-contacto__form input[type="checkbox"] { width: 18px; height: 18px; margin-right: 8px; accent-color: var(--gml-navy); }
.elementor-kit-6 .gml-contacto__form .elementor-button { background: var(--gml-navy); color: #fff; border-radius: 0; padding: 12px 18px;
  font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: clamp(13px, 12.76px + .065vw, 14px); text-transform: uppercase; letter-spacing: .04em; }
.elementor-kit-6 .gml-contacto__form .elementor-button:hover { background: var(--gml-blue); }
.gml-contacto__form .elementor-button-text::after { content: " \00bb"; }
.gml-contacto__form .elementor-field-type-submit { justify-content: flex-start; }
/* El widget de formulario pone fondo blanco y botón a todo el ancho con selectores por ID */
.gml-contacto__form .elementor-field-group .elementor-field { background-color: transparent !important; border: 0 !important; }
.gml-contacto__form .elementor-field-type-submit .elementor-button { width: auto !important; flex: none; }
.gml-contacto__form .e-form__buttons, .gml-contacto__form .elementor-field-type-submit { justify-content: flex-start !important; }
.gml-contacto__form .elementor-field-type-submit .elementor-button { flex: 0 0 auto !important; flex-basis: auto !important; min-width: 0; }
.gml-contacto__form .elementor-field-type-acceptance .elementor-field-subgroup { line-height: 1.35; }

/* ===================== Movimiento (skill ui-motion-animation) =====================
   Momento principal: entrada del hero. La caja de color de la marca se dibuja detrás de "ocurra."
   Apoyo: párrafo que se ilumina con el scroll, contadores, menú. Los bucles se pausan fuera de pantalla.
   Con movimiento reducido: solo desvanecidos cortos, sin desplazamientos. */
:root { --gml-ease: cubic-bezier(.16, 1, .3, 1); --gml-ease-sale: cubic-bezier(.4, 0, 1, 1); }

@keyframes gml-foto { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes gml-mascara { from { clip-path: inset(100% 0 -.2em 0); transform: translateY(.35em); } to { clip-path: inset(0 0 -.2em 0); transform: none; } }
@keyframes gml-caja { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
@keyframes gml-llega { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes gml-aparece { from { opacity: 0; } to { opacity: 1; } }

/* La caja del resaltado del hero se pinta con un degradado para poder dibujarla de izquierda a derecha */
.gml-hero--teckko .gml-hl { background: linear-gradient(var(--gml-blue), var(--gml-blue)) left center / 100% 100% no-repeat; }

@media (prefers-reduced-motion: no-preference) {
  .gml-hero--teckko .gml-hero__media img { animation: gml-foto 1.1s var(--gml-ease) both; }
  .gml-hero--teckko .gml-hero__antetitulo { animation: gml-aparece .5s var(--gml-ease) .1s both; }
  .gml-hero--teckko .gml-hero__titulo .elementor-heading-title { animation: gml-mascara .8s var(--gml-ease) .15s both; }
  .gml-hero--teckko .gml-hero__titulo .gml-hl { animation: gml-caja .55s var(--gml-ease) .75s both; }
  .gml-hero--teckko .gml-hero__texto > * { animation: gml-llega .6s var(--gml-ease) both; }
  .gml-hero--teckko .gml-hero__texto > :nth-child(1) { animation-delay: .8s; }
  .gml-hero--teckko .gml-hero__texto > :nth-child(2) { animation-delay: .9s; }
  .gml-hero--teckko .gml-hero__texto > :nth-child(3) { animation-delay: 1s; }
  .gml-hero--teckko .gml-hero__texto > :nth-child(4) { animation-delay: 1.1s; }
  /* Menú: el panel entra desde la derecha; la salida es más corta que la entrada */
  .gml-menu__der { transition: transform .45s var(--gml-ease); }
  .gml-menu:not(.is-abierta) .gml-menu__der { transform: translateX(32px); transition: transform .2s var(--gml-ease-sale); }
}
.gml-menu:not(.is-abierta) { transition: opacity .2s var(--gml-ease-sale), visibility 0s linear .2s; }
@media (prefers-reduced-motion: reduce) {
  .gml-hero--teckko .gml-hero__media img, .gml-hero--teckko .gml-hero__cabeza, .gml-hero--teckko .gml-hero__texto { animation: gml-aparece .3s ease-out both; }
  .gml-sello__giro, .gml-gigante__pista { animation: none !important; }
}
.elementor-editor-active .gml-hero--teckko * { animation: none !important; }

/* Bucles: solo corren mientras se ven (gml.js marca .is-visible); la banda se detiene al pasar el cursor */
.gml-gigante--mueve:not(.is-visible) .gml-gigante__pista, .gml-sello:not(.is-visible) .gml-sello__giro { animation-play-state: paused; }
.gml-gigante--mueve:hover .gml-gigante__pista { animation-play-state: paused; }

/* Párrafo que se ilumina con el scroll */
.gml-reveal .w { opacity: .28; transition: opacity .25s linear; }

/* Contadores: cifras de ancho fijo para que no salte el renglón al contar */
.gml-cifra__numero .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* Hero con video de fondo: el anillo decorativo se cambia por un velo navy que asegura el contraste del texto */
.gml-hero--video::before { width: auto; aspect-ratio: auto; inset: 0; right: 0; top: 0; border: 0; border-radius: 0;
  background: linear-gradient(90deg, rgba(0, 0, 50, .82) 0%, rgba(0, 0, 50, .55) 45%, rgba(0, 0, 50, .25) 100%); z-index: 1; }
.gml-hero--video > .elementor-background-video-container { z-index: 0; }
.gml-hero--video > .e-con, .gml-hero--video > .e-con-inner { z-index: 2; }
@media (prefers-reduced-motion: no-preference) {
  .gml-hero--video .elementor-background-video-hosted { animation: gml-aparece 1.6s ease-out .2s both; }
}

/* Alineación a la rejilla de cuatro columnas: el contenido de la segunda mitad arranca justo después de la línea del centro */
.gml-presentacion { padding-inline: var(--gml-frame) !important; }
.gml-presentacion__col { padding-left: clamp(24px, 2.4vw, 44px) !important; padding-right: clamp(24px, 2.4vw, 44px) !important; }
.gml-hero--teckko .gml-hero__cuerpo { column-gap: 0 !important; }
.gml-hero--teckko .gml-hero__texto { padding-right: clamp(24px, 2.4vw, 44px) !important; }
@media (max-width: 767px) { .gml-presentacion { padding-inline: 20px !important; } .gml-presentacion__col { padding-inline: 0 !important; } }
@media (min-width: 1025px) {
  /* Trabaja con nosotros: sello en la columna 1, texto desde la línea de la columna 2, foto en la mitad derecha */
  .gml-trabaja { padding-inline: var(--gml-frame) !important; column-gap: 0 !important; }
  .gml-trabaja__izq { column-gap: 0 !important; }
  .gml-trabaja__izq > .gml-trabaja__sello { width: 50% !important; align-items: center; }
  .gml-trabaja__izq > .gml-trabaja__texto-col { width: 50% !important; padding-left: clamp(24px, 2.4vw, 44px) !important; }
  .gml-trabaja__media { padding-left: 0 !important; }
  /* Contacto: título y datos desde la columna 2, formulario en la mitad derecha */
  .gml-contacto { padding-inline: var(--gml-frame) !important; column-gap: 0 !important; }
  .gml-contacto > .e-con:first-child, .gml-contacto__variante > .e-con:first-child { width: 50% !important; padding-left: calc(25% + clamp(24px, 2.4vw, 44px)) !important; padding-right: clamp(24px, 2.4vw, 44px) !important; }
  .gml-contacto > .e-con:last-child, .gml-contacto__variante > .e-con:last-child { width: 50% !important; padding-left: clamp(24px, 2.4vw, 44px) !important; padding-right: clamp(24px, 2.4vw, 44px) !important; }
}
/* La rejilla no pasa por la cabecera ni por el pie (sus columnas siguen el arte, no las cuatro de la rejilla) */
.gml-pie { position: relative; z-index: 91; }
/* Largo de línea del cierre: 65-75 caracteres (el contenedor estira, el párrafo no) */
.gml-cierre__texto p { max-width: 40em; }

/* Fondo vivo del hero (gml.js): el lienzo reemplaza al video en equipos con mouse */
.gml-hero__lienzo { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; animation: gml-aparece 1.2s ease-out both; }
.gml-hero--vivo > .elementor-background-video-container { display: none; }

/* ===================== Accesibilidad (auditoría WCAG 2.1 AA, 2026-10-18) ===================== */

/* 1.4.3: palabras apagadas del párrafo que se ilumina, ≥ 4,5:1 sobre navy */
.gml-reveal .w { opacity: .6; }

/* 1.4.3: título de "Trabaja con nosotros" en blanco sobre el azul (navy daba 3,1:1); navy solo sobre el cian */
.gml-trabaja__titulo .elementor-heading-title { color: #fff !important; }
.gml-solutions .gml-trabaja__titulo .elementor-heading-title { color: var(--gml-navy) !important; }

/* 1.4.3: etiquetas del formulario (el gris #737373 daba 3,8:1) */
.gml-contacto__form .elementor-field-group .elementor-field-label { color: #595959; }

/* 2.4.7: foco visible en todo el sitio; amarillo sobre fondos oscuros, azul sobre claros */
:root { --gml-foco: var(--gml-blue); }
.gml-cabecera, .gml-hero, .gml-banda-gigante, .gml-presentacion, .gml-trabaja, .gml-pie, .gml-menu__izq { --gml-foco: var(--gml-people); }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, .elementor-button:focus-visible {
  outline: 2px solid var(--gml-foco) !important; outline-offset: 3px; }
.gml-contacto__form .elementor-field-group:not(.elementor-field-type-acceptance):not(.elementor-field-type-submit):focus-within {
  border-bottom-color: var(--gml-blue); box-shadow: 0 1px 0 0 var(--gml-blue); }
.gml-contacto__form input[type="checkbox"]:focus-visible { outline: 2px solid var(--gml-blue); outline-offset: 2px; }

/* 2.2.2: botón para pausar las animaciones, dentro de la banda en movimiento */
.gml-gigante-caja { position: relative; }
.gml-pausa { position: absolute; right: calc(var(--gml-frame) + 8px); top: 50%; transform: translateY(-50%); width: 44px; height: 44px;
  padding: 0 !important; border: 1px solid rgba(255, 255, 255, .35) !important; border-radius: 50% !important; background: var(--gml-navy) !important;
  display: grid; place-items: center; cursor: pointer; z-index: 2; }
.gml-pausa:hover { border-color: #fff !important; }
.gml-pausa span { width: 12px; height: 14px; border-left: 3px solid #fff; border-right: 3px solid #fff; }
.gml-pausa[aria-pressed="true"] span { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px;
  border-color: transparent transparent transparent #fff; margin-left: 3px; }
.gml-quieto .gml-gigante__pista, .gml-quieto .gml-sello__giro { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { .gml-pausa { display: none; } }

/* Objetivos táctiles: íconos de redes con área de 32 px (44 px en móvil y en el pie) aunque el dibujo sea pequeño */
.gml-redes { gap: 4px; }
.gml-redes a { width: 32px !important; height: 32px !important; display: grid !important; place-items: center; }
.gml-redes svg { width: 16px; height: 16px; }
.gml-redes--pie { gap: 14px; }
.gml-redes--pie a { width: 44px !important; height: 44px !important; }
.gml-redes--pie svg { width: 24px; height: 24px; }
@media (max-width: 767px) {
  .gml-redes a { width: 44px !important; height: 44px !important; }
  .gml-pie .gml-lista { grid-auto-rows: auto; gap: 0; }
  .gml-pie .gml-lista a { display: inline-block; padding: 8px 0; }
  .gml-pie__legal .gml-lista a { display: inline-block; padding: 10px 0; }
}

/* Plantilla de Hello con <main>: el título de la página no se muestra */
.page-template-default.elementor-page .page-header { display: none; }
@media (max-width: 767px) {
  /* Datos de contacto: interlineado parejo y alto suficiente para tocar los enlaces */
  .gml-contacto__datos p { line-height: 2.3; }
  /* Cifras del hero: más chicas y con aire alrededor de las líneas */
  .gml-cifra__numero .elementor-heading-title { font-size: 24px !important; }
  .gml-cifra { padding-right: 8px !important; margin-right: 10px !important; }
  .gml-cifra:last-child { padding-right: 0 !important; margin-right: 0 !important; }
}
@media (max-width: 767px) { .gml-pie .gml-pie__legal .gml-lista { display: flex; flex-wrap: wrap; gap: 0 22px; } }
@media (max-width: 767px) {
  /* Menú a pantalla completa en móvil: filas de ~44 px para el dedo y sin el hueco de escritorio entre columnas */
  .gml-menu .gml-lista { gap: 0; }
  .gml-menu .gml-lista a { display: inline-block; padding: 10px 0; }
  .gml-menu .gml-lista--servicios .gml-vertical { margin-top: 14px; }
  .gml-menu__der .gml-fila-auto { row-gap: 32px !important; }
  /* Enlaces del contacto: área tocable de ~40 px sin cambiar el interlineado */
  .gml-contacto__datos a { display: inline-block; padding: 12px 0; margin: -12px 0; }
}
/* El panel entra desplazado 32 px: sin esto aparece una barra horizontal durante la animación */
.gml-menu { overflow-x: hidden; }

/* ===================== Video con carga diferida: [gml_video] ===================== */
.gml-seccion-video { padding: 0 var(--gml-frame) clamp(56px, 5vw, 96px) !important; }
.gml-video { position: relative; aspect-ratio: 16 / 9; width: 100%; background: #000; overflow: hidden; }
.gml-video__poster, .gml-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.gml-video__poster { opacity: .85; transition: opacity .3s, transform .6s var(--gml-ease); }
.gml-video:hover .gml-video__poster { opacity: 1; transform: scale(1.015); }
.gml-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 88px; height: 88px;
  padding: 0 !important; border: 1px solid rgba(255, 255, 255, .6) !important; border-radius: 50% !important;
  background: rgba(0, 0, 99, .55) !important; display: grid; place-items: center; cursor: pointer; transition: background-color .2s; }
.gml-video__play:hover { background: var(--gml-blue) !important; }
/* (ícono del botón: ver .gml-video__icono) */
.gml-video__rotulo { position: absolute; top: 20px; right: 24px; margin: 0; font-family: "Vin Mono Pro", ui-monospace, monospace;
  font-size: 13px; letter-spacing: .06em; color: #fff; text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }
.gml-video.is-cargado .gml-video__poster, .gml-video.is-cargado .gml-video__play, .gml-video.is-cargado .gml-video__rotulo { display: none; }
@media (max-width: 767px) { .gml-seccion-video { padding: 0 0 48px !important; } .gml-video__play { width: 64px; height: 64px; } }
@media (prefers-reduced-motion: reduce) { .gml-video__poster { transition: none; } }

/* ===================== Páginas legales (contenido de WordPress sin Elementor) ===================== */
.page-template-default:not(.elementor-page) .site-main { max-width: none; padding: 0; margin: 0; }
.page-template-default:not(.elementor-page) .page-header,
.page-template-default:not(.elementor-page) .page-content {
  margin-left: calc(var(--gml-frame) + (100vw - 2 * var(--gml-frame)) * .25 + clamp(24px, 2.4vw, 44px));
  margin-right: var(--gml-frame); max-width: 46em; }
.page-template-default:not(.elementor-page) .page-header { padding-top: clamp(48px, 5vw, 88px); }
.page-template-default:not(.elementor-page) .page-header .entry-title { margin: 0 0 32px; font-family: "Vin Sans Pro", sans-serif; font-weight: 300;
  font-size: clamp(30px, 26.12px + 1.035vw, 46px); line-height: 1.05; color: var(--gml-royal); }
.page-template-default:not(.elementor-page) .page-content { padding-bottom: clamp(56px, 5vw, 96px); font-size: 17px; line-height: 1.7; color: #3d3d3d; }
.page-template-default:not(.elementor-page) .page-content h2 { margin: 2em 0 .6em; font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic;
  text-transform: uppercase; font-size: 19px; letter-spacing: .02em; color: var(--gml-indigo-text); }
.page-template-default:not(.elementor-page) .page-content h3, .page-template-default:not(.elementor-page) .page-content h4 { margin: 1.6em 0 .4em; font-size: 17px; font-weight: 600; color: var(--gml-navy); }
.page-template-default:not(.elementor-page) .page-content a { color: var(--gml-royal); }
.page-template-default:not(.elementor-page) .page-content table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 15px; }
.page-template-default:not(.elementor-page) .page-content th, .page-template-default:not(.elementor-page) .page-content td { border: 1px solid var(--gml-line); padding: 8px 10px; text-align: left; vertical-align: top; }
@media (max-width: 1024px) {
  .page-template-default:not(.elementor-page) .page-header, .page-template-default:not(.elementor-page) .page-content { margin-left: 24px; margin-right: 24px; }
}

/* Logo de CONTENTo en los créditos */
.gml-pie__creditos .gml-pie__contento { display: inline-block; height: 15px; width: auto; margin-left: 6px; vertical-align: -2px; }
/* En páginas de lectura larga (legales) la rejilla no se dibuja: cruzaría los párrafos */
html:has(body.page-template-default:not(.elementor-page))::before { display: none; }
/* Portada del video: degradado para asentar el rótulo y el botón sobre la imagen */
.gml-video::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 40, .35) 0%, rgba(0, 0, 40, 0) 30%, rgba(0, 0, 40, 0) 65%, rgba(0, 0, 40, .45) 100%); }
.gml-video.is-cargado::after { display: none; }
.gml-video__play, .gml-video__rotulo { z-index: 1; }
.gml-video__poster { opacity: 1; }
/* Bloque del video en la rejilla: texto en la columna 1, video en las columnas 2 a 4 */
.gml-seccion-video { padding: 0 var(--gml-frame) clamp(56px, 5vw, 96px) !important; }
.gml-seccion-video__texto { width: 25% !important; padding-right: clamp(24px, 2.4vw, 44px) !important; }
.gml-seccion-video__media { width: 75% !important; }
.gml-seccion-video__titulo .elementor-heading-title { font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-style: normal; text-transform: none;
  font-size: clamp(26px, 23.57px + .647vw, 36px); line-height: 1; color: #fff; }
.gml-seccion-video .gml-video__rotulo { display: none; }
@media (max-width: 1024px) {
  .gml-seccion-video { flex-direction: column !important; gap: 20px !important; padding-inline: 24px !important; }
  .gml-seccion-video__texto, .gml-seccion-video__media { width: 100% !important; }
}
/* Botón del video abajo a la izquierda, para no tapar el logo de la portada */
.gml-video__play { left: 28px; top: auto; bottom: 28px; transform: none; width: auto; height: 56px; padding: 0 22px 0 8px !important;
  border-radius: 999px !important; display: inline-flex; align-items: center; gap: 12px; }
.gml-video__icono { width: 40px; height: 40px; border-radius: 50%; background: #fff; position: relative; flex: none; }
.gml-video__icono::after { content: ""; position: absolute; left: 16px; top: 12px; border-style: solid; border-width: 8px 0 8px 13px;
  border-color: transparent transparent transparent var(--gml-navy); }
.gml-video__play > .gml-video__icono { border: 0; margin: 0; }
.gml-video__ver { font-family: "Vin Mono Pro", ui-monospace, monospace; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
@media (max-width: 767px) { .gml-video__play { left: 14px; bottom: 14px; height: 48px; } .gml-video__icono { width: 34px; height: 34px; } .gml-video__icono::after { left: 13px; top: 9px; } }

/* Fondo animado del hero: se funde con el navy de la sección arriba y abajo (como Armory), sin corte recto */
/* El lienzo dibuja su propio desvanecido (gml.js); la máscara queda para el video de respaldo */
.gml-hero--video > .elementor-background-video-container {
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 55%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 55%, transparent 100%); }
/* Continuidad hero → banda: el velo usa el mismo navy de la sección, el grano se desvanece abajo y la banda no lleva línea arriba */
.gml-hero--video::before {
  background: linear-gradient(90deg, rgba(0, 0, 99, .85) 0%, rgba(0, 0, 99, .55) 45%, rgba(0, 0, 99, .2) 100%); }
.gml-hero--video.gml-grain::after {
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%); }
.gml-hero + .gml-banda-gigante, .gml-hero ~ .gml-banda-gigante { border-top: 0 !important; }
/* Elementor quita el color cuando el fondo es de video: sin esto, donde el lienzo se desvanece asoma el blanco de la página */
.gml-hero--video { background-color: var(--gml-navy) !important; }

/* ===================== Secciones del Home tomadas de gmltech.co ===================== */
:root { --gml-gutter: clamp(24px, 2.4vw, 44px); }
.gml-verticales, .gml-diferenciales, .gml-casos, .gml-clientes { padding: clamp(56px, 5vw, 96px) var(--gml-frame) !important; }
.gml-seccion__cabeza { width: 75% !important; padding: 0 var(--gml-gutter) clamp(36px, 3.4vw, 60px) calc(25% + var(--gml-gutter)) !important; }
.gml-seccion__bajada p { margin: 0; max-width: 38em; }
.gml-casos .gml-seccion__bajada p { color: rgba(255, 255, 255, .8) !important; }

/* Verticales: columna 1 con la vertical, columnas 2 a 4 con un servicio cada una */
.gml-vertical { border-top: 1px solid var(--gml-line); padding: clamp(32px, 3vw, 52px) 0 !important; --gml-acento: var(--gml-people); }
.gml-vertical--solutions { --gml-acento: var(--gml-lime); }
.gml-vertical--intelligence { --gml-acento: var(--gml-intelligence); }
.gml-vertical__info { width: 25% !important; padding: 0 var(--gml-gutter) !important; }
.gml-vertical__logo { position: relative; padding-bottom: 14px; }
.gml-vertical__logo img { width: auto !important; height: 30px !important; filter: brightness(0) saturate(100%) invert(8%) sepia(85%) saturate(6500%) hue-rotate(244deg); }
.gml-vertical__logo::after { content: ""; position: absolute; left: 0; bottom: 0; width: 40px; height: 3px; background: var(--gml-acento); }
.gml-vertical__lema .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: normal; text-transform: none; font-size: 18px; line-height: 1.3; color: var(--gml-navy); }
.gml-vertical__desc p { margin: 0; font-size: 15px !important; }
.gml-vertical__cta .elementor-heading-title, .gml-vertical__cta .elementor-heading-title a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300;
  font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-royal); text-decoration: none; }
.gml-vertical__cta .elementor-heading-title a { display: inline-block; padding: 8px 0; }
.gml-vertical__cta a:hover { color: var(--gml-blue); }
.gml-vertical__servicios { width: 75% !important; }
.gml-servicio { width: calc(100% / 3) !important; flex: none !important; padding: 0 var(--gml-gutter) !important; }
.gml-servicio__foto { overflow: hidden; }
.gml-servicio__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .5s var(--gml-ease); }
.gml-servicio:hover .gml-servicio__foto img { transform: scale(1.04); }
.gml-servicio__nombre .elementor-heading-title, .gml-servicio__nombre .elementor-heading-title a { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic;
  text-transform: uppercase; font-size: 16px; letter-spacing: .02em; color: var(--gml-royal); text-decoration: none; }
.gml-servicio__nombre .elementor-heading-title { display: flex; align-items: center; gap: 10px; }
.gml-servicio__nombre .elementor-heading-title::before { content: ""; width: 10px; height: 10px; flex: none; background: var(--gml-acento); }
.gml-servicio__nombre a:hover { color: var(--gml-blue); }
.gml-servicio__texto p { margin: 0; color: #4d4d4d; }

/* Diferenciales: cinco columnas con divisores finos */
.gml-diferenciales__fila { border-top: 1px solid #d9d9d9; }
.gml-diferencial { flex: 1 1 0 !important; padding: 28px var(--gml-gutter) 8px !important; border-right: 1px solid #d9d9d9; }
.gml-diferencial:last-child { border-right: 0; }
.gml-diferencial__num .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 13px; letter-spacing: .08em; color: var(--gml-blue); }
.gml-diferencial__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: normal; text-transform: none; font-size: 17px; line-height: 1.3; color: var(--gml-navy); }
.gml-diferencial__texto p { margin: 0; color: #4d4d4d; }

/* Casos: filas como en la referencia Armory, alineadas a la rejilla */
.gml-caso { border-top: 1px solid rgba(255, 255, 255, .16); padding: 26px 0 !important; transition: background-color .2s; }
.gml-caso:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.gml-caso:hover { background: rgba(255, 255, 255, .04); }
.gml-caso__marca { width: 25% !important; padding: 0 var(--gml-gutter) !important; }
.gml-caso__logo { background: #fff; width: 96px; height: 96px; display: grid; place-items: center; padding: 14px; }
.gml-caso__logo img { max-width: 100%; max-height: 68px; width: auto !important; height: auto; object-fit: contain; }
.gml-caso__cabeza { width: 25% !important; padding: 0 var(--gml-gutter) !important; }
.gml-caso__eti .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--gml-sky); }
.gml-caso__titular .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: normal; text-transform: none; font-size: 19px; line-height: 1.25; color: #fff; }
.gml-caso__bajada { width: 25% !important; padding: 0 var(--gml-gutter) !important; }
.gml-caso__bajada p { margin: 0; color: rgba(255, 255, 255, .8) !important; }
.gml-caso__accion { width: 25% !important; padding: 0 var(--gml-gutter) !important; text-align: right; }
.gml-caso__accion p { margin: 0; }
.gml-caso__ver { display: inline-block; padding: 10px 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-size: 13px; letter-spacing: .06em;
  text-transform: uppercase; color: #fff; text-decoration: none; border-bottom: 1px solid var(--gml-people); }
.gml-caso__ver:hover { color: var(--gml-people); }

/* Logos de clientes en marquesina */
.gml-clientes { padding-top: clamp(40px, 3.4vw, 64px) !important; padding-bottom: clamp(40px, 3.4vw, 64px) !important; }
.gml-clientes__titulo { padding: 0 var(--gml-gutter) 22px calc(25% + var(--gml-gutter)) !important; }
.gml-clientes__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: #595959; }
.gml-marquee-caja { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.gml-marquee__pista { width: max-content !important; flex-wrap: nowrap !important; animation: gml-marquee 45s linear infinite; }
.gml-cliente { width: auto !important; padding: 0 clamp(24px, 3vw, 52px) !important; display: flex; align-items: center; }
.gml-cliente img { height: 44px !important; width: auto !important; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.gml-cliente:hover img { filter: none; opacity: 1; }
.gml-marquee-caja:hover .gml-marquee__pista, .gml-quieto .gml-marquee__pista { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .gml-marquee__pista { animation: none; flex-wrap: wrap !important; width: auto !important; justify-content: center; } }

@media (max-width: 1024px) {
  .gml-verticales, .gml-diferenciales, .gml-casos, .gml-clientes { padding-inline: 24px !important; }
  .gml-seccion__cabeza, .gml-clientes__titulo { width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
  .gml-vertical { flex-direction: column !important; row-gap: 24px !important; }
  .gml-vertical__info, .gml-vertical__servicios { width: 100% !important; padding-inline: 0 !important; }
  .gml-vertical__servicios { gap: 20px !important; }
  .gml-servicio { padding: 0 !important; flex: 1 1 0 !important; width: auto !important; }
  .gml-diferenciales__fila { flex-wrap: wrap !important; }
  .gml-diferencial { flex: 1 1 33% !important; border-right: 0; border-bottom: 1px solid #d9d9d9; padding-inline: 0 16px !important; }
  .gml-caso { flex-wrap: wrap !important; row-gap: 14px !important; }
  .gml-caso__marca { width: 100% !important; padding: 0 !important; }
  .gml-caso__cabeza, .gml-caso__bajada { width: 50% !important; padding: 0 16px 0 0 !important; }
  .gml-caso__accion { width: 100% !important; text-align: left; padding: 0 !important; }
}
@media (max-width: 767px) {
  .gml-vertical__servicios { flex-direction: column !important; }
  .gml-diferencial { flex: 1 1 100% !important; }
  .gml-caso__cabeza, .gml-caso__bajada { width: 100% !important; }
  .gml-caso__logo { width: 72px; height: 72px; padding: 10px; }
}
.gml-vertical__logo, .gml-vertical__logo .elementor-widget-container, .gml-vertical__logo a { text-align: left !important; }
.gml-vertical__cta .elementor-heading-title, .gml-vertical__cta .elementor-heading-title a { font-style: normal !important; }
/* Diferenciales en filas sobre la rejilla: número en la columna 1, título en la 2, texto en la 3 y 4 */
.gml-diferenciales__fila { flex-direction: column !important; border-top: 0; }
.gml-diferencial { flex-direction: row !important; flex: none !important; align-items: baseline; width: 100% !important; padding: 22px 0 !important;
  border-right: 0 !important; border-top: 1px solid #d9d9d9; }
.gml-diferencial:last-child { border-bottom: 1px solid #d9d9d9; }
.gml-diferencial > .elementor-widget { padding: 0 var(--gml-gutter); }
.gml-diferencial__num { width: 25% !important; }
.gml-diferencial__titulo { width: 25% !important; }
.gml-diferencial__texto { width: 50% !important; }
.gml-diferencial__texto p { font-size: 16px !important; max-width: 32em; }
@media (max-width: 1024px) {
  .gml-diferencial { flex-wrap: wrap !important; row-gap: 6px; }
  .gml-diferencial > .elementor-widget { padding: 0; }
  .gml-diferencial__num { width: 100% !important; }
  .gml-diferencial__titulo { width: 40% !important; padding-right: 16px !important; }
  .gml-diferencial__texto { width: 60% !important; }
}
@media (max-width: 767px) { .gml-diferencial__titulo, .gml-diferencial__texto { width: 100% !important; } }

/* Etiquetas y textos de estas secciones sin la cursiva ni el color del estilo global de encabezados */
.gml-caso__eti .elementor-heading-title, .gml-diferencial__num .elementor-heading-title, .gml-clientes__titulo .elementor-heading-title { font-style: normal !important; }
.gml-caso__ver, .gml-caso__ver:visited { color: #fff !important; font-style: normal; }
.gml-caso__ver:hover { color: var(--gml-people) !important; }
/* Logos de clientes: son blancos (los de gmltech.co), van sobre navy */
.gml-clientes { border-top: 1px solid rgba(255, 255, 255, .12); }
.gml-clientes__titulo .elementor-heading-title { color: rgba(255, 255, 255, .75) !important; }
.gml-cliente img { filter: none !important; opacity: .6; }
.gml-cliente:hover img { opacity: 1; }
/* El video va después de los logos: necesita su propio aire arriba */
.gml-seccion-video { padding-top: clamp(40px, 3.4vw, 64px) !important; }
.gml-seccion-video__texto { padding-left: var(--gml-gutter) !important; }
@media (max-width: 1024px) { .gml-seccion-video__texto { padding-left: 0 !important; } }
/* Tarjeta de servicio clicable entera: el enlace del nombre se extiende sobre la tarjeta (un solo enlace, con texto) */
.gml-servicio { position: relative; }
.gml-servicio__nombre .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.gml-servicio:hover .gml-servicio__nombre a { color: var(--gml-blue); }
@media (max-width: 767px) { .gml-servicio__foto img { aspect-ratio: 16 / 9; } }

/* ===================== Revisión de diseño del Home (2026-10-18) ===================== */
/* Logos de clientes justo después de la banda, sobre blanco: los logos blancos se pasan a gris oscuro */
.gml-clientes { border-top: 0; padding-top: clamp(36px, 3vw, 56px) !important; padding-bottom: clamp(36px, 3vw, 56px) !important; }
.gml-clientes__titulo .elementor-heading-title { color: #595959 !important; }
.gml-cliente img { filter: brightness(0) !important; opacity: .55; }
.gml-cliente:hover img { opacity: .9; }
/* Presentación: video en la mitad izquierda (columnas 1 y 2) */
.gml-presentacion__video { padding: 0 var(--gml-gutter) !important; }
.gml-presentacion__video .gml-video__rotulo { display: none; }
@media (max-width: 1024px) {
  .gml-presentacion { flex-direction: column !important; row-gap: 32px !important; }
  .gml-presentacion__video, .gml-presentacion__col { width: 100% !important; padding-inline: 0 !important; }
}
/* Junto a la banda en movimiento: los logos van más lentos para no competir con ella */
.gml-marquee__pista { animation-duration: 80s !important; }
/* Logos de clientes quietos: rejilla centrada, sin marquesina */
.gml-clientes__fila { justify-content: center; align-items: center; row-gap: 28px !important; padding: 0 var(--gml-gutter) !important; }
.gml-clientes__fila .gml-cliente { padding: 0 clamp(18px, 2.2vw, 40px) !important; }
.gml-clientes__fila .gml-cliente img { height: 38px !important; max-width: 130px; }
@media (max-width: 767px) {
  .gml-clientes__fila { padding: 0 !important; row-gap: 20px !important; }
  .gml-clientes__fila .gml-cliente { width: 33.33% !important; padding: 0 8px !important; justify-content: center; }
  .gml-clientes__fila .gml-cliente img { height: 30px !important; max-width: 100%; }
}
.gml-clientes__titulo { padding-left: 0 !important; padding-right: 0 !important; }
.gml-clientes__titulo .elementor-heading-title { text-align: center; }
/* Banda: el texto se desvanece en los bordes y no pasa por debajo del botón de pausa */
.gml-gigante--mueve { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 calc(100% - var(--gml-frame) - 90px), transparent calc(100% - var(--gml-frame) - 52px));
  mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 calc(100% - var(--gml-frame) - 90px), transparent calc(100% - var(--gml-frame) - 52px)); }
/* Logos de clientes en marquesina otra vez (sin la banda gigante, es el único bucle del Home) */
.gml-clientes { position: relative; }
.gml-marquee__pista { animation-duration: 50s !important; }
.gml-clientes__pausa { position: absolute !important; right: calc(var(--gml-frame) + 8px); top: clamp(28px, 2.6vw, 46px); width: auto !important; }
.gml-pausa.gml-pausa--claro { position: static; transform: none; width: 36px; height: 36px; background: #fff !important; border-color: #bdbdbd !important; }
.gml-pausa--claro span { width: 10px; height: 12px; border-left-color: var(--gml-navy); border-right-color: var(--gml-navy); border-width: 0 3px; }
.gml-pausa--claro[aria-pressed="true"] span { border-width: 7px 0 7px 11px; border-color: transparent transparent transparent var(--gml-navy); }
.gml-pausa--claro:hover { border-color: var(--gml-navy) !important; }
@media (max-width: 767px) { .gml-pausa.gml-pausa--claro { width: 44px; height: 44px; } .gml-clientes__pausa { right: 12px; top: 22px; } }

/* ===================== Diferenciales, rediseño (2026-10-18) =====================
   Mitad izquierda: título fijo al bajar. Mitad derecha: cinco puntos con el número grande como protagonista. */
.gml-diferenciales { flex-direction: row !important; align-items: flex-start !important; background: #fff !important; }
.gml-diferenciales > .gml-seccion__cabeza { width: 50% !important; padding: 0 var(--gml-gutter) !important; position: sticky; top: 120px; }
.gml-diferenciales > .gml-seccion__cabeza .elementor-heading-title { max-width: 14em; }
.gml-diferenciales > .gml-seccion__cabeza h2.elementor-heading-title { font-family: "Vin Sans Pro", sans-serif !important; font-weight: 300 !important; font-style: normal !important;
  text-transform: none !important; font-size: clamp(30px, 25.15px + 1.294vw, 50px) !important; line-height: 1.05 !important; color: var(--gml-navy) !important; }
.gml-diferenciales__fila { width: 50% !important; border-top: 0 !important; }
.gml-diferencial { display: grid !important; grid-template-columns: clamp(64px, 6vw, 96px) 1fr; column-gap: 8px; row-gap: 6px;
  align-items: start; padding: 26px var(--gml-gutter) !important; border-top: 1px solid var(--gml-line) !important; border-bottom: 0 !important; }
.gml-diferencial:last-child { border-bottom: 1px solid var(--gml-line) !important; }
.gml-diferencial > .elementor-widget { padding: 0 !important; width: auto !important; }
.gml-diferencial__num { grid-row: 1 / 3; }
.gml-diferencial__num .elementor-heading-title { font-size: clamp(30px, 26.12px + 1.035vw, 46px) !important; line-height: .9 !important; letter-spacing: 0 !important; color: var(--gml-blue) !important; }
.gml-diferencial__titulo .elementor-heading-title { font-size: 19px !important; }
.gml-diferencial__texto p { font-size: 16px !important; max-width: 30em; }
.gml-diferencial { transition: background-color .2s; }
.gml-diferencial:hover { background: var(--gml-bg-1); }
@media (max-width: 1024px) {
  .gml-diferenciales { flex-direction: column !important; }
  .gml-diferenciales > .gml-seccion__cabeza { position: static; width: 100% !important; padding: 0 0 28px !important; }
  .gml-diferenciales__fila { width: 100% !important; }
  .gml-diferencial { padding: 22px 0 !important; }
}
/* Diferenciales sobre la rejilla: número en la columna 3, título y texto en la 4 (sin cruzar líneas) */
.gml-diferencial { grid-template-columns: 50% 50%; column-gap: 0; padding: 26px 0 !important; }
.gml-diferencial__num, .gml-diferencial__titulo, .gml-diferencial__texto { padding: 0 var(--gml-gutter) !important; }
.gml-diferencial__titulo, .gml-diferencial__texto { grid-column: 2; }
.gml-diferencial__num .elementor-heading-title { font-size: clamp(34px, 28.18px + 1.553vw, 58px) !important; }
.gml-diferenciales > .gml-seccion__cabeza .elementor-heading-title { max-width: 11em; }
@media (max-width: 1024px) {
  .gml-diferencial { grid-template-columns: clamp(64px, 12vw, 96px) 1fr; padding: 22px 0 !important; }
  .gml-diferencial__num, .gml-diferencial__titulo, .gml-diferencial__texto { padding: 0 !important; }
}
.gml-diferencial > .elementor-widget.gml-diferencial__num, .gml-diferencial > .elementor-widget.gml-diferencial__titulo, .gml-diferencial > .elementor-widget.gml-diferencial__texto { padding: 0 var(--gml-gutter) !important; }
@media (max-width: 1024px) { .gml-diferencial > .elementor-widget.gml-diferencial__num, .gml-diferencial > .elementor-widget.gml-diferencial__titulo, .gml-diferencial > .elementor-widget.gml-diferencial__texto { padding: 0 !important; } }

/* ===================== Verticales en paneles (opción B, 2026-10-18) =====================
   Tres paneles con foto; el señalado (mouse o foco de teclado) se expande y muestra sus servicios.
   Sin señalar, el primero queda abierto. En móvil y tableta se apilan, todos abiertos. */
.gml-verticales-b { padding: clamp(56px, 5vw, 96px) var(--gml-frame) !important; }
.gml-verticales__cabeza { padding: 0 0 clamp(32px, 3vw, 52px) !important; }
.gml-verticales__cabeza-izq { padding: 0 var(--gml-gutter) !important; }
.gml-verticales__titulo .elementor-heading-title { font-family: "Vin Sans Pro", sans-serif !important; font-weight: 300 !important; font-style: normal !important;
  text-transform: none !important; font-size: clamp(30px, 25.15px + 1.294vw, 50px) !important; line-height: 1.05 !important; color: #fff !important; }
.gml-verticales__bajada { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
.gml-verticales__bajada p { margin: 0; max-width: 34em; color: rgba(255, 255, 255, .82) !important; }

.gml-paneles { height: clamp(520px, 38vw, 620px); border-top: 1px solid rgba(255, 255, 255, .14); }
.gml-panel { position: relative; flex: 1 1 0 !important; width: auto !important; min-width: 0; overflow: hidden; isolation: isolate;
  border-left: 1px solid rgba(255, 255, 255, .14); background-size: cover !important; background-position: center !important;
  transition: flex-grow .55s var(--gml-ease); --gml-acento: var(--gml-people); }
.gml-panel:last-child { border-right: 1px solid rgba(255, 255, 255, .14); }
.gml-panel--solutions { --gml-acento: var(--gml-lime); }
.gml-panel--intelligence { --gml-acento: #B866FF; }
/* Velo: más oscuro en los paneles cerrados, para que el abierto mande */
.gml-panel::before { content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(0, 0, 70, .62); transition: background-color .45s; }
.gml-panel::after { content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(0deg, rgba(0, 0, 50, .96) 8%, rgba(0, 0, 50, .55) 48%, rgba(0, 0, 50, .1) 100%); }
.gml-panel > * { position: relative; z-index: 1; }
.gml-panel__contenido { position: absolute !important; left: 0; right: 0; bottom: 0; padding: 0 clamp(24px, 2.4vw, 40px) clamp(28px, 2.6vw, 40px) !important; }
.gml-panel__num .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; font-size: clamp(40px, 3.4vw, 58px);
  line-height: 1; color: var(--gml-acento); }
.gml-panel__nombre .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: uppercase;
  font-size: clamp(20px, 1.6vw, 26px); letter-spacing: .01em; line-height: 1.1; color: #fff; }
.gml-panel__lema .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 400; font-style: normal; text-transform: none; font-size: 16px; color: rgba(255, 255, 255, .88); }
/* Lo que se muestra solo en el panel abierto */
.gml-panel__mas { display: grid !important; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s var(--gml-ease), opacity .35s; }
.gml-panel__mas > * { min-height: 0; overflow: hidden; }
.gml-panel__desc p { margin: 8px 0 0; max-width: 32em; color: rgba(255, 255, 255, .82) !important; }
.gml-panel__servicios { list-style: none; margin: 0; padding: 0; max-width: 32em; }
.gml-panel__servicios li { border-top: 1px solid rgba(255, 255, 255, .22); }
.gml-panel__servicios a { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; font-family: "Barlow", sans-serif;
  font-size: 17px; color: #fff; text-decoration: none; transition: color .2s, padding .2s; }
.gml-panel__servicios a:hover, .gml-panel__servicios a:focus-visible { color: var(--gml-acento); padding-left: 6px; }
.gml-panel__flecha { transition: transform .2s; }
.gml-panel__servicios a:hover .gml-panel__flecha { transform: translateX(4px); }
.gml-panel__cta .elementor-heading-title, .gml-panel__cta .elementor-heading-title a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal;
  font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-acento); text-decoration: none; }
.gml-panel__cta a { display: inline-block; padding: 6px 0; }

/* Estado abierto: sin señalar, el primero; al señalar, el señalado */
@media (min-width: 1025px) {
  .gml-panel:first-child, .gml-paneles:hover .gml-panel:hover, .gml-paneles .gml-panel:focus-within { flex-grow: 2.4 !important; }
  .gml-paneles:hover .gml-panel:not(:hover), .gml-paneles:focus-within .gml-panel:not(:focus-within) { flex-grow: 1 !important; }
  .gml-panel:first-child .gml-panel__mas, .gml-paneles:hover .gml-panel:hover .gml-panel__mas, .gml-panel:focus-within .gml-panel__mas { grid-template-rows: 1fr; opacity: 1; }
  .gml-paneles:hover .gml-panel:not(:hover) .gml-panel__mas, .gml-paneles:focus-within .gml-panel:not(:focus-within) .gml-panel__mas { grid-template-rows: 0fr; opacity: 0; }
  .gml-panel:first-child::before, .gml-paneles:hover .gml-panel:hover::before, .gml-panel:focus-within::before { background-color: rgba(0, 0, 70, .2); }
  .gml-paneles:hover .gml-panel:not(:hover)::before, .gml-paneles:focus-within .gml-panel:not(:focus-within)::before { background-color: rgba(0, 0, 70, .62); }
}
@media (max-width: 1024px) {
  .gml-verticales-b { padding-inline: 24px !important; }
  .gml-verticales__cabeza { flex-direction: column !important; align-items: flex-start !important; row-gap: 16px !important; }
  .gml-verticales__cabeza-izq, .gml-verticales__bajada { width: 100% !important; padding: 0 !important; }
  .gml-paneles { height: auto; flex-direction: column !important; border-top: 0; gap: 16px !important; }
  .gml-panel { border: 0 !important; min-height: 440px; }
  .gml-panel::before { background: rgba(0, 0, 70, .25); }
  .gml-panel__mas { grid-template-rows: 1fr; opacity: 1; }
  .gml-panel__contenido { padding: 0 22px 26px !important; }
}
@media (prefers-reduced-motion: reduce) { .gml-panel, .gml-panel__mas, .gml-panel::before { transition: none; } }
/* Presentación sobre blanco: texto oscuro; las palabras apagadas del párrafo siguen con contraste AA */
.gml-presentacion { border-top: 1px solid var(--gml-line); }
.gml-presentacion__texto p { color: #3d3d3d !important; }
.gml-presentacion .gml-reveal .w:not(.on) { opacity: .78; }
/* Contenido oculto de los paneles cerrados: altura cero de verdad (la rejilla 0fr dejaba espacio de los widgets) */
.gml-panel__mas { display: flex !important; max-height: 0; overflow: hidden; gap: 14px !important; transition: max-height .55s var(--gml-ease), opacity .35s; }
@media (min-width: 1025px) {
  .gml-panel:first-child .gml-panel__mas, .gml-paneles:hover .gml-panel:hover .gml-panel__mas, .gml-panel:focus-within .gml-panel__mas { max-height: 420px; }
  .gml-paneles:hover .gml-panel:not(:hover) .gml-panel__mas, .gml-paneles:focus-within .gml-panel:not(:focus-within) .gml-panel__mas { max-height: 0; }
}
@media (max-width: 1024px) { .gml-panel__mas { max-height: none; } }

/* ===================== Casos: destacado con selector (opción A, 2026-10-18) ===================== */
.gml-casos-a { padding: clamp(56px, 5vw, 96px) var(--gml-frame) !important; }
.gml-casos-sel { display: grid; grid-template-columns: 25% 75%; }
.gml-casos-sel__lista { padding: 0 var(--gml-gutter); border-top: 0; }
.gml-casos-sel__lista [role="tab"] { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); cursor: pointer; font-family: "Vin Sans Pro", sans-serif; font-weight: 300;
  font-size: clamp(22px, 19.57px + .647vw, 30px); line-height: 1.1; color: rgba(255, 255, 255, .62); transition: color .2s; }
.gml-casos-sel__lista [role="tab"]:first-child { border-top: 1px solid rgba(255, 255, 255, .2); }
.gml-casos-sel__lista [role="tab"]:hover { color: #fff; }
.gml-casos-sel__lista [role="tab"][aria-selected="true"] { color: #fff; }
.gml-casos-sel__flecha { font-family: "Barlow", sans-serif; font-size: 22px; color: var(--gml-people); opacity: 0; transform: translateX(-8px); transition: opacity .2s, transform .25s var(--gml-ease); }
.gml-casos-sel__lista [role="tab"][aria-selected="true"] .gml-casos-sel__flecha { opacity: 1; transform: none; }
.gml-casos-sel__lista [role="tab"]:focus-visible { outline: 2px solid var(--gml-people); outline-offset: 4px; }
.gml-caso-panel { display: grid; grid-template-columns: 2fr 1fr; align-items: center; }
.gml-casos-sel.is-js .gml-caso-panel:not(.is-activo) { display: none; }
.gml-casos-sel.is-js .gml-caso-panel.is-activo { animation: gml-aparece .35s ease-out both; }
.gml-caso-panel:focus-visible { outline: 2px solid var(--gml-people); outline-offset: 6px; }
.gml-caso-panel__portada { display: block; padding: 0 var(--gml-gutter); }
.gml-caso-panel__portada img { width: 100%; height: auto; display: block; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); transition: transform .4s var(--gml-ease); }
.gml-caso-panel__portada:hover img { transform: translateY(-4px); }
.gml-caso-panel__texto { padding: 0 var(--gml-gutter); }
.gml-caso-panel__eti { margin: 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-sky); }
.gml-caso-panel__texto h3 { margin: 12px 0 14px; font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-style: normal; text-transform: none;
  font-size: clamp(28px, 24.12px + 1.035vw, 40px); line-height: 1.05; color: #fff; }
.gml-caso-panel__bajada { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, .82); }
.gml-caso-panel__cifras { display: flex; gap: 28px; margin: 0 0 24px; }
.gml-caso-panel__cifras b { display: block; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: clamp(32px, 2.6vw, 44px); line-height: 1; color: var(--gml-people); }
.gml-caso-panel__cifras span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.35; color: rgba(255, 255, 255, .78); max-width: 12em; }
@media (max-width: 1024px) {
  .gml-casos-a { padding-inline: 24px !important; }
  .gml-casos-sel { grid-template-columns: 1fr; row-gap: 28px; }
  .gml-casos-sel__lista { padding: 0; display: flex; overflow-x: auto; gap: 8px; scrollbar-width: none; }
  .gml-casos-sel__lista [role="tab"] { width: auto; flex: none; border: 1px solid rgba(255, 255, 255, .3) !important; padding: 10px 16px; font-size: 18px; }
  .gml-casos-sel__lista [role="tab"][aria-selected="true"] { background: #fff; color: var(--gml-navy); }
  .gml-casos-sel__flecha { display: none; }
  .gml-caso-panel { grid-template-columns: 1fr; row-gap: 22px; }
  .gml-caso-panel__portada, .gml-caso-panel__texto { padding: 0; }
}
@media (prefers-reduced-motion: reduce) { .gml-casos-sel.is-js .gml-caso-panel.is-activo { animation: none; } .gml-casos-sel__flecha, .gml-caso-panel__portada img { transition: none; } }

/* ===================== Revisión 2026-10-18: cierre y "Trabaja con nosotros" sobre la rejilla ===================== */
/* Cierre: titular en las columnas 1 y 2; texto y botón en las columnas 3 y 4, alineados abajo */
@media (min-width: 1025px) {
  .gml-cierre { flex-direction: row !important; align-items: flex-end !important; padding-inline: var(--gml-frame) !important; column-gap: 0 !important; }
  .gml-cierre > .gml-cierre__titulo { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
  .gml-cierre > .gml-cierre__pie { width: 50% !important; flex-direction: column !important; align-items: flex-start !important; gap: 24px !important; padding: 0 var(--gml-gutter) !important; }
  .gml-cierre__pie > .gml-cierre__texto { flex: none !important; width: 100% !important; }
}
@media (max-width: 1024px) {
  .gml-cierre { padding-inline: 24px !important; }
  .gml-cierre__pie { flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; }
}
/* Trabaja con nosotros: la sombra de la foto va hacia adentro, sin salirse del marco */
.gml-trabaja__foto img { box-shadow: -18px 18px 0 0 var(--gml-navy) !important; }
.gml-trabaja__media { padding-left: 18px !important; }
@media (min-width: 1025px) { .gml-trabaja__izq { align-items: center !important; } .gml-trabaja__izq > .gml-trabaja__sello { justify-content: center; } }

/* ===================== Hover de botones según el fondo (2026-10-18) ===================== */
/* Cabecera (navy): azul → blanco con texto navy */
.gml-cabecera .gml-btn .elementor-button:hover, .gml-cabecera .gml-btn .elementor-button:focus-visible,
.gml-menu .gml-btn .elementor-button:hover, .gml-menu .gml-btn .elementor-button:focus-visible { background-color: #fff !important; color: var(--gml-navy) !important; }
.gml-cabecera .gml-btn .elementor-button:hover .elementor-button-text, .gml-menu .gml-btn .elementor-button:hover .elementor-button-text { color: var(--gml-navy) !important; }
/* Secciones claras (cierre, contacto): el sólido pasa a navy, nunca a blanco */
.gml-cierre .elementor-widget.gml-cta--solido .elementor-button:hover,
.gml-cierre .elementor-widget.gml-cta--solido .elementor-button:focus-visible { background: var(--gml-navy) !important; color: #fff !important; }
/* "Trabaja con nosotros" (azul): navy → blanco con texto navy */
.gml-trabaja .gml-btn .elementor-button:hover, .gml-trabaja .gml-btn .elementor-button:focus-visible { background-color: #fff !important; color: var(--gml-navy) !important; }
.gml-trabaja .gml-btn .elementor-button:hover .elementor-button-text { color: var(--gml-navy) !important; }
/* Transición suave en todos */
.elementor-button { transition: background-color .2s, color .2s, border-color .2s; }

/* ===================== Hover de redes sociales (2026-10-18) =====================
   Un círculo de color aparece detrás del ícono y el ícono cambia de color; nunca baja la opacidad. */
.gml-redes a { border-radius: 50%; opacity: 1 !important; transition: background-color .2s, color .2s, transform .2s; }
.gml-redes a:hover, .gml-redes a:focus-visible { transform: translateY(-2px); }
/* Barra superior (sobre navy): ícono azul cielo → círculo blanco con ícono navy */
.gml-topbar .gml-redes a:hover, .gml-topbar .gml-redes a:focus-visible { background: #fff; color: var(--gml-navy); }
/* Pie (sobre índigo): ícono amarillo → círculo amarillo con ícono navy */
.gml-redes--pie a:hover, .gml-redes--pie a:focus-visible { background: var(--gml-people); color: var(--gml-navy); }
/* Menú a pantalla completa (sobre claro): ícono navy → círculo navy con ícono blanco */
.gml-redes--menu a:hover, .gml-redes--menu a:focus-visible { background: var(--gml-navy); color: #fff; }
@media (prefers-reduced-motion: reduce) { .gml-redes a:hover, .gml-redes a:focus-visible { transform: none; } }

/* ===================== Barra superior: Políticas, PQRSF, Soporte y redes como botones blancos (2026-10-18) =====================
   Como los botones de gmltech.co, en blanco y al tamaño de nuestra barra. Hover: amarillo de la marca. */
.gml-topbar .gml-topbar__enlace .elementor-heading-title a {
  display: inline-flex; align-items: center; height: 26px; padding: 0 12px; background: #fff; color: var(--gml-navy) !important;
  font-family: "Barlow", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
  transition: background-color .2s, color .2s; }
.gml-topbar .gml-topbar__enlace .elementor-heading-title a:hover,
.gml-topbar .gml-topbar__enlace .elementor-heading-title a:focus-visible { background: var(--gml-people); color: var(--gml-navy) !important; }
.gml-topbar .gml-redes { gap: 6px; }
.gml-topbar .gml-redes a { width: 26px !important; height: 26px !important; border-radius: 0 !important; background: #fff; color: var(--gml-navy) !important; transform: none !important; }
.gml-topbar .gml-redes svg { width: 14px; height: 14px; }
.gml-topbar .gml-redes a:hover, .gml-topbar .gml-redes a:focus-visible { background: var(--gml-people) !important; color: var(--gml-navy) !important; }
/* Grupo derecho más compacto para que los botones respiren parejo */
.gml-topbar > .e-con:last-child, .gml-topbar > .e-con-inner > .e-con:last-child { column-gap: 10px !important; }
.gml-topbar .gml-idioma { margin-right: 8px; }

/* ===================== Plantilla de servicio (Staffing IT, 2026-10-18) =====================
   elementor/servicio.py. Rejilla: etiqueta y título en la columna 1 (25 %), contenido en las columnas 2 a 4.
   El color de la vertical llega por la clase del body (gml-people, gml-solutions…) en --gml-accent. */
.gml-sv { padding: clamp(56px, 5vw, 96px) var(--gml-frame) !important; }
.gml-sv-fila { width: 100%; column-gap: 0 !important; }
.gml-sv-col1 { width: 25% !important; flex: none !important; padding: 0 var(--gml-gutter) !important; }
.gml-sv-col1 + * { width: 75% !important; padding: 0 var(--gml-gutter) !important; }
@media (max-width: 1024px) {
  .gml-sv { padding-inline: 24px !important; flex-direction: column !important; }
  .gml-sv-col1, .gml-sv-col1 + * { width: 100% !important; padding: 0 !important; }
  .gml-sv-col1 { margin-bottom: 24px; }
}

/* Hero: fondo del color de la vertical con grano; texto desde la línea de la columna 2 */
.gml-sv-hero { padding: calc(clamp(34px, 2.3vw, 44px) + clamp(110px, 9vw, 150px)) var(--gml-frame) clamp(56px, 5vw, 88px) !important;
  background-size: cover !important; background-position: center !important; }
.gml-sv-hero__texto, .gml-sv-hero__cifras { margin-left: 25%; padding: 0 var(--gml-gutter) !important; width: 75% !important; }
/* La línea de las cifras arranca donde arranca el texto, no en la línea de la columna */
.gml-sv-hero .gml-sv-hero__cifras { margin-left: calc(25% + var(--gml-gutter)); width: auto !important; padding: 24px 0 0 !important; }
@media (max-width: 1024px) { .gml-sv-hero .gml-sv-hero__cifras { margin-left: 0; } }
.gml-sv-hero__servicio .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: uppercase;
  font-size: clamp(16px, 15.03px + .259vw, 20px); letter-spacing: .02em; color: var(--gml-navy); }
.gml-sv-hero__titulo .elementor-heading-title { max-width: 15em; }
.gml-sv-hero__titulo .gml-hl { padding: 0 .14em .04em; margin-left: -.04em;
  background: linear-gradient(var(--gml-blue), var(--gml-blue)) left center / 100% 100% no-repeat; }
.gml-sv-hero__bajada p { margin: 0; max-width: 34em; color: var(--gml-navy) !important; }
.gml-sv-hero .gml-cifras { border-top-color: rgba(0, 0, 99, .25); }
.gml-sv-hero .gml-cifra { border-right-color: rgba(0, 0, 99, .25); }
.gml-sv-hero .gml-cifra__numero .elementor-heading-title { color: var(--gml-navy); }
.gml-sv-hero .gml-cifra__etiqueta .elementor-heading-title { color: var(--gml-navy); }
/* Botón navy sobre fondo claro o de color: pasa a azul con texto blanco (≥ 5,9:1), nunca a blanco sobre amarillo */
.elementor-widget.gml-cta--navy .elementor-button { background: var(--gml-navy); color: #fff; }
.elementor-widget.gml-cta--navy .elementor-button:hover,
.elementor-widget.gml-cta--navy .elementor-button:focus-visible { background: var(--gml-blue); color: #fff; }
.elementor-widget.gml-cta--navy .elementor-button-text::after { content: " »"; }
.gml-sv .elementor-widget.gml-cta .elementor-button:focus-visible,
.gml-sv-hero .elementor-widget.gml-cta .elementor-button:focus-visible { outline-color: var(--gml-navy); }
@media (prefers-reduced-motion: no-preference) {
  .gml-sv-hero__titulo .elementor-heading-title { animation: gml-mascara .8s var(--gml-ease) .1s both; }
  .gml-sv-hero__titulo .gml-hl { animation: gml-caja .55s var(--gml-ease) .7s both; }
  .gml-sv-hero__servicio { animation: gml-aparece .5s var(--gml-ease) both; }
  .gml-sv-hero__bajada, .gml-sv-hero__texto > .gml-cta, .gml-sv-hero__cifras { animation: gml-llega .6s var(--gml-ease) .85s both; }
  .gml-sv-hero__texto > .gml-cta { animation-delay: .95s; }
  .gml-sv-hero__cifras { animation-delay: 1.05s; }
}
.elementor-editor-active .gml-sv-hero * { animation: none !important; }
@media (max-width: 1024px) {
  .gml-sv-hero { padding: 150px 24px 56px !important; }
  .gml-sv-hero__texto, .gml-sv-hero__cifras { margin-left: 0; width: 100% !important; padding: 0 !important; }
}
@media (max-width: 767px) { .gml-sv-hero { padding-top: 120px !important; } }

/* El servicio: marca de la vertical en la columna 1, título en las columnas 2 a 4; reto en la 2, solución en la 3 y 4 */
.gml-sv-marca { width: 25% !important; flex: none !important; padding: 0 var(--gml-gutter) !important; align-items: flex-start; }
.gml-sv-marca__logo img { width: clamp(150px, 12vw, 200px) !important; height: auto; }
.gml-sv-servicio__titulo { width: 75% !important; padding: 0 var(--gml-gutter) !important; }
.gml-sv-servicio__textos { margin-top: clamp(36px, 3.4vw, 56px); }
.gml-sv-reto { width: 25% !important; margin-left: 25%; padding: 0 var(--gml-gutter) !important; }
.gml-sv-solucion { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
.gml-sv-reto p, .gml-sv-solucion p { margin: 0; }
.gml-sv-solucion p { max-width: 32em; line-height: 1.55; }
@media (max-width: 1024px) {
  .gml-sv-servicio .gml-sv-fila { flex-direction: column !important; align-items: flex-start !important; row-gap: 20px; }
  .gml-sv-marca, .gml-sv-servicio__titulo, .gml-sv-reto, .gml-sv-solucion { width: 100% !important; margin-left: 0; padding: 0 !important; }
  .gml-sv-servicio__textos { row-gap: 32px !important; }
}

/* Qué incluye: foto de borde a la línea del centro, panel del color de la vertical en las columnas 3 y 4 */
.gml-sv-incluye { padding: 0 !important; background-color: var(--gml-accent) !important; }
.gml-sv-incluye__media { width: 50% !important; flex: none !important; }
.gml-sv-incluye__foto, .gml-sv-incluye__foto .elementor-widget-container { height: 100%; }
.gml-sv-incluye__foto img { width: 100%; height: 100% !important; min-height: 420px; object-fit: cover; display: block; }
.gml-sv-incluye__panel { width: 50% !important; padding: clamp(56px, 5vw, 88px) calc(var(--gml-frame) + var(--gml-gutter)) clamp(56px, 5vw, 88px) var(--gml-gutter) !important; }
.gml-sv-incluye__panel .gml-sv-cabeza { margin-bottom: clamp(28px, 2.6vw, 44px); }
.gml-sv-incluye__items { row-gap: 32px !important; column-gap: 0 !important; }
.gml-sv-incluye__item { width: 50% !important; padding-right: var(--gml-gutter) !important; }
.gml-sv-icono { display: block; color: var(--gml-royal); }
.gml-sv-incluye__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: none;
  font-size: 18px; line-height: 1.25; color: var(--gml-royal); }
.gml-sv-incluye__texto p { margin: 0; max-width: 26em; }
@media (max-width: 1024px) {
  .gml-sv-incluye { flex-direction: column !important; }
  .gml-sv-incluye__media, .gml-sv-incluye__panel { width: 100% !important; }
  .gml-sv-incluye__foto img { min-height: 0; height: 300px !important; }
  .gml-sv-incluye__panel { padding: 48px 24px !important; }
}
@media (max-width: 600px) { .gml-sv-incluye__item { width: 100% !important; padding-right: 0 !important; } }

/* Para quién es: frase en las columnas 2 a 4 */
.gml-sv-para { border-top: 1px solid var(--gml-line); align-items: baseline !important; }
.gml-sv-para__texto p { margin: 0; max-width: 40em; }

/* Cómo funciona: un paso por columna, unidos por una línea */
.gml-sv-pasos__cabeza .gml-sv-cabeza { width: 25%; padding: 0 var(--gml-gutter) !important; }
.gml-sv-pasos__fila { margin-top: clamp(32px, 3vw, 52px); }
.gml-sv-paso { flex: 1 1 0 !important; width: 25% !important; padding: 0 var(--gml-gutter) !important; position: relative; }
.gml-sv-paso__num .elementor-heading-title { display: flex; align-items: center; gap: 14px; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300;
  font-style: normal; font-size: clamp(34px, 28.18px + 1.553vw, 58px); line-height: 1; color: var(--gml-blue); }
.gml-sv-paso__num .elementor-heading-title::after { content: ""; flex: 1; height: 1px; background: #cfcfe6; }
.gml-sv-paso:last-child .gml-sv-paso__num .elementor-heading-title::after { display: none; }
.gml-sv-paso__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: normal; text-transform: none;
  font-size: 19px; line-height: 1.3; color: var(--gml-navy); }
.gml-sv-paso__texto p { margin: 0; max-width: 22em; }
@media (max-width: 1024px) {
  .gml-sv-pasos__cabeza .gml-sv-cabeza { width: 100%; padding: 0 !important; }
  .gml-sv-pasos__fila { flex-wrap: wrap !important; row-gap: 36px !important; }
  .gml-sv-pasos__fila { flex-direction: row !important; }
  .gml-sv-paso { flex: none !important; width: 50% !important; padding: 0 24px 0 0 !important; }
  .gml-sv-paso__num .elementor-heading-title::after { display: none; }
}
@media (max-width: 600px) { .gml-sv-paso { width: 100% !important; } }

/* Modalidades y niveles: texto en la columna 1, una tarjeta por columna en la 2, 3 y 4 */
.gml-sv-niveles { align-items: stretch !important; }
.gml-sv-niveles__texto p { margin: 0; font-size: 16px; line-height: 1.6; }
.gml-sv-niveles__texto strong { color: var(--gml-navy); font-weight: 600; }
.elementor-element.gml-sv-niveles__tarjetas { padding: 0 !important; align-items: stretch !important; }
.gml-sv-nivel { flex: 1 1 0 !important; width: auto !important; margin: 0 var(--gml-gutter); background: #fff; padding: clamp(24px, 2.2vw, 36px) clamp(20px, 1.8vw, 30px) !important;
  border-top: 3px solid var(--gml-accent); }
.gml-sv-nivel__nombre { display: flex; align-items: center; gap: 12px; margin: 0; }
.gml-sv-nivel__num { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: clamp(32px, 2.6vw, 44px); line-height: 1; color: var(--gml-blue); }
.gml-sv-nivel__nombre .gml-hl { --gml-hl-bg: var(--gml-accent); color: var(--gml-navy); font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic;
  text-transform: uppercase; font-size: 18px; letter-spacing: .02em; padding: .15em .45em; }
.gml-sv-nivel__desc p { margin: 0; }
.gml-sv-nivel__lista p.gml-sv-nivel__incluye { margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--gml-navy); }
.gml-sv-nivel__lista ul { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.45; color: #4d4d4d; }
.gml-sv-nivel__lista li { padding: 7px 0 7px 18px; border-top: 1px solid var(--gml-line); position: relative; }
.gml-sv-nivel__lista li::before { content: ""; position: absolute; left: 0; top: 14px; width: 6px; height: 6px; background: var(--gml-accent); }
@media (max-width: 1024px) {
  .gml-sv-niveles__tarjetas { flex-direction: column !important; row-gap: 16px !important; }
  .gml-sv-nivel { margin: 0; }
}

/* Por qué GML: reusa los diferenciales del Home */
.gml-sv-porque { border-top: 1px solid var(--gml-line); }

/* Guía descargable: portada en las columnas 1 y 2, texto en la 3 y 4 */
.gml-sv-guia { border-top: 1px solid var(--gml-line); }
.gml-sv-guia__media, .gml-sv-guia__texto { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
.gml-sv-guia__img img { width: 100%; max-width: 560px; height: auto; display: block; margin-inline: auto; }
.gml-sv-guia__titulo .elementor-heading-title { max-width: 11em; }
.gml-sv-guia__sub p { margin: 0; max-width: 28em; }
@media (max-width: 1024px) { .gml-sv-guia__media, .gml-sv-guia__texto { width: 100% !important; padding: 0 !important; } .gml-sv-guia { row-gap: 24px !important; } }

/* Resultados: el caso destacado del Home, sin selector, en las columnas 2 a 4 */
.gml-sv-caso .gml-caso-panel__portada { padding: 0 var(--gml-gutter) 0 0; }
.gml-sv-caso .gml-caso-panel__texto { padding: 0 0 0 var(--gml-gutter); }
@media (max-width: 1024px) { .gml-sv-caso .gml-caso-panel { grid-template-columns: 1fr; } .gml-sv-caso .gml-caso-panel__portada, .gml-sv-caso .gml-caso-panel__texto { padding: 0; } }

/* Preguntas frecuentes: acordeón nativo (<details>), en las columnas 2 a 4 */
.gml-faq { border-top: 1px solid var(--gml-line); max-width: 860px; }
.gml-faq__item { border-bottom: 1px solid var(--gml-line); }
.gml-faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 0; cursor: pointer;
  font-family: "Barlow", sans-serif; font-weight: 600; font-size: 18px; line-height: 1.35; color: var(--gml-navy); transition: color .2s; }
.gml-faq__item summary::-webkit-details-marker { display: none; }
.gml-faq__item summary:hover { color: var(--gml-blue); }
.gml-faq__item summary:focus-visible { outline: 2px solid var(--gml-blue); outline-offset: 4px; }
.gml-faq__signo { position: relative; width: 16px; height: 16px; flex: none; }
.gml-faq__signo::before, .gml-faq__signo::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--gml-blue); transition: transform .25s var(--gml-ease); }
.gml-faq__signo::after { transform: rotate(90deg); }
.gml-faq__item[open] .gml-faq__signo::after { transform: rotate(0deg); }
.gml-faq__resp p { margin: 0 0 22px; max-width: 40em; font-size: 16px; line-height: 1.6; color: #4d4d4d; }
@media (prefers-reduced-motion: reduce) { .gml-faq__signo::before, .gml-faq__signo::after { transition: none; } }

/* Cierre: franja del color de la vertical; pregunta en las columnas 2 y 3, botón en la 4 */
.gml-sv-cierre { padding-block: clamp(44px, 4vw, 72px) !important; background-size: cover !important; background-position: center 70% !important; }
.gml-sv-cierre__titulo { width: 50% !important; margin-left: 25%; padding: 0 var(--gml-gutter) !important; }
.gml-sv-cierre__titulo .elementor-heading-title { font-size: clamp(20px, 18.06px + .518vw, 28px) !important; line-height: 1.2; color: var(--gml-navy) !important; }
.gml-sv-cierre > .elementor-widget-button { width: 25% !important; padding: 0 var(--gml-gutter) !important; }
@media (max-width: 1024px) {
  .gml-sv-cierre { row-gap: 20px !important; align-items: flex-start !important; }
  .gml-sv-cierre__titulo, .gml-sv-cierre > .elementor-widget-button { width: 100% !important; margin-left: 0; padding: 0 !important; }
}

/* Marcador de páginas madre sin diseño */
.gml-sv-marcador { min-height: 40vh; }

/* Cabecera clara (hero amarillo): menú en navy; hover en royal (el azul cielo no se lee sobre amarillo) */
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-nav__item > a { color: var(--gml-navy); }
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-nav__item > a:hover,
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-nav__item:focus-within > a { color: var(--gml-royal); }
.gml-cabecera-clara .gml-cabecera__barra:not(.is-fija) .gml-nav__lista { border-color: rgba(0, 0, 99, .3); }

/* Hero de servicio (2026-10-19): como el arte de Staffing (degradado naranja → amarillo con grano, texto a la derecha),
   con el lenguaje del Home: campo de bloques que sigue al cursor, mezclado en overlay sobre el degradado. */
.gml-hero--bloques { overflow: hidden; }
/* Degradados por vertical: People y Solutions medidos en los .ai de Staffing y Odoo/HIVA; Intelligence (sin arte) sale del violeta de la marca */
.gml-fondo--amarillo { background: linear-gradient(100deg, #F87505 0%, #F88A06 35%, #F99F06 68%, #F9AE06 100%) !important; }
.gml-fondo--verde { background: linear-gradient(100deg, #089A4A 0%, #1DB02C 35%, #3CC818 65%, #6BE010 100%) !important; }
.gml-fondo--violeta { background: linear-gradient(100deg, #3A0078 0%, #5F00B0 45%, #8F00E1 100%) !important; }
.gml-hero--bloques .gml-hero__lienzo { mix-blend-mode: overlay; }
.gml-hero--bloques > .e-con { z-index: 2; }
.gml-hero--bloques.gml-grain::after { z-index: 1; opacity: .55; }
.gml-sv-hero { padding: calc(clamp(34px, 2.3vw, 44px) + clamp(100px, 8vw, 136px)) var(--gml-frame) clamp(64px, 6vw, 112px) !important; }
/* Texto alineado a la derecha, terminando antes de la línea de la columna 4, como en el arte */
.gml-sv-hero .gml-sv-hero__texto { margin-left: 0; width: 75% !important; padding: 0 var(--gml-gutter) !important; align-items: flex-end !important; text-align: right; }
.gml-sv-hero__texto .elementor-heading-title, .gml-sv-hero__texto p { text-align: right; }
.gml-sv-hero__texto .elementor-widget { width: auto; max-width: 100%; }
.gml-sv-hero .gml-sv-hero__servicio .elementor-heading-title { font-family: "Barlow Semi Condensed", "Barlow", sans-serif; font-weight: 300; font-style: italic;
  text-transform: uppercase; font-size: clamp(20px, 17.57px + .647vw, 30px); letter-spacing: .01em; color: var(--gml-navy); }
.gml-sv-hero .gml-sv-hero__titulo .elementor-heading-title { color: var(--gml-royal); max-width: none; }
.gml-sv-hero .gml-sv-hero__titulo .gml-hl { background: linear-gradient(var(--gml-sky), var(--gml-sky)) left center / 100% 100% no-repeat; margin-left: 0; }
.gml-sv-hero .gml-sv-hero__bajada p { max-width: 36em; margin-left: auto; color: var(--gml-navy) !important; font-weight: 400; }
.gml-sv-hero .gml-btn .elementor-button { background: var(--gml-navy) !important; color: #fff !important; }
.gml-sv-hero .gml-btn .elementor-button:hover, .gml-sv-hero .gml-btn .elementor-button:focus-visible { background: var(--gml-blue) !important; color: #fff !important; }
.gml-sv-hero .gml-btn .elementor-button:focus-visible { outline: 2px solid var(--gml-navy); outline-offset: 3px; }
.gml-sv-hero__confianza { margin-top: 8px; }
.gml-sv-hero__confianza .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; text-transform: uppercase;
  font-size: 12px; letter-spacing: .08em; line-height: 1.6; color: var(--gml-navy); }
@media (prefers-reduced-motion: no-preference) {
  .gml-sv-hero__texto > .gml-btn, .gml-sv-hero__confianza { animation: gml-llega .6s var(--gml-ease) .95s both; }
  .gml-sv-hero__confianza { animation-delay: 1.05s; }
}
@media (max-width: 1024px) {
  .gml-sv-hero { padding: 150px 24px 64px !important; }
  .gml-sv-hero .gml-sv-hero__texto { width: 100% !important; padding: 0 !important; align-items: flex-start !important; text-align: left; }
  .gml-sv-hero__texto .elementor-heading-title, .gml-sv-hero__texto p { text-align: left; }
  .gml-sv-hero .gml-sv-hero__bajada p { margin-left: 0; }
}
@media (max-width: 767px) { .gml-sv-hero { padding-top: 120px !important; } }
.gml-sv-hero .gml-sv-hero__bajada p { max-width: none; }
@media (max-width: 1024px) { .gml-br { display: none; } }

/* ===================== Plantilla de servicio: los siete servicios (2026-10-19) ===================== */
/* Hero y cierre sobre degradado oscuro (Intelligence): texto blanco, botón blanco con texto navy */
.gml-sv--oscuro .gml-sv-hero__servicio .elementor-heading-title, .gml-sv--oscuro .gml-sv-hero__confianza .elementor-heading-title { color: #fff !important; }
.gml-sv-hero.gml-sv--oscuro .gml-sv-hero__titulo .elementor-heading-title { color: #fff !important; }
.gml-sv-hero.gml-sv--oscuro .gml-sv-hero__titulo .gml-hl { background: linear-gradient(var(--gml-blue), var(--gml-blue)) left center / 100% 100% no-repeat; }
.gml-sv-hero.gml-sv--oscuro .gml-sv-hero__bajada p { color: rgba(255, 255, 255, .92) !important; }
.gml-sv--oscuro .gml-btn .elementor-button { background: #fff !important; color: var(--gml-navy) !important; }
.gml-sv--oscuro .gml-btn .elementor-button:hover, .gml-sv--oscuro .gml-btn .elementor-button:focus-visible { background: var(--gml-people) !important; color: var(--gml-navy) !important; }
.gml-sv--oscuro .gml-btn .elementor-button:focus-visible { outline-color: #fff !important; }
.gml-sv-cierre.gml-sv--oscuro .gml-sv-cierre__titulo .elementor-heading-title { color: #fff !important; }
/* Cierre: botón en Vin Mono como el del hero */
.gml-sv-cierre .gml-btn .elementor-button { background: var(--gml-navy); color: #fff; }
.gml-sv-cierre:not(.gml-sv--oscuro) .gml-btn .elementor-button:hover, .gml-sv-cierre:not(.gml-sv--oscuro) .gml-btn .elementor-button:focus-visible { background: var(--gml-blue) !important; color: #fff !important; }

/* Panel de la vertical: en Intelligence el violeta es oscuro y el texto va en blanco */
.gml-sv-incluye__intro p { margin: -12px 0 28px; }
.gml-intelligence .gml-sv-incluye .elementor-heading-title, .gml-intelligence .gml-sv-incluye p,
.gml-intelligence .gml-sv-incluye .gml-sv-icono { color: #fff !important; }
.gml-intelligence .gml-sv-incluye .gml-eyebrow .elementor-heading-title::before { background: #fff; }

/* Segunda lista (HIVA: Qué incluye): 2 × 2 en las columnas 2 a 4 */
.gml-sv-lista { border-top: 1px solid var(--gml-line); }
.gml-sv-lista__items { row-gap: 36px !important; }
.gml-sv-lista__item { width: 50% !important; padding-right: var(--gml-gutter) !important; }
.gml-sv-lista .gml-sv-icono { color: var(--gml-blue); }
.gml-sv-lista__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: normal; text-transform: none; font-size: 19px; color: var(--gml-navy); }
.gml-sv-lista__texto p { margin: 0; max-width: 28em; color: #4d4d4d !important; }
@media (max-width: 600px) { .gml-sv-lista__item { width: 100% !important; padding-right: 0 !important; } }

/* Planes o niveles con cuatro tarjetas: cabeza arriba, una tarjeta por columna */
.gml-sv-niveles--4 > .gml-sv-niveles__intro { width: 50% !important; margin-bottom: clamp(32px, 3vw, 52px); }
.gml-sv-niveles--4 > .gml-sv-niveles__tarjetas { width: 100% !important; padding: 0 !important; }
.gml-sv-niveles--4 .gml-sv-nivel { margin: 0 var(--gml-gutter); }
.gml-sv-nivel__extra { margin: 10px 0 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-royal); }
.gml-intelligence .gml-sv-nivel__nombre .gml-hl { color: #fff; }
@media (max-width: 1024px) {
  .gml-sv-niveles--4 > .gml-sv-niveles__intro { width: 100% !important; }
  .gml-sv-niveles--4 .gml-sv-nivel { margin: 0; }
}
.gml-sv-niveles--4 .gml-sv-nivel__nombre .gml-hl { font-size: 15px; }
.gml-sv-niveles--4 .gml-sv-nivel__num { font-size: clamp(28px, 2.2vw, 38px); }
/* La foto del panel llena su mitad sin imponer su alto (una foto vertical estiraba el panel) */
@media (min-width: 1025px) {
  .gml-sv-incluye__media { position: relative; min-height: 440px; }
  .gml-sv-incluye__media > .gml-sv-incluye__foto { position: absolute; inset: 0; }
  .gml-sv-incluye__foto img { position: absolute; inset: 0; min-height: 0; }
}

/* ===================== Hubs y Nosotros (elementor/institucional.py, 2026-10-19) ===================== */
.gml-fondo--navy { background: linear-gradient(100deg, #000046 0%, #000063 45%, #000099 100%) !important; }

/* Hub de vertical: una tarjeta por servicio, una por columna desde la columna 2 */
.gml-hub-tarjetas { align-items: stretch !important; }
.gml-hub-tarjeta { width: calc(100% / 3) !important; flex: none !important; padding: 0 var(--gml-gutter) !important; position: relative; }
.gml-hub-tarjeta__foto img { width: 100%; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; display: block; transition: transform .4s var(--gml-ease); }
.gml-hub-tarjeta__foto { overflow: hidden; }
.gml-hub-tarjeta:hover .gml-hub-tarjeta__foto img { transform: scale(1.03); }
.gml-hub-tarjeta__nombre .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: uppercase; font-size: 20px; color: var(--gml-royal); }
.gml-hub-tarjeta__nombre a { color: inherit; text-decoration: none; }
/* Toda la tarjeta es clicable: el enlace del nombre se extiende sobre ella (un solo enlace, con texto) */
.gml-hub-tarjeta__nombre a::after { content: ""; position: absolute; inset: 0; }
.gml-hub-tarjeta__nombre a:focus-visible { outline: none; }
.gml-hub-tarjeta:has(a:focus-visible) { outline: 2px solid var(--gml-blue); outline-offset: 4px; }
.gml-hub-tarjeta__texto p { margin: 0; max-width: 30em; }
.gml-hub-tarjeta__cta .elementor-heading-title { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; text-transform: uppercase;
  font-size: 13px; letter-spacing: .06em; color: var(--gml-navy); transition: color .2s; }
.gml-hub-tarjeta:hover .gml-hub-tarjeta__cta .elementor-heading-title { color: var(--gml-blue); }
/* Otras verticales */
.gml-hub-otra { width: calc(100% / 3) !important; flex: none !important; padding: 0 var(--gml-gutter) !important; border-top: 3px solid var(--gml-blue); padding-top: 20px !important; }
.gml-hub-otra--people { border-top-color: var(--gml-people); }
.gml-hub-otra--solutions { border-top-color: var(--gml-lime); }
.gml-hub-otra--intelligence { border-top-color: var(--gml-intelligence); }
.gml-hub-otra__nombre .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: uppercase; font-size: 18px; color: var(--gml-royal); }
.gml-hub-otra__lema .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 400; font-style: normal; text-transform: none; font-size: 16px; color: #4d4d4d; }
.gml-hub-otra__cta .elementor-heading-title, .gml-hub-otra__cta a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; text-transform: uppercase;
  font-size: 13px; letter-spacing: .06em; color: var(--gml-navy); text-decoration: none; }
.gml-hub-otra__cta a:hover, .gml-hub-otra__cta a:focus-visible { color: var(--gml-blue); }
@media (max-width: 1024px) {
  .gml-hub-tarjetas, .gml-hub-otras { flex-direction: column !important; row-gap: 36px !important; }
  .gml-hub-tarjeta, .gml-hub-otra { width: 100% !important; padding-inline: 0 !important; }
}
/* Qué hacemos: los paneles del Home sin su cabeza; aire arriba */
.gml-hub-paneles { padding-top: clamp(56px, 5vw, 96px) !important; }

/* Nosotros */
.gml-nos-quienes__texto p, .gml-nos-dragonfly__texto p { margin: 0; max-width: 34em; line-height: 1.55; }
.gml-nos-sello img { width: 100% !important; max-width: 260px; height: auto; }
.gml-nos-valores { align-items: flex-start !important; }
.gml-nos-valor { width: calc(100% / 3) !important; flex: none !important; padding: 0 var(--gml-gutter) !important; border-top: 1px solid var(--gml-line); padding-top: 22px !important; }
.gml-nos-valor__titulo .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 600; font-style: italic; text-transform: uppercase; font-size: 20px; color: var(--gml-royal); }
.gml-nos-valor__texto p { margin: 0; }
.gml-nos-iso img { width: 120px !important; height: auto; }
.gml-nos-respaldo__texto p { margin: 0; max-width: 34em; color: rgba(255, 255, 255, .9) !important; }
.gml-nos-sellos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.gml-nos-sellos li { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  color: #fff; border: 1px solid rgba(255, 255, 255, .35); padding: 8px 12px; }
.gml-sv-incluye.gml-nos-gente { background-color: var(--gml-navy) !important; }
.gml-nos-gente .gml-sv-incluye__panel .elementor-heading-title, .gml-nos-gente .gml-sv-incluye__panel p { color: #fff !important; }
.gml-nos-gente .gml-eyebrow .elementor-heading-title::before { background: #fff; }
.gml-nos-gente__texto p { margin: 0; max-width: 30em; }
@media (max-width: 1024px) {
  .gml-nos-valores { flex-direction: column !important; row-gap: 28px !important; }
  .gml-nos-valor { width: 100% !important; padding-inline: 0 !important; }
}

/* ===================== Casos de éxito (elementor/casos.py, 2026-10-19) ===================== */
.gml-caso-logo img { width: 120px !important; height: auto; }
.gml-caso-resumen__texto p { margin: 0; max-width: 36em; line-height: 1.55; }
.gml-caso-ficha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--gml-gutter); margin: 0; border-top: 1px solid var(--gml-line); }
.gml-caso-ficha > div { padding: 14px 0; border-bottom: 1px solid var(--gml-line); }
.gml-caso-ficha dt { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gml-royal); }
.gml-caso-ficha dd { margin: 4px 0 0; font-size: 15px; line-height: 1.45; color: #3d3d3d; }
@media (max-width: 767px) { .gml-caso-ficha { grid-template-columns: 1fr; } }
/* Cifras del caso sobre navy, una por columna */
.gml-caso-cifras { align-items: flex-start !important; }
.gml-caso-cifra { width: calc(100% / 3) !important; flex: none !important; padding: 0 var(--gml-gutter) !important; border-left: 1px solid rgba(255, 255, 255, .2); }
.gml-caso-cifra .gml-cifra__numero .elementor-heading-title { color: var(--gml-people) !important; font-size: clamp(36px, 30.18px + 1.553vw, 60px) !important; line-height: 1; }
.gml-caso-cifra .gml-cifra__etiqueta .elementor-heading-title { font-family: "Barlow", sans-serif; font-weight: 400; font-style: normal; text-transform: none; font-size: 15px; color: rgba(255, 255, 255, .82); max-width: 16em; }
@media (max-width: 1024px) { .gml-caso-cifras { flex-direction: column !important; row-gap: 28px !important; } .gml-caso-cifra { width: 100% !important; padding: 0 0 0 16px !important; } }
/* Resultados clave */
.gml-caso-resultados { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--gml-gutter); }
.gml-caso-resultados li { padding: 18px 0 18px 22px; border-top: 1px solid var(--gml-line); position: relative; font-weight: 600; font-size: 16px; line-height: 1.35; color: var(--gml-navy); }
.gml-caso-resultados li::before { content: ""; position: absolute; left: 0; top: 24px; width: 8px; height: 8px; background: var(--gml-blue); }
@media (max-width: 1024px) { .gml-caso-resultados { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .gml-caso-resultados { grid-template-columns: 1fr; } }
/* Testimonio */
.gml-caso-cita { margin: 0; }
.gml-caso-cita blockquote { margin: 0; }
.gml-caso-cita p { margin: 0; max-width: 24em; font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-size: clamp(24px, 20.12px + 1.035vw, 38px); line-height: 1.2; color: #fff; }
.gml-caso-cita figcaption { margin-top: 22px; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--gml-sky); }
/* Descarga: portada del PDF */
.gml-caso-portada img { width: 100%; height: auto; display: block; box-shadow: 0 24px 50px rgba(0, 0, 60, .2); }
.gml-caso-servicio .elementor-heading-title, .gml-caso-servicio a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal; text-transform: uppercase;
  font-size: 13px; letter-spacing: .06em; color: var(--gml-navy); text-decoration: none; }
.gml-caso-servicio a:hover, .gml-caso-servicio a:focus-visible { color: var(--gml-blue); }
/* Tarjetas de caso (listado y "Otros casos"): tres por fila en las columnas 2 a 4 */
.gml-casos-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px var(--gml-gutter); }
.gml-caso-tarjeta { position: relative; display: flex; flex-direction: column; gap: 10px; }
.gml-caso-tarjeta[hidden] { display: none; }
.gml-caso-tarjeta img { width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; display: block; margin-bottom: 8px; transition: transform .4s var(--gml-ease); }
.gml-caso-tarjeta:hover img { transform: translateY(-4px); }
.gml-caso-tarjeta__eti { margin: 0; font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-royal); }
.gml-caso-tarjeta h3 { margin: 0; font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-style: normal; text-transform: none; font-size: clamp(22px, 20.06px + .518vw, 28px); line-height: 1.1; color: var(--gml-navy); }
.gml-caso-tarjeta h3 a { color: inherit; text-decoration: none; }
.gml-caso-tarjeta h3 a::after { content: ""; position: absolute; inset: 0; }
.gml-caso-tarjeta:has(a:focus-visible) { outline: 2px solid var(--gml-blue); outline-offset: 6px; }
.gml-caso-tarjeta h3 a:focus-visible { outline: none; }
.gml-caso-tarjeta__bajada { margin: 0; font-size: 15px; line-height: 1.5; color: #4d4d4d; }
.gml-caso-tarjeta__cta { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-navy); }
.gml-caso-tarjeta:hover .gml-caso-tarjeta__cta { color: var(--gml-blue); }
@media (max-width: 1024px) { .gml-casos-rejilla { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .gml-casos-rejilla { grid-template-columns: 1fr; } }
/* Filtros */
.gml-filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.gml-filtros button { all: unset; box-sizing: border-box; cursor: pointer; min-height: 40px; padding: 8px 14px; border: 1px solid var(--gml-line);
  font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--gml-navy);
  transition: background-color .2s, color .2s, border-color .2s; }
.gml-filtros button:hover { border-color: var(--gml-navy); }
.gml-filtros button[aria-pressed="true"] { background: var(--gml-navy); border-color: var(--gml-navy); color: #fff; }
.gml-filtros button:focus-visible { outline: 2px solid var(--gml-blue); outline-offset: 3px; }
@media (max-width: 767px) { .gml-filtros button { min-height: 44px; } }

/* ===================== Formularios de /contacto/ (elementor/contacto.py, 2026-10-19) ===================== */
/* En las páginas de formulario no va el bloque de contacto del pie */
.gml-sin-contacto .elementor-location-footer .gml-contacto { display: none !important; }
.gml-form-pag { scroll-margin-top: 90px; }
/* Listas desplegables y casillas con el mismo subrayado que los campos de texto */
/* Lista desplegable: etiqueta arriba y caja blanca (diseño elegido por Carlos), con margen interno para que el texto
   y la flecha no toquen los bordes de la caja. */
.elementor-kit-6 .gml-contacto__form .elementor-select-wrapper select { border: 0; border-radius: 0; box-shadow: none; background-color: #fff;
  padding: 8px 40px 8px 14px; font-family: "Barlow", sans-serif; font-size: 16px; color: var(--gml-navy); min-height: 42px; cursor: pointer; }
.gml-contacto__form .elementor-select-wrapper .select-caret-down-wrapper { right: 14px !important; inset-inline-end: 14px !important; color: var(--gml-navy); }
.gml-contacto__form .elementor-field-type-select { padding-bottom: 10px; }
.gml-contacto__form .elementor-select-wrapper .select-caret-down-wrapper { right: 0; }
.gml-contacto__form .elementor-field-type-checkbox .elementor-field-subgroup { gap: 6px 18px; padding: 6px 0; }
.gml-contacto__form .elementor-field-type-checkbox .elementor-field-option label { font-size: 15px; color: var(--gml-navy); }
.gml-form-agenda .elementor-heading-title, .gml-form-agenda a { font-family: "Vin Mono Pro", ui-monospace, monospace; font-weight: 300; font-style: normal;
  text-transform: uppercase; font-size: 12px; letter-spacing: .06em; line-height: 1.6; color: var(--gml-royal); text-decoration: none; }
.gml-form-agenda a:hover, .gml-form-agenda a:focus-visible { color: var(--gml-blue); text-decoration: underline; }
/* /contacto/: las cuatro vías */
.gml-contacto-vias { list-style: none; margin: 0; padding: 0; max-width: 860px; border-top: 1px solid var(--gml-line); }
.gml-contacto-vias li { border-bottom: 1px solid var(--gml-line); }
.gml-contacto-vias a { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; text-decoration: none;
  font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-size: clamp(22px, 20.06px + .518vw, 30px); color: var(--gml-navy); transition: color .2s, padding .2s; }
.gml-contacto-vias a:hover, .gml-contacto-vias a:focus-visible { color: var(--gml-blue); padding-left: 8px; }
.gml-contacto-vias a:focus-visible { outline: 2px solid var(--gml-blue); outline-offset: 4px; }

/* ===================== Recursos, FAQ y 404 (elementor/recursos.py, 2026-10-19) ===================== */
.gml-faq-pag + .gml-faq-pag { border-top: 1px solid var(--gml-line); padding-top: clamp(40px, 3.6vw, 64px) !important; }
.gml-faq-pag { scroll-margin-top: 90px; padding-bottom: clamp(40px, 3.6vw, 64px) !important; }
.gml-contacto-vias__prox { display: flex; justify-content: space-between; align-items: center; padding: 22px 0;
  font-family: "Vin Sans Pro", sans-serif; font-weight: 300; font-size: clamp(22px, 20.06px + .518vw, 30px); color: #6b6b6b; }
.gml-contacto-vias__prox span:last-child { font-family: "Vin Mono Pro", ui-monospace, monospace; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
/* 404 */
.gml-404 { min-height: 60vh; align-items: center !important; }
.gml-404__texto { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
.gml-404__texto p { margin: 0; color: rgba(255, 255, 255, .9) !important; }
.gml-404__vias { width: 50% !important; padding: 0 var(--gml-gutter) !important; }
.gml-404 .gml-hl { background: var(--gml-blue); }
.gml-contacto-vias--oscuro { border-top-color: rgba(255, 255, 255, .2); }
.gml-contacto-vias--oscuro li { border-bottom-color: rgba(255, 255, 255, .2); }
.gml-contacto-vias--oscuro a { color: #fff; }
.gml-contacto-vias--oscuro a:hover, .gml-contacto-vias--oscuro a:focus-visible { color: var(--gml-people); }
.gml-contacto-vias--oscuro a:focus-visible { outline-color: var(--gml-people); }
@media (max-width: 1024px) { .gml-404__texto, .gml-404__vias { width: 100% !important; padding: 0 !important; } .gml-404 { row-gap: 32px !important; } }

/* ===================== Auditoría de márgenes (2026-10-19, skill ui-ux-pro-max) =====================
   Nada pegado al borde: marco mínimo de 24 px en tableta y 20 px en móvil (antes 22 y 16 por el cálculo con vw). */
@media (max-width: 1024px) { :root { --gml-frame: 24px; } }
@media (max-width: 767px) { :root { --gml-frame: 20px; } }
/* Hero del Home en tableta vertical: texto y foto apilados (lado a lado, las cifras se apretaban contra la foto) */
@media (min-width: 768px) and (max-width: 900px) {
  .gml-hero--teckko .gml-hero__cuerpo { flex-direction: column !important; row-gap: 36px !important; }
  .gml-hero--teckko .gml-hero__texto, .gml-hero--teckko .gml-hero__media { width: 100% !important; padding-right: 0 !important; }
  .gml-hero--teckko .gml-hero__foto img { max-height: 420px; }
}
/* Cifras: el número nunca toca su línea divisoria */
.gml-cifra { padding-right: clamp(20px, 2.4vw, 46px) !important; }
.gml-cifra:last-child { padding-right: 0 !important; }
/* Botón de pausa de los logos: al menos 20 px del borde en móvil */
@media (max-width: 767px) { .gml-clientes__pausa { right: 20px !important; } }

/* Paneles de verticales: sin bordes blancos (con el movimiento se veían como un pixel claro entre fotos) y por encima
   de la rejilla fija, que no debe cruzar las fotos. Separación: 2 px del navy de la sección. */
.gml-paneles { position: relative; z-index: 91; gap: 2px !important; border-top: 0 !important; background: var(--gml-navy); }
.gml-panel, .gml-panel:last-child { border-left: 0 !important; border-right: 0 !important; background-color: var(--gml-navy); }

/* ===================== Ajustes de GML (ajustes/Ajustes-base.pdf, 2026-10-28) ===================== */
/* Toda la cabecera (barra superior y barra del menú) queda fija al bajar, no solo la barra del menú.
   En el flujo normal va con sticky; sobre un hero va fija desde el principio (el hero ya le deja el espacio).
   gml.js pone body.gml-cabecera-fija al bajar: entonces toma el fondo navy en cualquier página. */
.elementor-location-header { position: sticky; top: 0; transition: background-color .25s, box-shadow .25s; }
body.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .elementor-location-header { top: 46px; } }
.gml-cabecera-sobre-hero .elementor-location-header { position: fixed; }
body.gml-cabecera-fija .elementor-location-header,
.gml-cabecera-navy .elementor-location-header { background: var(--gml-navy); }
body.gml-cabecera-fija .elementor-location-header { box-shadow: 0 2px 16px rgba(0, 0, 40, .25); }
.gml-cabecera__barra.is-fija { position: relative; top: auto !important; box-shadow: none; }
/* Cabecera clara (hero amarillo): al bajar, sobre navy, vuelve a los textos claros */
body.gml-cabecera-clara.gml-cabecera-fija .gml-cabecera { --gml-cab-texto: rgba(255, 255, 255, .85); --gml-cab-enlace: var(--gml-sky); --gml-cab-logo: #fff; }
body.gml-cabecera-clara.gml-cabecera-fija .gml-topbar { border-bottom-color: rgba(255, 255, 255, .45); }
/* Destinos de anclas y títulos fijos por debajo de la cabecera completa */
.gml-contacto { scroll-margin-top: 130px; }
.gml-diferenciales > .gml-seccion__cabeza { top: 150px; }
@media (prefers-reduced-motion: reduce) { .elementor-location-header { transition: none; } }

/* Botón de la cabecera con el texto largo de los ajustes */
.gml-cabecera__barra .gml-btn .elementor-button { white-space: nowrap; }

/* Desplegables de la barra superior ("Haz parte de GML" y "Políticas"): botón blanco como PQRSF y Soporte */
.gml-desp { position: relative; }
/* La barra superior por encima de la barra del menú, para que sus paneles no queden debajo */
.gml-topbar { position: relative; z-index: 3; }
.gml-topbar__desp .elementor-widget-container { display: flex; align-items: center; }
/* !important: el kit aplica el estilo de botón a todos los <button> */
.gml-desp__boton { all: unset; box-sizing: border-box; display: inline-flex !important; align-items: center; gap: 8px; height: 26px; padding: 0 12px !important; cursor: pointer;
  background: #fff !important; color: var(--gml-navy) !important; border: 0 !important; border-radius: 0 !important; font-family: "Barlow", sans-serif !important;
  font-weight: 600 !important; font-size: 12px !important; letter-spacing: .06em !important; text-transform: uppercase; line-height: 1 !important; transition: background-color .2s; }
.gml-desp__boton::after { content: ""; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-2px) rotate(45deg); }
.gml-desp:hover .gml-desp__boton, .gml-desp__boton:focus-visible, .gml-desp__boton[aria-expanded="true"] { background: var(--gml-people) !important; }
.gml-desp__boton:focus-visible { outline: 2px solid var(--gml-people); outline-offset: 3px; }
.gml-desp__panel { position: absolute; top: calc(100% + 10px); right: 0; z-index: 130; min-width: 290px; margin: 0; padding: 10px 20px; list-style: none;
  background: #fff; border-top: 3px solid var(--gml-blue); box-shadow: 0 18px 40px rgba(0, 0, 40, .22);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility 0s linear .2s; }
.gml-desp__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.gml-desp:hover .gml-desp__panel, .gml-desp:focus-within .gml-desp__panel, .gml-desp.is-abierto .gml-desp__panel {
  opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.gml-desp__panel li + li { border-top: 1px solid var(--gml-line); }
.gml-desp__panel a, .gml-desp__panel span { display: block; padding: 11px 0; font-family: "Barlow", sans-serif; font-size: 14px; line-height: 1.35;
  color: var(--gml-navy); text-decoration: none; }
.gml-desp__panel a:hover { color: var(--gml-blue); }
.gml-desp__panel a:focus-visible { outline: 2px solid var(--gml-blue); outline-offset: 2px; }
.gml-desp__panel em { font-style: normal; font-size: 12px; color: #666; }
@media (prefers-reduced-motion: reduce) { .gml-desp__panel { transition: none; } }

/* Desplegable de cada vertical en el menú: compacto y marcado con el color de la vertical */
.gml-v-people { --gml-v: var(--gml-people); }
.gml-v-solutions { --gml-v: #9AF100; }
.gml-v-intelligence { --gml-v: var(--gml-intelligence); }
.gml-nav__panel { min-width: 240px; padding: 12px 24px 14px; border-top-color: var(--gml-v, var(--gml-blue)); }
.gml-nav__panel .gml-lista { gap: 0; }
.gml-nav__panel .gml-lista li + li { border-top: 1px solid var(--gml-line); }
.gml-nav__panel .gml-lista a { display: flex; align-items: center; gap: 10px; padding: 9px 0; }
.gml-nav__panel .gml-lista a::before { content: ""; width: 6px; height: 6px; flex: none; background: var(--gml-v, var(--gml-blue)); }
/* Menú a pantalla completa: el mismo color de vertical en los títulos de grupo */
.gml-menu .gml-vertical[class*="gml-v-"] a { border-left: 3px solid var(--gml-v); padding-left: 10px; }

/* Bloque de contacto: dos variantes, la de People (Solicita talento) solo en las páginas de esa vertical */
.elementor-location-footer .gml-contacto { flex-direction: column !important; }
.elementor-location-footer .gml-contacto > .e-con.gml-contacto__variante { width: 100% !important; padding: 0 !important; column-gap: 0 !important; }
.gml-contacto--people, body.gml-people .gml-contacto--general { display: none !important; }
body.gml-people .gml-contacto--people { display: flex !important; }
@media (max-width: 767px) { .gml-contacto__variante { flex-direction: column !important; } }

/* Home: menos espacio entre secciones */
.home .gml-presentacion, .home .gml-verticales-b, .home .gml-diferenciales, .home .gml-casos-a, .home .gml-clientes {
  padding-top: clamp(40px, 3.4vw, 64px) !important; padding-bottom: clamp(40px, 3.4vw, 64px) !important; }

/* Paneles de verticales: logo de la vertical en vez del nombre en texto (el nombre queda para lectores de pantalla) */
.gml-panel__marca { margin: 4px 0 2px; }
.gml-panel__logo img { display: block; height: clamp(22px, 1.9vw, 32px) !important; width: auto !important; max-width: 100%; }

/* Diferenciales con ícono: junto al número, al final de la columna 3 */
.gml-diferencial > .elementor-widget.gml-diferencial__num { grid-column: 1; }
.gml-diferencial > .elementor-widget.gml-diferencial__icono { grid-column: 1; grid-row: 1 / 3; justify-self: end; padding: 0 var(--gml-gutter) !important; color: var(--gml-blue); }
.gml-diferencial__svg { display: block; width: clamp(40px, 3vw, 54px); height: auto; }
@media (max-width: 1024px) {
  .gml-diferencial { grid-template-columns: clamp(56px, 10vw, 80px) 52px 1fr !important; }
  .gml-diferencial > .elementor-widget.gml-diferencial__icono { grid-column: 2; justify-self: start; padding: 0 !important; }
  .gml-diferencial__titulo, .gml-diferencial__texto { grid-column: 3 !important; }
}

/* Casos: la pestaña activa y las cifras en el color de la vertical del caso. Texto navy sobre amarillo y verde;
   el violeta de las cifras se aclara porque #8F00E1 sobre navy no llega a 3:1. */
.gml-casos-sel__lista [role="tab"][aria-selected="true"] { background: var(--gml-v, var(--gml-blue)) !important; color: var(--gml-navy) !important; padding-inline: 14px !important; }
.gml-casos-sel__lista [role="tab"].gml-v-intelligence[aria-selected="true"] { color: #fff !important; }
.gml-casos-sel__lista [role="tab"][aria-selected="true"] .gml-casos-sel__flecha { color: currentColor; }
.gml-caso-panel.gml-v-people .gml-caso-panel__cifras b { color: var(--gml-people); }
.gml-caso-panel.gml-v-solutions .gml-caso-panel__cifras b { color: #9AF100; }
.gml-caso-panel.gml-v-intelligence .gml-caso-panel__cifras b { color: #C27BFF; }

/* ===================== iPhone / Safari (2026-11-02) ===================== */
/* Video de "Quiénes somos": en móvil la columna flex medía 0 de alto (el 16:9 no cuenta como contenido) y el video
   tapaba el título y el texto. En bloque toma la altura del video. */
@media (max-width: 1024px) { .gml-presentacion__video { display: block !important; } }
/* Marquesina de logos: Safari parpadea con mask-image sobre un hijo animado; el desvanecido pasa a dos degradados
   blancos encima, y la pista va en su propia capa. */
.gml-marquee-caja { position: relative; -webkit-mask-image: none; mask-image: none; }
.gml-marquee-caja::before, .gml-marquee-caja::after { content: ""; position: absolute; top: 0; bottom: 0; width: 8%; z-index: 1; pointer-events: none; }
.gml-marquee-caja::before { left: 0; background: linear-gradient(90deg, #fff, rgba(255, 255, 255, 0)); }
.gml-marquee-caja::after { right: 0; background: linear-gradient(270deg, #fff, rgba(255, 255, 255, 0)); }
.gml-marquee__pista { -webkit-backface-visibility: hidden; backface-visibility: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .gml-marquee__pista { will-change: transform; animation-name: gml-marquee-3d; }
}
@keyframes gml-marquee-3d { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 767px) {
  .gml-cliente { padding: 0 18px !important; }
  .gml-cliente img { height: 30px !important; max-width: 110px; }
  .gml-marquee__pista { animation-duration: 32s !important; }
}
