:root {
    --black: #0a0a0a;
    --white: #ffffff;
    --gray-50: #f8f8f6;
    --gray-100: #f0efe9;
    --gray-200: #e2e0d8;
    --gray-400: #a09e96;
    --gray-600: #5a5955;
    --accent: #1C63EF;
    --accent-light: #18AAEC;
    --accent-dark: #0055BA;
    --green: #00c878;
    --font-display: 'Lato', sans-serif;
    --font-body: 'Lato', sans-serif;
    --nav-height: 72px;
    --section-pad: 4.25rem 0;
    --radius: 12px;
    --radius-lg: 20px;
    --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  .mobile-only { display: none !important; }
  .desktop-only { display: inline !important; }

  @media (max-width: 1024px) {
    .mobile-only  { display: inline !important; }
    .desktop-only { display: none !important; }
  }

  html { scroll-behavior: smooth; }body {
    font-family: var(--font-body);
    background: var(--white);
    color: var(--black);
    overflow-x: hidden;
    font-size: 16px;
    line-height: 1.6;
  }html, body,
  p, h1, h2, h3, h4, h5, h6,
  li, span, a, label, button,
  input, textarea, select,
  div, section, article, aside, header, footer, nav,
  th, td, caption, figcaption, blockquote, cite,
  small, strong, em, b, i, u, s, strike, code, pre {
    word-break: normal;
    overflow-wrap: normal;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
  }a[href^="http"],
  a[href^="mailto:"],
  a[href^="tel:"],
  code,
  pre,
  .wizard-error a,
  .form-hint a,
  .field-hint a,
  .contact-info-card a,
  input[value*="http"],
  input[value*="@"],
  textarea {
    overflow-wrap: anywhere;
    word-break: normal;
  }img { max-width: 100%; display: block; }a { text-decoration: none; color: inherit; }ul { list-style: none; }button { cursor: pointer; border: none; background: none; font-family: inherit; }.container { max-width: 1240px; margin: 0 auto; padding: 0 2rem; }.container--wide { max-width: 1400px; margin: 0 auto; padding: 0 2rem; }.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }/* Section debug overlay. Toggle with Alt/Option+Shift+D or ?debug-sections=1 */
  body.debug-sections {
    --debug-section-outline: rgba(28, 99, 239, 0.45);
    --debug-element-outline: rgba(24, 170, 236, 0.38);
    --debug-padding-fill: rgba(0, 200, 120, 0.16);
    --debug-margin-fill: rgba(255, 167, 38, 0.2);
    --debug-content-outline: rgba(28, 99, 239, 0.95);
  }body.debug-sections nav[id],
  body.debug-sections main,
  body.debug-sections section[id],
  body.debug-sections section[class],
  body.debug-sections div[id],
  body.debug-sections footer[id] {
    position: relative;
    box-shadow: inset 0 0 0 2px var(--debug-section-outline);
  }body.debug-sections nav[id] *,
  body.debug-sections main *,
  body.debug-sections section[id] *,
  body.debug-sections section[class] *,
  body.debug-sections div[id] *,
  body.debug-sections footer[id] * {
    outline: 1px dashed var(--debug-element-outline);
    outline-offset: -1px;
  }body.debug-sections nav[id]::before,
  body.debug-sections main::before,
  body.debug-sections section[id]::before,
  body.debug-sections section[class]::before,
  body.debug-sections div[id]::before,
  body.debug-sections footer[id]::before {
    content: attr(data-debug-label);
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 999;
    padding: 0.28rem 0.5rem;
    border-radius: 999px;
    background: rgba(28, 99, 239, 0.92);
    color: var(--white);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    pointer-events: none;
  }body.debug-sections .debug-inspector {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 2000;
    width: min(360px, calc(100vw - 2rem));
    padding: 0.8rem 0.9rem;
    border-radius: 14px;
    border: 1px solid rgba(28, 99, 239, 0.24);
    background: rgba(10, 10, 10, 0.92);
    color: var(--white);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(12px);
    font-size: 0.82rem;
    line-height: 1.45;
    pointer-events: none;
  }body.debug-sections .debug-inspector[hidden] {
    display: none;
  }body.debug-sections .debug-inspector__title {
    display: block;
    margin-bottom: 0.55rem;
    color: #8ed3ff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }body.debug-sections .debug-inspector__metrics {
    display: grid;
    gap: 0.18rem;
  }body.debug-sections .debug-inspector__metric {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
  }body.debug-sections .debug-inspector__metric strong {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }body.debug-sections .debug-inspector__metric span {
    text-align: right;
    font-variant-numeric: tabular-nums;
  }body.debug-sections .debug-overlay {
    position: fixed;
    z-index: 1998;
    pointer-events: none;
  }body.debug-sections .debug-overlay[hidden] {
    display: none;
  }body.debug-sections .debug-overlay--margin {
    background: var(--debug-margin-fill);
  }body.debug-sections .debug-overlay--padding {
    background: var(--debug-padding-fill);
  }body.debug-sections .debug-overlay--content {
    border: 2px solid var(--debug-content-outline);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  }/* ─── NAVBAR ─────────────────────────────────────── */
#navbar {
  /* base: barra transparente con texto oscuro */
  --nav-bg: transparent;
  --nav-shadow: none;
  --nav-fg: rgba(10, 10, 10, 0.85);
  --nav-strong: #000;
  --nav-hover-bg: rgba(0, 85, 186, 0.08);
  --nav-accent: var(--accent-dark);
  --nav-line: var(--gray-200);
  --nav-logo-filter: none;
  --nav-cta-bg: var(--white);
  --nav-cta-fg: var(--black);
  --nav-cta-border: var(--gray-200);
  --nav-cta-hover-bg: var(--accent-dark);
  --nav-cta-hover-fg: var(--white);

  /* medidas (se reajustan por breakpoint más abajo) */
  --nav-logo-size: 146px;
  --nav-logo-ml: 88px;
  --mega-w: 980px;
  --drawer-w: 100%;
}

/* home / static arriba del todo: texto blanco sobre el hero azul */
#navbar:is(.navbar-home, .navbar-static):not(.scrolled):not(.nav-open) {
  --nav-fg: rgba(255, 255, 255, 0.92);
  --nav-strong: #fff;
  --nav-hover-bg: rgba(255, 255, 255, 0.12);
  --nav-accent: #fff;
  --nav-line: rgba(255, 255, 255, 0.4);
  --nav-logo-filter: brightness(0) invert(1);
  --nav-cta-bg: transparent;
  --nav-cta-fg: #fff;
  --nav-cta-border: rgba(255, 255, 255, 0.45);
  --nav-cta-hover-bg: #fff;
  --nav-cta-hover-fg: var(--accent-dark);
}

/* scrolled (o drawer abierto): barra blanca. Los tokens oscuros ya son la base */
#navbar.scrolled,
#navbar.nav-open {
  --nav-bg: var(--white);
  --nav-shadow: 0 1px 0 var(--gray-200);
}

/* drawer abierto detectado por la clase del <ul> (navegadores con :has) */
@supports selector(:has(*)) {
  #navbar:has(.nav-menu.open) {
    --nav-bg: var(--white);
    --nav-shadow: 0 1px 0 var(--gray-200);
    --nav-fg: rgba(10, 10, 10, 0.85);
    --nav-strong: #000;
    --nav-hover-bg: rgba(0, 85, 186, 0.08);
    --nav-accent: var(--accent-dark);
    --nav-line: var(--gray-200);
    --nav-logo-filter: none;
  }
}

/* ─── 2. CONTENEDOR, LOGO, MENÚ, LINKS ───────────────────────────── */
#navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  height: var(--nav-height);
  background: var(--nav-bg);
  box-shadow: var(--nav-shadow);
  transition: background-color var(--transition), box-shadow var(--transition);
}

#navbar > .container {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  max-width: 1612px;
  padding: 0 2.6rem;
}

/* el logo es un PNG con aire interno: por eso supera la altura de la barra */
#navbar .nav-logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--nav-strong);
}

#navbar .nav-logo img {
  display: block;
  width: var(--nav-logo-size);
  height: var(--nav-logo-size);
  margin-left: var(--nav-logo-ml);
  filter: var(--nav-logo-filter);
  transition: filter var(--transition);
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
}

.nav-item {
  position: relative;
}

.nav-link-wrapper {
  display: flex;
  align-items: center;
  border-radius: 8px;
  transition: background-color var(--transition);
}

.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.875rem;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--nav-fg);
  transition: color var(--transition), background-color var(--transition);
}

.nav-link-wrapper > .nav-link {
  flex: 1 1 auto;
  min-width: 0;
}

/* foco de teclado visible en todo el nav */
#navbar :is(.nav-link, .nav-subtoggle, .btn-search, .btn-ai, .btn-cta-nav, .hamburger, .nav-logo):focus-visible {
  outline: 2px solid var(--nav-accent);
  outline-offset: 2px;
}

/* ─── 3. CHEVRON (.nav-subtoggle) ────────────────────────────────── */
.nav-subtoggle {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0 0.15rem 0 -0.4rem; /* pegado al texto del link */
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--nav-fg);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: color var(--transition), background-color var(--transition);
}

.nav-subtoggle svg {
  display: block;
  fill: currentColor;
  stroke: currentColor;
  transition: transform 0.2s ease;
}

.nav-item:is(.open-submenu, .is-open) > .nav-link-wrapper > .nav-subtoggle {
  color: var(--nav-accent);
}

.nav-item:is(.open-submenu, .is-open) > .nav-link-wrapper > .nav-subtoggle svg {
  transform: rotate(180deg);
}

/* ─── 4. SUBMENÚ SIMPLE ──────────────────────────────────────────── */
.nav-submenu {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 120;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 220px;
  max-width: 270px;
  margin: 0;
  padding: 0.45rem;
  list-style: none;
  background: var(--white);
  border: 1px solid rgba(10, 10, 10, 0.08);
  border-radius: 12px;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.14);
}

/* puente invisible: el cursor no "cae" en el hueco entre link y panel */
.nav-submenu::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}

.nav-submenu a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  color: var(--accent-dark);
  transition: background-color var(--transition), color var(--transition);
}

.nav-submenu a:hover,
.nav-submenu a:focus-visible {
  background: rgba(0, 85, 186, 0.08);
}

/* ─── 5. MEGA MENÚ ───────────────────────────────────────────────── */
/* posicionado en absoluto respecto de su .nav-item, CENTRADO debajo del botón */
.nav-submenu--mega {
  display: block;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(var(--mega-w), calc(100vw - 3rem));
  padding: 0.9rem;
  border-radius: 16px;
}

.nav-mega {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

/* columna izquierda: no se usa en el diseño actual */
.nav-mega__left {
  display: none;
}

.nav-mega__right {
  display: flex;
  flex-direction: column;
  padding: 0.4rem 0.25rem 0.2rem;
}

.nav-mega__title {
  margin: 0;
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: rgba(10, 10, 10, 0.92);
}

.nav-mega__desc {
  max-width: 70ch;
  margin: 0.4rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgba(10, 10, 10, 0.62);
}

.nav-mega__cta {
  display: flex;
  align-items: flex-start;
  align-self: flex-start;
  justify-content: flex-start;
  gap: 0.4rem;
  width: 100%;
  max-width: 100%;
  margin-top: 0.85rem;
  padding: 0.72rem 0.95rem;
  border: 1px solid rgba(0, 85, 186, 0.5);
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 800;
  color: rgba(10, 10, 10, 0.92);
  text-align: left;
  white-space: normal;
  line-height: 1.35;
  box-sizing: border-box;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}

.nav-mega__cta:hover,
.nav-mega__cta:focus-visible {
  background: rgba(0, 85, 186, 0.08);
  border-color: var(--accent-dark);
  color: var(--accent-dark);
}

.nav-mega__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.65rem;
  margin-top: 1rem;
  text-align: left;
}

.nav-mega__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.45rem;
  width: 100%;
  max-width: 100%;
  padding: 0.82rem 0.92rem;
  border: 1px solid rgba(229, 231, 235, 1);
  border-radius: 12px;
  background: var(--white);
  box-sizing: border-box;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition);
}

.nav-mega__card.is-active {
  border-color: rgba(0, 85, 186, 0.4);
}

.nav-mega__card-title {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  font-size: 0.93rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.01em;
  text-align: left;
  color: var(--accent-dark);
  white-space: normal;
  box-sizing: border-box;
  transition: color var(--transition);
}

.nav-mega__card-title--nowrap {
  white-space: normal;
}

.nav-mega__card:hover,
.nav-mega__card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(0, 85, 186, 0.4);
  background: rgba(0, 85, 186, 0.05);
  box-shadow: 0 14px 30px rgba(0, 85, 186, 0.12);
}

.nav-mega__card:is(:hover, :focus-visible) :is(.nav-mega__card-title, p, span, small) {
  color: var(--accent-dark);
}

/* ─── 6. ACCIONES + HAMBURGUESA ──────────────────────────────────── */
#navbar .nav-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: 1.5rem;
}

#navbar :is(.btn-search, .btn-ai) {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1.5px solid var(--nav-line);
  border-radius: 50%;
  background: transparent;
  color: var(--nav-strong);
  transition: background-color var(--transition), border-color var(--transition), color var(--transition);
}#navbar .btn-ai {
  display: none !important;
}

#navbar :is(.btn-search, .btn-ai):hover {
  background: var(--nav-hover-bg);
}

#navbar .btn-cta-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.25rem;
  border: 1.5px solid var(--nav-cta-border);
  border-radius: 100px;
  background: var(--nav-cta-bg);
  color: var(--nav-cta-fg);
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}

#navbar .btn-cta-nav:hover {
  background: var(--nav-cta-hover-bg);
  border-color: var(--nav-cta-hover-bg);
  color: var(--nav-cta-hover-fg);
}

#navbar .hamburger {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 48px;
  height: 48px;
  margin-left: auto;
  padding: 0;
  border-radius: 12px;
  color: var(--nav-strong);
  touch-action: manipulation;
}

#navbar .hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform 0.25s ease, opacity 0.2s ease;
}

/* → "X" (compatible con .nav-open en el nav y con aria-expanded en el botón) */
#navbar.nav-open .hamburger span:nth-child(1),
#navbar .hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
#navbar.nav-open .hamburger span:nth-child(2),
#navbar .hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
#navbar.nav-open .hamburger span:nth-child(3),
#navbar .hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ─── 7. DESKTOP ≥1025px: hover + teclado ────────────────────────── */
@media (min-width: 1025px) {
  .nav-cta-mobile {
    display: none !important;
  }
  /* subrayado del link activo / hover */
  .nav-link::after {
    content: "";
    position: absolute;
    left: 0.875rem;
    right: 0.875rem;
    bottom: 0.2rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition);
  }
  .nav-link[aria-current="page"]::after,
  .current-menu-item > .nav-link::after,
  .current-menu-item > .nav-link-wrapper > .nav-link::after {
    transform: scaleX(1);
  }

  /* paneles cerrados: fade + slide, sin display:none (permite animar) */
  .nav-submenu {
    visibility: hidden;
    opacity: 0;
    transform: translate(-50%, 8px);
    pointer-events: none;
    transition: opacity 0.22s ease 0.1s, transform 0.22s ease 0.1s, visibility 0s linear 0.32s;
  }

  .nav-submenu--mega {
    transform: translate(-50%, 8px);
  }

  .nav-item:is(:focus-within, .open-submenu, .is-open) > .nav-submenu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
    transition-delay: 0s;
  }

  .nav-item:is(:focus-within, .open-submenu, .is-open) > .nav-link-wrapper > .nav-subtoggle svg {
    transform: rotate(180deg);
  }

  @media (hover: hover) {
    .nav-item:hover > .nav-submenu {
      visibility: visible;
      opacity: 1;
      transform: translate(-50%, 0);
      pointer-events: auto;
      transition-delay: 0s;
    }

    .nav-item:hover > .nav-link-wrapper > .nav-subtoggle svg {
      transform: rotate(180deg);
    }

    .nav-item:hover > :is(.nav-link, .nav-link-wrapper) {
      background: var(--nav-hover-bg);
    }

    .nav-item:hover > .nav-link::after,
    .nav-item:hover > .nav-link-wrapper > .nav-link::after {
      transform: scaleX(1);
    }
  }

  /* pantallas justas: mega menú algo más angosto para no salirse por la izquierda */
  @media (max-width: 1280px) {
    #navbar {
      --mega-w: 760px;
    }
  }
}

/* ─── 8. TABLET + MOBILE ≤1024px: drawer con acordeón ────────────── */
@keyframes navDrawerIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes navSubIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1024px) {
  #navbar {
    --nav-logo-size: 120px;
    --nav-logo-ml: 56px;
  }

  #navbar > .container {
    padding: 0 1.25rem;
  }

  #navbar .hamburger {
    display: flex;
  }

  .nav-menu,
  #navbar .nav-actions {
    display: none;
  }

  /* al abrir, la barra sube sobre WhatsApp / overlays de página */
  #navbar.nav-open {
    z-index: 300;
  }
  @supports selector(:has(*)) {
    #navbar:has(.nav-menu.open) {
      z-index: 300;
    }
  }

  body.nav-open-mobile {
    overflow: hidden;
  }

  /* ── panel ── */
  .nav-menu.open,
  #navbar.nav-open .nav-menu {
    /* el panel es siempre blanco: fija sus propios tokens oscuros */
    --nav-fg: rgba(10, 10, 10, 0.88);
    --nav-strong: var(--accent-dark);
    --nav-accent: var(--accent-dark);
    --nav-hover-bg: rgba(0, 85, 186, 0.06);

    position: fixed;
    top: var(--nav-height);
    right: 0;
    bottom: 0;
    left: auto;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: var(--drawer-w);
    margin: 0;
    padding: 0.5rem 1.25rem calc(6rem + env(safe-area-inset-bottom, 0px));
    background: var(--white);
    border-top: 1px solid var(--gray-200);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.14);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    animation: navDrawerIn 0.28s cubic-bezier(0.2, 0.9, 0.2, 1) both;
  }

  .nav-item {
    width: 100%;
    border-bottom: 1px solid rgba(10, 10, 10, 0.06);
    overflow: visible;
  }

  .nav-link-wrapper {
    justify-content: space-between;
    width: 100%;
    border-radius: 0;
  }

  .nav-link {
    width: 100%;
    padding: 0.95rem 0.25rem;
    border-radius: 0;
    font-size: 1.02rem;
    font-weight: 600;
    white-space: normal;
  }

  .nav-cta-mobile {
    border-bottom: 1px solid rgba(10, 10, 10, 0.06);
    padding: 0.95rem 0;
  }
  .nav-cta-mobile .btn-cta-nav--mobile {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.8rem 1rem;
    border-radius: 100px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--nav-cta-fg);
    background: var(--nav-cta-bg);
    border: 1.5px solid var(--nav-cta-border);
    text-align: left;
  }
  .nav-cta-mobile .btn-cta-nav--mobile:hover,
  .nav-cta-mobile .btn-cta-nav--mobile:focus-visible {
    color: var(--nav-cta-hover-fg);
    background: var(--nav-cta-hover-bg);
    border-color: var(--nav-cta-hover-bg);
    outline: none;
  }

  #navbar .nav-actions .btn-cta-nav {
    display: none !important;
  }

  #navbar .nav-actions .btn-search {
    display: none !important;
  }

  .nav-link:focus-visible,
  .nav-link[aria-current="page"],
  .current-menu-item > .nav-link,
  .current-menu-item > .nav-link-wrapper > .nav-link {
    color: var(--accent-dark);
  }

  /* chevron: área táctil de 44px — OCULTO en mobile (sin submenús) */
  .nav-subtoggle {
    display: none !important;
    width: 44px;
    height: 44px;
    margin: 0 -0.5rem 0 0;
    border-radius: 10px;
    color: rgba(10, 10, 10, 0.6);
  }

  /* ── submenús: OCULTOS completamente en mobile ── */
  .nav-submenu,
  .nav-submenu--mega {
    display: none !important;
  }

  .nav-submenu {
    position: static;
    display: none;
    gap: 0.25rem;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0.15rem 0 0.9rem 0.75rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none;
  }

  .nav-submenu::before {
    display: none;
  }

  .nav-item:is(.open-submenu, .is-open) > .nav-submenu {
    display: flex;
    animation: navSubIn 0.2s ease both;
  }

  .nav-item:is(.open-submenu, .is-open) > .nav-submenu--mega {
    display: block;
  }

  .nav-submenu a {
    padding: 0.7rem 0.9rem;
    border-radius: 10px;
    background: rgba(0, 85, 186, 0.05);
    font-size: 0.92rem;
    white-space: normal;
  }

  /* mega en mobile: solo título + tarjetas en una columna */
  .nav-submenu--mega {
    width: 100%;
    padding: 0.15rem 0 0.9rem 0.75rem;
  }

  .nav-mega__right {
    padding: 0;
  }

  .nav-mega__title,
  .nav-mega__desc {
    display: none;
  }

  .nav-mega__cta {
    justify-content: center;
    width: 100%;
    margin: 0 0 0.5rem;
  }

  .nav-mega__grid {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    margin-top: 0;
  }

  .nav-mega__card {
    gap: 0.25rem;
    padding: 0.7rem 0.9rem;
    border-color: transparent;
    border-radius: 10px;
    background: rgba(0, 85, 186, 0.05);
  }

  .nav-mega__card-title {
    font-size: 0.92rem;
  }

  .nav-mega__card-title--nowrap {
    white-space: normal;
  }

  /* sin "salto" en tarjetas al tocar */
  .nav-mega__card:hover,
  .nav-mega__card:focus-visible {
    transform: none;
    box-shadow: none;
  }

  /* ── barra de acciones anclada abajo del drawer ── */
  #navbar .nav-actions.open,
  #navbar.nav-open .nav-actions {
    --nav-line: var(--gray-200);
    --nav-strong: var(--accent-dark);
    --nav-hover-bg: rgba(0, 85, 186, 0.06);
    --nav-cta-bg: var(--accent-dark);
    --nav-cta-fg: var(--white);
    --nav-cta-border: var(--accent-dark);
    --nav-cta-hover-bg: var(--accent);
    --nav-cta-hover-fg: var(--white);

    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: static !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    z-index: 0 !important;
  }

  #navbar .nav-actions .btn-cta-nav {
    flex: 1 1 auto;
    min-height: 44px;
    font-size: 0.95rem;
  }

  #navbar .nav-actions :is(.btn-search, .btn-ai) {
    width: 44px;
    height: 44px;
  }
}

/* tablet: el drawer es un panel lateral con overlay */
@media (min-width: 641px) and (max-width: 1024px) {
  #navbar {
    --drawer-w: min(420px, 100%);
  }

  .nav-menu.open,
  #navbar.nav-open .nav-menu {
    border-left: 1px solid var(--gray-200);
  }

  body.nav-open-mobile::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 299;
    background: rgba(10, 10, 10, 0.4);
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  :root {
    --nav-height: 76px;
  }
  #navbar {
    --nav-logo-size: 96px;
    --nav-logo-ml: 44px;
  }
  #navbar .nav-logo img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
}

@media (max-width: 768px) {
  #navbar > .container {
    padding: 0 1.25rem;
  }
}

@media (max-width: 520px) {
  :root {
    --nav-height: 64px;
  }
  #navbar {
    --nav-logo-size: 100px;
    --nav-logo-ml: 40px;
  }
  #navbar > .container {
    padding: 0 1rem;
  }
}

@media (max-width: 360px) {
  :root {
    --nav-height: 60px;
  }
  #navbar {
    --nav-logo-size: 88px;
    --nav-logo-ml: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #navbar *,
  #navbar *::before,
  #navbar *::after {
    animation: none;
    transition-duration: 0.01ms;
    transition-delay: 0s;
  }
}.floating-whatsapp {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 220;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 58px;
    padding: 0.95rem 1.15rem;
    border-radius: 999px;
    background: #25D366;
    color: var(--white);
    box-shadow: 0 18px 42px rgba(37, 211, 102, 0.34);
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease;
  }
  .floating-whatsapp:focus-visible {
    background: #20bd5a;
    color: var(--white);
    transform: translateY(-2px);
    box-shadow: 0 24px 48px rgba(37, 211, 102, 0.4);
  }.floating-whatsapp img {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: block;
  }/* ─── HERO ─────────────────────────────────────── */
  #hero {
    position: relative;
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #0055ba;
    isolation: isolate;
  }#hero .container {
    width: 100%;
    max-width: 1600px;
    height: 100%;
    padding-left: clamp(1.25rem, 10vw, 10rem);
    padding-right: clamp(1rem, 3vw, 3rem);
    padding-top: clamp(4.5rem, 8vh, 7rem);
    padding-bottom: clamp(2.5rem, 6vh, 5rem);
  }.hero-bg {
    position: absolute;
    inset: 0;
    background: url('../fondoAC.jpg') center / cover no-repeat fixed;
    z-index: -2;
    pointer-events: none;
  }#hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #0055ba;
    z-index: -1;
  }.hero-layout {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(1rem, 3vw, 3rem);
    height: 100%;
    min-height: 0;
    padding: 0;
  }.hero-content {
    position: relative;
    z-index: 2;
    padding: 0;
    max-width: clamp(680px, 60vw, 1000px);
    flex: 1 1 clamp(520px, 50vw, 780px);
    margin-right: clamp(-80px, -3vw, -30px);
    align-self: center;
    display: flex;
    flex-direction: column;
    gap: 0;
  }.hero-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5.4vw, 4.5rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--white);
    margin: 0 0 clamp(0.8rem, 2vw, 1.8rem) 0;
    max-width: 14ch;
    animation: heroTitleIn 1.45s cubic-bezier(0.2, 0.9, 0.2, 1) 0.12s both;
  }.hero-title em {
    font-style: normal;
    color: #18AAEC;
  }.hero-sub {
    font-size: clamp(0.9rem, 1.35vw, 1.2rem);
    color: var(--white);
    line-height: 1.7;
    max-width: clamp(380px, 34vw, 540px);
    margin: 0 0 clamp(1rem, 2.4vw, 2.2rem) 0;
    font-weight: 300;
    animation: fadeInUp 0.8s ease 0.2s both;
  }.hero-actions {
    display: flex;
    gap: clamp(0.75rem, 1.3vw, 1.25rem);
    flex-wrap: wrap;
    margin: 0;
    animation: fadeInUp 0.8s ease 0.3s both;
  }.hero-visual {
    position: relative;
    z-index: 1;
    flex: 0 1 clamp(420px, 42vw, 580px);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    align-self: center;
    max-height: 100%;
    height: auto;
  }.hero-calco {
  position: relative;
  width: clamp(560px, 56vw, 920px);
  aspect-ratio: 1.25 / 1;
  max-height: clamp(46vh, 52vw, 86vh);
  height: auto;
  transform: translate3d(0, 0, 0);
  will-change: transform;
  overflow: hidden;
  --hero-bg-pos-y: calc(50% + 60px);
}.hero-calco::before {
  content: '';
  position: absolute;
  inset: -20% 0;
  background-image: url('../fondoAC.jpg');
  background-size: cover;
  background-position: center var(--hero-bg-pos-y, calc(50% + 60px));
  background-repeat: no-repeat;
  transform: translateZ(0) translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  perspective: 1000px;
  -webkit-perspective: 1000px;
  will-change: background-position, transform;
  -webkit-mask-image: url('../calco-logo-mask.svg');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url('../calco-logo-mask.svg');
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  filter: saturate(1.05) contrast(1.05);
}@media (min-width: 1024px) and (max-width: 1279px) {
    .hero-calco {
      --hero-bg-pos-y: -35px;
    }
    .hero-calco::before {
      background-position: center var(--hero-bg-pos-y, -35px);
    }
  }.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: clamp(0.35rem, 0.7vw, 0.65rem);
    background: rgba(26,75,255,0.2);
    border: 1px solid rgba(26,75,255,0.4);
    color: #18AAEC;
    font-size: clamp(0.72rem, 1vw, 0.95rem);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: clamp(0.35rem, 0.65vw, 0.55rem) clamp(0.8rem, 1.5vw, 1.3rem);
    border-radius: 100px;
    margin: 0 0 clamp(1.25rem, 3vw, 2.5rem) 0;
    animation: fadeInUp 0.8s ease both;
  }.hero-tag-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--green);
    animation: pulse 2s infinite;
  }@keyframes pulse {0%, 100% { opacity: 1; }50% { opacity: 0.4; }}@keyframes heroTitleIn {from { opacity: 0; transform: translate3d(0, 22px, 0); filter: blur(8px); }to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }}.hero-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5.4vw, 4.5rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--white);
    margin: 0 0 clamp(0.8rem, 2vw, 1.8rem) 0;
    max-width: 14ch;
    animation: heroTitleIn 1.45s cubic-bezier(0.2, 0.9, 0.2, 1) 0.12s both;
  }.hero-title em {
    font-style: normal;
    color: #18AAEC;
  }.hero-sub {
    font-size: clamp(0.9rem, 1.35vw, 1.2rem);
    color: var(--white);
    line-height: 1.7;
    max-width: clamp(380px, 34vw, 540px);
    margin: 0 0 clamp(1rem, 2.4vw, 2.2rem) 0;
    font-weight: 300;
    animation: fadeInUp 0.8s ease 0.2s both;
  }.hero-actions {
    display: flex;
    gap: clamp(0.75rem, 1.3vw, 1.25rem);
    flex-wrap: wrap;
    margin: 0;
    animation: fadeInUp 0.8s ease 0.3s both;
  }@media (prefers-reduced-motion: reduce) {.hero-title { animation: none; }}@media (min-width: 1024px) and (max-width: 1279px) {
    #hero { min-height: 100vh; max-height: 100vh; height: 100vh; }
    #hero .container { padding-left: 5vw; padding-right: 1.5rem; padding-top: clamp(4rem, 8vh, 5.75rem); padding-bottom: clamp(2rem, 5vh, 4rem); height: 100%; }
    .hero-layout { gap: 0.5rem; padding: 0; height: 100%; min-height: 0; }
    .hero-content { max-width: 1100px; flex: 1 1 60%; margin-right: 0; margin-top: 0; min-height: 0; overflow: hidden; }
    .hero-tag { font-size: clamp(0.6rem, 0.72vw, 0.7rem); padding: clamp(0.26rem, 0.38vw, 0.37rem) clamp(0.66rem, 0.95vw, 0.9rem); margin: 0 0 clamp(0.6rem, 1.3vw, 1rem) 0; }
    .hero-title { font-size: clamp(1.05rem, 1.7vw, 1.45rem); margin: 0 0 clamp(0.38rem, 0.7vw, 0.6rem) 0; max-width: 24ch; }
    .hero-sub { max-width: clamp(340px, 34vw, 420px); font-size: clamp(0.67rem, 0.72vw, 0.78rem); line-height: 1.55; margin: 0 0 clamp(0.45rem, 0.85vw, 0.7rem) 0; }
    .hero-actions { max-width: 500px; gap: clamp(0.45rem, 0.7vw, 0.65rem); }
    .btn-primary, .btn-outline { padding: clamp(0.5rem, 0.68vw, 0.64rem) clamp(0.9rem, 1.6vw, 1.3rem); font-size: clamp(0.7rem, 0.72vw, 0.8rem); }
    .hero-visual { flex: 0 1 36%; margin-top: 0; max-height: 100%; min-height: 0; align-self: center; }
    .hero-calco {
      width: clamp(340px, 30vw, 420px);
      max-height: clamp(30vh, 28vw, 46vh);
      height: auto;
    }
  }@media (min-width: 981px) and (max-width: 1023px) {
    #hero { min-height: 100vh; max-height: 100vh; height: 100vh; }
    #hero .container { padding-left: 6vw; padding-right: 1.5rem; padding-top: clamp(4.5rem, 8.5vh, 6.5rem); padding-bottom: clamp(2.75rem, 6.5vh, 5rem); }
    .hero-layout { gap: 1.25rem; padding: 0; height: 100%; }
    .hero-content { max-width: 1100px; flex: 1 1 760px; margin-right: -60px; margin-top: 0; }
    .hero-tag { font-size: clamp(0.58rem, 0.72vw, 0.7rem); padding: clamp(0.26rem, 0.38vw, 0.37rem) clamp(0.62rem, 0.92vw, 0.88rem); margin: 0 0 clamp(0.78rem, 1.7vw, 1.3rem) 0; }
    .hero-title { font-size: clamp(1.25rem, 2.5vw, 1.75rem); margin: 0 0 clamp(0.52rem, 0.95vw, 0.75rem) 0; max-width: 22ch; }
    .hero-sub { max-width: clamp(340px, 37vw, 410px); font-size: clamp(0.7rem, 0.82vw, 0.82rem); line-height: 1.65; margin: 0 0 clamp(0.65rem, 1.15vw, 0.95rem) 0; }
    .hero-actions { gap: clamp(0.5rem, 0.75vw, 0.7rem); }
    .btn-primary, .btn-outline { padding: clamp(0.54rem, 0.72vw, 0.68rem) clamp(0.95rem, 1.8vw, 1.4rem); font-size: clamp(0.72rem, 0.76vw, 0.82rem); }
    .hero-visual { flex: 0 1 440px; margin-top: 0; max-height: 100%; }
    .hero-calco {
      width: clamp(440px, 44vw, 580px);
      max-height: clamp(38vh, 40vw, 58vh);
    }
  }@media (min-width: 1280px) and (max-width: 1599px) {
    #hero { min-height: 100vh; max-height: 100vh; height: 100vh; }
    #hero .container {
      max-width: 1720px;
      padding-left: 8.5vw;
      padding-right: 2.25rem;
      padding-top: clamp(4.75rem, 8.5vh, 6.25rem);
      padding-bottom: 7vh;
      height: 100%;
    }
    .hero-layout { gap: clamp(0.4rem, 0.7vw, 0.6rem); padding: 0; height: 100%; min-height: 0; }
    .hero-content { max-width: 980px; flex: 1 1 760px; margin-right: -40px; margin-top: 0; align-self: flex-start; min-height: 0; overflow: hidden; }
    .hero-tag { font-size: clamp(0.62rem, 0.72vw, 0.75rem); padding: clamp(0.25rem, 0.36vw, 0.34rem) clamp(0.65rem, 0.9vw, 0.9rem); margin: 0 0 clamp(0.5rem, 1vw, 0.8rem) 0; }
    .hero-title { font-size: clamp(1.5rem, 2.2vw, 1.95rem); margin: 0 0 clamp(0.4rem, 0.7vw, 0.6rem) 0; max-width: 18ch; line-height: 1.15; }
    .hero-sub { max-width: clamp(400px, 30vw, 480px); font-size: clamp(0.78rem, 0.9vw, 0.94rem); line-height: 1.5; margin: 0 0 clamp(0.5rem, 0.85vw, 0.75rem) 0; }
    .hero-actions { gap: clamp(0.4rem, 0.6vw, 0.55rem); }
    .btn-primary, .btn-outline { padding: clamp(0.6rem, 0.78vw, 0.75rem) clamp(1.25rem, 2.1vw, 1.8rem); font-size: clamp(0.78rem, 0.8vw, 0.88rem); }
    .hero-visual { flex: 0 1 510px; margin-top: 0; max-height: 100%; align-self: center; min-height: 0; }
    .hero-calco { width: clamp(500px, 46vw, 720px); max-height: clamp(41vh, 44vw, 60vh); height: auto; }
  }@media (min-width: 1600px) {
    #hero { min-height: 100vh; max-height: 100vh; height: 100vh; }
    #hero .container {
      max-width: 1720px;
      padding-left: 9vw;
      padding-right: 2.5rem;
      padding-top: clamp(6rem, 11vh, 8.5rem);
      padding-bottom: clamp(3.5rem, 7.5vh, 6rem);
      height: 100%;
    }
    .hero-layout { height: 100%; min-height: 0; }
    .hero-content { max-width: 1050px; flex: 1 1 820px; margin-right: -50px; margin-top: 0; align-self: flex-start; min-height: 0; overflow: hidden; }
    .hero-title { max-width: 14ch; }
    .hero-sub { max-width: clamp(420px, 32vw, 560px); font-size: clamp(1rem, 1.4vw, 1.3rem); }
    .hero-visual { flex: 0 1 580px; margin-top: 0; max-height: 100%; align-self: flex-start; min-height: 0; }
    .hero-calco { width: clamp(620px, 58vw, 960px); max-height: clamp(55vh, 54vw, 85vh); height: auto; }
    .btn-primary, .btn-outline { padding-inline: clamp(1.75rem, 3vw, 2.75rem); font-size: clamp(0.9rem, 1.05vw, 1.05rem); }
  }@media (max-width: 980px) {#hero { min-height: auto; height: auto; max-height: none; }#hero .container { height: auto; padding-top: clamp(5.5rem, 12vh, 7.5rem); padding-bottom: clamp(2rem, 5vh, 3rem); }.hero-layout {
      height: auto;
      flex-direction: column;
      align-items: flex-start;
      padding: 3.25rem 0 3.75rem;
    }.hero-content {
      max-width: 100%;
      flex: 1 1 auto;
      margin-right: 0;
      height: auto;
      max-height: none;
    }.hero-visual {
      width: 100%;
      justify-content: center;
      min-height: 340px;
      height: auto;
      max-height: none;
    }.hero-calco {
      width: min(860px, 98vw);
      max-height: 640px;
    }}.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: clamp(0.75rem, 1.2vw, 1rem) clamp(1.5rem, 3vw, 2.5rem);
    background: linear-gradient(135deg, #05070d 0%, #0055BA 100%);
    color: var(--white);
    font-weight: 500;
    font-size: clamp(0.88rem, 1.15vw, 1.05rem);
    border-radius: 100px;
    transition: all var(--transition);
  }.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: clamp(0.75rem, 1.2vw, 1rem) clamp(1.5rem, 3vw, 2.5rem);
    background: transparent;
    color: var(--white);
    font-weight: 400;
    font-size: clamp(0.88rem, 1.15vw, 1.05rem);
    border-radius: 100px;
    border: 1.5px solid rgba(255,255,255,0.3);
    transition: all var(--transition);
  }.hero-scroll {
    position: absolute;
    bottom: clamp(1.5rem, 4vw, 3rem);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(0.35rem, 0.7vw, 0.65rem);
    color: rgba(255,255,255,0.4);
    font-size: clamp(0.7rem, 1vw, 0.85rem);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    animation: fadeInUp 1s ease 0.5s both;
  }.hero-scroll-line {
    width: 1px;
    height: clamp(32px, 5vw, 48px);
    background: linear-gradient(to bottom, rgba(255,255,255,0.4), transparent);
    animation: scrollLine 2s ease-in-out infinite;
  }@keyframes scrollLine {0%, 100% { opacity: 0.4; transform: scaleY(1); }50% { opacity: 1; transform: scaleY(0.7); }}@keyframes fadeInUp {from { opacity: 0; transform: translateY(24px); }to { opacity: 1; transform: translateY(0); }}/* ─── MÉTRICAS ─────────────────────────────────────── */
  #metricas {
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    padding: 2.5rem 0;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.06);
    position: relative;
    z-index: 30; /* keep carousel above the "banderas" */
  }/* ─── LOGOS HOME ─────────────────────────────────────── */
  #home-logos {
    padding: 0;
    background: var(--white);
    position: relative;
    z-index: 10;
    margin: 0;
  }.home-logos-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 0;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }.home-banderas-section {
    grid-column: 1;
    display: flex;
    justify-content: center;
    align-items: stretch;
    align-self: stretch;
    height: 300px;
    margin: 0;
  }.home-textos-section {
    grid-column: 2;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 300px;
    padding: 0 3.5rem 0 2rem;
  }.home-logos-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(110px, 1fr));
    align-items: stretch;
    justify-content: center;
    gap: 0;
    width: min(100%, 720px);
    max-width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }.home-logo-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    min-height: 0;
    height: 100%;
    border-radius: 0;
  }.home-logo-col:nth-child(1) { background: #0055BA; }.home-logo-col:nth-child(2) { background: #1C63EF; }.home-logo-col:nth-child(3) { background: #1491E7; }.home-logo-col:nth-child(4) { background: #18AAEC; }.home-logo-col img {
    max-width: min(120px, 92%);
    max-height: 110px;
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0;
    filter: brightness(0) invert(1);
  }

  @media (min-width: 1025px) {
    #home-logos .home-logos-grid > .home-logo-col {
      justify-content: flex-end !important;
      align-items: center !important;
      padding-top: 0 !important;
      padding-bottom: 1.1rem !important;
    }
  }.home-map-slot {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    margin-left: 0;
    position: relative;
    z-index: 20;
    text-align: left;
  }.home-logos-copy {
    width: fit-content;
    max-width: min(100%, 560px);
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.15rem, 3.45vw, 3.65rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.03em;
    color: var(--accent-dark);
  }.home-logos-copy-delayed {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.7rem;
  }.home-logos-copy-delayed > span {
    opacity: 0;
    transform: translate3d(72px, 0, 0);
    transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    will-change: transform, opacity;
  }.home-logos-copy-delayed.visible > span,
  .home-logos-copy-delayed > span.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }.home-logos-copy-delayed.visible > span:nth-child(2) {
    transition-delay: 0.6s;
  }.home-logos-copy-delayed.visible > span:nth-child(3) {
    transition-delay: 1.2s;
  }.home-logos-copy > span,
  .home-logos-copy > strong {
    display: block;
    white-space: nowrap;
  }.home-logos-copy strong {
    color: var(--accent-light);
    font-weight: 700;
  }.home-logos-accent {
    color: var(--accent-light);
    font-weight: 700;
  }.home-uruguay-section {
    padding: 5.5rem 0 6.5rem;
    background:
      radial-gradient(circle at top left, rgba(24, 170, 236, 0.12), transparent 32%),
      linear-gradient(180deg, #f8fbff 0%, var(--gray-50) 100%);
  }.home-uruguay-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
    gap: 2rem 2.5rem;
    align-items: start;
  }.home-uruguay-header {
    position: sticky;
    top: calc(var(--nav-height) + 1.5rem);
    padding: 2.25rem;
    border-radius: 28px;
    background: linear-gradient(135deg, #0055BA 0%, #1C63EF 55%, #18AAEC 100%);
    box-shadow: 0 28px 60px rgba(0, 85, 186, 0.22);
  }.home-uruguay-header .section-label,
  .home-uruguay-header .section-title,
  .home-uruguay-header .section-title em {
    color: var(--white);
  }.home-uruguay-header .section-label::before {
    background: var(--white);
  }.home-uruguay-header .section-title {
    font-size: clamp(1.65rem, 2.6vw, 2.4rem);
    line-height: 1.08;
  }.home-uruguay-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: start;
  }.home-uruguay-card {
    position: relative;
    overflow: hidden;
    min-height: 280px;
    border-radius: 28px;
    padding: 1.75rem;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.08);
    backdrop-filter: blur(10px);
    transform: translate3d(0, 0, 0);
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.home-uruguay-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    transform: translate3d(-108%, 0, 0);
    transition: transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    z-index: 0;
  }
  .home-uruguay-card:focus-within {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
    border-color: rgba(28, 99, 239, 0.28);
  }
  .home-uruguay-card:focus-within::before {
    transform: translate3d(0, 0, 0);
  }.home-uruguay-card:nth-child(2),
  .home-uruguay-card:nth-child(4) {
    margin-top: 3rem;
  }.home-uruguay-num {
    position: absolute;
    top: 0.85rem;
    right: 1rem;
    font-family: var(--font-display);
    font-size: clamp(3.8rem, 7vw, 5.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.05em;
    color: rgba(28, 99, 239, 0.12);
    pointer-events: none;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .home-uruguay-card:focus-within .home-uruguay-num {
    color: rgba(255, 255, 255, 0.2);
  }.home-uruguay-card-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding-top: clamp(5rem, 8.5vw, 7rem);
  }.home-uruguay-card-body::before {
    content: "";
    width: 52px;
    height: 4px;
    border-radius: 999px;
    background: var(--accent-light);
    transition: background 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.home-uruguay-title {
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    color: var(--black);
    max-width: calc(100% - 5rem);
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.home-uruguay-desc {
    font-size: 0.96rem;
    line-height: 1.72;
    color: var(--gray-600);
    font-weight: 700;
    max-width: 100%;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.home-uruguay-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: fit-content;
    margin-top: auto;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--accent);
    border: 1px solid rgba(0, 85, 186, 0.2);
    border-radius: 999px;
    padding: 0.5rem 0.95rem;
    background: rgba(0, 85, 186, 0.06);
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), background-color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .home-uruguay-card:focus-within .home-uruguay-link {
    color: var(--accent);
    background: rgba(255, 255, 255, 0.94);
    border-color: rgba(255, 255, 255, 0.94);
    transform: translateY(-1px);
  }
  .home-uruguay-card:focus-within .home-uruguay-title,
  .home-uruguay-card:focus-within .home-uruguay-desc {
    color: var(--white);
  }
  .home-uruguay-card:focus-within .home-uruguay-desc {
    color: rgba(255, 255, 255, 0.86);
  }
  .home-uruguay-card:focus-within .home-uruguay-card-body::before {
    background: rgba(255,255,255,0.9);
  }.services-differentials-section {
    padding: 5.5rem 0 2rem;
    background:
      radial-gradient(circle at top left, rgba(24, 170, 236, 0.12), transparent 32%),
      linear-gradient(180deg, #f8fbff 0%, var(--gray-50) 100%);
  }.services-differentials-section .home-uruguay-card--compact {
    min-height: 168px;
    padding: 1.1rem;
  }.services-differentials-section .home-uruguay-card--compact .home-uruguay-card-body {
    justify-content: flex-end;
    gap: 0.7rem;
    padding-top: clamp(3rem, 5.2vw, 4.2rem);
  }.services-differentials-section .home-uruguay-card--compact .home-uruguay-title {
    max-width: calc(100% - 3.6rem);
    font-size: 1.02rem;
    line-height: 1.08;
  }.services-differentials-section .home-uruguay-card--compact .home-uruguay-num {
    top: 0.65rem;
    right: 0.65rem;
    font-size: clamp(2.6rem, 4.9vw, 4rem);
  }.services-differentials-section .home-uruguay-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }.services-differentials-section .home-uruguay-card--compact:nth-child(2),
  .services-differentials-section .home-uruguay-card--compact:nth-child(4) {
    margin-top: 0;
  }@media (max-width: 980px) {.services-differentials-section .home-uruguay-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }}@media (max-width: 640px) {.services-differentials-section .home-uruguay-grid {
      grid-template-columns: 1fr;
    }}/* ═══════════════════════════════════════════════════════════
     CARRUSEL DE LOGOS (PARTNERS) — SEAMLESS REAL 100% CSS
     Técnica "relleno virtual ::after flex 100%":
       • ::after con flex:0 0 100% DUPLICA el ancho real del track
         (width:max-content → 100% = exactamente el ancho de los logos reales)
       • @keyframes partners-classic:
           0%   { transform: translateX(0); }     ← empieza MOSTRANDO logos (no espera)
           100% { transform: translateX(-50%); } ← recorre SOLO la mitad
       • ¿Por qué seamless? Al 100% (-50%), los logos reales han salido
         completamente y el relleno ::after ocupa su lugar. Como 0% = posición
         vacía-fila-logos y -50% también = esa MISMA posición visualmente
         (empiezan de nuevo los logos reales entrando por dcha), NO HAY SALTO.
       • Ventaja sobre start-offset 100vw: NO hay 2s de pantalla vacía al loopear.
         Transición PERFECTA cada 42s (desktop) / 22s (mobile) sin corte visible.
     ═══════════════════════════════════════════════════════════ */

  .home-partners-section {
    padding: 5.5rem 0 6rem;
    background: var(--white);
    overflow-x: visible;
    overflow-y: hidden;
    position: relative;
    isolation: isolate;
  }.home-partners-header {
    text-align: center;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto 3rem;
  }.home-partners-header .section-label {
    justify-content: center;
  }/* — CONTENEDOR PRINCIPAL: ÚNICO PUNTO DE RECORTE DE TODO EL SISTEMA — */
  .home-partners-marquees {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
    overflow-x: clip;
    overflow-y: visible;
    contain: style;
  }/* — TRACK (fila) + RELLENO VIRTUAL para duplicar el ancho —
     Toda la "magia seamless" está aquí:
       - width: max-content → ancho = logos reales + gaps
       - ::after { flex: 0 0 100% } → MISMO ancho que logos reales
       - TOTAL track = 2 × ancho real (perfecto para translateX(-50%)) */
  .home-partners-track {
    --gap: clamp(0.85rem, 2.4vw, 1.25rem);
    --duration: 42s;
    display: flex;
    align-items: center;
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    gap: var(--gap);
    clip-path: none;
    mask: none;
    -webkit-mask: none;
    contain: layout;
    width: max-content;
    max-width: none;
    min-width: 0;
    will-change: transform;
    animation: partners-classic var(--duration) linear infinite;
  }.home-partners-track::after {
    content: "";
    display: none;
    flex: 0 0 100%;
    height: 100%;
    pointer-events: none;
  }/* — Groups (HTML nuevo con <ul>): animación con la MISMA técnica seamless — */
  .home-partners-group {
    margin: 0;
    padding: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--gap);
    list-style: none;
    animation: partners-classic-groups var(--duration) linear infinite;
    will-change: transform;
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    clip-path: none;
    mask: none;
    contain: style;
  }.home-partners-group::after {
    content: "";
    display: none;
    flex: 0 0 100%;
    height: 100%;
    pointer-events: none;
  }.home-partners-track--reverse .home-partners-group {
    animation-direction: reverse;
  }.home-partners-track-1 .home-partners-group,
  .home-partners-track-2 .home-partners-group {
    animation: none !important;
    transform: none !important;
    will-change: auto;
  }.home-partners-track-1 .home-partners-group::after,
  .home-partners-track-2 .home-partners-group::after {
    display: none;
  }@keyframes partners-classic-groups {0%   { transform: translateX(0); }100% { transform: translateX(-50%); }}
  .home-partners-track:hover .home-partners-group,
  .home-partners-track:focus-within .home-partners-group {
    animation-play-state: paused;
  }/* — ANIMACIÓN PRINCIPAL SEAMLESS: 0 → -50% (la otra mitad es el ::after) —
     0%   = logos reales visibles (sin retraso, NO hay espera de start-offset)
     50%  = logos reales a la mitad, ::after empieza a entrar por derecha
     100% = logos reales fuera izq, ::after ocupa 100% → salta a 0% = IDÉNTICO
     Resultado: LOOP PERFECTO sin corte, sin restart visible, sin pantalla vacía. */
  .home-partners-track-1,
  .home-partners-track-2 {
    --gap: 1.25rem;
    --duration: 42s;
    display: flex;
    align-items: center;
    gap: 0;
    width: max-content;
    max-width: none;
    min-width: 0;
    will-change: transform;
    animation: partners-classic var(--duration) linear infinite;
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    clip-path: none;
    mask: none;
    contain: layout;
  }.home-partners-track-1 .home-partner-logo-card,
  .home-partners-track-2 .home-partner-logo-card {
    padding-top: 0.9rem !important;
    padding-bottom: 0.9rem !important;
    padding-right: calc(var(--gap) + 0.9rem) !important;
    padding-left: 0.9rem !important;
  }.home-partners-track-1::after,
  .home-partners-track-2::after {
    content: "";
    display: none;
    flex: 0 0 100%;
    height: 100%;
    pointer-events: none;
  }.home-partners-track-2 {
    --duration: 46s;
    animation-direction: reverse;
  }@keyframes partners-classic {
    0%   { transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }
    100% { transform: translate3d(-50%, 0, 0) scale3d(1, 1, 1); }
  }
  .home-partners-track-1,
  .home-partners-track-2 {
    -webkit-transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    perspective: 1000px;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
  }
  .home-partners-track:hover,
  .home-partners-track:focus-within,
  .home-partners-track-1:hover,
  .home-partners-track-1:focus-within,
  .home-partners-track-2:hover,
  .home-partners-track-2:focus-within {
    animation-play-state: paused;
  }/* —— Tarjetas de logo: track-static = LAYOUT 1 SOLA LÍNEA (desktop) —— */
  .home-partners-track-static {
    width: 100%;
    max-width: 1160px;
    margin: 1.6rem auto 0;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: clamp(0.78rem, 1.5vw, 1.05rem);
    padding: 0 0.4rem;
    animation: none;
    transform: none;
    will-change: auto;
    overflow: visible;
  }.home-partners-track-static::after { display: none !important; }.home-partners-track-static .home-partner-logo-card:nth-child(n+6) {
    display: none !important;
  }.home-partners-track-static .home-partner-logo-card {
    flex: 0 0 auto;
    width: clamp(140px, 11vw, 188px) !important;
    min-width: 0 !important;
    height: clamp(70px, 5.8vw, 92px) !important;
    padding: 0.78rem 0.95rem !important;
  }.home-partners-track-static .home-partner-logo-card:first-child {
    width: clamp(164px, 12.8vw, 216px) !important;
    height: clamp(82px, 7vw, 108px) !important;
    padding: 0.92rem 1.05rem !important;
  }.home-partners-track-static .home-partner-logo-card img[alt="Dell"] {
    max-width: 122%;
    max-height: 122%;
  }.home-partners-track-static .home-partner-logo-card img[alt="Microsoft"] {
    max-width: 155%;
    max-height: 155%;
  }.home-partners-track-static .home-partners-group {
    animation: none;
  }.home-partners-track-static .home-partners-group::after { display: none; }.home-partner-logo-card {
    flex: 0 0 auto;
    width: clamp(140px, 12vw, 191px);
    height: clamp(70px, 6.3vw, 88px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 1.1rem;
  }.home-partner-logo-card img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.72;
    transition: filter 0.35s ease, opacity 0.35s ease;
  }.home-partner-logo-card img[alt="VMware"] {
    max-width: 90%;
    max-height: 90%;
  }
  .home-partner-logo-card img[alt="Microsoft"] {
    max-width: 140%;
    max-height: 140%;
  }
  .home-partner-logo-card:hover img,
  .home-partner-logo-card:focus-within img {
    filter: grayscale(0%);
    opacity: 1;
  }/* —— Breakpoints (solo 2): VELOCIDADES ORIGINALES (ahora recorren ½, velocidad ≈ ½ original) —— */
  @media (max-width: 1024px) {
    .home-partners-track { --duration: 24s; }
    .home-partners-track-1 { --duration: 24s; }
    .home-partners-track-2 { --duration: 28s; }
    .home-partners-track-1,
    .home-partners-track-2 { gap: 0; }
    .home-partners-track-1 .home-partner-logo-card,
    .home-partners-track-2 .home-partner-logo-card {
      padding-top: 0.7rem !important;
      padding-bottom: 0.7rem !important;
      padding-left: 0.75rem !important;
      padding-right: calc(0.85rem + 0.75rem) !important;
    }

    /* ─── HOME PARTNERS STATIC: CARRUSEL HORIZONTAL (mobile, igual partners-row) ─── */
    html body section#partners > .container {
      overflow-x: hidden !important;
      overflow-y: visible !important;
      max-width: 100% !important;
      width: 100% !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
    html body section#partners > .container > .home-partners-track.home-partners-track-static.reveal.visible,
    html body section#partners > .container > .home-partners-track.home-partners-track-static,
    html body .home-partners-track.home-partners-track-static.reveal.visible,
    html body .home-partners-track.home-partners-track-static {
      width: max-content !important;
      max-width: none !important;
      min-width: 0 !important;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
      flex-direction: row !important;
      -webkit-flex-wrap: nowrap !important;
      -ms-flex-wrap: nowrap !important;
      flex-wrap: nowrap !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
      justify-content: flex-start !important;
      gap: 0 !important;
      padding: 0.5rem 0.65rem !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      overflow: visible !important;
      overflow-x: visible !important;
      overflow-y: visible !important;
      box-sizing: border-box !important;
      will-change: transform !important;
      -ms-grid-rows: auto !important;
      -webkit-flex-basis: auto !important;
      animation-name: partners-classic !important;
      animation-duration: 24s !important;
      animation-timing-function: linear !important;
      animation-iteration-count: infinite !important;
      animation-direction: reverse !important;
      animation-fill-mode: both !important;
      animation-play-state: running !important;
    }
    html body section#partners > .container > .home-partners-track.home-partners-track-static:hover,
    html body section#partners > .container > .home-partners-track.home-partners-track-static:focus-within,
    html body .home-partners-track.home-partners-track-static.reveal.visible:hover,
    html body .home-partners-track.home-partners-track-static.reveal.visible:focus-within,
    html body .home-partners-track.home-partners-track-static:hover,
    html body .home-partners-track.home-partners-track-static:focus-within {
      animation-play-state: paused !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:nth-child(n+6) {
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
    }
    html body .home-partners-track.home-partners-track-static::after {
      display: none !important;
      content: "" !important;
      flex: 0 0 100% !important;
      -webkit-flex: 0 0 100% !important;
      -ms-flex: 0 0 100% !important;
      height: 100% !important;
      pointer-events: none !important;
    }
    html body .home-partners-track.home-partners-track-static.reveal.visible .home-partner-logo-card,
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card {
      -webkit-flex: 0 0 auto !important;
      -ms-flex: 0 0 auto !important;
      flex: 0 0 auto !important;
      min-width: 0 !important;
      max-width: none !important;
      width: clamp(160px, 28vw, 210px) !important;
      min-height: 92px !important;
      height: auto !important;
      padding-top: 1rem !important;
      padding-bottom: 1rem !important;
      padding-left: 1.05rem !important;
      padding-right: calc(1.05rem + 1.2rem) !important;
      border-radius: 18px !important;
      background: transparent !important;
      background-color: transparent !important;
      background-image: none !important;
      border: 0 !important;
      border-color: transparent !important;
      outline: 0 !important;
      box-shadow: none !important;
      -webkit-box-shadow: none !important;
      text-shadow: none !important;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
      justify-content: center !important;
      box-sizing: border-box !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:first-child {
      -webkit-flex: 0 0 auto !important;
      -ms-flex: 0 0 auto !important;
      flex: 0 0 auto !important;
      max-width: none !important;
      width: clamp(180px, 31vw, 232px) !important;
      min-height: 100px !important;
      height: auto !important;
      padding-top: 1.05rem !important;
      padding-bottom: 1.05rem !important;
      padding-left: 1.1rem !important;
      padding-right: calc(1.1rem + 1.2rem) !important;
      background: transparent !important;
      background-color: transparent !important;
      background-image: none !important;
      border: 0 !important;
      border-color: transparent !important;
      box-shadow: none !important;
      -webkit-box-shadow: none !important;
      outline: 0 !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="Dell"] {
      max-height: 80px !important;
      max-width: 130% !important;
      min-height: 72px !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img {
      width: auto !important;
      height: 62px !important;
      max-height: 62px !important;
      max-width: 220px !important;
      min-width: 78px !important;
      min-height: 56px !important;
      object-fit: contain !important;
      object-position: center center !important;
      display: block !important;
      filter: grayscale(100%);
      opacity: 0.88 !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:hover img,
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:focus-within img {
      filter: grayscale(0%);
      opacity: 1 !important;
      transform: translate3d(0, -1px, 0);
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="VMware"] {
      max-width: 90% !important;
      max-height: 58px !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="Microsoft"] {
      max-height: 96px !important;
      max-width: 160% !important;
      min-height: 88px !important;
    }
  }

  @media (max-width: 768px) {
    html body .home-partners-track.home-partners-track-static.reveal.visible,
    html body .home-partners-track.home-partners-track-static {
      gap: 0 !important;
      padding: 0.4rem 0.55rem !important;
      animation-duration: 20s !important;
      animation-name: partners-classic !important;
      animation-timing-function: linear !important;
      animation-iteration-count: infinite !important;
      animation-direction: reverse !important;
    }
    html body .home-partners-track.home-partners-track-static.reveal.visible:hover,
    html body .home-partners-track.home-partners-track-static.reveal.visible:focus-within,
    html body .home-partners-track.home-partners-track-static:hover,
    html body .home-partners-track.home-partners-track-static:focus-within {
      animation-play-state: paused !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:nth-child(n+6) {
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
    }
    html body .home-partners-track.home-partners-track-static.reveal.visible .home-partner-logo-card,
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:not(:first-child) {
      -webkit-flex: 0 0 auto !important;
      -ms-flex: 0 0 auto !important;
      flex: 0 0 auto !important;
      max-width: none !important;
      width: clamp(150px, 30vw, 200px) !important;
      min-height: 84px !important;
      padding-top: 0.9rem !important;
      padding-bottom: 0.9rem !important;
      padding-left: 0.9rem !important;
      padding-right: calc(0.9rem + 1.05rem) !important;
      border-radius: 16px !important;
      background: transparent !important;
      background-color: transparent !important;
      background-image: none !important;
      border: 0 !important;
      border-color: transparent !important;
      box-shadow: none !important;
      -webkit-box-shadow: none !important;
      outline: 0 !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card:first-child {
      -webkit-flex: 0 0 auto !important;
      -ms-flex: 0 0 auto !important;
      flex: 0 0 auto !important;
      max-width: none !important;
      width: clamp(168px, 33vw, 222px) !important;
      min-height: 92px !important;
      padding-top: 1rem !important;
      padding-bottom: 1rem !important;
      padding-left: 0.98rem !important;
      padding-right: calc(0.98rem + 1.05rem) !important;
      border-radius: 16px !important;
      background: transparent !important;
      background-color: transparent !important;
      background-image: none !important;
      border: 0 !important;
      border-color: transparent !important;
      box-shadow: none !important;
      -webkit-box-shadow: none !important;
      outline: 0 !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="Dell"] {
      max-height: 68px !important;
      max-width: 126% !important;
      min-height: 62px !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img {
      height: 52px !important;
      max-height: 52px !important;
      max-width: 180px !important;
      min-width: 70px !important;
      min-height: 48px !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="VMware"] {
      max-height: 48px !important;
      max-width: 90% !important;
    }
    html body .home-partners-track.home-partners-track-static .home-partner-logo-card img[alt="Microsoft"] {
      max-height: 82px !important;
      max-width: 155% !important;
      min-height: 74px !important;
    }
  }

  @media (max-width: 640px) {
    .home-partners-track { --duration: 16s; --gap: clamp(0.55rem, 1.7vw, 0.85rem); }
    .home-partners-track-1 { --duration: 16s; }
    .home-partners-track-2 { --duration: 18s; }
    .home-partners-track-1,
    .home-partners-track-2 {
      --pad-r: calc(0.85rem + 0.56rem);
      --gap-track: 0.85rem;
      gap: 0;
    }
    .home-partners-track-1 .home-partner-logo-card,
    .home-partners-track-2 .home-partner-logo-card,
    .home-partners-track:not(.home-partners-track-static) .home-partner-logo-card {
      width: clamp(80px, 25vw, 128px) !important;
      height: clamp(44px, 13vw, 70px) !important;
      padding-top: 0.4rem !important;
      padding-bottom: 0.4rem !important;
      padding-left: 0.56rem !important;
      padding-right: calc(var(--gap-track) + 0.56rem) !important;
      border-radius: 12px !important;
    }
    .home-partners-track-1:hover,
    .home-partners-track-1:focus-within,
    .home-partners-track-2:hover,
    .home-partners-track-2:focus-within {
      animation-play-state: paused !important;
    }
  }/* —— Accesibilidad: reduce motion (último, con !important) —— */
  @media (prefers-reduced-motion: reduce) {.home-partners-group { animation: none !important; }.home-partners-group::after { display: none !important; }.home-partners-track,
    .home-partners-track-1,
    .home-partners-track-2 {
      animation: none !important;
      transform: none !important;
      overflow-x: auto !important;
      scroll-snap-type: x proximity;
      -webkit-overflow-scrolling: touch;
    }.home-partners-track::after,
    .home-partners-track-1::after,
    .home-partners-track-2::after { display: none !important; }.home-partner-logo-card {
      scroll-snap-align: start;
    }}/* ══════════════════════════════════════════════════════════
     VISIBILIDAD INMEDIATA — evita "aparecen tarde" (anti reveal)
     ══════════════════════════════════════════════════════════ */
  .home-partners-track,
  .home-partners-track-1,
  .home-partners-track-2,
  .home-partners-group {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    clip-path: none !important;
    mask: none !important;
    -webkit-mask: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }.home-partners-track::after,
  .home-partners-track-1::after,
  .home-partners-track-2::after,
  .home-partners-group::after {
    padding: 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
    background: transparent !important;
  }.home-partner-logo-card {
    visibility: visible !important;
    clip-path: none !important;
    mask: none !important;
    -webkit-mask: none !important;
    filter: none !important;
    transition: none !important;
  }.home-partner-logo-card img {
    opacity: 0.72 !important;
    visibility: visible !important;
    clip-path: none !important;
    mask: none !important;
    -webkit-mask: none !important;
    filter: grayscale(100%) !important;
    transition: filter 0.35s ease, opacity 0.35s ease !important;
  }
  .home-partner-logo-card:hover {
    filter: none !important;
  }
  .home-partner-logo-card:hover img,
  .home-partner-logo-card:focus-within img {
    filter: grayscale(0%) !important;
    opacity: 1 !important;
  }
  @media (hover: none) and (pointer: coarse) and (max-width: 1024px) {
    #home-partners .home-partner-logo-card:hover img,
    #home-partners .home-partner-logo-card:focus-within img {
      filter: grayscale(100%) !important;
      opacity: 0.72 !important;
    }
    #home-partners .home-partner-logo-card.is-touch-color img,
    #home-partners .home-partner-logo-card:active img {
      filter: grayscale(0%) !important;
      opacity: 1 !important;
    }
    #alianzas .home-partner-logo-card:hover img,
    #alianzas .home-partner-logo-card:focus-within img,
    #alianzas .home-partner-logo-card:active img {
      filter: grayscale(0%) !important;
      opacity: 1 !important;
    }
  }/* Anti reveal / IntersectionObserver: si mete opacity 0 con threshold 0.5,
     lo volvemos a 1 sin transition. */
  .home-partners-section .reveal,
  .home-partners-section .reveal.visible,
  .home-partners-marquees .reveal,
  .home-partners-marquees .reveal.visible,
  .home-partners-track .reveal,
  .home-partners-track .reveal.visible,
  .home-partners-track-1 .reveal,
  .home-partners-track-1 .reveal.visible,
  .home-partners-track-2 .reveal,
  .home-partners-track-2 .reveal.visible,
  .home-partners-group .reveal,
  .home-partners-group .reveal.visible,
  .home-partner-logo-card.reveal,
  .home-partner-logo-card.reveal.visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
  }/* ↑↑ FIN VISIBILIDAD INMEDIATA ↑↑ */

  .home-partner-invite-section {
    padding: 0 0 0.75rem;
    background: var(--white);
  }.home-partner-invite-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    border-radius: 28px;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    color: var(--white);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
  }.home-partner-invite-copy {
    max-width: 56ch;
  }.home-partner-invite-title {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.1vw, 1.6rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: 0.45rem;
  }.home-partner-invite-sub {
    font-size: 0.95rem;
    line-height: 1.65;
    font-weight: 300;
    color: rgba(255, 255, 255, 0.9);
  }.home-partner-invite-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem;
    border-radius: 999px;
    background: var(--white);
    color: var(--accent-dark);
    font-weight: 700;
    font-size: 0.9rem;
    white-space: nowrap;
    transition: transform var(--transition), background var(--transition), color var(--transition);
  }.home-proyecto-section {
    position: relative;
    padding: 4.5rem 0;
    background: url('../proyectoo.jpg') center 50% / cover no-repeat;
    overflow: hidden;
  }.home-proyecto-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    pointer-events: none;
  }.home-proyecto-panel {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(0.35rem, 0.7vw, 0.55rem);
    align-items: start;
    border-radius: 20px;
    padding: clamp(0.7rem, 1.1vw, 0.95rem);
    background: rgba(0,0,0,0.68);
    border: 1px solid rgba(255,255,255,0.12);
    box-shadow: 0 20px 50px rgba(0,0,0,0.3);
  }.home-proyecto-copy {
    text-align: center;
  }.home-proyecto-copy > * {
    margin-left: auto;
    margin-right: auto;
  }.home-proyecto-title {
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 1.5vw, 1.3rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: var(--white);
    max-width: 44rem;
  }.home-proyecto-sub {
    display: none;
  }.home-proyecto-success,
  .home-proyecto-error {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: rgba(255,255,255,0.88);
    font-weight: 400;
    max-width: 40rem;
  }.home-proyecto-form .field-group {
    margin-bottom: 0.18rem;
    gap: 0.22rem;
    grid-template-columns: 1fr 1fr;
    display: grid;
  }.home-proyecto-form .field-group.single {
    grid-template-columns: 1fr;
  }.home-proyecto-form .field-wrap {
    gap: 0.08rem;
  }.home-proyecto-form label,
  .home-proyecto-form label span,
  .home-proyecto-form label .wpcf7-form-control-wrap-label {
    color: #ffffff !important;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.15;
  }.home-proyecto-form input[type="text"],
  .home-proyecto-form input[type="email"],
  .home-proyecto-form input[type="tel"],
  .home-proyecto-form select,
  .home-proyecto-form textarea {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    color: var(--white);
    border-radius: 0.35rem;
    padding: 0.28rem 0.5rem;
    font-size: 0.76rem;
    line-height: 1.25;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
  }.home-proyecto-form select {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.8)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.5rem center;
    background-size: 9px 9px;
    padding-right: 1.8rem;
    cursor: pointer;
  }.home-proyecto-form select option {
    color: #111827;
    background: #ffffff;
  }.home-proyecto-form input[type="text"]::placeholder,
  .home-proyecto-form input[type="email"]::placeholder,
  .home-proyecto-form input[type="tel"]::placeholder,
  .home-proyecto-form textarea::placeholder {
    color: rgba(255,255,255,0.58);
    font-size: 0.76rem;
  }.home-proyecto-form input:focus,
  .home-proyecto-form select:focus,
  .home-proyecto-form textarea:focus {
    border-color: rgba(255,255,255,0.42);
    box-shadow: 0 0 0 2px rgba(0,0,0,0.2);
    outline: none;
  }.home-proyecto-form textarea {
    min-height: 0 !important;
    height: 30px !important;
    padding-top: 0.28rem !important;
    padding-bottom: 0.28rem !important;
    line-height: 1.25 !important;
    box-sizing: border-box !important;
    resize: none !important;
    overflow-y: hidden !important;
  }.home-proyecto-submit {
    margin-top: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.42rem 0.85rem;
    border-radius: 999px;
    border: 0;
    background: var(--white);
    color: var(--accent);
    font-weight: 800;
    font-family: var(--font-display);
    letter-spacing: -0.01em;
    font-size: 0.76rem;
    cursor: pointer;
    transition: transform var(--transition), background var(--transition);
  }.home-testimonials-section {
    padding: 1.25rem 0 2.5rem;
    background: #f3f4f6;
  }.home-testimonials-header {
    text-align: center;
    max-width: 860px;
    margin: 0 auto 2.5rem;
  }.home-testimonials-header .section-sub {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }#home-testimonios .home-testimonials-header .section-title {
    margin-top: 20px;
  }.home-testimonials-shell {
    position: relative;
  }.home-testimonials-viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 28px;
  }.home-testimonials-viewport::-webkit-scrollbar {
    display: none;
  }.home-testimonials-track {
    display: flex;
    gap: 1.5rem;
    padding: 0.5rem 0;
  }.home-testimonials-track > .testimonial-card {
    flex: 0 0 calc(50% - 0.75rem);
    scroll-snap-align: start;
    box-sizing: border-box;
  }.home-testimonials-slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    padding: 0 0.5rem;
    box-sizing: border-box;
  }.testimonial-card {
    background: var(--white);
    border-radius: 22px;
    box-shadow: 0 14px 48px rgba(15, 23, 42, 0.08);
    padding: 1.85rem 1.65rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.95rem;
    transition: transform var(--transition), box-shadow var(--transition);
    text-align: center;
  }.testimonial-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: 0;
    min-width: 0;
  }.testimonial-logo {
    width: auto;
    max-width: 50%;
    height: clamp(58px, 6.2vw, 76px);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    min-width: 0;
    margin: 0 auto 0.45rem;
  }.testimonial-logo img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
    object-position: center;
    filter: saturate(0.95);
    opacity: 0.92;
    min-width: 0;
    min-height: 0;
  }.testimonial-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
    text-align: center;
  }.testimonial-meta {
    padding-bottom: 0.15rem;
    margin-bottom: 0.55rem;
    order: -1;
    width: 100%;
  }.testimonial-name {
    font-weight: 800;
    font-family: var(--font-display);
    letter-spacing: -0.01em;
    color: var(--black);
    margin: 0 0 0.1rem 0;
    text-align: center;
    line-height: 1.15;
  }.testimonial-role {
    font-size: 0.86rem;
    color: rgba(90, 89, 85, 0.78);
    font-weight: 300;
    text-align: center;
    line-height: 1.3;
  }.testimonial-quote {
    font-size: 0.95rem;
    line-height: 1.62;
    color: var(--gray-600);
    font-weight: 600;
    margin: 0 0 0.25rem 0;
    padding: 0 0.4rem;
    text-align: center;
  }.testimonial-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.82rem 1.25rem;
    margin-top: auto;
    background: #2f5cff;
    color: var(--white);
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.9rem;
    width: fit-content;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
    align-self: center;
  }.home-testimonials-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1.5px solid rgba(15, 23, 42, 0.12);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), color var(--transition), background var(--transition);
    color: rgba(90, 89, 85, 0.9);
    z-index: 2;
  }.home-testimonials-arrow:disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }.home-testimonials-arrow--prev { left: 0; }.home-testimonials-arrow--next { right: 0; }.home-testimonials-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1.75rem;
  }.home-map-visual {
    position: relative;
    width: 85%;
    max-width: 100%;
    aspect-ratio: 199 / 132;
    margin: 0;
    flex: 0 0 auto;
    transform: none;
  }.home-map-large {
    display: block;
    width: 100%;
    height: auto;
  }.home-map-point {
    position: absolute;
    width: 0;
    height: 0;
    z-index: 1;
    pointer-events: none;
  }.home-map-dot {
    position: absolute;
    left: -18px;
    top: -18px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--accent-light);
    box-shadow: 0 0 0 6px rgba(24, 170, 236, 0.18);
    color: var(--white);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    animation: mapPulse 2.4s ease-in-out infinite;
  }.home-map-dot::after {
    content: "";
    position: absolute;
    inset: -10px;
    border-radius: 50%;
    border: 1px solid rgba(24, 170, 236, 0.35);
    animation: mapRing 2.4s ease-out infinite;
  }.home-map-point-ba {
    left: 63.8%;
    top: 65%;
  }.home-map-point-py {
    left: 64.2%;
    top: 20%;
  }.home-map-point-uy {
    left: 67%;
    top: 56.8%;
  }.home-map-point-ba .home-map-dot {
    animation-delay: 0s;
  }.home-map-point-py .home-map-dot {
    animation-delay: 0.35s;
  }.home-map-point-uy .home-map-dot {
    animation-delay: 0.7s;
  }@keyframes mapPulse {0%, 100% {
      transform: scale(1);
      opacity: 1;
    }50% {
      transform: scale(1.18);
      opacity: 0.9;
    }}@keyframes mapRing {0% {
      transform: scale(0.65);
      opacity: 0.7;
    }100% {
      transform: scale(1.35);
      opacity: 0;
    }}/* "flag" drop: start above and fall into place one by one via reveal delays */
  .home-logo-col.reveal {
    /* start higher so it falls in from above */
    transform: translateY(-96px);
    transition: opacity 0.55s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  }.home-logo-col.reveal.visible { transform: translateY(0); }.home-logo-col.reveal-delay-1 { transition-delay: 0s; }.home-logo-col.reveal-delay-2 { transition-delay: 0s; }.home-logo-col.reveal-delay-3 { transition-delay: 0s; }.home-logo-col.reveal-delay-4 { transition-delay: 0s; }.metrics-track {
    display: flex;
    gap: 0;
    width: max-content;
    animation: scrollTrack 30s linear infinite;
  }@keyframes scrollTrack {from { transform: translateX(0); }to { transform: translateX(-50%); }}.metric-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 0 0 auto;
    padding: 0 2.25rem;
    white-space: nowrap;
    line-height: 1.1;
  }.metric-num {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--white);
    letter-spacing: -0.01em;
  }.metric-label {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    color: var(--white);
    letter-spacing: 0;
  }/* ─── SECCIONES GENERALES ─────────────────────────────────────── */
  section { padding: var(--section-pad); }.page-intro-section {
    background: var(--accent-light);
    padding: calc(var(--nav-height) + 2.5rem) 0 1.5rem;
  }.page-intro-section.page-intro-section--nosotros,
  .page-intro-section.page-intro-section--servicios,
  .page-intro-section.page-intro-section--infraest,
  .page-intro-section.page-intro-section--experiencias,
  .page-intro-section.page-intro-section--hablemos {
    position: relative;
    overflow: hidden;
    background: #0055ba;
    isolation: isolate;
  }.page-intro-section.page-intro-section--nosotros {
    --intro-bg-image: url('../manos.png');
    --intro-bg-x: 93%;
    --intro-bg-y: 55%;
    --intro-bg-size: contain;
    --intro-mask-offset: 0px;
    min-height: 0;
  }.page-intro-section.page-intro-section--servicios {
    --intro-bg-image: url('../almacen.jpg');
    --intro-bg-x: 95%;
    --intro-bg-y: 65%;
    --intro-bg-size: contain;
  }.page-intro-section.page-intro-section--infraest {
    --intro-bg-image: url('../comercial.jpg');
    --intro-bg-x: 95%;
    --intro-bg-y: 49%;
    --intro-bg-size: contain;
  }.page-intro-section.page-intro-section--experiencias {
    --intro-bg-image: url('../casos1.jpg');
    --intro-bg-x: 93%;
    --intro-bg-y: 50%;
    --intro-bg-size: contain;
  }.page-intro-section.page-intro-section--hablemos {
    --intro-bg-image: url('../hab2.jpg');
    --intro-bg-x: 93%;
    --intro-bg-y: 55%;
    --intro-bg-size: contain;
    --intro-mask-offset: 0px;
    min-height: 0;
  }.page-intro-section.page-intro-section--hablemos::before {
    background-position: 93% 55% !important;
    background-attachment: scroll !important;
    transform: none !important;
    -webkit-transform: none !important;
    will-change: auto !important;
    transition: none !important;
    animation: none !important;
  }.page-intro-section.page-intro-section--nosotros::before,
  .page-intro-section.page-intro-section--servicios::before,
  .page-intro-section.page-intro-section--infraest::before,
  .page-intro-section.page-intro-section--experiencias::before,
  .page-intro-section.page-intro-section--hablemos::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--intro-bg-image);
    background-size: var(--intro-bg-size, cover);
    background-position: var(--intro-bg-x, 50%) calc(var(--intro-bg-y, 50%) + var(--intro-mask-offset, 120px));
    background-repeat: no-repeat;
    -webkit-mask-image: url('../calco-logo-mask.svg');
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: right clamp(1.5rem, 6vw, 5.5rem) center;
    -webkit-mask-size: min(560px, 54vw);
    mask-image: url('../calco-logo-mask.svg');
    mask-repeat: no-repeat;
    mask-position: right clamp(1.5rem, 6vw, 5.5rem) center;
    mask-size: min(560px, 54vw);
    z-index: 0;
    pointer-events: none;
  }.page-intro-section.page-intro-section--infraest::before {
    background-position: var(--intro-bg-x, 50%) calc(var(--intro-bg-y, 50%) + var(--intro-mask-offset, 120px) - 80px);
  }.page-intro-section.page-intro-section--servicios::before {
    background-position: var(--intro-bg-x, 50%) calc(var(--intro-bg-y, 50%) + var(--intro-mask-offset, 120px) - 100px);
  }.page-intro-section.page-intro-section--experiencias::before {
    background-position: var(--intro-bg-x, 50%) calc(var(--intro-bg-y, 50%) + var(--intro-mask-offset, 120px) - 80px);
  }.page-intro-section.page-intro-section--nosotros > .container,
  .page-intro-section.page-intro-section--servicios > .container,
  .page-intro-section.page-intro-section--infraest > .container,
  .page-intro-section.page-intro-section--experiencias > .container,
  .page-intro-section.page-intro-section--hablemos > .container {
    position: relative;
    z-index: 1;
    max-width: none;
    padding-left: clamp(5rem, 12vw, 12rem);
    padding-right: 44vw;
  }.page-intro-section .section-label,
  .page-intro-section .section-title,
  .page-intro-section .section-title em,
  .page-intro-section .section-sub,
  .page-intro-section .entry-content {
    color: var(--white);
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: manual;
  }.page-intro-section > .container > .section-title {
    max-width: 16ch;
    line-height: 1.1;
  }.page-intro-section > .container > .section-sub {
    max-width: 50ch;
  }.page-intro-section .section-label::before {
    background: var(--white);
  }.page-intro-section.page-intro-section--nosotros .section-sub {
    font-size: 1.17rem;
  }

  /* ─── MEDIUM SCREENS (1024-1279px): HEROES INTERNOS — calco/imagen más pequeños ─── */
  @media (min-width: 1024px) and (max-width: 1279px) {
    .page-intro-section.page-intro-section--nosotros::before,
    .page-intro-section.page-intro-section--servicios::before,
    .page-intro-section.page-intro-section--infraest::before,
    .page-intro-section.page-intro-section--experiencias::before,
    .page-intro-section.page-intro-section--hablemos::before {
      -webkit-mask-position: right clamp(1rem, 4.5vw, 3.5rem) center;
      -webkit-mask-size: min(420px, 40vw);
      mask-position: right clamp(1rem, 4.5vw, 3.5rem) center;
      mask-size: min(420px, 40vw);
    }
    .page-intro-section.page-intro-section--nosotros > .container,
    .page-intro-section.page-intro-section--servicios > .container,
    .page-intro-section.page-intro-section--infraest > .container,
    .page-intro-section.page-intro-section--experiencias > .container,
    .page-intro-section.page-intro-section--hablemos > .container {
      padding-left: clamp(4rem, 9vw, 7rem);
      padding-right: 38vw;
    }
  }

  /* ─── MOBILE: OCULTAR .section-sub EN LOS HEROES (MENOS HOME) ─── */
  @media (max-width: 1024px) {
    html body section.page-intro-section.page-intro-section--nosotros > .container > .section-sub,
    html body section.page-intro-section.page-intro-section--servicios > .container > .section-sub,
    html body section.page-intro-section.page-intro-section--infraest > .container > .section-sub,
    html body section.page-intro-section.page-intro-section--experiencias > .container > .section-sub,
    html body section.page-intro-section.page-intro-section--hablemos > .container > .section-sub {
      display: none !important;
      visibility: hidden !important;
      height: 0 !important;
      opacity: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      overflow: hidden !important;
    }
  }
  /* ─── MOBILE HERO IMAGES OPACITY 5% BEHIND CONTENT ─────────────── */
  @media (max-width: 1024px) {
    html body .page-intro-section.page-intro-section--nosotros::before,
    html body .page-intro-section.page-intro-section--servicios::before,
    html body .page-intro-section.page-intro-section--infraest::before,
    html body .page-intro-section.page-intro-section--experiencias::before,
    html body .page-intro-section.page-intro-section--hablemos::before {
      /* quita mask para que la imagen completa quede de fondo */
      -webkit-mask-image: none !important;
      mask-image: none !important;
      /* fondo completo de la sección */
      background-size: cover !important;
      background-position: var(--intro-bg-x, 50%) var(--intro-bg-y, 50%) !important;
      /* capa 5% (alpha 0.05) con blend para que no opaque el texto */
      opacity: 0.05 !important;
      mix-blend-mode: normal;
      filter: saturate(1.1) contrast(1.02);
      z-index: 0;
      pointer-events: none;
    }
    html body .page-intro-section.page-intro-section--hablemos::before {
      background-position: 93% 55% !important;
      background-attachment: scroll !important;
      transform: none !important;
      -webkit-transform: none !important;
      will-change: auto !important;
      transition: none !important;
      animation: none !important;
    }
    /* capa de superposición de color azul base sobre la imagen para legibilidad */
    html body .page-intro-section.page-intro-section--nosotros,
    html body .page-intro-section.page-intro-section--servicios,
    html body .page-intro-section.page-intro-section--infraest,
    html body .page-intro-section.page-intro-section--experiencias,
    html body .page-intro-section.page-intro-section--hablemos {
      background-image: linear-gradient(180deg, rgba(0,85,186,0.92) 0%, rgba(0,85,186,0.88) 100%);
    }
    html body .page-intro-section.page-intro-section--nosotros > .container,
    html body .page-intro-section.page-intro-section--servicios > .container,
    html body .page-intro-section.page-intro-section--infraest > .container,
    html body .page-intro-section.page-intro-section--experiencias > .container,
    html body .page-intro-section.page-intro-section--hablemos > .container {
      z-index: 2;
      max-width: none;
      padding-left: clamp(1.25rem, 5vw, 2rem) !important;
      padding-right: clamp(1.25rem, 5vw, 2rem) !important;
    }
  }.services-differentials-section .home-uruguay-header .section-title {
    font-size: clamp(1.7rem, 2.6vw, 2.45rem);
    white-space: nowrap;
  }.section-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent);
    margin-bottom: 1.25rem;
  }.section-label::before {
    content: '';
    display: block;
    width: 20px;
    height: 2px;
    background: var(--accent);
    border-radius: 1px;
  }.section-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.025em;
    color: var(--black);
    text-wrap: pretty;
    overflow-wrap: anywhere;
    word-break: normal;
    -ms-word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
    -webkit-hyphens: none;
    white-space: normal !important;
    width: 100%;
    max-width: 100%;
  }.section-title em {
    font-style: normal;
    color: var(--accent);
  }.section-sub {
    font-size: 1.0625rem;
    color: var(--gray-600);
    max-width: 560px;
    margin-top: 1rem;
    line-height: 1.7;
    font-weight: 700;
  }#erps-crms .section-sub {
    max-width: 100%;
  }/* ─── DIFERENCIALES ─────────────────────────────────────── */
  #diferenciales { background: var(--gray-50); }.dif-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
    margin-top: 3.5rem;
  }.dif-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 2rem;
    cursor: default;
    transition: all var(--transition);
    position: relative;
    overflow: hidden;
  }.dif-card::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    height: 3px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition);
  }.dif-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--accent-light);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
  }.dif-icon svg { width: 24px; height: 24px; }.dif-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 0.625rem;
    color: var(--black);
  }.dif-desc {
    font-size: 0.875rem;
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 300;
  }.datacenters-cta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
  }.datacenters-cta-card {
    background: var(--accent);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: var(--radius-lg);
    padding: 2rem;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    transition: all var(--transition);
  }.datacenters-cta-logo {
    width: 90px;
    height: 90px;
    border-radius: 12px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0.85rem;
  }.datacenters-cta-logo svg,
  .datacenters-cta-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }.datacenters-cta-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--white);
  }.datacenters-cta-sub {
    font-size: 0.9rem;
    color: rgba(255,255,255,0.78);
    line-height: 1.65;
    font-weight: 700;
  }.datacenters-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.35);
    color: var(--white);
    background: rgba(255,255,255,0.08);
    font-weight: 700;
    font-size: 0.85rem;
    width: fit-content;
  }#datacenters2 {
    display: none;
  }#datacenters2:target {
    display: block;
  }.datacenters2-panel {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    border-radius: 28px;
    padding: clamp(1.75rem, 4vw, 3rem);
    color: var(--white);
    box-shadow: 0 30px 70px rgba(0,0,0,0.14);
  }.datacenters2-title {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.2vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
    color: var(--white);
  }.datacenters2-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }.datacenters2-col {
    border-radius: 22px;
    padding: 1.5rem;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 160px;
  }.datacenters2-label {
    font-size: 1.1rem;
    line-height: 1.35;
    font-weight: 800;
    letter-spacing: -0.01em;
  }.datacenters2-slot {
    flex: 1;
    min-height: 58px;
    border-radius: 18px;
    background: rgba(255,255,255,0.12);
    border: 1px dashed rgba(255,255,255,0.35);
  }.datacenters2-right-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
  }.datacenters2-keblan {
    width: 140px;
    height: 54px;
    border-radius: 18px;
    padding: 0.65rem 0.85rem;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    display: flex;
    align-items: center;
    justify-content: center;
  }.datacenters2-keblan img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }.datacenters2-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.6rem 1.15rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.35);
    color: var(--white);
    background: rgba(255,255,255,0.08);
    font-weight: 800;
    font-size: 0.9rem;
    transition: background var(--transition), border-color var(--transition), transform var(--transition);
    width: fit-content;
  }@media (max-width: 900px) {.datacenters2-grid {
      grid-template-columns: 1fr;
    }}.cloudara-header-btn {
    margin-top: 1rem;
  }.cloudara-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
    flex-wrap: wrap;
  }.cloudara-header-copy {
    flex: 1 1 420px;
  }.cloudara-header-media {
    flex: 0 1 420px;
    display: flex;
    justify-content: flex-end;
  }.cloudara-header-media img {
    width: min(286px, 100%);
    border-radius: var(--radius-lg);
    border: 0;
    background: transparent;
  }.cloudara-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.25rem;
    margin-top: 3rem;
  }.cloudara-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 1.65rem 1.5rem;
    display: flex;
    gap: 1.25rem;
    align-items: center;
    transition: all var(--transition);
  }.cloudara-card-media {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
    transition: background var(--transition), border-color var(--transition);
  }.cloudara-card-media img {
    width: 50px;
    height: 50px;
    object-fit: contain;
  }.cloudara-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
  }.cloudara-card-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--black);
  }.cloudara-card-desc {
    font-size: 0.86rem;
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 700;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin-top: 0;
    margin-bottom: 0;
    transition: all var(--transition);
  }.cloudara-card-btn {
    margin-top: 0;
    display: inline-flex;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all var(--transition);
  }.ai-solution-section {
    padding: var(--section-pad);
    background:
      radial-gradient(circle at top left, rgba(24, 170, 236, 0.1), transparent 28%),
      linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  }.ai-solution-hero {
    display: grid;
    gap: 1rem;
    padding: 2.5rem;
    border-radius: 32px;
    background: linear-gradient(135deg, #05070d 0%, #0055BA 65%, #18AAEC 100%);
    color: var(--white);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.18);
  }#IA .ai-solution-hero {
    position: relative;
    overflow: hidden;
    background:
      linear-gradient(rgba(5, 7, 13, 0.62), rgba(5, 7, 13, 0.62)),
      url('../sol-ia1.png') center/cover no-repeat;
  }#soluciones-empresariales .ai-solution-hero {
    position: relative;
    overflow: hidden;
    min-height: 403px;
    align-content: start;
    background:
      linear-gradient(rgba(5, 7, 13, 0.62), rgba(5, 7, 13, 0.62)),
      url('../sol2.png') center 15% / cover no-repeat;
  }#servicios-financieros .ai-solution-hero {
    position: relative;
    overflow: hidden;
    background:
      linear-gradient(rgba(5, 7, 13, 0.62), rgba(5, 7, 13, 0.62)),
      url('../sol3.png') center/cover no-repeat;
  }#IA .ai-solution-hero > * {
    position: relative;
    z-index: 1;
  }#soluciones-empresariales .ai-solution-hero > * {
    position: relative;
    z-index: 1;
  }#servicios-financieros .ai-solution-hero > * {
    position: relative;
    z-index: 1;
  }.ai-solution-hero .btn-primary {
    width: fit-content;
    justify-self: start;
  }.ai-solution-hero .section-label,
  .ai-solution-hero .section-label::before,
  .ai-solution-hero .section-title {
    color: var(--white);
    background: var(--white);
  }.ai-solution-hero .section-label {
    color: rgba(255, 255, 255, 0.86);
  }#IA .ai-solution-hero .section-label::before {
    display: none;
  }#soluciones-empresariales .ai-solution-hero .section-label::before {
    display: none;
  }#secops .ai-solution-hero .section-label::before {
    display: none;
  }#secops .section-label::before {
    display: none;
    content: none;
  }.ai-solution-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 4vw, 4.25rem);
    line-height: 0.98;
    letter-spacing: -0.04em;
    max-width: none;
    width: 100%;
    text-wrap: pretty;
    overflow-wrap: anywhere;
    word-break: normal;
    -ms-word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
    -webkit-hyphens: none;
    white-space: normal !important;
  }#soluciones-empresariales .ai-solution-title {
    font-size: clamp(2.05rem, 3.6vw, 3.825rem);
  }.ai-solution-subhead {
    margin: 0;
    max-width: 60ch;
    font-size: 1.05rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.88);
  }.ai-solution-block,
  .ai-solution-proof,
  .ai-solution-cta {
    margin-top: 2rem;
    padding: 2rem;
    border-radius: 28px;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.06);
  }.ai-solution-block-head {
    display: grid;
    gap: 0.55rem;
    margin-bottom: 1.15rem;
  }#servicios-industriales .ai-solution-proof-hero {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: clamp(1rem, 2vw, 1.6rem);
    align-items: stretch;
    margin-bottom: 1.5rem;
  }#servicios-industriales .ai-solution-proof-hero .ai-solution-block-head {
    margin-bottom: 0;
    align-content: center;
  }#servicios-industriales .ai-solution-proof-media {
    justify-self: end;
    width: 100%;
    max-width: 360px;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.06);
    background: rgba(248, 250, 252, 0.9);
  }#servicios-industriales .ai-solution-proof-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center;
  }.ai-solution-block-head .section-title,
  .ai-solution-proof .section-title,
  .ai-solution-cta .section-title {
    max-width: 34ch;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }.ai-solution-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
    color: var(--accent-dark);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }.ai-solution-kicker::before {
    content: "";
    width: 30px;
    height: 1px;
    background: currentColor;
    opacity: 0.45;
  }.ai-solution-copy {
    display: grid;
    gap: 1rem;
    max-width: 76ch;
  }.ai-solution-copy p,
  .ai-solution-intro {
    margin: 0;
    color: var(--gray-600);
    line-height: 1.8;
    font-size: 0.98rem;
  }.ai-solution-challenges,
  .ai-solution-proof-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
  }.ai-solution-challenges--with-title {
    margin-top: 2.25rem;
  }.ai-solution-challenges--with-title .ai-solution-kicker {
    grid-column: 1 / -1;
    margin-bottom: 0.1rem;
  }.ai-solution-chip,
  .ai-solution-proof-item {
    padding: 1rem 1.1rem;
    border-radius: 18px;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: rgba(248, 250, 252, 0.9);
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 700;
  }.ai-solution-proof-item--logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    text-align: center;
  }.ai-solution-proof-logo-link {
    display: inline-flex;
    flex: 0 0 auto;
    width: fit-content;
  }.ai-solution-proof-logo-link img {
    display: block;
    max-width: min(120px, 100%);
    height: auto;
    object-fit: contain;
  }.ai-solution-proof-logo-caption {
    color: var(--gray-600);
    line-height: 1.6;
    font-weight: 700;
  }.ai-solution-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 1.5rem;
  }.ai-solution-card {
    padding: 1.35rem;
    border-radius: 22px;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  }#soluciones-empresariales .ai-solution-grid--business {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "domus erp"
      "gropp software";
    align-items: start;
  }#soluciones-empresariales .ai-solution-card--business {
    height: 100%;
  }#soluciones-empresariales .ai-solution-card--erp {
    grid-area: erp;
  }#soluciones-empresariales .ai-solution-card--software {
    grid-area: software;
  }#soluciones-empresariales .ai-solution-card--domus {
    grid-area: domus;
    padding: 1.4rem 1.45rem;
  }#soluciones-empresariales .ai-solution-card--gropp {
    grid-area: gropp;
    align-self: start;
    padding: 1.15rem 1.15rem 1rem;
  }#soluciones-empresariales .ai-solution-card-head--brand {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.7rem;
  }#soluciones-empresariales .ai-solution-card--domus .ai-solution-card-head--brand {
    flex-direction: column;
    align-items: flex-start;
  }#soluciones-empresariales .ai-solution-card-label--logo {
    margin: 0;
    flex: 0 0 auto;
  }#soluciones-empresariales .ai-solution-card--domus .ai-solution-card-title {
    margin-bottom: 0;
    max-width: 30rem;
  }#soluciones-empresariales .ai-solution-list--domus {
    columns: 2;
    column-gap: 1.5rem;
    padding-left: 1rem;
  }#soluciones-empresariales .ai-solution-list--domus li {
    break-inside: avoid;
  }#soluciones-empresariales .ai-solution-card--domus .ai-solution-card-intro:last-child,
  #soluciones-empresariales .ai-solution-card--gropp .ai-solution-card-intro:last-of-type,
  #soluciones-empresariales .ai-solution-card--gropp .ai-solution-card-label:last-child {
    margin-bottom: 0;
  }#soluciones-empresariales .ai-solution-card--gropp .ai-solution-card-label {
    margin-top: 0.65rem;
    margin-bottom: 0.7rem;
  }#soluciones-empresariales .ai-solution-card--gropp .ai-solution-card-intro {
    line-height: 1.6;
    margin-bottom: 0.6rem;
  }#IA .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#IA .ai-solution-copy p,
  #IA .ai-solution-intro {
    font-size: 1.078rem;
  }#IA .ai-solution-grid .ai-solution-card-title {
    font-size: 1.232rem;
  }#IA .ai-solution-grid .ai-solution-card-intro,
  #IA .ai-solution-grid .ai-solution-card-label,
  #IA .ai-solution-grid .ai-solution-list {
    font-size: 0.99rem;
  }#servicios-financieros .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#servicios-financieros .ai-solution-copy p {
    font-size: 1.08rem;
  }#servicios-financieros .ai-solution-grid .ai-solution-card-title {
    font-size: 1.22rem;
  }#servicios-financieros .ai-solution-grid .ai-solution-card-intro,
  #servicios-financieros .ai-solution-grid .ai-solution-card-label,
  #servicios-financieros .ai-solution-grid .ai-solution-list {
    font-size: 1rem;
  }#secops .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#secops .ai-solution-copy p {
    font-size: 1.08rem;
  }#secops .ai-solution-service-name {
    font-size: 1.22rem;
  }#secops .ai-solution-service-desc,
  #secops .ai-solution-service-item .ai-solution-list {
    font-size: 1rem;
  }#servicios-gestionados-soporte .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#servicios-gestionados-soporte .ai-solution-copy p {
    font-size: 1.08rem;
  }#servicios-industriales .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#servicios-industriales .ai-solution-copy p,
  #servicios-industriales .ai-solution-intro {
    font-size: 1.08rem;
  }#servicios-industriales .ai-solution-intro {
    display: block;
    width: 100%;
    max-width: none;
  }#servicios-gestionados-soporte .ai-solution-service-name {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.18rem;
  }#servicios-gestionados-soporte .ai-solution-service-grid--managed-support {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }#servicios-gestionados-soporte .ai-solution-service-item--managed-support {
    padding: 1.5rem 1.4rem;
  }#servicios-gestionados-soporte .ai-solution-service-name::before {
    content: "";
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 999px;
    background:
      var(--managed-service-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E"))
      center / 18px 18px no-repeat,
      linear-gradient(180deg, rgba(24, 170, 236, 0.18) 0%, rgba(28, 99, 239, 0.12) 100%);
    border: 1px solid rgba(28, 99, 239, 0.16);
  }#servicios-gestionados-soporte .ai-solution-service-name--pill {
    padding-left: 0.75rem;
  }#servicios-gestionados-soporte .ai-solution-service-desc,
  #servicios-gestionados-soporte .ai-solution-service-item .ai-solution-list {
    font-size: 1.15rem;
    font-weight: 700;
  }#servicios-gestionados-soporte .ai-solution-service-name--outsourcing {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--outsourcing-integral {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2H10a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--technical-services {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0-1.4 0L2 17.6V22h4.4L17.7 10.7a1 1 0 0 0 0-1.4z'/%3E%3Cpath d='m12 8 4 4'/%3E%3Cpath d='M19 3l2 2'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--managed-services {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h6l2-5 4 10 2-5h4'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--service-desk {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11v2a4 4 0 0 0 4 4h1'/%3E%3Cpath d='M16 17h1a4 4 0 0 0 4-4v-2'/%3E%3Cpath d='M8 17v1a4 4 0 0 0 8 0v-1'/%3E%3Cpath d='M4 11a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--service-360 {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8'/%3E%3Cpath d='M12 16v4'/%3E%3Cpath d='M7 9h5'/%3E%3Cpath d='M7 12h3'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--managed-ops {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h0A1.65 1.65 0 0 0 10 3.09V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h0a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v0A1.65 1.65 0 0 0 20.91 10H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--sass {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 18l6-6-6-6'/%3E%3Cpath d='M8 6l-6 6 6 6'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--backup {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5'/%3E%3Cpath d='M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--projects {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0-1.4 0L3 16.6V21h4.4L17.7 10.7a1 1 0 0 0 0-1.4z'/%3E%3Cpath d='m12 8 4 4'/%3E%3Cpath d='M19 3l2 2'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--monitoring {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-8 4 16 3-8h4'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--noc {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 1 0 9 9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3Cpath d='M20 4v4h-4'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--hardware {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='7' width='10' height='10' rx='1'/%3E%3Cpath d='M11 3v4'/%3E%3Cpath d='M13 3v4'/%3E%3Cpath d='M11 17v4'/%3E%3Cpath d='M13 17v4'/%3E%3Cpath d='M3 11h4'/%3E%3Cpath d='M3 13h4'/%3E%3Cpath d='M17 11h4'/%3E%3Cpath d='M17 13h4'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--devops {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3v12'/%3E%3Cpath d='M18 9v12'/%3E%3Cpath d='M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'/%3E%3Cpath d='M18 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'/%3E%3Cpath d='M6 6h9a3 3 0 0 1 3 3'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--assessment {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--other {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0-1.4 0L2 17.6V22h4.4L17.7 10.7a1 1 0 0 0 0-1.4z'/%3E%3Cpath d='M16 4l4 4'/%3E%3Cpath d='M19 2l3 3'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-name--tm {
    --managed-service-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E");
  }#servicios-gestionados-soporte .ai-solution-service-item--managed-support .ai-solution-list {
    margin-top: 0.9rem;
  }#servicios-gestionados-soporte .ai-solution-service-item--managed-support .ai-solution-list li + li {
    margin-top: 0.75rem;
  }#servicios-gestionados-soporte .ai-solution-service-item--managed-support .ai-solution-service-desc + .ai-solution-list,
  #servicios-gestionados-soporte .ai-solution-service-item--managed-support .ai-solution-list + .ai-solution-service-desc {
    margin-top: 1rem;
  }@media (max-width: 1180px) {#servicios-gestionados-soporte .ai-solution-service-grid--managed-support {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }}#soluciones-empresariales .ai-solution-copy p {
    font-size: 1.1rem;
  }#soluciones-empresariales .ai-solution-copy {
    width: 100%;
    max-width: none;
  }#soluciones-empresariales .ai-solution-grid--business .ai-solution-card-title {
    font-size: 1.232rem;
  }#soluciones-empresariales .ai-solution-grid--business .ai-solution-card-intro,
  #soluciones-empresariales .ai-solution-grid--business .ai-solution-card-label,
  #soluciones-empresariales .ai-solution-grid--business .ai-solution-list,
  #soluciones-empresariales .ai-solution-grid--business .ai-solution-brand-copy {
    font-size: 1.01rem;
  }.ai-solution-card-title {
    margin: 0 0 0.75rem;
    font-family: var(--font-display);
    font-size: 1.12rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--black);
  }.ai-solution-card-intro,
  .ai-solution-card-label {
    margin: 0 0 0.85rem;
    color: var(--gray-600);
    line-height: 1.75;
    font-size: 0.92rem;
  }.ai-solution-card-label {
    margin-top: 0.95rem;
    font-weight: 800;
    color: var(--accent-dark);
  }.ai-solution-service-name--pill {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(24, 170, 236, 0.16);
    border: 1px solid rgba(24, 170, 236, 0.3);
    color: var(--accent-dark);
  }#soluciones-empresariales .ai-solution-card,
  #servicios-financieros .ai-solution-card,
  #secops .ai-solution-service-item,
  #servicios-gestionados-soporte .ai-solution-service-item,
  #servicios-industriales .ai-solution-service-item {
    background: rgba(248, 250, 252, 0.9);
  }#soluciones-empresariales .ai-solution-card-title,
  #soluciones-empresariales .ai-solution-card-intro,
  #soluciones-empresariales .ai-solution-card-label,
  #soluciones-empresariales .ai-solution-list,
  #servicios-financieros .ai-solution-card-title,
  #servicios-financieros .ai-solution-card-intro,
  #servicios-financieros .ai-solution-card-label,
  #servicios-financieros .ai-solution-list,
  #secops .ai-solution-service-name,
  #secops .ai-solution-service-desc,
  #servicios-gestionados-soporte .ai-solution-service-name,
  #servicios-gestionados-soporte .ai-solution-service-desc,
  #servicios-gestionados-soporte .ai-solution-list,
  #servicios-industriales .ai-solution-service-name,
  #servicios-industriales .ai-solution-service-desc {
    color: var(--gray-600);
  }#soluciones-empresariales .ai-solution-inline-link,
  #servicios-financieros .ai-solution-inline-link {
    color: var(--gray-600);
  }.ai-solution-inline-link {
    color: var(--accent-dark);
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 85, 186, 0.24);
  }.ai-solution-list {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--gray-600);
    list-style: disc;
    font-size: 0.9rem;
    line-height: 1.65;
  }.ai-solution-list li + li {
    margin-top: 0.7rem;
  }.ai-solution-list li::marker {
    color: var(--accent-dark);
  }.ai-solution-list li > ul {
    margin-top: 0.45rem;
    padding-left: 1.15rem;
    list-style: circle;
  }.ai-solution-list li > ul li::marker {
    color: var(--accent-dark);
  }.ai-solution-list strong {
    color: var(--gray-900);
    font-weight: 800;
  }.ai-solution-inline-logos {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 0.7rem;
    margin-top: 0.5rem;
    margin-left: 0;
    vertical-align: top;
  }.ai-solution-inline-logos img {
    display: block;
    max-width: 38px;
    width: auto;
    object-fit: contain;
  }.ai-solution-inline-logos img[alt="Honeywell"],
  .ai-solution-inline-logos img[alt="Envipco"] {
    width: 91px;
    max-height: none;
  }.ai-solution-inline-brand {
    display: inline-flex;
    align-items: center;
    margin-right: 0.45rem;
    vertical-align: middle;
  }.ai-solution-inline-brand img {
    display: block;
    max-height: 32px;
    width: auto;
    object-fit: contain;
  }.ai-solution-list--brands {
    list-style: none;
    padding-left: 0;
  }.ai-solution-brand-list-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
  }.ai-solution-brand-stack {
    display: inline-flex;
    align-items: center;
  }.ai-solution-brand-stack img {
    display: block;
    max-height: 32px;
    width: auto;
    object-fit: contain;
  }.ai-solution-brand-stack img[alt="Dell"] {
    max-height: 35px;
  }.ai-solution-brand-stack img[alt="VMware"] {
    max-height: 27px;
  }.ai-solution-list--brands .ai-solution-brand-list-item:nth-child(1) .ai-solution-brand-stack img,
  .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(2) .ai-solution-brand-stack img,
  .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(3) .ai-solution-brand-stack img,
  .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(4) .ai-solution-brand-stack img {
    max-height: 48px;
  }.ai-solution-brand-copy {
    display: block;
  }.ai-solution-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
  }.ai-solution-service-item {
    padding: 1.2rem 1.25rem;
    border-radius: 20px;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  }.ai-solution-service-name {
    margin: 0 0 0.55rem;
    font-family: var(--font-display);
    font-size: 1rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--black);
    text-align: center;
  }.ai-solution-service-desc {
    margin: 0;
    color: var(--gray-600);
    line-height: 1.72;
    font-size: 0.92rem;
  }#servicios-industriales .ai-solution-service-name {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem;
    font-size: 1.15rem;
    line-height: 1.2;
  }#servicios-industriales .ai-solution-service-desc {
    font-size: 1rem;
  }#servicios-industriales .ai-solution-service-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    margin-top: -0.08rem;
    border-radius: 12px;
    border: 1px solid rgba(24, 170, 236, 0.26);
    background: rgba(24, 170, 236, 0.12);
    color: var(--accent-dark);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
  }#servicios-industriales .ai-solution-service-icon svg {
    width: 1.54rem;
    height: 1.54rem;
  }#servicios-industriales .ai-solution-proof-grid {
    margin-top: 0;
    align-items: stretch;
  }#servicios-industriales .ai-solution-proof-item {
    height: 100%;
  }#servicios-industriales .ai-solution-service-title-text {
    display: block;
  }#servicios-industriales .ai-solution-service-item--partners {
    display: flex;
    flex-direction: column;
  }#servicios-industriales .ai-solution-service-partners-image {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 220px;
    flex: 1 1 auto;
    margin-top: 0.85rem;
    margin-left: 0;
    margin-right: 0;
    object-fit: contain;
  }.ai-solution-service-item .ai-solution-list {
    margin-top: 0.85rem;
  }.ai-solution-service-qr {
    margin-top: 1rem;
    width: fit-content;
    height: auto;
    border-radius: 999px;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }.ai-solution-service-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }#secops-eps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name qr"
      "desc qr";
    column-gap: 1rem;
    align-items: center;
  }#secops-vciso {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }#secops-vciso .ai-solution-service-qr {
    margin-top: 0.85rem;
  }#secops-eps .ai-solution-service-name {
    grid-area: name;
    margin-bottom: 0.35rem;
  }#secops .ai-solution-service-name {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
  }#secops .ai-solution-service-name::before {
    content: "";
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: 999px;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231863ef' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.6-2.9 7.8-7 9-4.1-1.2-7-4.4-7-9V6l7-3z'/%3E%3Cpath d='m9.5 12 1.8 1.8L14.8 10'/%3E%3C/svg%3E")
      center / 20px 20px no-repeat,
      linear-gradient(180deg, rgba(24, 170, 236, 0.18) 0%, rgba(28, 99, 239, 0.12) 100%);
    border: 1px solid rgba(28, 99, 239, 0.16);
  }#secops-eps .ai-solution-service-desc {
    grid-area: desc;
  }#secops-eps .ai-solution-service-qr {
    grid-area: qr;
    margin-top: 0;
  }.ai-solution-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    align-items: center;
    justify-content: flex-end;
  }.ai-solution-proof .ai-solution-actions {
    margin-top: 1.5rem;
    justify-content: flex-start;
  }.ai-solution-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
  }.ai-solution-cta .section-title {
    margin: 0;
  }#secops .ai-solution-cta .section-title {
    font-size: clamp(1.65rem, 2.5vw, 2.25rem);
    line-height: 1.08;
  }#servicios-industriales .ai-solution-cta .section-title {
    font-size: clamp(1.6rem, 2.35vw, 2.15rem);
    line-height: 1.08;
  }#secops .ai-solution-actions {
    width: fit-content;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    flex-shrink: 0;
  }#secops .btn-info,
  #secops .ai-solution-service-qr {
    background: linear-gradient(135deg, #05070d 0%, #0055BA 100%);
    border-color: transparent;
    color: var(--white);
  }@media (max-width: 980px) {.ai-solution-grid {
      grid-template-columns: 1fr;
    }#soluciones-empresariales .ai-solution-grid--business {
      grid-template-columns: 1fr;
      grid-template-areas:
        "domus"
        "software"
        "erp"
        "gropp";
    }#soluciones-empresariales .ai-solution-card-head--brand {
      flex-direction: column;
    }#soluciones-empresariales .ai-solution-list--domus {
      columns: 1;
    }.ai-solution-service-grid {
      grid-template-columns: 1fr;
    }.ai-solution-challenges,
    .ai-solution-proof-grid,
    .ai-solution-cta {
      grid-template-columns: 1fr;
      display: grid;
    }.ai-solution-cta {
      justify-content: flex-start;
    }#servicios-industriales .ai-solution-proof-hero {
      grid-template-columns: 1fr;
    }#servicios-industriales .ai-solution-proof-media {
      justify-self: start;
      max-width: 100%;
    }}@media (max-width: 640px) {.ai-solution-hero,
    .ai-solution-block,
    .ai-solution-proof,
    .ai-solution-cta {
      padding: 1.4rem;
      border-radius: 22px;
    }.ai-solution-challenges,
    .ai-solution-proof-grid {
      grid-template-columns: 1fr;
    }#soluciones-empresariales .ai-solution-hero {
      min-height: auto;
    }.ai-solution-title,
    .ai-solution-block-head .section-title,
    .ai-solution-proof .section-title,
    .ai-solution-cta .section-title {
      max-width: 100%;
    }.ai-solution-actions {
      justify-content: flex-start;
    }}.financial-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.25rem;
    margin-top: 3rem;
  }.financial-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 1.65rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: all var(--transition);
  }@media (min-width: 720px) {.financial-card {
      flex-direction: row;
      align-items: flex-start;
      gap: 1.25rem;
    }.financial-card-media {
      width: auto;
      flex: 0 0 60px;
    }.financial-card-media img {
      width: 60px;
      height: 60px;
    }}.financial-card > div:last-child {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
  }.financial-card-media {
    width: 100%;
    display: flex;
    justify-content: flex-start;
  }.financial-card-media img {
    width: 60px;
    height: 60px;
    object-fit: contain;
    border-radius: 18px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    padding: 0.75rem;
  }.financial-card-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--black);
  }.financial-card-desc {
    font-size: 0.86rem;
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 700;
  }@media (hover: hover) and (pointer: fine) {.financial-card-desc {
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      margin-top: 0;
      transition: all var(--transition);
    }}.financial-subtitle {
    margin-top: 0.75rem;
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--black);
  }.financial-card-btn {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
  }.financial-subsection {
    margin-top: 1.5rem;
    border-radius: var(--radius-lg);
    padding: 2.25rem 2rem;
    background: var(--accent);
    color: var(--white);
    display: flex;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: wrap;
  }.financial-subsection-media {
    width: 88px;
    height: 88px;
    border-radius: 18px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    flex-shrink: 0;
  }.financial-subsection-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }.financial-subsection-body {
    flex: 1 1 520px;
  }.financial-subsection-title {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 1rem;
    color: var(--white);
  }.financial-subsection-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
  }.financial-subsection-btn {
    border-color: rgba(255,255,255,0.35);
  }.erp-logos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-top: 2.25rem;
  }.erp-logo-btn {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 1.5rem 1.75rem;
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition);
  }.erp-logo-btn img {
    max-height: 44px;
    width: auto;
    object-fit: contain;
  }.secops-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-top: 2.75rem;
  }.secops-card {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 1.65rem 1.5rem;
    transition: all var(--transition);
  }.secops-card:not(.secops-card--qr) {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
  }@media (min-width: 720px) {.secops-card:not(.secops-card--qr) {
      display: grid;
      grid-template-columns: 50px 1fr;
      column-gap: 1.15rem;
      row-gap: 0.35rem;
      align-items: start;
    }.secops-card-media {
      grid-row: 1 / span 2;
    }}.secops-card-media {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }.secops-card-media img {
    width: 50px;
    height: 50px;
    object-fit: contain;
  }.secops-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    color: var(--black);
    margin-bottom: 0;
  }.secops-desc {
    font-size: 0.86rem;
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 700;
  }.secops-card--qr {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    flex-wrap: wrap;
  }.secops-qr {
    width: 110px;
    height: 110px;
    border-radius: 18px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    padding: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }.secops-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }.devops-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.25rem;
    margin-top: 2.75rem;
  }.devops-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
    flex-wrap: wrap;
  }.devops-header-copy {
    flex: 1 1 420px;
  }.devops-header-media {
    flex: 0 1 420px;
    border-radius: var(--radius-lg);
    border: 0;
    background: transparent;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }.devops-header-media img {
    width: 100%;
    max-width: 240px;
    max-height: 140px;
    height: auto;
    object-fit: contain;
  }.devops-card {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: flex-start;
    transition: all var(--transition);
  }.devops-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--black);
    margin-bottom: 0.5rem;
  }.devops-desc {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.65;
    font-weight: 700;
  }.industrial-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
    margin-top: 2.75rem;
  }@media (min-width: 720px) {.industrial-grid {
      grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    }}.industrial-card {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
    transition: all var(--transition);
    min-height: 80px;
  }@media (min-width: 720px) {.industrial-card {
      flex-direction: row;
      gap: 1.25rem;
      align-items: flex-start;
    }.industrial-card-media {
      width: 50px;
      height: 50px;
      border-radius: 14px;
      flex: 0 0 50px;
    }.industrial-card-media img {
      width: 50px;
      height: 50px;
    }}.industrial-card-media {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }.industrial-card-media img {
    width: 50px;
    height: 50px;
    object-fit: contain;
  }.industrial-card-title {
    font-family: var(--font-display);
    font-size: 0.96rem;
    font-weight: 800;
    color: var(--black);
    letter-spacing: -0.01em;
  }.financial-domus {
    margin-top: 2rem;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 2rem;
    display: flex;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: wrap;
  }.financial-domus-media {
    width: 120px;
    height: 120px;
    border-radius: 22px;
    border: 1px solid var(--gray-200);
    background: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    flex-shrink: 0;
  }.financial-domus-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }.financial-domus-body {
    flex: 1 1 420px;
  }.financial-domus-title {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--black);
    margin-bottom: 0.5rem;
  }.financial-domus-desc {
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.7;
    font-weight: 700;
  }.financial-domus-desc + .financial-domus-desc {
    margin-top: 0.9rem;
  }.iso-banner {
    margin-top: 3rem;
    background: var(--black);
    border-radius: var(--radius-lg);
    padding: 2.5rem 3rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
  }.iso-text h3 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--white);
    margin-bottom: 0.375rem;
  }.iso-text p {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.5);
    font-weight: 300;
  }.iso-badges { display: flex; gap: 0.75rem; flex-wrap: wrap; }.iso-badge {
    padding: 0.5rem 1.25rem;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 100px;
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(255,255,255,0.8);
    letter-spacing: 0.04em;
  }/* ─── SOLUCIONES ─────────────────────────────────────── */
  #nuestras-soluciones {
    background: var(--white);
    padding: var(--section-pad);
  }.solutions-premium-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 3.25rem;
    align-items: stretch;
  }.solutions-premium-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--white);
    border: 1px solid #EAEAEA;
    border-radius: 24px;
    padding: 1.75rem;
    position: relative;
    overflow: hidden;
    transform: translate3d(0, 0, 0);
    transition: background-color 400ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 400ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 400ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    transform: translate3d(-108%, 0, 0);
    transition: transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    z-index: 0;
  }.solutions-premium-card-inner {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    position: relative;
    z-index: 1;
    transform: translate3d(calc(var(--spx, 0) * 1px), calc(var(--spy, 0) * 1px), 0);
    will-change: transform;
    transition: transform 180ms ease-out;
  }.solutions-premium-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }.solutions-premium-kicker {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: rgba(17, 24, 39, 0.48);
    font-weight: 700;
  }.solutions-premium-icon {
    color: var(--accent);
    flex: 0 0 auto;
    transform: scale(1);
    transition: transform 400ms cubic-bezier(0.2, 0.9, 0.2, 1), color 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-icon path,
  .solutions-premium-icon circle,
  .solutions-premium-icon rect,
  .solutions-premium-icon line,
  .solutions-premium-icon polyline,
  .solutions-premium-icon polygon {
    stroke-dasharray: 240;
    stroke-dashoffset: 240;
    transition: stroke-dashoffset 900ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-card.visible .solutions-premium-icon path,
  .solutions-premium-card.visible .solutions-premium-icon circle,
  .solutions-premium-card.visible .solutions-premium-icon rect,
  .solutions-premium-card.visible .solutions-premium-icon line,
  .solutions-premium-card.visible .solutions-premium-icon polyline,
  .solutions-premium-card.visible .solutions-premium-icon polygon {
    stroke-dashoffset: 0;
  }.solutions-premium-title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--black);
    transition: transform 400ms cubic-bezier(0.2, 0.9, 0.2, 1), color 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-desc {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(17, 24, 39, 0.7);
    min-height: 3.4em;
    opacity: 0;
    transform: translate3d(0, 8px, 0);
    transition: opacity 400ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 400ms cubic-bezier(0.2, 0.9, 0.2, 1), color 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    font-weight: 800;
    color: var(--accent);
    letter-spacing: -0.01em;
    transition: color 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-arrow {
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    transition: transform 400ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.solutions-premium-card:focus-visible {
    outline: 3px solid rgba(0, 85, 186, 0.35);
    outline-offset: 4px;
  }@media (hover: none) {.solutions-premium-desc {
      opacity: 1;
      transform: none;
    }}
  .solutions-premium-card:focus-within {
    border-color: rgba(28, 99, 239, 0.28);
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
  }
  .solutions-premium-card:focus-within::before {
    transform: translate3d(0, 0, 0);
  }
  .solutions-premium-card:focus-within .solutions-premium-kicker {
    color: rgba(255, 255, 255, 0.65);
  }
  .solutions-premium-card:focus-within .solutions-premium-icon {
    color: rgba(255, 255, 255, 0.96);
    transform: scale(1.06);
  }
  .solutions-premium-card:focus-within .solutions-premium-title {
    color: var(--white);
    transform: translate3d(0, -5px, 0);
  }
  .solutions-premium-card:focus-within .solutions-premium-desc {
    opacity: 0.92;
    transform: translate3d(0, 0, 0);
    color: rgba(255, 255, 255, 0.86);
  }
  .solutions-premium-card:focus-within .solutions-premium-cta {
    color: rgba(255, 255, 255, 0.96);
  }
  .solutions-premium-card:focus-within .solutions-premium-arrow {
    transform: translate3d(6px, 0, 0);
  }@media (max-width: 980px) {.solutions-premium-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }}@media (max-width: 640px) {.solutions-premium-grid {
      grid-template-columns: 1fr;
      gap: 18px;
    }.solutions-premium-card {
      padding: 1.5rem;
    }}body.solutions-nav #nuestras-soluciones[hidden],
  body.solutions-nav .solutions-detail[hidden] {
    display: none !important;
  }body.solutions-nav.solutions-nav--grid #nuestras-soluciones {
    min-height: calc(100vh - var(--nav-height));
    display: flex;
    align-items: stretch;
  }body.solutions-nav.solutions-nav--grid #nuestras-soluciones > .container {
    display: flex;
    flex-direction: column;
    width: 100%;
    flex: 1 1 auto;
  }body.solutions-nav.solutions-nav--grid .solutions-premium-grid {
    flex: 1 1 auto;
    align-content: start;
  }.solutions-back-btn[hidden] {
    display: none !important;
  }body.solutions-nav.solutions-nav--grid .solutions-back-btn {
    display: none !important;
  }body.solutions-nav.solutions-nav--detail .solutions-back-btn {
    display: inline-flex;
  }.solutions-back-btn {
    position: fixed;
    top: calc(var(--nav-height) + 1rem);
    left: 1rem;
    z-index: 1200;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(17, 24, 39, 0.14);
    background: rgba(255, 255, 255, 0.92);
    color: rgba(17, 24, 39, 0.9);
    font-weight: 700;
    letter-spacing: -0.01em;
    box-shadow: 0 14px 42px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(10px);
    transition: border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
  }.solutions-back-btn:focus-visible {
    outline: 3px solid rgba(0, 85, 186, 0.35);
    outline-offset: 4px;
  }.solutions-back-btn__icon {
    flex: 0 0 auto;
  }.solutions-back-btn__text {
    font-size: 0.9rem;
    line-height: 1;
  }@keyframes solutionsDetailEnter {from {
      opacity: 0;
      transform: translate3d(0, 30px, 0);
    }to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }}body.solutions-nav .solutions-detail.is-entering {
    animation: solutionsDetailEnter 500ms cubic-bezier(0.2, 0.9, 0.2, 1) both;
  }@media (prefers-reduced-motion: reduce) {body.solutions-nav .solutions-detail.is-entering {
      animation: none;
    }}@media (max-width: 640px) {.solutions-back-btn {
      left: 0.75rem;
      right: 0.75rem;
      justify-content: center;
    }}#soluciones { background: var(--white); }.sol-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
    margin-top: 3.5rem;
  }.sol-card {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 1.75rem 1.5rem;
    cursor: pointer;
    transition: all var(--transition);
    position: relative;
    overflow: hidden;
    background: var(--white);
  }@media (min-width: 720px) {.sol-card {
      display: flex;
      align-items: flex-start;
      gap: 1.25rem;
    }.sol-icon-wrap {
      width: 50px;
      height: 50px;
      border-radius: 14px;
      margin-bottom: 0;
      flex: 0 0 50px;
    }.sol-icon-wrap img {
      width: 50px;
      height: 50px;
    }.sol-default { flex: 1 1 auto; }.sol-hover { flex: 1 1 auto; }}.sol-icon-wrap {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.15rem;
    font-size: 1.5rem;
    background: var(--gray-50);
    transition: background var(--transition);
  }.sol-icon-wrap img {
    width: 50px;
    height: 50px;
    object-fit: contain;
  }.sol-default {
    transition: all var(--transition);
  }.sol-title {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--black);
  }.sol-desc {
    font-size: 0.875rem;
    color: var(--gray-600);
    line-height: 1.6;
    font-weight: 700;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin-top: 0;
    margin-bottom: 0;
    transition: all var(--transition);
  }.btn-info {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.825rem;
    font-weight: 500;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 0.4rem 1rem;
    border-radius: 100px;
    transition: all var(--transition);
  }/* ─── UNIDADES ─────────────────────────────────────── */
  #unidades { background: linear-gradient(135deg, #18AAEC 0%, #1C63EF 52%, #0055BA 100%); padding: var(--section-pad); }#unidades .section-title { color: var(--white); }#unidades .section-sub { color: var(--white); }#unidades .section-label { color: var(--white); }#unidades .section-label::before { background: var(--white); }.unidades-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 3.5rem;
  }.unidad-card {
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--radius-lg);
    padding: 2rem;
    transition: all var(--transition);
    cursor: default;
    position: relative;
    overflow: hidden;
    background: rgba(255,255,255,0.03);
  }.unidad-logo {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--white);
    margin-bottom: 1rem;
    letter-spacing: -0.03em;
  }.unidad-name {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.75rem;
  }.unidad-desc {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.55);
    line-height: 1.6;
    font-weight: 300;
  }#infra-servicios { background: var(--gray-50); }.infra-subsections-intro {
    margin-bottom: 1.75rem;
  }.infra-subsections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }.infra-subsection-card {
    position: relative;
    background: var(--white);
    border: 1px solid rgba(28, 99, 239, 0.12);
    border-radius: 20px;
    padding: 1.25rem;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.08);
    transform: translate3d(0, 0, 0);
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    overflow: hidden;
  }.infra-subsection-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    transform: translate3d(-108%, 0, 0);
    transition: transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    z-index: 0;
    pointer-events: none;
  }.infra-subsection-card.is-open {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
    border-color: rgba(28, 99, 239, 0.28);
  }.infra-subsection-card.is-open::before {
    transform: translate3d(0, 0, 0);
  }.infra-subsection-content {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
  }.infra-subsection-title {
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 1.5vw, 1.4rem);
    font-weight: 700;
    color: var(--black);
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
  }.infra-subsection-card.is-open .infra-subsection-title {
    color: var(--white);
  }.infra-subsection-desc {
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.75;
    font-weight: 700;
    margin-bottom: 1rem;
    max-width: none;
    transition: color 320ms cubic-bezier(0.2, 0.9, 0.2, 1), max-height 320ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 240ms cubic-bezier(0.2, 0.9, 0.2, 1), margin-bottom 320ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.infra-subsection-card.is-open .infra-subsection-desc {
    color: rgba(255, 255, 255, 0.86);
  }.infra-subsection-hover-desc {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(10px);
    transition: max-height 420ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 320ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 320ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.infra-subsection-hover-desc p {
    margin: 0 0 0.72rem;
    font-size: 0.9rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.88);
    font-weight: 500;
  }.infra-subsection-hover-desc p:last-child {
    margin-bottom: 1rem;
  }.infra-subsection-hover-desc strong {
    color: var(--white);
    font-weight: 800;
  }.infra-subsection-hover-link {
    display: inline-flex;
    align-items: center;
    margin: 0.15rem 0 0.75rem;
    color: var(--white);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }.infra-act-brochure {
    display: block;
    width: 100%;
    margin: 0 0 0.72rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.9rem;
    line-height: 1.65;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    transition: background 220ms ease, border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
  }.infra-act-brochure-cta {
    margin-top: 0.85rem;
  }.infra-act-brochure .btn-info {
    color: var(--white);
    border-color: rgba(255, 255, 255, 0.88);
    background: rgba(255, 255, 255, 0.06);
  }.infra-act-brochure strong {
    color: var(--white);
    font-weight: 800;
  }.infra-act-brochure-head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    text-align: center;
  }.infra-act-logo {
    height: 1.66rem;
    width: auto;
    max-width: none;
    object-fit: contain;
    flex: 0 0 auto;
    filter: none !important;
    -webkit-filter: none !important;
    mix-blend-mode: normal !important;
  }
  .infra-act-brochure:focus-within {
    background: rgba(255, 255, 255, 0.12);
    border-color: var(--white);
    transform: translateY(-1px);
    box-shadow: 0 16px 28px rgba(0, 0, 0, 0.12);
  }.infra-subsection-feature {
    margin: 0 0 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.05);
  }.infra-subsection-feature:last-child {
    margin-bottom: 0.2rem;
  }.infra-subsection-feature-text {
    display: block;
    width: 100%;
    margin: 0 0 0.72rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.9rem;
    line-height: 1.65;
    font-weight: 500;
    text-align: left;
  }.infra-subsection-feature-text strong {
    color: var(--white);
    font-weight: 800;
  }.infra-subsection-feature-logo {
    display: block;
    width: auto;
    height: 34px;
    max-width: 130px;
    object-fit: contain;
    margin: 0.15rem auto 0.95rem;
  }.infra-subsection-feature-logo--lg {
    height: 43px;
    max-width: 162px;
  }.infra-subsection-insight {
    margin: 1rem 0 1.1rem;
    padding-top: 0.95rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
  }.infra-subsection-insight-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--white);
    font-weight: 700;
    margin-bottom: 0.9rem;
  }.infra-subsection-insight-list {
    margin: 0;
    padding-left: 1.15rem;
    color: rgba(255, 255, 255, 0.9);
  }.infra-subsection-insight-list li {
    margin: 0 0 0.6rem;
    line-height: 1.6;
  }.infra-subsection-insight-list li:last-child {
    margin-bottom: 0;
  }.infra-subsection-hover-logos {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.35rem 0 1rem;
    flex-wrap: wrap;
  }.infra-subsection-hover-logos img {
    width: auto;
    height: 34px;
    max-width: 110px;
    object-fit: contain;
  }.infra-subsection-hover-logos img[alt="Cloud"] {
    height: 100px;
    max-width: 124px;
  }.infra-subsection-card.is-open .infra-subsection-desc {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    margin-bottom: 0;
  }.infra-subsection-card.is-open .infra-subsection-hover-desc {
    max-height: 1400px;
    opacity: 1;
    transform: translateY(0);
  }.infra-subsection-bullets {
    margin: 0 0 1.5rem;
    padding-left: 1.25rem;
    color: var(--gray-600);
    font-weight: 300;
    line-height: 1.8;
  }.infra-subsection-card.is-open .infra-subsection-bullets,
  .infra-subsection-card.is-open .infra-subsection-bullets li {
    color: rgba(255, 255, 255, 0.86);
  }.infra-subsection-inline-cta {
    margin-top: 1.15rem;
    padding: 1rem 1.05rem;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
  }.infra-subsection-inline-cta-title {
    font-family: var(--font-display);
    font-size: 1rem;
    line-height: 1.35;
    color: var(--white);
    font-weight: 700;
    margin-bottom: 0.45rem;
  }.infra-subsection-inline-cta-text {
    margin-bottom: 0.9rem;
    color: rgba(255, 255, 255, 0.88);
  }.infra-subsection-inline-cta-btn {
    width: fit-content;
    background: var(--white);
    color: var(--accent);
    box-shadow: none;
  }.infra-subsection-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
  }.infra-subsection-btn {
    justify-self: start;
  }.infra-subsection-toggle {
    justify-content: center;
    background: #18AAEC;
    border-color: #18AAEC;
    color: var(--white);
    min-height: 46px;
  }.infra-subsection-card.is-open .infra-subsection-btn {
    display: none;
  }.infra-subsection-card.is-open .infra-subsection-toggle {
    background: #18AAEC;
    border-color: #18AAEC;
    color: var(--white);
  }.infra-subsection-media {
    width: 90px;
    height: 90px;
    flex: 0 0 90px;
    order: -1;
    border-radius: 16px;
    overflow: hidden;
    align-self: flex-start;
    background: var(--gray-100);
    position: relative;
    z-index: 1;
  }.infra-subsection-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transform: none;
  }

  /* ─── FIX DESKTOP + MOBILE (solo is-open por click — elimina hover/focus-within) cards Infraestructura ── */
  html body .infra-subsection-card.is-open {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
    border-color: rgba(28, 99, 239, 0.28);
  }
  html body .infra-subsection-card.is-open::before {
    transform: translate3d(0, 0, 0);
  }
  html body .infra-subsection-card.is-open .infra-subsection-title {
    color: #fff;
  }
  html body .infra-subsection-card.is-open .infra-subsection-desc {
    color: rgba(255, 255, 255, 0.86);
  }
  html body .infra-subsection-card.is-open .infra-subsection-hover-desc {
    max-height: 1400px;
    opacity: 1;
    transform: translateY(0);
  }
  html body .infra-subsection-card.is-open .infra-subsection-bullets,
  html body .infra-subsection-card.is-open .infra-subsection-bullets li {
    color: rgba(255, 255, 255, 0.86);
  }
  html body .infra-subsection-toggle {
    -webkit-appearance: none !important;
    appearance: none !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 20;
    isolation: isolate;
  }
  html body .infra-subsection-actions {
    position: relative;
    z-index: 19;
    isolation: isolate;
    pointer-events: auto !important;
  }

  /* ─── GARANTÍA DESKTOP ≥1025px: card 2 filas (title+media arriba, content abajo 100%) ── */
  @media (min-width: 1025px) {
    html body .infra-subsections {
      -webkit-align-items: start !important;
      -ms-flex-align: start !important;
      align-items: start !important;
      -webkit-box-align: start !important;
    }
    html body .infra-subsection-card {
      height: auto !important;
      min-height: 0 !important;
      align-self: start !important;
      -webkit-align-self: flex-start !important;
      -ms-flex-item-align: start !important;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
      flex-direction: row !important;
      -webkit-flex-wrap: wrap !important;
      -ms-flex-wrap: wrap !important;
      flex-wrap: wrap !important;
      -webkit-align-items: flex-start !important;
      -ms-flex-align: start !important;
      align-items: flex-start !important;
      -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
      justify-content: flex-start !important;
      padding: 1.6rem 1.5rem 1.75rem !important;
      gap: 0 1.15rem !important;
    }

    /* fila 1: media + title juntos */
    html body .infra-subsection-card > .infra-subsection-media {
      -webkit-flex: 0 0 108px !important;
      -ms-flex: 0 0 108px !important;
      flex: 0 0 108px !important;
      width: 108px !important;
      max-width: 108px !important;
      min-width: 108px !important;
      height: 108px !important;
      max-height: 108px !important;
      min-height: 108px !important;
      aspect-ratio: 1 / 1 !important;
      order: 0 !important;
      -webkit-order: 0 !important;
      -ms-flex-order: 0 !important;
      margin: 0 !important;
      padding: 0.65rem !important;
      -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
      align-self: center !important;
      border-radius: 20px !important;
      position: relative !important;
      z-index: 1 !important;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
      justify-content: center !important;
      background: rgba(0, 85, 186, 0.06) !important;
      border: 1px solid rgba(0, 85, 186, 0.12) !important;
      transition: background 320ms cubic-bezier(0.2, 0.9, 0.2, 1) !important,
                  border-color 320ms cubic-bezier(0.2, 0.9, 0.2, 1) !important;
    }
    html body .infra-subsection-card.is-open > .infra-subsection-media {
      background: #ffffff !important;
      border-color: rgba(255, 255, 255, 0.95) !important;
    }
    html body .infra-subsection-card > .infra-subsection-media img {
      width: 100% !important;
      max-width: 100% !important;
      height: 100% !important;
      max-height: 100% !important;
      object-fit: contain !important;
      -o-object-fit: contain !important;
      display: block !important;
    }
    html body .infra-subsection-card > h3.infra-subsection-title {
      -webkit-flex: 1 1 calc(100% - 108px - 1.15rem) !important;
      -ms-flex: 1 1 calc(100% - 108px - 1.15rem) !important;
      flex: 1 1 calc(100% - 108px - 1.15rem) !important;
      min-width: 0 !important;
      order: 1 !important;
      -webkit-order: 1 !important;
      -ms-flex-order: 1 !important;
      margin: 0 0 0 0 !important;
      padding: 0 !important;
      font-size: 1.2rem !important;
      line-height: 1.35 !important;
      letter-spacing: -0.02em !important;
      font-weight: 800 !important;
      -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
      align-self: center !important;
      position: relative !important;
      z-index: 1 !important;
      transition: color 320ms cubic-bezier(0.2, 0.9, 0.2, 1) !important;
    }
    html body .infra-subsection-card.is-open > h3.infra-subsection-title {
      color: #fff !important;
    }

    /* fila 2: content ocupa TODO EL ANCHO de la card, debajo de media + title */
    html body .infra-subsection-card > .infra-subsection-content {
      -webkit-flex: 1 1 100% !important;
      -ms-flex: 1 1 100% !important;
      flex: 1 1 100% !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      order: 2 !important;
      -webkit-order: 2 !important;
      -ms-flex-order: 2 !important;
      margin-top: 1.15rem !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      margin-bottom: 0 !important;
      padding: 0 !important;
      position: relative !important;
      z-index: 1 !important;
      -webkit-align-self: stretch !important;
      -ms-flex-item-align: stretch !important;
      align-self: stretch !important;
    }

    /* Espaciados internos desktop finales */
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-desc {
      margin: 0 0 1rem 0 !important;
      max-width: none !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc {
      margin: 0 0 1.15rem 0 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions {
      margin: 0 !important;
      position: relative !important;
      z-index: 10 !important;
      pointer-events: auto !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .btn-primary,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .btn-info,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle {
      position: relative !important;
      z-index: 11 !important;
      pointer-events: auto !important;
      cursor: pointer !important;
      touch-action: manipulation !important;
      display: -webkit-inline-box !important;
      display: -ms-inline-flexbox !important;
      display: -webkit-inline-flex !important;
      display: inline-flex !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      min-height: 46px !important;
      height: auto !important;
      overflow: visible !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle {
      -webkit-appearance: none !important;
      appearance: none !important;
      background: #18AAEC !important;
      border: 1px solid #18AAEC !important;
      color: #ffffff !important;
      font-weight: 700 !important;
      padding: 0.65rem 1.1rem !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle:active {
      background: #159ad4 !important;
      transform: scale(0.985);
    }
    html body .infra-subsection-card::before,
    html body .infra-subsection-card.is-open::before {
      pointer-events: none !important;
    }
    html body .infra-subsection-card > .infra-subsection-content {
      position: relative !important;
      z-index: 5 !important;
      pointer-events: auto !important;
    }
    html body .infra-subsection-card {
      position: relative !important;
    }
  }

  /* ─── LAYOUT MOBILE: fila 1 = media + title JUNTOS, fila 2 = content 100% card ── */
  @media (max-width: 1024px) {
    html body section#infra-servicios article.infra-subsection-card,
    html body .infra-subsection-card {
      display: -ms-grid !important;
      display: grid !important;
      -ms-grid-columns: 1fr !important;
      grid-template-columns: 1fr !important;
      -ms-grid-rows: auto auto !important;
      grid-template-rows: auto auto !important;
      -webkit-align-items: stretch !important;
      -ms-flex-align: stretch !important;
      align-items: stretch !important;
      -webkit-justify-items: stretch !important;
      justify-items: stretch !important;
      padding: 1.25rem 1.2rem 1.4rem !important;
      row-gap: 0.95rem !important;
      column-gap: 0 !important;
      position: relative !important;
      /* MOBILE: sin efecto de fondo azul, sin elevación, sin transform (sólo despliegue info) */
      transform: none !important;
      box-shadow: 0 12px 32px rgba(12, 20, 33, 0.06) !important;
      border-color: var(--gray-200) !important;
      background: var(--white) !important;
    }
    /* ANULAR efecto de coloración azul (solo desktop lo usa) */
    html body .infra-subsection-card::before {
      content: none !important;
      display: none !important;
      z-index: -99 !important;
      visibility: hidden !important;
      pointer-events: none !important;
      opacity: 0 !important;
      transform: translate3d(-200%, 0, 0) !important;
      background: transparent !important;
    }
    html body .infra-subsection-card:hover,
    html body .infra-subsection-card:focus-within,
    html body .infra-subsection-card.is-open {
      transform: none !important;
      box-shadow: 0 12px 32px rgba(12, 20, 33, 0.06) !important;
      border-color: var(--gray-200) !important;
      background: var(--white) !important;
    }
    html body .infra-subsection-card:hover::before,
    html body .infra-subsection-card:focus-within::before,
    html body .infra-subsection-card.is-open::before {
      content: none !important;
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      transform: translate3d(-200%, 0, 0) !important;
      background: transparent !important;
    }

    /* mantener color base del title, description, bullets SIN pasarse a blanco */
    html body .infra-subsection-card:hover > h3.infra-subsection-title,
    html body .infra-subsection-card:focus-within > h3.infra-subsection-title,
    html body .infra-subsection-card.is-open > h3.infra-subsection-title {
      color: var(--black) !important;
    }
    html body .infra-subsection-card > h3.infra-subsection-title {
      color: var(--black) !important;
    }
    html body .infra-subsection-card:hover > .infra-subsection-content > .infra-subsection-desc,
    html body .infra-subsection-card:focus-within > .infra-subsection-content > .infra-subsection-desc,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-desc {
      color: var(--gray-600) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-bullets,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-bullets li,
    html body .infra-subsection-card:hover > .infra-subsection-content > .infra-subsection-bullets,
    html body .infra-subsection-card:focus-within > .infra-subsection-content > .infra-subsection-bullets,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-bullets,
    html body .infra-subsection-card:hover > .infra-subsection-content > .infra-subsection-bullets li,
    html body .infra-subsection-card:focus-within > .infra-subsection-content > .infra-subsection-bullets li,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-bullets li {
      color: var(--gray-600) !important;
    }

    /* ── FILA 1: media (img) + title JUNTOS (flex row) ── */
    html body .infra-subsection-card > .infra-subsection-media,
    html body .infra-subsection-card > h3.infra-subsection-title {
      -ms-grid-row: 1 !important;
      grid-row: 1 !important;
    }
    html body .infra-subsection-card > .infra-subsection-media {
      position: relative !important;
      z-index: 1 !important;
      -webkit-order: 0 !important;
      -ms-flex-order: 0 !important;
      order: 0 !important;
      width: 96px !important;
      max-width: 96px !important;
      min-width: 96px !important;
      -webkit-flex: 0 0 96px !important;
      -ms-flex: 0 0 96px !important;
      flex: 0 0 96px !important;
      height: 96px !important;
      max-height: 96px !important;
      min-height: 96px !important;
      aspect-ratio: 1 / 1 !important;
      -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
      align-self: center !important;
      border-radius: 18px !important;
      background: rgba(0, 85, 186, 0.07) !important;
      border: 1px solid rgba(0, 85, 186, 0.16) !important;
      overflow: hidden !important;
      margin: 0 !important;
      padding: 0.5rem !important;
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
      justify-content: center !important;
    }
    html body .infra-subsection-card > .infra-subsection-media img {
      width: 100% !important;
      max-width: 100% !important;
      height: 100% !important;
      max-height: 100% !important;
      object-fit: contain !important;
      -o-object-fit: contain !important;
      display: block !important;
    }
    /* LOGOS MOBILE: convertir logos blancos (ej. nube.png = Cloudara)
       a NEGRO para contrastar sobre el fondo azul claro del media-box */
    html body .infra-subsection-card > .infra-subsection-media img,
    html body .infra-subsection-card:hover > .infra-subsection-media img,
    html body .infra-subsection-card:focus-within > .infra-subsection-media img,
    html body .infra-subsection-card.is-open > .infra-subsection-media img {
      filter: brightness(0) !important;
      -webkit-filter: brightness(0) !important;
      mix-blend-mode: normal !important;
    }
    /* Logo Cloudara dentro del hover-details (cloud.png) también negro */
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-hover-logos img,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-hover-logos img {
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
      height: 56px !important;
      max-width: 150px !important;
      width: auto !important;
      margin: 0.4rem auto 1rem !important;
      object-fit: contain !important;
      filter: brightness(0) !important;
      -webkit-filter: brightness(0) !important;
      mix-blend-mode: normal !important;
    }
    /* ESCUDO MOBILE: en hover/focus/is-open el media NO se vuelve blanco
       (solo desktop usa ese efecto). Forzamos fondo azul claro original. */
    html body .infra-subsection-card:hover > .infra-subsection-media,
    html body .infra-subsection-card:focus-within > .infra-subsection-media,
    html body .infra-subsection-card.is-open > .infra-subsection-media {
      background: rgba(0, 85, 186, 0.07) !important;
      border-color: rgba(0, 85, 186, 0.16) !important;
    }
    html body .infra-subsection-card > h3.infra-subsection-title {
      position: relative !important;
      z-index: 1 !important;
      width: auto !important;
      max-width: 100% !important;
      -webkit-flex: 1 1 auto !important;
      -ms-flex: 1 1 auto !important;
      flex: 1 1 auto !important;
      min-width: 0 !important;
      margin: 0 0 0 1rem !important;
      padding: 0 !important;
      font-size: 1.15rem !important;
      line-height: 1.32 !important;
      text-align: left !important;
      font-weight: 800 !important;
      letter-spacing: -0.02em !important;
      -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
      align-self: center !important;
      word-break: normal !important;
      hyphens: auto !important;
      overflow-wrap: anywhere !important;
    }

    /* wrapper row media+title via flexbox wrap */
    html body section#infra-servicios article.infra-subsection-card,
    html body .infra-subsection-card {
      display: -webkit-box !important;
      display: -ms-flexbox !important;
      display: -webkit-flex !important;
      display: flex !important;
      -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
      flex-direction: row !important;
      -webkit-flex-wrap: wrap !important;
      -ms-flex-wrap: wrap !important;
      flex-wrap: wrap !important;
      -webkit-align-items: flex-start !important;
      -ms-flex-align: start !important;
      align-items: flex-start !important;
      -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
      justify-content: flex-start !important;
    }
    html body .infra-subsection-card > .infra-subsection-media,
    html body .infra-subsection-card > h3.infra-subsection-title {
      -webkit-flex: 0 0 auto !important;
      -ms-flex: 0 0 auto !important;
      flex: 0 0 auto !important;
    }
    html body .infra-subsection-card > h3.infra-subsection-title {
      -webkit-flex: 1 1 calc(100% - 96px - 1rem) !important;
      -ms-flex: 1 1 calc(100% - 96px - 1rem) !important;
      flex: 1 1 calc(100% - 96px - 1rem) !important;
    }

    /* ── FILA 2: infra-subsection-content OCUPA TODO EL ANCHO DE LA CARD ── */
    html body .infra-subsection-card > .infra-subsection-content {
      -webkit-order: 2 !important;
      -ms-flex-order: 2 !important;
      order: 2 !important;
      -webkit-flex: 1 1 100% !important;
      -ms-flex: 1 1 100% !important;
      flex: 1 1 100% !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      position: relative !important;
      z-index: 1 !important;
      -webkit-align-self: stretch !important;
      -ms-flex-item-align: stretch !important;
      align-self: stretch !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-desc {
      margin: 0 0 1rem !important;
      padding: 0 !important;
      font-weight: 600 !important;
      line-height: 1.7 !important;
    }
    /* hover-desc MOBILE: fondo NEUTRO, igual que el cuerpo del theme (texto gris oscuro sobre blanco card) */
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc,
    html body .infra-subsection-card:hover > .infra-subsection-content > .infra-subsection-hover-desc,
    html body .infra-subsection-card:focus-within > .infra-subsection-content > .infra-subsection-hover-desc,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc {
      background: #f6f7fb !important;
      color: var(--gray-700) !important;
      border-radius: 16px !important;
      border: 1px solid var(--gray-200) !important;
      padding: 0.95rem 1rem !important;
      margin: 0 0 1.05rem !important;
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      transform: translateY(6px);
      transition: max-height 420ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 320ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 320ms cubic-bezier(0.2, 0.9, 0.2, 1);
    }
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc {
      max-height: 2000px !important;
      opacity: 1 !important;
      transform: translateY(0) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc p {
      color: var(--gray-700) !important;
      font-weight: 500 !important;
      line-height: 1.7 !important;
      margin: 0 0 0.7rem 0 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc p:last-child {
      margin-bottom: 0 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc strong {
      color: var(--black) !important;
      font-weight: 800 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-act-brochure {
      background: var(--white) !important;
      border-color: var(--gray-200) !important;
      color: var(--gray-700) !important;
      margin: 0 0 0.72rem 0 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-act-brochure .btn-info {
      background: rgba(28, 99, 239, 0.08) !important;
      border-color: rgba(28, 99, 239, 0.35) !important;
      color: var(--accent) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-feature {
      background: var(--white) !important;
      border-color: var(--gray-200) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-feature-text {
      color: var(--gray-700) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-feature-text strong {
      color: var(--black) !important;
    }
    /* FIX LOGOS MOBILE (blanco sobre blanco → invisibles).
       Convertimos logos blancos a negro para contrastar con fondo #f6f7fb */
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo,
    html body .infra-subsection-card:hover > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo,
    html body .infra-subsection-card:focus-within > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo {
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
      height: 34px !important;
      max-width: 140px !important;
      width: auto !important;
      margin: 0.15rem auto 0.95rem !important;
      object-fit: contain !important;
      filter: brightness(0) !important;
      mix-blend-mode: normal !important;
      -webkit-filter: brightness(0) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo--lg,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc img.infra-subsection-feature-logo--lg {
      height: 43px !important;
      max-width: 170px !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-act-brochure-head img.infra-act-logo,
    html body .infra-subsection-card.is-open > .infra-subsection-content > .infra-subsection-hover-desc .infra-act-brochure-head img.infra-act-logo {
      display: inline-block !important;
      visibility: visible !important;
      opacity: 1 !important;
      height: 1.66rem !important;
      width: auto !important;
      filter: none !important;
      -webkit-filter: none !important;
      mix-blend-mode: normal !important;
      object-fit: contain !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-hover-link {
      color: var(--accent) !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      width: 100% !important;
      text-align: center !important;
      margin-left: auto !important;
      margin-right: auto !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-insight {
      border-top-color: var(--gray-200) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-insight-title {
      color: var(--black) !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-insight-list,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-hover-desc .infra-subsection-insight-list li {
      color: var(--gray-700) !important;
    }

    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions {
      -webkit-align-self: stretch !important;
      -ms-flex-item-align: stretch !important;
      align-self: stretch !important;
      width: 100% !important;
      max-width: 100% !important;
      padding: 0 !important;
      margin: 0.15rem 0 0 !important;
      position: relative !important;
      z-index: 10 !important;
      pointer-events: auto !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .btn-primary,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .btn-info,
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle {
      -webkit-flex: 1 1 100% !important;
      -ms-flex: 1 1 100% !important;
      flex: 1 1 100% !important;
      width: 100% !important;
      min-height: 48px !important;
      height: auto !important;
      min-width: 0 !important;
      -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
      justify-content: center !important;
      position: relative !important;
      z-index: 11 !important;
      pointer-events: auto !important;
      touch-action: manipulation !important;
      -webkit-tap-highlight-color: transparent !important;
      cursor: pointer !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle {
      -webkit-appearance: none !important;
      appearance: none !important;
      border: 1px solid #18AAEC !important;
      display: -webkit-inline-box !important;
      display: -ms-inline-flexbox !important;
      display: -webkit-inline-flex !important;
      display: inline-flex !important;
      -webkit-align-items: center !important;
      -ms-flex-align: center !important;
      align-items: center !important;
      text-align: center !important;
      padding: 0.75rem 1rem !important;
      line-height: 1.3 !important;
      font-size: 0.95rem !important;
      font-weight: 700 !important;
      overflow: visible !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions .infra-subsection-toggle:active {
      transform: scale(0.98) !important;
      background: #159ad4 !important;
    }
  }

  @media (max-width: 768px) {
    html body .infra-subsection-card > .infra-subsection-media {
      width: 88px !important;
      min-width: 88px !important;
      max-width: 88px !important;
      height: 88px !important;
      min-height: 88px !important;
      max-height: 88px !important;
      -webkit-flex: 0 0 88px !important;
      -ms-flex: 0 0 88px !important;
      flex: 0 0 88px !important;
      aspect-ratio: 1 / 1 !important;
      padding: 0.55rem !important;
    }
    html body .infra-subsection-card > h3.infra-subsection-title {
      margin: 0 0 0 0.85rem !important;
      -webkit-flex: 1 1 calc(100% - 88px - 0.85rem) !important;
      -ms-flex: 1 1 calc(100% - 88px - 0.85rem) !important;
      flex: 1 1 calc(100% - 88px - 0.85rem) !important;
      font-size: 1.05rem !important;
      line-height: 1.32 !important;
    }
    html body .infra-subsection-card > .infra-subsection-content > .infra-subsection-actions {
      -webkit-flex-direction: column !important;
      -ms-flex-direction: column !important;
      flex-direction: column !important;
      gap: 0.7rem !important;
    }
  }
  /* ─── CASOS DE ÉXITO ─────────────────────────────────────── */
  #eventos-novedades,
  #casos { background: var(--gray-50); }#casos { display: none !important; }#experiencias-testimonios .home-testimonials-slide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.casos-videos-carousel {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 3.5rem;
  }.casos-videos-viewport {
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }.casos-videos-viewport::-webkit-scrollbar {
    display: none;
  }.casos-videos-track {
    display: flex;
    gap: 0;
    width: 100%;
    padding: 0.25rem 0;
  }.casos-videos-btn {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1.5px solid var(--gray-200);
    background: rgba(255,255,255,0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition);
    color: var(--gray-600);
    flex-shrink: 0;
  }.casos-videos-dots {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
    gap: 6px;
  }.casos-videos-dots .dot {
    width: 6px;
    height: 6px;
    border-radius: 3px;
    background: var(--gray-200);
    transition: all var(--transition);
    cursor: pointer;
    border: 0;
    padding: 0;
  }.casos-videos-dots .dot.active {
    width: 20px;
    background: var(--accent);
  }.caso-video-card {
    background: var(--white);
    border-radius: 26px;
    box-shadow: 0 18px 60px rgba(15, 23, 42, 0.08);
    padding: 2.25rem;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 1.75rem;
    transition: transform var(--transition), box-shadow var(--transition);
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    scroll-snap-align: start;
  }.caso-video-left {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 1.5rem;
    border-right: 1px solid rgba(15, 23, 42, 0.08);
  }.caso-video-logo {
    width: 100%;
    height: 72px;
  }.caso-video-logo-fallback {
    width: 100%;
    min-height: 96px;
    border-radius: 24px;
    background: linear-gradient(135deg, #18AAEC 0%, #1C63EF 52%, #0055BA 100%);
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.5rem, 1.8vw, 2rem);
    color: var(--white);
    letter-spacing: -0.03em;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18);
  }.caso-video-right {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }.caso-video-quote {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--gray-600);
    font-weight: 700;
    margin-bottom: 1.25rem;
  }.caso-video-meta {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-top: auto;
    padding-top: 0.25rem;
  }.caso-video-name {
    font-family: var(--font-display);
    font-weight: 800;
    color: var(--black);
    letter-spacing: -0.01em;
    margin-bottom: 0.15rem;
  }.caso-video-role {
    font-size: 0.86rem;
    color: rgba(90, 89, 85, 0.78);
    font-weight: 300;
  }.caso-video-company {
    font-size: 0.9rem;
    color: var(--gray-500);
    font-weight: 600;
  }.casos-eventos {
    margin-top: 2rem;
    margin-bottom: 1.5rem;
  }.casos-eventos-title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--black);
  }.eventos-grid {
    margin-top: 1.1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem;
    align-items: stretch;
  }.eventos-shell {
    position: relative;
    margin-top: 1.1rem;
    padding: 0 1.5rem;
  }.eventos-viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 22px;
  }.eventos-viewport::-webkit-scrollbar {
    display: none;
  }.eventos-track {
    display: flex;
    gap: 1.15rem;
    padding: 0.35rem 0;
  }.eventos-slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem;
    padding: 0 0.35rem;
    box-sizing: border-box;
  }.eventos-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid rgba(15, 23, 42, 0.12);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), color var(--transition), background var(--transition);
    color: rgba(90, 89, 85, 0.9);
    z-index: 3;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
  }.eventos-arrow:disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }.eventos-arrow--prev { left: -0.25rem; }.eventos-arrow--next { right: -0.25rem; }.eventos-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1.25rem;
  }.eventos-dots {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
  }.eventos-dots .dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.18);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: transform var(--transition), background var(--transition), width var(--transition);
  }.eventos-dots .dot.active {
    width: 26px;
    background: #2f5cff;
  }.evento-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: auto;
    min-height: 290px;
    border-radius: 22px;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    border: 1px solid rgba(28, 99, 239, 0.18);
    padding: 1.65rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.9rem;
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1), background 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    box-shadow: 0 14px 34px rgba(0, 85, 186, 0.14);
    height: 100%;
    color: var(--white);
  }
  .evento-card:focus-visible {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.18);
    border-color: rgba(28, 99, 239, 0.2);
    background: var(--white);
    color: var(--black);
  }.evento-date {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.3vw, 2rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.04em;
    color: rgba(255, 255, 255, 0.2);
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
    word-break: normal;
    overflow-wrap: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }.evento-kicker {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.evento-name {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    color: var(--white);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.evento-desc {
    font-size: 0.88rem;
    line-height: 1.58;
    color: rgba(255, 255, 255, 0.86);
    font-weight: 600;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.evento-cta {
    margin-top: auto;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.01em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.42rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.94);
    background: rgba(255, 255, 255, 0.94);
    width: fit-content;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), background-color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .evento-card:focus-visible .evento-date {
    color: rgba(28, 99, 239, 0.14);
  }
  .evento-card:focus-visible .evento-kicker,
  .evento-card:focus-visible .evento-name {
    color: var(--black);
  }
  .evento-card:focus-visible .evento-desc {
    color: var(--gray-600);
  }
  .evento-card:focus-visible .evento-cta {
    color: var(--white);
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    border-color: transparent;
    transform: translateY(-1px);
  }@media (max-width: 980px) {.casos-videos-btn { display: none; }.eventos-slide { grid-template-columns: 1fr; }.eventos-arrow { width: 36px; height: 36px; }.evento-card { aspect-ratio: auto; min-height: 160px; }}@media (max-width: 820px) {.caso-video-card {
      grid-template-columns: 1fr;
      gap: 1.25rem;
      padding: 1.5rem;
    }.caso-video-left {
      padding-right: 0;
      padding-bottom: 1rem;
      border-right: 0;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }.caso-video-logo {
      max-width: 180px;
      margin: 0 auto;
    }}.evento-card[role="button"] {
    cursor: pointer;
    text-decoration: none;
  }/* ─── EVENTO DETALLE ─────────────────────────────── */
  .evento-detalle-section {
    display: none;
    padding: 4.5rem 0 6rem;
    background: var(--white);
  }.evento-detalle-section[aria-hidden="false"] {
    display: block;
  }.evento-detalle-section > .container {
    max-width: 1600px;
    padding: 0 1.5rem;
  }.evento-detalle-header {
    margin-bottom: 2rem;
  }.evento-detalle-volver {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 1.1rem;
    font-size: 0.9rem;
    font-weight: 600;
    background: transparent;
    border: 1px solid var(--gray-200);
    color: var(--gray-700);
    border-radius: 999px;
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
  }
  .evento-detalle-volver:focus-visible {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--white);
    transform: translateY(-2px);
  }.evento-detalle-hero {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--gray-100);
  }.evento-detalle-hero .section-title {
    font-size: clamp(1.75rem, 3.4vw, 2.6rem);
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin: 0 0 1.25rem;
  }.evento-detalle-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
  }.evento-detalle-fecha,
  .evento-detalle-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.95rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
  }.evento-detalle-fecha {
    background: var(--gray-100);
    color: var(--gray-700);
  }.evento-detalle-tag {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    color: var(--white);
  }.evento-detalle-body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }.evento-detalle-texto {
    max-width: 78ch;
  }.evento-detalle-texto p {
    margin: 0 0 1.2rem;
    font-size: 1.02rem;
    line-height: 1.85;
    color: var(--gray-800);
  }.evento-detalle-texto p:last-child {
    margin-bottom: 0;
  }.evento-detalle-galeria {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    grid-auto-flow: row dense;
  }.evento-detalle-imagen {
    margin: 0;
    overflow: hidden;
    border-radius: 20px;
    background: var(--gray-100);
    position: relative;
    grid-column: span 3;
    aspect-ratio: 4 / 3;
    align-self: stretch;
    width: 100%;
  }.evento-detalle-imagen--wide {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 7;
  }.evento-detalle-imagen img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 500ms ease;
  }@media (min-width: 1024px) {.evento-detalle-body {
      grid-template-columns: 1.15fr 1fr;
      gap: 4rem;
    }.evento-detalle-galeria {
      grid-template-columns: repeat(4, 1fr);
    }.evento-detalle-imagen {
      grid-column: span 2;
    }.evento-detalle-imagen--wide {
      grid-column: 1 / -1;
    }}@media (max-width: 768px) {.evento-detalle-section {
      padding: 3rem 0 4rem;
    }.evento-detalle-galeria {
      grid-template-columns: repeat(2, 1fr);
    }.evento-detalle-imagen {
      grid-column: span 1;
      align-self: stretch;
      width: 100%;
    }.evento-detalle-imagen--wide {
      grid-column: 1 / -1;
      aspect-ratio: 16 / 9;
    }}@media (max-width: 480px) {.evento-detalle-galeria {
      grid-template-columns: 1fr;
    }.evento-detalle-imagen,
    .evento-detalle-imagen--wide {
      grid-column: 1 / -1;
      aspect-ratio: 4 / 3;
      align-self: stretch;
      width: 100%;
    }}.evento-detalle-imagen-btn {
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    background: var(--gray-100);
    cursor: zoom-in;
    overflow: hidden;
    border-radius: inherit;
    display: block;
  }.evento-detalle-imagen-btn:focus-visible {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
  }.evento-detalle-imagen-btn img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    max-width: none;
    transition: transform 500ms ease;
  }
  .evento-detalle-imagen-btn:focus-visible img {
    transform: scale(1.06);
  }/* ─── LIGHTBOX GALERIA ─────────────────────────────── */
  .lightbox-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: rgba(5, 10, 20, 0.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 280ms ease, visibility 280ms ease;
  }.lightbox-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }.lightbox-figure {
    margin: 0;
    max-width: min(92vw, 1400px);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }.lightbox-image {
    max-width: 100%;
    max-height: 80vh;
    width: auto;
    height: auto;
    display: block;
    border-radius: 18px;
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.55);
    transform: scale(0.98);
    opacity: 0;
    transition: transform 360ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 360ms ease;
  }.lightbox-overlay.is-open .lightbox-image {
    transform: scale(1);
    opacity: 1;
  }.lightbox-caption {
    font-size: 0.9rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.78);
    letter-spacing: 0.01em;
  }.lightbox-close,
  .lightbox-nav {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    cursor: pointer;
    transition: background 220ms ease, transform 220ms ease, color 220ms ease;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }.lightbox-close {
    top: 1.25rem;
    right: 1.5rem;
    width: 3rem;
    height: 3rem;
    font-size: 2rem;
    line-height: 1;
  }.lightbox-nav {
    top: 50%;
    transform: translateY(-50%);
    width: 3.25rem;
    height: 3.25rem;
  }.lightbox-nav--prev {
    left: 1.5rem;
  }.lightbox-nav--next {
    right: 1.5rem;
  }
  .lightbox-close:focus-visible,
  .lightbox-nav:focus-visible {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    transform: translateY(-50%) translateY(-2px);
    outline: none;
  }
  .lightbox-close:focus-visible {
    transform: translateY(0) translateY(-2px);
  }@media (max-width: 640px) {.lightbox-overlay { padding: 0.75rem; }.lightbox-nav { width: 2.5rem; height: 2.5rem; }.lightbox-nav--prev { left: 0.5rem; }.lightbox-nav--next { right: 0.5rem; }.lightbox-close { width: 2.5rem; height: 2.5rem; top: 0.75rem; right: 0.75rem; font-size: 1.6rem; }}.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 320ms ease, visibility 320ms ease;
  }.modal-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }.modal-card {
    position: relative;
    width: 100%;
    max-width: 720px;
    max-height: 86vh;
    overflow-y: auto;
    background: var(--white);
    border-radius: 24px;
    padding: 2.25rem 2.25rem 2rem;
    box-shadow: 0 40px 80px rgba(15, 23, 42, 0.28);
    transform: translateY(18px) scale(0.98);
    opacity: 0;
    transition: transform 380ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.modal-overlay.is-open .modal-card {
    transform: translateY(0) scale(1);
    opacity: 1;
  }.modal-close {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: var(--gray-700);
    font-size: 1.6rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 240ms ease, color 240ms ease, transform 240ms ease;
  }
  .modal-close:focus-visible {
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    color: var(--white);
    transform: rotate(90deg);
  }.modal-title {
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2.2vw, 1.75rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
    padding-right: 2.75rem;
    margin: 0 0 1.25rem;
    color: var(--black);
  }.modal-body p {
    margin: 0 0 1rem;
    font-size: 0.98rem;
    line-height: 1.78;
    color: var(--gray-700);
  }.modal-body p:last-child {
    margin-bottom: 0;
  }@media (max-width: 640px) {.modal-card {
      padding: 1.75rem 1.25rem 1.5rem;
      border-radius: 20px;
      max-height: 90vh;
    }.modal-title { padding-right: 2.25rem; }}/* ─── PARTNERS ─────────────────────────────────────── */
  #partners { background: var(--white); overflow: hidden; }.partners-rows { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 3.5rem; }.partners-row {
    display: flex;
    gap: 1.5rem;
    width: max-content;
  }.partners-row.row-1 { animation: scrollLeft 25s linear infinite; }.partners-row.row-2 { animation: scrollRight 30s linear infinite; }@keyframes scrollLeft {from { transform: translateX(0); }to { transform: translateX(-50%); }}@keyframes scrollRight {from { transform: translateX(-50%); }to { transform: translateX(0); }}.partner-item {
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius);
    padding: 1.16rem 1.93rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--gray-400);
    transition: all var(--transition);
    cursor: default;
    white-space: nowrap;
    letter-spacing: -0.01em;
    display: flex;
    align-items: center;
    justify-content: center;
  }.partner-item img {
    height: 37.4px;
    width: auto;
    max-width: 176px;
    object-fit: contain;
    display: block;
    filter: grayscale(100%);
    opacity: 0.72;
    transition: filter var(--transition), opacity var(--transition);
  }/* ─── CASOS DE EXITO ─────────────────────────────────────── */
  #casos-exito {
    display: none !important;
    background: var(--white);
    padding: 5rem 0 6rem;
  }.casos-exito-grid {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }.casos-exito-card {
    min-height: 320px;
    padding: 1.75rem;
    border-radius: 28px;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 249, 255, 0.98) 100%);
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.08);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .casos-exito-card:focus-within {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.14);
    border-color: rgba(28, 99, 239, 0.24);
  }.casos-exito-company {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent);
  }.casos-exito-quote {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.18rem;
    line-height: 1.55;
    letter-spacing: -0.02em;
    color: var(--black);
  }.casos-exito-meta {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(28, 99, 239, 0.12);
  }.casos-exito-name {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--black);
  }.casos-exito-role {
    margin-top: 0.35rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--gray-600);
  }@media (max-width: 1024px) {.casos-exito-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }}@media (max-width: 640px) {.casos-exito-grid {
      grid-template-columns: 1fr;
    }.casos-exito-card {
      min-height: auto;
    }}/* ─── NOSOTROS ─────────────────────────────────────── */
  #nosotros { background: var(--gray-50); padding: 80px 0; }#nosotros > .container { padding: 0 1.4rem; }.nosotros-grid {
    display: grid;
    grid-template-columns: 52% 48%;
    gap: 32px;
    align-items: center;
  }#nosotros .nosotros-text {
    width: 100%;
    max-width: none;
    min-width: 0;
  }#nosotros .nosotros-text .section-title {
    margin-bottom: 1rem;
  }#nosotros .nosotros-historia-image-card {
    margin: 0;
    justify-self: end;
    width: min(100%, 520px);
    min-height: clamp(320px, 30vw, 430px);
  }.nosotros-visual {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4/3;
    background: #0055BA;
  }.nosotros-visual-inner {
    inset: 0;
    position: absolute;
    background: linear-gradient(135deg, #18AAEC 0%, #1C63EF 60%, #0055BA 100%);
    display: flex;
    align-items: center;
    justify-content: center;
  }.nosotros-stat-float {
    position: absolute;
    bottom: 2rem;
    left: 2rem;
    right: 2rem;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    display: flex;
    gap: 2rem;
  }.ns-num {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--white);
    letter-spacing: -0.03em;
  }.ns-lbl {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 2px;
  }.nosotros-text p {
    max-width: 700px;
    font-size: 1.15rem;
    color: var(--gray-600);
    line-height: 1.8;
    margin-top: 1.5rem;
    font-weight: 700;
  }.nosotros-text p:first-child {
    margin-top: 0;
  }.nosotros-highlight-box {
    margin-top: 1.75rem;
    display: flex;
    width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 11px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
  }.nosotros-highlight-box .nosotros-tag {
    flex: 0 0 auto;
    background: linear-gradient(135deg, #18AAEC 0%, #1C63EF 52%, #0055BA 100%);
    border-color: transparent;
    color: var(--white);
    font-size: 1.02rem;
    font-weight: 700;
    box-shadow: 0 14px 34px rgba(0, 85, 186, 0.2);
    gap: 0.4rem;
    white-space: nowrap;
    padding: 0.5rem 0.68rem;
  }.nosotros-highlight-box .nosotros-tag-number {
    font-family: var(--font-display);
    font-size: 1.45em;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
  }.nosotros-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-top: 2.5rem;
  }.ns-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
  }.ns-card-num {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--black);
    letter-spacing: -0.03em;
  }.ns-card-lbl {
    font-size: 0.8rem;
    color: var(--gray-400);
    margin-top: 0.25rem;
    font-weight: 300;
  }#nosotros-historia {
    background: var(--white);
    padding: var(--section-pad);
  }.nosotros-historia-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: start;
    max-width: 1100px;
  }.nosotros-historia-subtitle {
    margin: 0.65rem 0 0;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--accent-dark);
    font-weight: 700;
  }.nosotros-historia-text {
    margin-top: 1.25rem;
    font-size: 1.15rem;
    line-height: 1.8;
    color: var(--gray-600);
    font-weight: 700;
  }.nosotros-timeline {
    position: relative;
    padding: 2.25rem 0 0;
    display: flex;
    gap: 1rem;
    overflow: visible;
    width: 100%;
  }.nosotros-timeline::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 18px;
    height: 2px;
    background: rgba(26,75,255,0.22);
    border-radius: 2px;
    transform-origin: left;
    transition: transform 760ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.nosotros-timeline.reveal:not(.visible)::before {
    transform: scaleX(0);
  }.nosotros-timeline.reveal.visible::before {
    transform: scaleX(1);
  }.nosotros-timeline-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0;
    min-width: 0;
    max-width: none;
    flex: 1 1 0;
  }.nosotros-timeline-item::before {
    content: none !important;
    display: none !important;
  }.nosotros-timeline-year {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.02em;
    text-align: left;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.65rem;
    min-height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(17, 24, 39, 0.14);
    background: rgba(255, 255, 255, 0.96);
    transition: background-color 340ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 340ms cubic-bezier(0.2, 0.9, 0.2, 1), color 340ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 340ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.nosotros-timeline-item.is-filled .nosotros-timeline-year {
    background: rgba(6, 176, 255, 0.16);
    border-color: rgba(6, 176, 255, 0.35);
  }.nosotros-timeline-item.is-active .nosotros-timeline-year {
    background: rgba(6, 176, 255, 0.28);
    border-color: rgba(6, 176, 255, 0.48);
    transform: translate3d(0, -1px, 0);
  }.nosotros-timeline-item .nosotros-timeline-year,
  .nosotros-timeline-item .nosotros-timeline-body {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 520ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    transition-delay: 0ms;
  }.nosotros-timeline-item.visible .nosotros-timeline-year {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0ms;
  }.nosotros-timeline-item.visible .nosotros-timeline-body {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 140ms;
  }.nosotros-timeline-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--black);
    letter-spacing: -0.01em;
    text-align: center;
  }.nosotros-timeline-desc {
    margin-top: 0.35rem;
    font-size: 0.95rem;
    line-height: 1.8;
    color: var(--black);
    font-weight: 300;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translate3d(0, 10px, 0);
    transition: max-height 360ms cubic-bezier(0.2, 0.9, 0.2, 1), opacity 360ms cubic-bezier(0.2, 0.9, 0.2, 1), transform 360ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .nosotros-timeline-item:focus-within .nosotros-timeline-desc,
  .nosotros-timeline-item.is-active .nosotros-timeline-desc {
    max-height: 420px;
    opacity: 1;
    overflow: visible;
    transform: translate3d(0, 0, 0);
  }@media (hover: none) and (pointer: coarse) and (max-width: 1024px) {.nosotros-timeline-desc {
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      transform: translate3d(0, 10px, 0);
    }.nosotros-timeline-item.is-active .nosotros-timeline-desc {
      max-height: 420px;
      opacity: 1;
      overflow: visible;
      transform: translate3d(0, 0, 0);
    }}@media (max-width: 1024px) {.nosotros-historia-grid { grid-template-columns: 1fr; }.nosotros-timeline {
      margin-top: 2rem;
      display: flex;
      flex-direction: column;
      gap: 1rem;
      padding-top: 0;
      overflow: visible;
    }.nosotros-timeline::before {
      left: 16px !important;
      right: auto !important;
      top: 0 !important;
      bottom: 0 !important;
      width: 2px !important;
      height: auto !important;
      transform-origin: top;
    }.nosotros-timeline-item {
      flex: none;
      width: 100%;
      padding-left: 44px;
      position: relative;
      cursor: pointer;
    }.nosotros-timeline-item::before {
      content: '' !important;
      display: block !important;
      position: absolute;
      left: 9px;
      top: 16px;
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: var(--white);
      border: 2px solid var(--accent);
      z-index: 1;
    }.nosotros-timeline-year {
      align-self: flex-start;
    }}#nosotros-adn {
    display: none;
    background: var(--gray-50);
    padding: var(--section-pad);
    padding-bottom: 6.475rem;
  }#nosotros-cultura {
    display: none;
  }.adn-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.25rem;
  }.adn-card {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    padding: 1.65rem 1.65rem;
    border: 1px solid rgba(28, 99, 239, 0.12);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.08);
    backdrop-filter: blur(10px);
    transform: translate3d(0, 0, 0);
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.adn-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    transform: translate3d(-108%, 0, 0);
    transition: transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    z-index: 0;
  }
  .adn-card:focus-within {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
    border-color: rgba(28, 99, 239, 0.28);
  }
  .adn-card:focus-within::before {
    transform: translate3d(0, 0, 0);
  }.adn-card-title {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--black);
    letter-spacing: -0.02em;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.adn-card-desc {
    position: relative;
    z-index: 1;
    margin-top: 0.9rem;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--gray-600);
    font-weight: 700;
    transition: color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }
  .adn-card:focus-within .adn-card-title,
  .adn-card:focus-within .adn-card-desc {
    color: var(--white);
  }
  .adn-card:focus-within .adn-card-desc {
    color: rgba(255, 255, 255, 0.86);
  }.adn-card--tree {
    display: flex;
    align-items: center;
    justify-content: center;
    grid-column: 1 / -1;
    max-width: 840px;
    justify-self: center;
  }.adn-tree {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.35rem;
    position: relative;
    z-index: 1;
  }.adn-tree-root {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.1rem;
    border-radius: 999px;
    background: var(--accent);
    color: var(--white);
    font-weight: 700;
    letter-spacing: -0.01em;
  }.adn-tree-root::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -1.35rem;
    width: 2px;
    height: 1.35rem;
    transform: translateX(-50%);
    background: rgba(0, 85, 186, 0.18);
    border-radius: 2px;
  }.adn-tree-branches {
    position: relative;
    width: min(360px, 100%);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem 1rem;
    padding-top: 1.35rem;
  }.adn-tree-branches::before {
    content: '';
    position: absolute;
    left: 12%;
    right: 12%;
    top: 0.5rem;
    height: 2px;
    background: rgba(0, 85, 186, 0.18);
    border-radius: 2px;
  }.adn-tree-leaf {
    position: relative;
    padding: 0.65rem 0.85rem;
    border-radius: 16px;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    color: var(--gray-700);
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.35;
    text-align: center;
    transition: background 380ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 380ms cubic-bezier(0.2, 0.9, 0.2, 1), color 380ms cubic-bezier(0.2, 0.9, 0.2, 1);
  }.adn-tree-leaf::before {
    content: '';
    position: absolute;
    left: 50%;
    top: -0.85rem;
    width: 2px;
    height: 0.85rem;
    transform: translateX(-50%);
    background: rgba(0, 85, 186, 0.18);
    border-radius: 2px;
  }
  .adn-card--tree:focus-within .adn-tree-root::after,
  .adn-card--tree:focus-within .adn-tree-branches::before,
  .adn-card--tree:focus-within .adn-tree-leaf::before {
    background: rgba(255, 255, 255, 0.28);
  }
  .adn-card--tree:focus-within .adn-tree-leaf {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.92);
  }@media (max-width: 980px) {.adn-grid { grid-template-columns: 1fr; }.adn-card--tree { justify-content: flex-start; grid-column: auto; max-width: 100%; justify-self: auto; }.adn-tree { align-items: flex-start; }.adn-tree-branches { width: 100%; }}#nosotros-cultura {
    background: var(--white);
    padding: var(--section-pad);
  }#nosotros-cultura > .container { padding: 0 1.4rem; }.nosotros-cultura-card {
    background: var(--accent);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 24px;
    padding: clamp(1.75rem, 3vw, 3rem);
    max-width: 100%;
    width: 100%;
  }.nosotros-cultura-lead {
    font-size: 1.265rem;
    line-height: 1.7;
    color: var(--white);
    letter-spacing: -0.01em;
  }.nosotros-cultura-text {
    margin-top: 1rem;
    font-size: 1.15rem;
    color: rgba(255,255,255,0.88);
    line-height: 1.8;
    font-weight: 700;
  }.nosotros-cultura-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.75rem;
  }.nosotros-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.9rem;
    border-radius: 999px;
    background: var(--white);
    border: 1px solid rgba(255,255,255,0.35);
    color: var(--accent);
    font-weight: 500;
    font-size: 1.035rem;
    letter-spacing: -0.01em;
    transition: all var(--transition);
  }@media (max-width: 640px) {.nosotros-highlight-box {
      padding: 1rem;
      gap: 0.7rem;
    }.nosotros-highlight-box .nosotros-tag {
      width: 100%;
      justify-content: center;
    }}#nosotros-fotos {
    background: var(--gray-50);
    padding: var(--section-pad);
  }.fotos-carousel {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 2.25rem;
  }.fotos-viewport {
    flex: 1;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 26px;
  }.fotos-viewport::-webkit-scrollbar { display: none; }.fotos-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    padding: 0.25rem 0.25rem;
  }.foto-slide {
    width: clamp(320px, 76vw, 620px);
    height: clamp(210px, 42vw, 360px);
    border-radius: 22px;
    overflow: hidden;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    scroll-snap-align: start;
    flex-shrink: 0;
  }.foto-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }.fotos-btn {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1.5px solid var(--gray-200);
    background: rgba(255,255,255,0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition);
    color: var(--gray-600);
    flex-shrink: 0;
  }.fotos-dots {
    margin-top: 1.25rem;
    display: flex;
    justify-content: center;
    gap: 6px;
  }.fotos-dots .dot {
    width: 6px;
    height: 6px;
    border-radius: 3px;
    background: var(--gray-200);
    transition: all var(--transition);
    cursor: pointer;
    border: 0;
    padding: 0;
  }.fotos-dots .dot.active {
    width: 20px;
    background: var(--accent);
  }@media (max-width: 980px) {.fotos-btn { display: none; }.foto-slide {
      width: 92vw;
      height: min(56vw, 320px);
    }}#estructura-grupo {
    background: var(--gray-50);
    padding: var(--section-pad);
    padding-top: 6.475rem;
  }@media (max-width: 980px) {#nosotros-adn { padding-bottom: 4.625rem; }#estructura-grupo { padding-top: 4.625rem; }}.nosotros-historia-image-card {
    border-radius: 28px;
    overflow: hidden;
    border: 1px solid rgba(28, 99, 239, 0.1);
    box-shadow: 0 20px 54px rgba(12, 32, 64, 0.1);
    background: var(--gray-100);
  }.nosotros-historia-image-card img {
    display: block;
    width: 100%;
    height: clamp(300px, 42vw, 560px);
    object-fit: cover;
    object-position: center;
  }.nosotros-intro-image img {
    width: 100%;
    height: 100%;
    min-height: clamp(320px, 30vw, 430px);
    object-fit: cover;
    object-position: center center;
  }@media (max-width: 1120px) {.nosotros-highlight-box {
      flex-wrap: wrap;
    }}@media (max-width: 980px) {.nosotros-historia-image-card {
      border-radius: 22px;
    }.nosotros-historia-image-card img {
      height: min(66vw, 380px);
    }}#sistema-integrado-gestion {
    background: var(--white);
    padding: var(--section-pad);
  }.sig-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 3rem;
    margin-top: 2.25rem;
    align-items: center;
  }.sig-text {
    margin: 1rem 0 0;
    color: var(--gray-600);
    font-weight: 700;
    line-height: 1.75;
    max-width: 920px;
  }.sig-media {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.9rem;
  }.sig-media img {
    width: 210px;
    height: auto;
    max-width: 100%;
    object-fit: contain;
  }.sig-btn {
    width: fit-content;
    gap: 0.45rem;
    font-size: 0.99rem;
    padding: 0.48rem 1.2rem;
    background: var(--accent);
    color: var(--white);
    border-color: var(--accent);
  }
  .sig-btn:focus-visible {
    background: var(--accent-dark);
    color: var(--white);
    border-color: var(--accent-dark);
  }.sig-btn svg {
    width: 14px;
    height: 14px;
  }@media (max-width: 900px) {.sig-grid {
      grid-template-columns: 1fr;
      gap: 1.5rem;
      margin-top: 1.75rem;
    }.sig-media img {
      width: 180px;
    }}#nuestras-politicas {
    background: var(--white);
    padding: 0 0 var(--section-pad);
  }.sig-policies-card,
  .conducta-card {
    background: var(--white);
    border: 1px solid rgba(13, 74, 149, 0.1);
    border-radius: 28px;
    box-shadow: 0 18px 48px rgba(12, 32, 64, 0.08);
    padding: clamp(1.75rem, 3vw, 2.5rem);
  }.sig-policies-card {
    transition: box-shadow 320ms ease, border-color 320ms ease;
  }.sig-policies-text,
  .conducta-text {
    margin: 1rem 0 0;
    color: var(--gray-600);
    line-height: 1.8;
    font-weight: 600;
  }.sig-policies-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.5rem;
  }.sig-policy-btn {
    border: 1px solid var(--accent);
    cursor: pointer;
    font: inherit;
    white-space: nowrap;
    background: rgba(255, 255, 255, 0.96);
    color: var(--accent);
    box-shadow: 0 10px 24px rgba(0, 85, 186, 0.08);
  }
  .sig-policy-btn:focus-visible {
    background: var(--white);
    color: var(--accent-dark);
    border-color: var(--accent-dark);
    transform: translateY(-2px);
    box-shadow: 0 16px 28px rgba(0, 85, 186, 0.16);
  }
  .sig-policies-card:focus-within {
    box-shadow: 0 22px 52px rgba(12, 32, 64, 0.11);
    border-color: rgba(13, 74, 149, 0.16);
  }.policy-viewer-overlay {
    position: fixed;
    inset: 0;
    z-index: 240;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(8, 18, 36, 0.74);
    backdrop-filter: blur(8px);
  }body.policy-viewer-open {
    overflow: hidden;
  }.policy-viewer-overlay.open {
    display: flex;
  }.policy-viewer-modal {
    position: relative;
    width: min(1080px, 100%);
    max-height: calc(100vh - 3rem);
    overflow: auto;
    background: var(--white);
    border-radius: 28px;
    border: 1px solid rgba(10, 112, 230, 0.14);
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.24);
    padding: clamp(1.25rem, 2vw, 1.75rem);
  }.policy-viewer-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(10, 112, 230, 0.18);
    border-radius: 999px;
    background: var(--white);
    color: var(--accent-dark);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
  }.policy-viewer-head {
    padding-right: 3rem;
    margin-bottom: 1rem;
  }.policy-viewer-kicker {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
  }.policy-viewer-title {
    margin: 0.4rem 0 0;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    color: var(--accent-dark);
  }.policy-viewer-body {
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(180deg, #f7faff 0%, #edf4ff 100%);
    border: 1px solid rgba(10, 112, 230, 0.1);
    padding: 0.75rem;
  }.policy-viewer-image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
  }#conducta-etica {
    background: var(--white);
    padding: 0 0 var(--section-pad);
  }.conducta-card {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.95fr);
    gap: 1.5rem;
    align-items: start;
  }.conducta-highlights {
    display: grid;
    gap: 1rem;
    align-self: center;
  }.conducta-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0.48rem 1.2rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--accent);
    color: var(--accent);
    font-size: 0.99rem;
    font-weight: 400;
    line-height: 1.35;
    text-align: center;
    box-shadow: 0 10px 24px rgba(0, 85, 186, 0.08);
    transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, color 220ms ease, border-color 220ms ease;
  }
  .conducta-action:focus-visible {
    transform: translateY(-2px);
    background: var(--white);
    color: var(--accent-dark);
    border-color: var(--accent-dark);
    box-shadow: 0 16px 28px rgba(0, 85, 186, 0.16);
  }@media (max-width: 900px) {#nuestras-politicas,
    #conducta-etica {
      padding-bottom: 4.625rem;
    }.sig-policy-btn {
      width: 100%;
      justify-content: center;
      white-space: normal;
    }.conducta-card {
      grid-template-columns: 1fr;
    }.policy-viewer-overlay {
      padding: 0.85rem;
    }.policy-viewer-modal {
      max-height: calc(100vh - 1.7rem);
      border-radius: 22px;
      padding: 1rem;
    }}.grupo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    margin-top: 2.25rem;
  }.grupo-subtitle {
    margin: 0.85rem 0 0;
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--gray-600);
    font-weight: 600;
  }.grupo-item {
    background: var(--white);
    border: 1px solid rgba(28, 99, 239, 0.12);
    border-radius: 22px;
    padding: 1.75rem 1.5rem;
    text-align: center;
    box-shadow: 0 18px 42px rgba(0, 85, 186, 0.08);
    transition: transform 420ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 420ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 420ms cubic-bezier(0.2, 0.9, 0.2, 1);
    cursor: default;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    transform: translate3d(0, 0, 0);
  }.grupo-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, #0055BA 0%, #1C63EF 45%, #18AAEC 100%);
    transform: translate3d(-108%, 0, 0);
    transition: transform 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
    z-index: 0;
  }.grupo-item > * {
    position: relative;
    z-index: 1;
  }
  .grupo-item:focus-within {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 26px 70px rgba(0, 85, 186, 0.22);
    border-color: rgba(28, 99, 239, 0.28);
  }
  .grupo-item:focus-within::before {
    transform: translate3d(0, 0, 0);
  }.grupo-item img {
    display: block;
    width: min(168px, 100%);
    height: 55px;
    max-width: 168px;
    object-fit: contain;
    margin-bottom: 0;
    transition: filter 320ms ease, opacity 320ms ease;
  }.grupo-item p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.7;
    font-weight: 700;
    transition: color 320ms ease;
  }
  .grupo-item:focus-within p {
    color: var(--white);
  }
  .grupo-item:focus-within img {
    filter: brightness(0) invert(1);
  }@media (max-width: 1024px) {.grupo-grid { grid-template-columns: repeat(2, 1fr); }}@media (max-width: 640px) {.grupo-grid { grid-template-columns: 1fr; }.grupo-item { padding: 1.5rem 1.25rem; }}#diferenciales-competitivos {
    background: var(--white);
    padding: var(--section-pad);
  }.diferenciales-list {
    margin: 2.25rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 980px;
  }.diferenciales-list li {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 18px;
    padding: 1.25rem 1.25rem 1.25rem 1.1rem;
    color: var(--gray-600);
    font-weight: 700;
    line-height: 1.75;
    position: relative;
  }.diferenciales-list li::before {
    content: '';
    position: absolute;
    left: 1.1rem;
    top: 1.35rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 10px 24px rgba(26,75,255,0.25);
  }.diferenciales-list li {
    padding-left: 2.25rem;
  }@media (max-width: 900px) {.diferenciales-list { grid-template-columns: 1fr; }}/* ─── CONTACTO ─────────────────────────────────────── */
  #contacto { background: var(--white); }#contacto .contacto-intro .section-title {
    max-width: 100%;
  }#contacto .contacto-intro .section-title em {
    display: inline-block;
    white-space: nowrap;
  }.contact-layout {
    max-width: 680px;
    margin: 3.5rem auto 0;
    display: block;
  }#sumate-equipo {
    background: var(--gray-50);
    padding: var(--section-pad);
    padding-top: 4.625rem;
  }#ubicacion-info {
    background: var(--gray-50);
    padding: 0 0 var(--section-pad);
  }.sumate-card {
    max-width: 1120px;
    margin: 0 auto;
    border-radius: 28px;
    padding: clamp(1.75rem, 4vw, 3rem);
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    color: var(--white);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 420px);
    align-items: center;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
  }.sumate-copy {
    max-width: 60ch;
  }#sumate-equipo .section-title {
    color: var(--white);
    font-size: clamp(1.65rem, 3vw, 2.3rem);
  }.sumate-text {
    margin-top: 0.85rem;
    font-size: 1.08rem;
    line-height: 1.75;
    color: rgba(255,255,255,0.9);
    font-weight: 700;
  }.sumate-text-detail {
    margin-top: 0.65rem;
    font-size: 1rem;
    font-weight: 400;
  }.sumate-feedback {
    margin-top: 1.25rem;
    padding: 0.9rem 1rem;
    border-radius: 16px;
    font-size: 0.95rem;
    line-height: 1.55;
    border: 1px solid transparent;
  }.sumate-feedback--success {
    background: rgba(17, 185, 129, 0.16);
    border-color: rgba(110, 231, 183, 0.35);
    color: var(--white);
  }.sumate-feedback--error {
    background: rgba(239, 68, 68, 0.18);
    border-color: rgba(252, 165, 165, 0.35);
    color: var(--white);
  }.sumate-careers-link {
    margin-top: 1.1rem;
    margin-bottom: 0.2rem;
    padding: 0.95rem 1.05rem;
    border-radius: 16px;
    font-size: 1.0 rem;
    line-height: 1.6;
    color: var(--white);
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.18);
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 0.55rem;
    row-gap: 0.35rem;
    text-align: left;
  }@media (max-width: 860px) {.sumate-careers-link {
      justify-content: center;
      text-align: center;
    }}.sumate-careers-text {
    display: inline-block;
  }.sumate-careers-sep {
    opacity: 0.9;
    font-weight: 700;
  }.sumate-careers-link a {
    display: inline-block;
    color: var(--white);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(96, 165, 250, 0.5);
    transition: all .25s ease;
  }
  .sumate-careers-link a:focus {
    color: var(--brand-200, #93c5fd);
    border-bottom-color: var(--brand-200, #93c5fd);
    transform: translateY(-1px);
  }.sumate-form {
    width: 100%;
    padding: 1.5rem;
    border-radius: 24px;
    background: rgba(255,255,255,0.98);
    color: var(--black);
    box-shadow: 0 20px 44px rgba(2, 6, 23, 0.16);
  }.sumate-form .field-group {
    margin-bottom: 0.85rem;
  }.sumate-form label {
    color: var(--gray-600);
  }.sumate-form input[type="text"],
  .sumate-form input[type="email"],
  .sumate-form input[type="tel"] {
    border-radius: 14px;
    border-color: rgba(148, 163, 184, 0.32);
    font-weight: 400;
  }.sumate-file-control {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.5rem;
    border: 1.5px solid rgba(148, 163, 184, 0.32);
    border-radius: 16px;
    background: var(--white);
    transition: border-color var(--transition), box-shadow var(--transition);
  }.sumate-file-control:focus-within {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(26,75,255,0.1);
  }.sumate-file-control input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }.sumate-file-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    padding: 0.78rem 1.15rem;
    border-radius: 999px;
    border: 1.5px solid #0055BA;
    background: var(--white);
    color: #0055BA;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
  }
  .sumate-file-trigger:focus-visible,
  .sumate-file-trigger:active {
    color: #0055BA;
  }.sumate-file-name {
    flex: 1 1 180px;
    min-width: 0;
    font-size: 0.92rem;
    color: var(--gray-600);
    overflow-wrap: anywhere;
  }.sumate-submit {
    width: 100%;
    justify-content: center;
    border: 0;
    cursor: pointer;
    margin-top: 0.45rem;
  }.contact-info-grid {
    max-width: 860px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: center;
    align-content: center;
    place-content: center;
    place-items: stretch;
    gap: 1.5rem;
  }.contact-info-card {
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-radius: 28px;
    border: 1px solid var(--gray-200);
    background: var(--white);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
  }.contact-info-card--cta {
    background: linear-gradient(135deg, #05070d 0%, #0055BA 70%, #18AAEC 100%);
    border-color: transparent;
    color: var(--white);
  }.contact-info-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2vw, 1.8rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    color: inherit;
  }.contact-info-text {
    margin: 0.9rem 0 0;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--gray-600);
  }.contact-info-card--cta .contact-info-text {
    color: rgba(255,255,255,0.9);
  }.contact-info-card .btn-primary {
    margin-top: 1.25rem;
    width: fit-content;
  }@media (max-width: 1024px) {
    #sumate-equipo {
      padding-left: 0 !important;
      padding-right: 0 !important;
      padding-top: 3.25rem !important;
    }
    #sumate-equipo > .container {
      padding-left: clamp(1rem, 4vw, 1.5rem) !important;
      padding-right: clamp(1rem, 4vw, 1.5rem) !important;
    }
    #sumate-equipo .sumate-card {
      padding: clamp(1.75rem, 6vw, 2.25rem) clamp(1.25rem, 5vw, 1.75rem) !important;
      gap: clamp(1.25rem, 5vw, 1.75rem) !important;
    }
    #sumate-equipo .sumate-form,
    #sumate-equipo .wpcf7-form {
      padding: clamp(1.5rem, 6vw, 1.9rem) clamp(1.25rem, 5vw, 1.5rem) !important;
    }
    #sumate-equipo .sumate-form .field-wrap,
    #sumate-equipo .wpcf7-form .field-wrap {
      margin-top: 0.4rem;
    }
    #sumate-equipo .sumate-form .field-group,
    #sumate-equipo .wpcf7-form .field-group {
      margin-bottom: 1.1rem !important;
    }
    #sumate-equipo .sumate-file-control {
      padding: 0.9rem 1rem !important;
      gap: 0.85rem !important;
    }
    #sumate-equipo .sumate-submit,
    #sumate-equipo .wpcf7-submit {
      margin-top: 1.1rem !important;
      min-height: 50px !important;
    }
  }@media (max-width: 900px) {.contact-layout {
      margin-top: 2.5rem;
    }.sumate-card {
      grid-template-columns: 1fr;
      align-items: stretch;
    }.contact-info-grid {
      grid-template-columns: 1fr;
    }.sumate-submit {
      width: 100%;
    }}.wizard-wrap {
    max-width: 680px;
    margin: 3.5rem auto 0;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
  }.wizard-header {
    background: var(--gray-50);
    padding: 2rem 2.5rem;
    border-bottom: 1px solid var(--gray-200);
    display: flex;
    align-items: center;
    gap: 0;
  }.step-indicator {
    display: flex;
    align-items: center;
    flex: 1;
  }.step-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
  }.step-item:not(:last-child)::after {
    content: '';
    height: 1px;
    flex: 1;
    min-width: 32px;
    background: var(--gray-200);
    margin: 0 0.5rem;
    transition: background var(--transition);
  }.step-item.done:not(:last-child)::after,
  .step-item.active:not(:last-child)::after { background: var(--accent); }.step-num {
    width: 30px; height: 30px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--gray-200);
    color: var(--gray-600);
    transition: all var(--transition);
    flex-shrink: 0;
  }.step-item.active .step-num {
    background: var(--accent);
    color: var(--white);
  }.step-item.done .step-num {
    background: var(--green);
    color: var(--white);
  }.step-label {
    font-size: 0.75rem;
    color: var(--gray-400);
    font-weight: 400;
    white-space: nowrap;
    transition: color var(--transition);
  }.step-item.active .step-label { color: var(--black); font-weight: 500; }.wizard-body { padding: 2.5rem; }.wizard-step { display: none; }.wizard-step.active { display: block; animation: fadeInUp 0.3s ease both; }.wizard-title {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    letter-spacing: -0.02em;
  }.wizard-sub {
    font-size: 0.875rem;
    color: var(--gray-400);
    margin-bottom: 2rem;
    font-weight: 300;
  }.field-group { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }.field-group.single { grid-template-columns: 1fr; }.field-wrap { display: flex; flex-direction: column; gap: 0.375rem; }label {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--gray-600);
    letter-spacing: 0.02em;
  }input[type="text"],
  input[type="email"],
  input[type="tel"],
  select,
  textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1.5px solid var(--gray-200);
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    color: var(--black);
    background: var(--white);
    transition: border-color var(--transition), box-shadow var(--transition);
    outline: none;
    font-weight: 300;
  }input:focus, select:focus, textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(26,75,255,0.1);
  }textarea { resize: vertical; min-height: 100px; }.service-chips-shell {
    position: relative;
    margin-top: 0.5rem;
  }.service-chips {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.625rem;
    margin-top: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 2.75rem;
    scroll-padding-left: 2.75rem;
    scroll-padding-right: 2.75rem;
  }.service-chips::-webkit-scrollbar { display: none; }.service-chips-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--gray-200);
    background: rgba(255, 255, 255, 0.9);
    color: var(--black);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: opacity var(--transition), background var(--transition), transform var(--transition);
    backdrop-filter: blur(10px);
  }.service-chips-arrow:disabled {
    opacity: 0.35;
    cursor: default;
  }.service-chips-arrow--prev { left: 0; }.service-chips-arrow--next { right: 0; }.wizard-area-toggle {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.75rem;
  }.wizard-area-btn {
    padding: 0.65rem 1rem;
    border: 1.5px solid var(--gray-200);
    border-radius: 100px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all var(--transition);
    color: var(--gray-600);
    font-weight: 700;
    background: var(--white);
  }.wizard-area-btn.selected {
    border-color: var(--accent);
    background: var(--accent-light);
    color: var(--accent);
    font-weight: 800;
  }.chip {
    padding: 0.75rem 1rem;
    border: 1.5px solid var(--gray-200);
    border-radius: 16px;
    min-width: 230px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all var(--transition);
    color: var(--gray-600);
    flex: 0 0 auto;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    text-align: left;
  }.chip-title {
    font-weight: 800;
    color: inherit;
    line-height: 1.1;
  }.chip-desc {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gray-400);
    line-height: 1.25;
  }.chip.selected {
    border-color: var(--accent);
    background: var(--accent-light);
    color: var(--accent);
    font-weight: 800;
  }.chip.selected .chip-desc {
    color: var(--accent);
    opacity: 0.88;
  }.wizard-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--gray-100);
  }.wizard-footer--simple {
    justify-content: flex-end;
  }.btn-back {
    font-size: 0.875rem;
    color: var(--gray-400);
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem;
    border-radius: 6px;
    transition: color var(--transition);
  }.btn-back:disabled { opacity: 0; pointer-events: none; }.btn-next {
    padding: 0.75rem 2rem;
    background: var(--accent);
    color: var(--white);
    font-weight: 500;
    font-size: 0.9rem;
    border-radius: 100px;
    transition: all var(--transition);
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }.success-msg {
    text-align: center;
    padding: 2rem 0;
    display: none;
  }.success-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(0,200,120,0.12);
    border: 2px solid var(--green);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: var(--green);
  }/* ─── AI MODAL ─────────────────────────────────────── */
  .ai-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 200;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 1.5rem;
  }.ai-modal-overlay.open { display: flex; }.ai-modal {
    background: var(--white);
    border-radius: var(--radius-lg);
    width: 380px;
    max-height: 520px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 32px 80px rgba(0,0,0,0.25);
    animation: slideUp 0.3s ease both;
  }@keyframes slideUp {from { opacity: 0; transform: translateY(20px); }to { opacity: 1; transform: translateY(0); }}.ai-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--gray-100);
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }.ai-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--green);
    animation: pulse 2s infinite;
  }.ai-header-text {
    flex: 1;
  }.ai-name {
    font-weight: 600;
    font-size: 0.9rem;
  }.ai-status {
    font-size: 0.75rem;
    color: var(--gray-400);
    font-weight: 300;
  }.ai-close {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--gray-400);
    transition: all var(--transition);
    font-size: 1.1rem;
  }.ai-messages {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
  }.ai-bubble {
    max-width: 85%;
    padding: 0.75rem 1rem;
    border-radius: 14px;
    font-size: 0.875rem;
    line-height: 1.55;
  }.ai-bubble.bot {
    background: var(--gray-100);
    color: var(--black);
    align-self: flex-start;
    border-bottom-left-radius: 4px;
    font-weight: 300;
  }.ai-bubble.user {
    background: var(--accent);
    color: var(--white);
    align-self: flex-end;
    border-bottom-right-radius: 4px;
  }.ai-input-wrap {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--gray-100);
    display: flex;
    gap: 0.625rem;
  }.ai-input {
    flex: 1;
    padding: 0.625rem 1rem;
    border: 1.5px solid var(--gray-200);
    border-radius: 100px;
    font-size: 0.875rem;
    outline: none;
    font-family: var(--font-body);
  }.ai-input:focus { border-color: var(--accent); }.ai-send {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    transition: all var(--transition);
    flex-shrink: 0;
  }.site-search-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.58);
    z-index: 220;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
  }.site-search-overlay.open { display: flex; }.site-search-modal {
    width: min(560px, 100%);
    border-radius: 22px;
    border: 1px solid rgba(17, 24, 39, 0.12);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.25);
    padding: 1.1rem 1.1rem 1rem;
    backdrop-filter: blur(10px);
    animation: slideUp 0.28s ease both;
  }.site-search-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
  }.site-search-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
  }.site-search-close {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gray-600);
    border: 1px solid rgba(17, 24, 39, 0.12);
    transition: all var(--transition);
    flex: 0 0 auto;
  }.site-search-form {
    display: flex;
    gap: 0.75rem;
  }.site-search-input {
    flex: 1 1 auto;
    border: 1.5px solid var(--gray-200);
    border-radius: 14px;
    padding: 0.85rem 1rem;
    font-size: 0.95rem;
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
    background: var(--white);
  }.site-search-input:focus {
    border-color: rgba(0, 85, 186, 0.5);
    box-shadow: 0 0 0 4px rgba(0, 85, 186, 0.12);
  }.site-search-submit {
    flex: 0 0 auto;
    padding: 0.85rem 1.1rem;
    border-radius: 14px;
    border: 1.5px solid rgba(0, 85, 186, 0.25);
    background: rgba(0, 85, 186, 0.1);
    color: var(--accent-dark);
    font-weight: 800;
    transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
  }.site-search-results {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.9rem;
  }.site-search-result {
    width: 100%;
    text-align: left;
    border-radius: 14px;
    border: 1px solid rgba(17, 24, 39, 0.08);
    background: rgba(248, 250, 252, 0.8);
    padding: 0.8rem 0.95rem;
    transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
  }.site-search-result-title {
    display: block;
    font-weight: 800;
    color: var(--black);
    letter-spacing: -0.01em;
  }.site-search-result-meta {
    display: block;
    margin-top: 0.22rem;
    color: var(--gray-600);
    font-size: 0.82rem;
  }.site-search-empty {
    border-radius: 14px;
    border: 1px dashed rgba(17, 24, 39, 0.12);
    padding: 0.9rem 1rem;
    color: var(--gray-600);
    background: rgba(248, 250, 252, 0.72);
    font-size: 0.92rem;
  }@media (max-width: 520px) {.site-search-form {
      flex-direction: column;
    }}/* ─── FOOTER ─────────────────────────────────────── */
  #footer {
    background: linear-gradient(135deg, #0055BA 0%, #1C63EF 100%);
    padding: 3rem 0 1.25rem;
    color: var(--white);
  }.footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
  }.footer-brand .nav-logo {
  color: var(--white);
  display: flex;
  justify-content: center;
  max-width: 242px; /* mismo ancho que .footer-tagline */
  margin-bottom: 0.625rem;
}.footer-brand .nav-logo img {
  height: 66px;
  filter: brightness(0) invert(1);
}.footer-tagline {
    font-size: 0.9rem;
    color: var(--white);
    line-height: 1.5;
    max-width: 242px;
    font-weight: 300;
    margin-bottom: 1rem;
  }.footer-social { display: flex; gap: 0.5rem; }.social-link {
    width: 30px; height: 30px;
    border-radius: 7px;
    border: 1px solid rgba(255,255,255,0.1);
    display: flex; align-items: center; justify-content: center;
    color: var(--white);
    font-size: 0.68rem;
    font-weight: 700;
    transition: all var(--transition);
  }.footer-col-title {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--white);
    margin-bottom: 0.75rem;
  }.footer-links { display: flex; flex-direction: column; gap: 0.45rem; }.footer-links a {
    font-size: 0.78rem;
    color: var(--white);
    font-weight: 300;
    transition: color var(--transition);
  }.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    background: rgba(26,75,255,0.15);
    border: 1px solid rgba(26,75,255,0.3);
    border-radius: var(--radius);
    padding: 1rem;
  }.footer-contact p,
  .footer-contact a {
    font-size: 0.94rem;
    color: var(--white);
    font-weight: 300;
    line-height: 1.55;
  }.footer-contact-item,
  .footer-contact-item a {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
  }.footer-contact-item svg {
    flex-shrink: 0;
    margin-top: 0.2rem;
  }.footer-contact-address {
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
  gap: 0.55rem;
}.footer-contact-address span {
  text-align: center;
}.footer-cta-box {
    background: rgba(26,75,255,0.15);
    border: 1px solid rgba(26,75,255,0.3);
    border-radius: var(--radius);
    padding: 1rem;
  }.footer-cta-box h4 {
    font-family: var(--font-display);
    font-size: 0.88rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
  }.footer-cta-box p {
    font-size: 0.86rem;
    color: var(--white);
    margin-bottom: 0.75rem;
    font-weight: 300;
  }.footer-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    background: var(--white);
    color: var(--accent-dark);
    font-size: 0.72rem;
    font-weight: 500;
    border-radius: 100px;
    transition: all var(--transition);
  }.footer-bottom {
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255,255,255,0.07);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
  }.footer-legal {
    font-size: 0.72rem;
    color: var(--white);
    font-weight: 300;
  }.footer-legal a {
    color: var(--white);
    transition: color var(--transition);
  }/* ─── FOOTER: contenido centrado en cada columna ─── */
.footer-grid > * {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}/* Columna 1: marca */
.footer-brand .nav-logo {
  margin: 0 auto 0.625rem;   /* centra el bloque del logo */
}.footer-tagline {
  margin-left: auto;
  margin-right: auto;        /* centra el bloque de 242px */
}.footer-social {
  justify-content: center;
}/* Columna 2: links */
.footer-links {
  align-items: center;
}/* Columna 3: contacto */
.footer-contact {
  align-items: center;
  text-align: center;
}.footer-contact-item,
.footer-contact-item a {
  justify-content: center;
  align-items: center;
}.footer-cta-box {
  text-align: center;
}.footer-contact .footer-contact-address {
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;   /* ícono alineado a la primera línea */
  gap: 0.55rem;
}.footer-contact .footer-contact-address svg {
  flex-shrink: 0;
  margin-top: 0.2rem;        /* centra el ícono con la altura de la primera línea */
}.footer-contact .footer-contact-address span {
  text-align: center;
}/* ─── SCROLL REVEAL ─────────────────────────────────────── */
  .reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }.reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }.reveal-delay-1 { transition-delay: 0.1s; }.reveal-delay-2 { transition-delay: 0.2s; }.reveal-delay-3 { transition-delay: 0.3s; }.reveal-delay-4 { transition-delay: 0.4s; }html.js-motion .section-motion {
    opacity: 0;
    transform: translate3d(0, 34px, 0) scale(0.99);
    transition: opacity 0.9s ease, transform 1.1s cubic-bezier(0.2, 0.9, 0.2, 1);
  }html.js-motion .section-motion.section-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }.typewriter .tw-char {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    display: inline-block;
    will-change: transform, opacity;
  }@keyframes twCharIn {from { opacity: 0; transform: translate3d(0, 10px, 0); }to { opacity: 1; transform: translate3d(0, 0, 0); }}html.js-motion .typewriter.typewriter-active .tw-char {
    animation: twCharIn 0.22s ease forwards;
    animation-delay: calc(var(--i, 0) * var(--tw-step, 0.028s));
  }@media (prefers-reduced-motion: reduce) {.typewriter .tw-char { opacity: 1; transform: none; }html.js-motion .typewriter.typewriter-active .tw-char { animation: none; }}/* ─── MOBILE ─────────────────────────────────────── */
  @media (max-width: 1024px) {.home-logos-row {
      grid-template-columns: 1fr;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      gap: 0;
    }.home-banderas-section,
    .home-map-section,
    .home-textos-section {
      grid-column: 1;
      height: auto;
    }.home-logos-grid,
    .home-map-visual {
      justify-self: center;
    }.home-banderas-section {
      padding: 0 !important;
      margin: 0 !important;
    }.home-logos-grid {
      gap: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      height: auto !important;
      min-height: 120px !important;
      margin: 0 !important;
      padding: 0 !important;
      justify-self: center !important;
    }.home-logo-col {
      padding: 0 !important;
      border-radius: 0 !important;
      height: auto !important;
      min-height: 120px !important;
      overflow: visible !important;
      justify-content: center !important;
    }.home-logo-col img {
      margin: 0 !important;
      max-height: 72px !important;
      display: block !important;
    }.home-map-slot {
      padding-top: 0;
    }.home-textos-section {
      padding: 0 2.75rem 0 1.75rem;
    }.home-uruguay-layout {
      grid-template-columns: 1fr;
    }.home-uruguay-header {
      position: static;
    }.home-uruguay-grid {
      grid-template-columns: 1fr;
    }.home-uruguay-card:nth-child(2),
    .home-uruguay-card:nth-child(4) {
      margin-top: 0;
    }.home-partner-logo-card {
      width: clamp(166px, 28vw, 228px);
      height: clamp(82px, 11.2vw, 102px);
      padding: 0.58rem 0.82rem;
      border-radius: 19px;
    }.home-partners-track-static .home-partner-logo-card {
      height: clamp(64px, 9vw, 84px) !important;
      padding: 0.52rem 0.72rem !important;
      flex: 0 0 auto;
      width: clamp(126px, 23vw, 184px) !important;
      max-width: calc((100% - 2 * 0.6rem) / 3) !important;
      min-width: 0 !important;
    }.home-partners-track-static .home-partner-logo-card:nth-child(1),
    .home-partners-track-static .home-partner-logo-card:nth-child(2),
    .home-partners-track-static .home-partner-logo-card:nth-child(3) {
      width: clamp(132px, 24vw, 192px) !important;
      max-width: calc((100% - 2 * 0.65rem) / 3) !important;
    }.home-partners-track-static .home-partner-logo-card:nth-child(4),
    .home-partners-track-static .home-partner-logo-card:nth-child(5) {
      width: clamp(148px, 26.5vw, 212px) !important;
      max-width: calc((100% - 0.65rem) / 2) !important;
      margin-top: 0.12rem;
    }.home-partners-track-static .home-partner-logo-card:first-child {
      width: clamp(134px, 24.4vw, 194px) !important;
      max-width: calc((100% - 2 * 0.65rem) / 3) !important;
      height: clamp(70px, 9.6vw, 90px) !important;
    }.unidades-grid { grid-template-columns: repeat(2, 1fr); }.nosotros-grid { grid-template-columns: 1fr; }@media (max-width: 900px) {.infra-subsections {
    grid-template-columns: 1fr;
  }.infra-subsection-card {
    padding: 1.75rem;
  }.infra-subsection-desc {
    max-width: none;
  }.infra-subsection-media {
    order: -1;
  }}.nosotros-grid { grid-template-columns: 1fr; }.footer-grid { grid-template-columns: 1fr 1fr; }.caso-card { min-width: calc((100% - 1.5rem) / 2); }}@media (max-width: 768px) {:root { --section-pad: 3.75rem 0; }.home-logos-row {
      width: 100% !important;
      max-width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      margin-top: 0 !important;
    }.home-logos-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
      gap: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      justify-self: center !important;
      margin-top: 0 !important;
      height: auto !important;
      min-height: 118px !important;
    }.home-logo-col {
      min-height: 118px !important;
      height: auto !important;
      padding: 0.58rem 0.28rem 0.52rem !important;
      border-radius: 0 !important;
      overflow: visible !important;
      justify-content: center !important;
    }.home-logo-col img {
      display: block !important;
      max-height: 68px !important;
    }.home-map-visual {
      width: min(100%, 420px);
    }.home-uruguay-section {
      padding: 4rem 0 5rem;
      background: #ffffff !important;
    }.home-uruguay-header {
      padding: 1.75rem;
      border-radius: 22px;
    }.home-uruguay-card {
      padding: 1.5rem;
      min-height: auto;
    }.home-uruguay-title {
      font-size: 1.15rem;
    }.home-uruguay-card-body {
      padding-top: 2.25rem;
    }.home-uruguay-num {
      font-size: 3.2rem;
    }.home-partners-section {
      padding: 4rem 0 4.75rem;
    }.home-partners-header {
      margin-bottom: 2rem;
    }/* — Carrusel partners (v4): overflow contra reveal + fantasma fill-gap ≤768px — */
    .home-partners-section { overflow: visible !important; }.home-partners-marquees {
      overflow: clip !important;
      overflow-x: clip !important;
      overflow-y: visible !important;
      padding: 0.35rem 0 0.6rem;
      width: 100% !important;
      margin: 0 !important;
    }/* ↑↑ FIN Carrusel partners v4 ≤768px ↑↑ */

    .home-partners-track {
      gap: 1rem;
    }.home-partner-logo-card {
      /* Agrandado en ≤768px */
      width: clamp(180px, 34vw, 240px);
      height: clamp(92px, 14.2vw, 112px);
      padding: 1rem 1.25rem;
      border-radius: 19px;
    }.home-partners-track-static,
    .home-partners-track.home-partners-track-static {
      gap: 0.55rem 0.7rem !important;
      flex-wrap: wrap !important;
      overflow: visible !important;
      justify-content: center !important;
      padding: 0 0.25rem;
    }.home-partners-track-static .home-partner-logo-card {
      height: clamp(60px, 10vw, 80px) !important;
      padding: 0.48rem 0.68rem !important;
      width: clamp(118px, 24.5vw, 174px) !important;
      flex: 0 0 auto !important;
      max-width: calc((100% - 2 * 0.55rem) / 3) !important;
      min-width: 0 !important;
    }.home-partners-track-static .home-partner-logo-card:nth-child(1),
    .home-partners-track-static .home-partner-logo-card:nth-child(2),
    .home-partners-track-static .home-partner-logo-card:nth-child(3) {
      width: clamp(124px, 25.4vw, 182px) !important;
      max-width: calc((100% - 2 * 0.6rem) / 3) !important;
    }.home-partners-track-static .home-partner-logo-card:nth-child(4),
    .home-partners-track-static .home-partner-logo-card:nth-child(5) {
      width: clamp(140px, 28vw, 204px) !important;
      max-width: calc((100% - 0.6rem) / 2) !important;
      margin-top: 0.08rem;
    }.home-partners-track-static .home-partner-logo-card:first-child {
      width: clamp(126px, 26vw, 184px) !important;
      max-width: calc((100% - 2 * 0.6rem) / 3) !important;
      height: clamp(66px, 10.6vw, 86px) !important;
    }.home-partner-invite-section {
      padding: 1.75rem 0 5rem;
    }.home-partner-invite-card {
      flex-direction: column;
      align-items: flex-start;
      gap: 1.5rem;
      border-radius: 22px;
    }.home-partner-invite-btn {
      width: 100%;
    }.home-proyecto-panel {
      grid-template-columns: 1fr;
    }.home-proyecto-copy {
      padding-top: 2rem;
      padding-bottom: 0.5rem;
    }.home-proyecto-title {
      margin-top: 1rem;
      margin-bottom: 0.6rem;
    }.home-testimonials-section {
      padding: 2.25rem 0 5.5rem !important;
    }.home-testimonials-header,
    .home-testimonials-header.reveal,
    .home-testimonials-header.reveal.visible {
      margin-bottom: 2rem !important;
      margin-top: 1.75rem !important;
    }.home-partner-invite-section {
      padding-top: 1.75rem !important;
    }/* 🔥 TESTIMONIOS MOBILE: mostrar TODAS las cards como slides 1-a-1.
       Antes: cada slide desktop tenía 2 cards y nth-child(2) display:none → SOLO 3 cards visibles.
       Ahora: 1 card por slide → 6 cards/slides totales (coincide con desktop). */
    .home-testimonials-track {
      display: flex !important;
      width: 100% !important;
      max-width: 100% !important;
      padding: 0.5rem 0 !important;
      /* ✅ Ligero espacio entre cards (no se ven pegadas).
         El scroll-snap compensa: cada slide al 100% + gap entre slides. */
      gap: 0.5rem !important;
    }.home-testimonials-slide {
      /* Cada slide desktop (con sus 2 cards) se convierte en 2 slides mobile:
         → reutilizamos .testimonial-card individual como slide, NO el wrapper.
         Desktop usa .home-testimonials-slide (2 cards); mobile usamos sus .testimonial-card hijas directas. */
      display: contents !important;  /* desenrolla el wrapper → las cards pasan a ser hijas directas del track */
      grid-template-columns: 1fr !important;
      padding: 0 0 !important;
    }/* Ahora cada testimonial-card en mobile funciona COMO UN SLIDE individual del track */
    .home-testimonials-track .testimonial-card {
      flex: 0 0 100% !important;
      width: 100% !important;
      max-width: 100% !important;
      scroll-snap-align: start !important;
      margin: 0 0.15rem !important;
      padding: 1.55rem 1.25rem !important;
      box-sizing: border-box !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: flex-start !important;
      max-height: none !important;
      overflow: visible !important;
      -webkit-mask-image: none !important;
              mask-image: none !important;
      position: relative !important;
      gap: 0.8rem !important;
      text-align: center !important;
    }.home-testimonials-track .testimonial-card .testimonial-left {
      padding-right: 0 !important;
      padding-left: 0 !important;
      padding-top: 0.1rem !important;
      padding-bottom: 0.2rem !important;
      min-height: auto !important;
      max-height: none !important;
      height: auto !important;
      border-right: 0 !important;
      border-bottom: 0 !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: flex-start !important;
      min-width: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
      margin: 0 auto !important;
    }.home-testimonials-track .testimonial-card .testimonial-logo {
      height: 3vh !important;
      min-height: 3vh !important;
      max-height: 3vh !important;
      width: auto !important;
      max-width: 50% !important;
      min-width: 0 !important;
      padding-right: 0 !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      flex-shrink: 0 !important;
      overflow: hidden !important;
      margin: 0 auto 0.35rem !important;
    }.home-testimonials-track .testimonial-card .testimonial-logo img {
      height: 100% !important;
      min-height: 100% !important;
      max-height: 100% !important;
      width: auto !important;
      max-width: none !important;
      min-width: 0 !important;
      display: block !important;
      margin: 0 auto !important;
      object-fit: contain !important;
      object-position: center center !important;
      transform: rotate(0deg) !important;
      flex-shrink: 0 !important;
    }.home-testimonials-track .testimonial-card .testimonial-right {
      padding-left: 0 !important;
      padding-right: 0 !important;
      padding-top: 0.1rem !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      width: 100% !important;
      text-align: center !important;
      gap: 0.35rem !important;
    }.home-testimonials-track .testimonial-card .testimonial-meta {
      padding-top: 0 !important;
      padding-bottom: 0.15rem !important;
      margin-bottom: 0.35rem !important;
      margin-top: 0 !important;
      order: -1 !important;
      width: 100% !important;
      text-align: center !important;
    }.home-testimonials-track .testimonial-card .testimonial-name {
      text-align: center !important;
      line-height: 1.2 !important;
      margin: 0 0 0.08rem 0 !important;
    }.home-testimonials-track .testimonial-card .testimonial-role {
      text-align: center !important;
      line-height: 1.35 !important;
    }.home-testimonials-track .testimonial-card .testimonial-quote {
      margin-bottom: 0.45rem !important;
      margin-top: 0 !important;
      padding: 0 0.3rem !important;
      text-align: center !important;
      line-height: 1.58 !important;
    }.home-testimonials-track .testimonial-card .testimonial-more-btn {
      margin-top: auto !important;
      align-self: center !important;
    }/* Grid card + testimonial-right: centrado */
    .home-testimonials-track .testimonial-card {
      align-items: center !important;
      align-content: center !important;
    }.home-testimonials-track .testimonial-card .testimonial-right {
      align-items: center !important;
      justify-content: flex-start !important;
      align-self: center !important;
    }/* Eliminar overlay "Toca para leer..." — todas las cards están desplegadas */
    .home-testimonials-track .testimonial-card::after { display: none !important; }/* Por las dudas, anular cualquier regla que oculte la 2ª card */
    .home-testimonials-slide .testimonial-card:nth-child(2) {
      display: flex !important;
    }.home-testimonials-arrow {
      display: none;
    }.testimonial-card {
      grid-template-columns: 1fr !important;
      flex-direction: column !important;
      padding: 1.5rem 1.3rem !important;
      gap: 0.85rem;
      border-radius: 20px;
      text-align: center !important;
      align-items: center !important;
    }.testimonial-left {
      padding-right: 0 !important;
      border-right: 0 !important;
      min-height: 0;
      min-width: 0;
      text-align: center;
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
    }.testimonial-right {
      min-width: 0;
      gap: 0.25rem;
      text-align: center !important;
      align-items: center !important;
      width: 100%;
    }.testimonial-quote {
      margin-bottom: 0.35rem;
      padding: 0 0.25rem;
      text-align: center !important;
    }.testimonial-meta {
      padding-top: 0 !important;
      padding-bottom: 0.1rem;
      margin-bottom: 0.45rem;
      order: -1 !important;
      width: 100%;
      text-align: center !important;
    }.testimonial-name,
    .testimonial-role {
      text-align: center !important;
    }.testimonial-logo {
      height: 62px !important;
      min-height: 62px !important;
      max-height: 62px !important;
      width: auto !important;
      max-width: 50% !important;
      min-width: auto !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      flex-shrink: 0 !important;
      overflow: hidden !important;
      margin: 0 auto 0.4rem !important;
    }.testimonial-logo img {
      height: 100% !important;
      min-height: 100% !important;
      max-height: 100% !important;
      width: auto !important;
      max-width: 100% !important;
      min-width: auto !important;
      object-fit: contain !important;
      object-position: center center !important;
      transform: rotate(0deg) !important;
      flex-shrink: 0 !important;
    }.testimonial-more-btn {
      margin-top: auto !important;
      align-self: center !important;
    }/* Carrusel partners (v4) en ≤768px: hereda --duration desde ≤1024px (24s)
       y luego desde ≤640px (16s) — no hay overrides intermedios. */

    .nav-menu, .nav-actions { display: none; }.hamburger { display: flex; }.nav-menu.open {
      display: flex;
      flex-direction: column;
      position: fixed;
      top: var(--nav-height);
      left: 0; right: 0;
      background: var(--white);
      padding: 1.5rem;
      border-top: 1px solid var(--gray-200);
      box-shadow: 0 20px 40px rgba(0,0,0,0.1);
      gap: 0.25rem;
      margin-left: 0;
    }.nav-menu.open a { color: var(--gray-600); }.nav-menu.open .nav-subtoggle { display: none !important; }.nav-menu.open .nav-submenu,
    .nav-menu.open .nav-submenu--mega,
    .nav-menu.open .nav-item:is(.open-submenu, .is-open) > .nav-submenu,
    .nav-menu.open .nav-item:is(.open-submenu, .is-open) > .nav-submenu--mega {
      display: none !important;
    }.nav-menu.open .nav-item.has-submenu > .nav-link {
      font-weight: 800;
    }.nav-cta-mobile {
      border-bottom: 1px solid rgba(10, 10, 10, 0.06);
      padding: 0.85rem 0;
    }.nav-cta-mobile .btn-cta-nav--mobile {
      width: 100%;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.6rem;
      padding: 0.75rem 1rem;
      border-radius: 100px;
      font-size: 0.98rem;
      font-weight: 700;
      line-height: 1.15;
      color: #fff;
      background: var(--accent-dark);
      border: 1.5px solid var(--accent-dark);
      text-align: left;
    }.nav-cta-mobile .btn-cta-nav--mobile:hover,
    .nav-cta-mobile .btn-cta-nav--mobile:focus-visible {
      color: #fff;
      background: var(--accent);
      border-color: var(--accent);
      outline: none;
    }.nav-actions.open {
      display: flex;
      padding: 0 1.5rem 1.5rem;
      position: fixed;
      top: calc(var(--nav-height) + 310px);
      left: 0; right: 0;
      background: var(--white);
    }.nav-actions.open .btn-cta-nav {
      display: none !important;
    }.nav-actions.open .btn-search {
      display: none !important;
    }.hero-content { padding: 6rem 0 4rem; }.dif-grid { grid-template-columns: 1fr; }.sol-grid { grid-template-columns: 1fr; }.unidades-grid { grid-template-columns: 1fr 1fr; }.caso-card { min-width: calc(100% - 1.5rem); }.field-group { grid-template-columns: 1fr; }.nosotros-stats { grid-template-columns: 1fr 1fr; }.footer-grid { grid-template-columns: 1fr; }.footer-brand { order: -1; }.iso-banner { padding: 1.75rem; }.floating-whatsapp {
      right: 0.9rem !important;
      bottom: 0.9rem !important;
      min-height: 52px !important;
      width: 52px !important;
      padding: 0 !important;
      border-radius: 50% !important;
      justify-content: center !important;
      gap: 0 !important;
    }.floating-whatsapp span:not(.whatsapp-icon) {
      display: none !important;
    }.floating-whatsapp .whatsapp-icon {
      margin: 0 !important;
    }.home-logos-copy { font-size: clamp(1.45rem, 7vw, 2.2rem); }}.wizard-error {
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  border-radius: var(--radius);
  background: #fff4e5;
  color: #9a5b00;
  border: 1px solid #ffd29d;
  font-size: 0.95rem;
}/* ==========================================================
   RESPONSIVE MOBILE (integrado desde responsive.css)
   Todo lo de aquí en adelante son OVERRIDES mobile-only.
   ========================================================== */

@media (max-width: 1024px) {.home-logos-row {
    grid-template-columns: 1fr;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    gap: 1.5rem;
  }.home-banderas-section,
  .home-map-section,
  .home-textos-section {
    grid-column: 1;
    height: auto;
    width: 100%;
    max-width: 100%;
    justify-self: center;
    align-self: center;
    text-align: center;
    padding: 0.75rem 0 !important;
    margin: 0 auto !important;
    box-sizing: border-box;
  }.home-banderas-section > *,
  .home-textos-section > * {
    max-width: 100%;
    overflow-wrap: normal;
    word-wrap: normal;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }.home-logos-grid,
  .home-map-visual {
    justify-self: center;
  }.home-map-slot {
    padding-top: 0;
  }.home-textos-section {
    padding: 0 1.25rem !important;
    text-align: center;
  }.home-banderas-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
  }.home-logos-grid {
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: stretch !important;
  }.home-logo-col {
    padding: 0 0.18rem 0.28rem !important;
    border-radius: 0 !important;
    height: 100% !important;
  }.home-logo-col img {
    margin: 0 0 0.15rem !important;
    max-height: 88% !important;
  }.home-uruguay-layout {
    grid-template-columns: 1fr;
  }.home-uruguay-header {
    position: static;
  }.home-uruguay-grid {
    grid-template-columns: 1fr;
  }.home-uruguay-card:nth-child(2),
  .home-uruguay-card:nth-child(4) {
    margin-top: 0;
  }.home-partner-logo-card {
    /* Agrandado en ≤1024px */
    width: clamp(160px, 24vw, 220px);
    height: clamp(80px, 12vw, 100px);
    padding: 0.6rem 0.85rem;
    border-radius: 19px;
  }.home-partners-track-static .home-partner-logo-card {
    height: clamp(68px, 9.5vw, 90px) !important;
    padding: 0.55rem 0.75rem !important;
    flex: 0 0 auto;
    width: clamp(134px, 23vw, 194px) !important;
    max-width: calc((100% - 2 * 0.65rem) / 3) !important;
    min-width: 0 !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(1),
  .home-partners-track-static .home-partner-logo-card:nth-child(2),
  .home-partners-track-static .home-partner-logo-card:nth-child(3) {
    width: clamp(140px, 24vw, 202px) !important;
    max-width: calc((100% - 2 * 0.7rem) / 3) !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(4),
  .home-partners-track-static .home-partner-logo-card:nth-child(5) {
    width: clamp(156px, 26vw, 222px) !important;
    max-width: calc((100% - 0.7rem) / 2) !important;
    margin-top: 0.12rem;
  }.home-partners-track-static .home-partner-logo-card:first-child {
    width: clamp(142px, 24.4vw, 204px) !important;
    max-width: calc((100% - 2 * 0.7rem) / 3) !important;
    height: clamp(74px, 10vw, 96px) !important;
  }.unidades-grid { grid-template-columns: repeat(2, 1fr) !important; }.nosotros-grid { grid-template-columns: 1fr !important; }.footer-grid { grid-template-columns: 1fr 1fr !important; }.caso-card { min-width: calc((100% - 1.5rem) / 2) !important; }.grupo-grid { grid-template-columns: repeat(2, 1fr); }/* — Carrusel partners (v4): velocidad tablet + overflow contra reveal — */
  .home-partners-track { --duration: 24s; }.home-partners-track-1 { animation-duration: 24s; }.home-partners-track-2 { animation-duration: 28s; }.home-partners-section { overflow: visible !important; }.home-partners-marquees {
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding: 0.4rem 0 0.7rem;
    width: 100% !important;
    margin: 0 !important;
  }}@media (max-width: 980px) {.hero-calco {
    width: min(620px, 94vw) !important;
    max-height: 560px;
  }#hero .container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }.hero-title {
    font-size: clamp(2rem, 5.6vw, 3.2rem);
  }}@media (max-width: 900px) {.infra-subsections {
    grid-template-columns: 1fr !important;
  }.infra-subsection-card {
    padding: 1.75rem;
  }.infra-subsection-desc {
    max-width: none;
  }.infra-subsection-media {
    order: -1;
  }.sig-grid,
  .conducta-grid {
    grid-template-columns: 1fr !important;
  }.nosotros-cultura-grid {
    grid-template-columns: 1fr;
  }.adn-grid {
    grid-template-columns: 1fr;
  }.contact-layout {
    margin-top: 2.5rem;
  }.sumate-card {
    grid-template-columns: 1fr !important;
    align-items: stretch;
  }.contact-info-grid {
    grid-template-columns: 1fr;
  }.sumate-submit {
    width: 100%;
  }.diferenciales-2col {
    grid-template-columns: 1fr;
  }}@media (max-width: 768px) {:root {
    --section-pad: 3.5rem 0 !important;
  }.container { padding: 0 1.25rem !important; }.container--wide { padding: 0 1.25rem !important; }#navbar .container { padding: 0 1.25rem !important; }nav#navbar > div.container > a.nav-logo > img {
    width: 120px !important;
    height: 120px !important;
    margin-left: 60px !important;
  }.home-logos-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }.home-logos-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    margin-top: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-self: center !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 116px !important;
  }.home-logo-col {
    min-height: 116px !important;
    height: auto !important;
    padding: 0.55rem 0.28rem 0.5rem !important;
    border-radius: 0 !important;
    color: var(--white, #ffffff) !important;
    box-shadow: none !important;
    border: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.25rem;
    overflow: visible !important;
  }.home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }.home-logo-col img {
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    max-width: min(96px, 84%) !important;
    max-height: 68px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
    margin: 0 0 0.18rem !important;
    display: block !important;
  }.home-logo-col span,
  .home-logo-col small,
  .home-logo-col p,
  .home-logo-col [class*="label"],
  .home-logo-col [class*="text"] {
    display: none !important;
  }.home-banderas-section {
    padding: 0.75rem 1rem !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box;
  }.home-logos-section {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }#home-logos {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }.home-map-visual {
    width: min(100%, 420px);
  }.home-banderas-section,
  .home-textos-section {
    text-align: center !important;
    box-sizing: border-box;
  }.home-banderas-section > *,
  .home-textos-section > *,
  .home-banderas-section p,
  .home-textos-section p,
  .home-banderas-section h2,
  .home-textos-section h2,
  .home-banderas-section h3,
  .home-textos-section h3,
  .home-banderas-section li,
  .home-textos-section li,
  .home-banderas-section span,
  .home-textos-section span {
    max-width: 100% !important;
    width: auto !important;
    overflow-wrap: normal !important;
    word-wrap: normal !important;
    word-break: normal !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
    box-sizing: border-box;
    text-align: center !important;
  }.home-banderas-section img,
  .home-textos-section img,
  .home-banderas-section svg,
  .home-textos-section svg {
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
  }.home-logos-section,
  .home-logos-row,
  .home-map-section {
    max-width: 100% !important;
    box-sizing: border-box;
  }.home-uruguay-section {
    padding: 3.5rem 0 4.5rem;
    background: #ffffff !important;
  }.home-uruguay-header {
    padding: 1.5rem;
    border-radius: 22px;
  }.home-uruguay-card {
    padding: 1.5rem;
    min-height: auto;
  }.home-uruguay-title {
    font-size: 1.1rem;
  }.home-uruguay-card-body {
    padding-top: 2rem;
  }.home-uruguay-num {
    font-size: 3rem;
  }.home-partners-section {
    padding: 3.5rem 0 4.25rem;
  }.home-partners-header {
    margin-bottom: 2rem;
  }.home-partners-track {
    gap: 0.95rem;
  }.home-partner-logo-card {
    /* Agrandado en ≤640px */
    width: clamp(170px, 37vw, 225px);
    height: clamp(88px, 15.2vw, 106px);
    padding: 0.95rem 1.2rem;
    border-radius: 18px;
  }.home-partners-track-static,
  .home-partners-track.home-partners-track-static {
    gap: 0.5rem 0.65rem !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
    justify-content: center !important;
    padding: 0 0.2rem;
  }.home-partners-track-static .home-partner-logo-card {
    height: clamp(54px, 10.8vw, 74px) !important;
    padding: 0.44rem 0.6rem !important;
    width: clamp(106px, 26.5vw, 158px) !important;
    flex: 0 0 auto !important;
    max-width: calc((100% - 2 * 0.5rem) / 3) !important;
    min-width: 0 !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(1),
  .home-partners-track-static .home-partner-logo-card:nth-child(2),
  .home-partners-track-static .home-partner-logo-card:nth-child(3) {
    width: clamp(112px, 27.5vw, 164px) !important;
    max-width: calc((100% - 2 * 0.55rem) / 3) !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(4),
  .home-partners-track-static .home-partner-logo-card:nth-child(5) {
    width: clamp(128px, 31vw, 184px) !important;
    max-width: calc((100% - 0.55rem) / 2) !important;
    margin-top: 0.08rem;
  }.home-partners-track-static .home-partner-logo-card:first-child {
    width: clamp(114px, 28vw, 168px) !important;
    max-width: calc((100% - 2 * 0.55rem) / 3) !important;
    height: clamp(60px, 11.4vw, 80px) !important;
  }.home-partner-invite-section {
    padding: 1.85rem 0 4.5rem;
  }.home-partner-invite-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    border-radius: 22px;
  }.home-partner-invite-btn {
    width: 100%;
  }.home-proyecto-panel {
    grid-template-columns: 1fr;
  }.home-proyecto-copy {
    padding-top: 2rem;
    padding-bottom: 0.5rem;
  }.home-proyecto-title {
    margin-top: 1rem;
    margin-bottom: 0.6rem;
  }.home-testimonials-section {
    padding: 2.5rem 0 5rem !important;
  }.home-testimonials-header,
  .home-testimonials-header.reveal,
  .home-testimonials-header.reveal.visible {
    margin-bottom: 2rem !important;
    margin-top: 2rem !important;
  }.home-partner-invite-section {
    padding-top: 2rem !important;
  }/* 🔥 TESTIMONIOS MOBILE (≤640px): todas las cards se muestran como 1-slide-per-card
     sin truncado, TODAS DESPLEGADAS, sin tap-to-expand. */
  .home-testimonials-track {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.45rem 0 !important;
    gap: 0.45rem !important;   /* ligero espacio entre cards */
  }.home-testimonials-slide {
    display: contents !important;
    grid-template-columns: 1fr !important;
    padding: 0 0 !important;
  }.home-testimonials-track .testimonial-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: start !important;
    /* Espacio ENTRE cards (exterior): margin horizontal en vez de padding.
       Así no pisa el padding interior de la card. */
    margin: 0 0.12rem !important;
    /* 🔥 PADDING INTERIOR desde selector específico 2 clases → gana. */
    padding: 1.45rem 1.55rem !important;
    box-sizing: border-box !important;
    display: grid !important;
    /* TODAS DESPLEGADAS: sin truncado ni mask */
    max-height: none !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    position: relative !important;
    gap: 0.75rem !important;
    grid-template-columns: 1fr !important;                  /* 🔥 1 SOLA COLUMNA: logo ARRIBA, texto ABAJO */
  }/* Aire lateral extra en textos/nombre/botón contra el borde */
  .home-testimonials-track .testimonial-card .testimonial-right {
    padding-left: 0 !important;
    padding-right: 0.1rem !important;
    padding-top: 0.1rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-quote {
    margin-bottom: 0.95rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-meta {
    padding-top: 0.35rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-more-btn {
    margin-top: 0.3rem !important;
  }/* 🔥 LOGOS testimonios ≤640: 1 columna. ALTURA EXACTA 3vh para TODOS, ancho auto. Centrado. */
  .home-testimonials-track .testimonial-card .testimonial-left {
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.65rem !important;
    min-height: auto !important;
    max-height: none !important;
    height: auto !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
  }.home-testimonials-track .testimonial-card .testimonial-logo {
    height: 3vh !important;
    min-height: 3vh !important;
    max-height: 3vh !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-right: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    margin: 0 auto !important;
  }.home-testimonials-track .testimonial-card .testimonial-logo img {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: rotate(0deg) !important;
    flex-shrink: 0 !important;
  }/* 🔥 Grid card + testimonial-right: ALINEAR ARRIBA, NO centrado vertical */
  .home-testimonials-track .testimonial-card {
    align-items: start !important;
    align-content: start !important;
  }.home-testimonials-track .testimonial-card .testimonial-right {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    align-self: start !important;
  }.home-testimonials-track .testimonial-card::after { display: none !important; }.home-testimonials-slide .testimonial-card:nth-child(2) {
    display: grid !important;
  }.home-testimonials-slide {
    grid-template-columns: 1fr;
    padding: 0 0;
  }.home-testimonials-arrow {
    display: none !important;
  }.testimonial-card {
    grid-template-columns: 96px minmax(0, 1fr);
    /* 🔥 Más padding interno mobile: contenido no tan al borde */
    padding: 1.35rem !important;
    gap: 0.9rem;
    border-radius: 20px;
  }.testimonial-left {
    padding-right: 1.1rem;
    min-height: 0;
    min-width: 0;
  }.testimonial-right {
    min-width: 0;
    gap: 0.25rem;
  }.testimonial-quote {
    margin-bottom: 0.9rem;
  }.testimonial-meta {
    padding-top: 0.3rem;
  }.testimonial-logo {
    height: 58px !important;                  /* 🔥 igual que override específico 58px */
    min-height: 58px !important;
    max-height: 58px !important;
    width: auto !important;
    max-width: 160px !important;
    min-width: 104px !important;               /* 🔥 para que no quede alineado al borde izq */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;        /* 🔥 centrado H/V */
    flex-shrink: 0 !important;
    overflow: hidden !important;
  }.testimonial-logo img {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    max-width: 160px !important;
    min-width: 104px !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: rotate(0deg) !important;
    flex-shrink: 0 !important;
  }/* — Carrusel partners (v4): velocidad mobile + overflow contra reveal — */
  .home-partners-track { --duration: 16s; }.home-partners-track-1 { animation-duration: 16s; }.home-partners-track-2 { animation-duration: 18s; }.home-partners-section { overflow: visible !important; }.home-partners-marquees {
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding: 0.3rem 0 0.5rem;
    width: 100% !important;
    margin: 0 !important;
  }/* ↑↑ FIN Carrusel partners v4 ↑↑ */

  .nav-menu, .nav-actions { display: none !important; }.hamburger { display: flex !important; }.nav-menu.open {
    display: flex !important;
    flex-direction: column !important;
    position: fixed;
    top: var(--nav-height);
    left: 0 !important;
    right: 0 !important;
    background: var(--white);
    padding: 1.25rem !important;
    border-top: 1px solid var(--gray-200);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    gap: 0.2rem !important;
    margin-left: 0 !important;
    max-height: calc(100vh - var(--nav-height));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }.nav-menu.open a {
    color: var(--gray-600) !important;
  }.nav-menu.open .nav-link {
    padding: 0.65rem 0.5rem !important;
    font-size: 0.95rem;
    border-bottom: 1px solid rgba(10, 10, 10, 0.06);
  }.nav-menu.open .nav-subtoggle { display: none !important; }.nav-menu.open .nav-submenu,
  .nav-menu.open .nav-submenu--mega,
  .nav-menu.open .nav-item:is(.open-submenu, .is-open) > .nav-submenu,
  .nav-menu.open .nav-item:is(.open-submenu, .is-open) > .nav-submenu--mega {
    display: none !important;
  }.nav-menu.open .nav-item.has-submenu > .nav-link {
    font-weight: 800 !important;
  }.nav-menu.open .nav-cta-mobile {
    border-bottom: 1px solid rgba(10, 10, 10, 0.06);
    padding: 0.8rem 0;
  }.nav-menu.open .nav-cta-mobile .btn-cta-nav--mobile {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.72rem 1rem;
    border-radius: 100px;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.15;
    color: #fff !important;
    background: var(--accent-dark) !important;
    border: 1.5px solid var(--accent-dark) !important;
    text-align: left;
  }.nav-menu.open .nav-cta-mobile .btn-cta-nav--mobile:hover,
  .nav-menu.open .nav-cta-mobile .btn-cta-nav--mobile:focus-visible {
    color: #fff !important;
    background: var(--accent) !important;
    border-color: var(--accent) !important;
    outline: none;
  }/* FIX: eliminar top: calc(... + 310px) hardcodeado → layout dinámico */
  .nav-actions.open {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.5rem;
    padding: 1rem 1.25rem 1.5rem !important;
    position: relative !important;
    background: var(--white) !important;
    border-top: 1px solid var(--gray-200);
    margin-top: auto;
    top: auto !important;
    left: 0;
    right: 0;
  }.nav-actions.open .btn-primary,
  .nav-actions.open .nav-search-btn {
    width: 100% !important;
    justify-content: center;
  }.nav-actions.open .btn-cta-nav {
    display: none !important;
  }.nav-actions.open .btn-search {
    display: none !important;
  }.hero-content {
    padding: 3.6rem 0 1.25rem !important;
  }.hero-layout {
    padding: 0 0 1rem !important;
    gap: 0.75rem !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }.hero-text,
  .hero-visual {
    width: 100% !important;
    max-width: 100% !important;
  }.hero-visual {
    order: -1 !important;
    min-height: 0 !important;
    height: auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    margin-bottom: 0.2rem;
  }.hero-calco {
    width: min(150px, 46vw) !important;
    max-width: 150px !important;
    max-height: 140px !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
  }.hero-text {
    order: 1 !important;
    text-align: left !important;
  }.hero-tag {
    margin-bottom: 0.45rem !important;
    font-size: 0.62rem !important;
    padding: 0.18rem 0.55rem !important;
  }.hero-title {
    font-size: clamp(1.2rem, 5.8vw, 1.65rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.4rem !important;
    letter-spacing: -0.01em;
  }.hero-sub {
    font-size: 0.82rem !important;
    line-height: 1.48 !important;
    max-width: 100% !important;
    margin-bottom: 0.75rem !important;
  }.hero-actions {
    gap: 0.45rem !important;
    flex-wrap: wrap;
  }.btn-primary,
  .btn-outline {
    padding: 0.55rem 0.95rem !important;
    font-size: 0.8rem !important;
    border-radius: 999px;
  }.hero-scroll {
    display: none !important;
  }.dif-grid { grid-template-columns: 1fr !important; }.sol-grid { grid-template-columns: 1fr !important; }.unidades-grid { grid-template-columns: 1fr 1fr !important; }.caso-card { min-width: calc(100% - 1.5rem) !important; }.field-group { grid-template-columns: 1fr !important; }.nosotros-stats { grid-template-columns: 1fr 1fr !important; }.eventos-grid { grid-template-columns: 1fr; }.wizard-header { padding: 1.5rem 1.25rem; }.wizard-body { padding: 1.75rem 1.25rem; }.step-item .step-label { font-size: 0.7rem; }.service-chips {
    padding: 0 1.25rem;
    scroll-padding-left: 1.25rem;
    scroll-padding-right: 1.25rem;
  }.service-chips-arrow {
    display: none !important;
  }.footer-grid { grid-template-columns: 1fr !important; }.footer-brand { order: -1 !important; }.iso-banner { padding: 1.5rem; }.floating-whatsapp {
    right: 0.85rem !important;
    bottom: 0.85rem !important;
    min-height: 50px !important;
    width: 50px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center !important;
    gap: 0 !important;
  }.floating-whatsapp span:not(.whatsapp-icon) {
    display: none !important;
  }.floating-whatsapp .whatsapp-icon {
    margin: 0 !important;
  }.home-logos-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }.home-banderas-section {
    padding: 0.65rem 0 !important;
  }.home-logos-grid {
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 110px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: center !important;
  }.home-logo-col {
    padding: 0.55rem 0.26rem 0.48rem !important;
    min-height: 110px !important;
    height: auto !important;
    border-radius: 0 !important;
    overflow: visible !important;
    justify-content: center !important;
  }.home-logo-col img {
    margin: 0 0 0.18rem !important;
    max-height: 64px !important;
    display: block !important;
  }.home-logos-copy { font-size: clamp(1.4rem, 7vw, 2.1rem); }.section-title { font-size: clamp(1.5rem, 5.5vw, 2.1rem); }.nosotros-timeline {
    flex-direction: column !important;
    gap: 1.25rem;
    padding-top: 0;
  }.nosotros-timeline::before {
    left: 16px !important;
    right: auto !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 2px !important;
    height: auto !important;
    transform-origin: top;
  }.nosotros-timeline-item {
    flex: none !important;
    padding-left: 44px;
    position: relative;
  }.nosotros-timeline-item::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    left: 9px;
    top: 16px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--accent);
    z-index: 1;
  }.nosotros-timeline-year {
    align-self: flex-start;
  }/* Ajustar compresión de testimonios en ≤768px */
  .home-testimonials-shell,
  .home-testimonials-shell.reveal,
  .home-testimonials-shell.reveal.visible {
    max-height: 250px;
  }.home-testimonials-shell::after,
  .home-testimonials-shell.reveal::after,
  .home-testimonials-shell.reveal.visible::after {
    max-width: 360px;
    font-size: 0.82rem;
  }}@media (max-width: 640px) {:root {
    --section-pad: 3rem 0 !important;
  }.grupo-grid { grid-template-columns: 1fr !important; }.unidades-grid { grid-template-columns: 1fr 1fr !important; }.soluciones-premium-grid { grid-template-columns: 1fr !important; }.services-dif-grid { grid-template-columns: 1fr !important; }.footer-grid { grid-template-columns: 1fr !important; }.home-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.35rem 0.58rem !important;
    max-width: 280px !important;
  }.home-logo-col {
    color: var(--white, #ffffff) !important;
    padding: 0.3rem 0.18rem !important;
    min-height: 64px !important;
    box-shadow: 0 1px 3px rgba(0, 30, 80, 0.08) !important;
  }/* Banderas azules restauradas en 640px */
  .home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }/* Logos EN BLANCO */
  .home-logo-col img {
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    max-width: min(82px, 82%) !important;
    max-height: 58px !important;
  }.nosotros-stat-float {
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }.nosotros-highlight-box {
    flex-wrap: wrap;
  }.nosotros-text p {
    font-size: 1rem;
  }.ai-modal-overlay {
    padding: 0;
    align-items: flex-end;
    justify-content: stretch;
  }.ai-modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 85vh;
    border-radius: 20px 20px 0 0;
  }.site-search-overlay {
    padding: 0.75rem;
  }.wizard-footer {
    flex-direction: column-reverse;
    gap: 0.75rem;
    align-items: stretch;
  }.btn-next {
    width: 100%;
    justify-content: center;
  }.btn-back {
    justify-content: center;
  }/* ========== FORMULARIO / WIZARD compacto ≤640px ========== */
  .step-indicator {
    gap: 0.32rem !important;
    padding: 0.6rem 0.8rem !important;
  }.step-num {
    width: 27px !important;
    height: 27px !important;
    font-size: 0.72rem !important;
  }.wizard-header { padding: 1.12rem 0.95rem !important; gap: 0.35rem !important; }.wizard-body   { padding: 1.22rem 0.95rem !important; gap: 0.92rem !important; }.wizard-footer { padding: 0.92rem 0.95rem !important; gap: 0.62rem !important; }.wizard-title  { font-size: 1.1rem !important; line-height: 1.2 !important; }.wizard-subtitle { font-size: 0.8rem !important; line-height: 1.4 !important; }.form-group,
  .field-group {
    gap: 0.62rem !important;
    margin-bottom: 0.78rem !important;
    grid-template-columns: 1fr !important;
  }.form-field,
  .field {
    gap: 0.32rem !important;
    margin-bottom: 0.55rem !important;
  }.form-label,
  .field label {
    font-size: 0.76rem !important;
    margin-bottom: 0.2rem !important;
  }.form-input,
  .form-select,
  .form-textarea,
  .field input,
  .field select,
  .field textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  textarea,
  select {
    min-height: 38px !important;
    height: 38px !important;
    padding: 0.44rem 0.7rem !important;
    font-size: 0.82rem !important;
    border-radius: 9px !important;
  }textarea.form-textarea,
  .field textarea,
  textarea {
    min-height: 78px !important;
    height: auto !important;
  }.form-hint,
  .field-hint,
  .field small {
    font-size: 0.7rem !important;
  }.wizard-error,
  .field-error,
  .form-error,
  .error-msg {
    font-size: 0.72rem !important;
    padding: 0.42rem 0.6rem !important;
    margin-top: 0.28rem !important;
    border-radius: 7px !important;
  }.chips-row { gap: 0.4rem !important; }.chip {
    min-height: 33px !important;
    height: 33px !important;
    padding: 0.36rem 0.8rem !important;
    font-size: 0.76rem !important;
  }.sumate-card {
    padding: 1.25rem !important;
    border-radius: 19px !important;
    gap: 0.92rem !important;
  }.sumate-title {
    font-size: 1.18rem !important;
  }.sumate-subtitle,
  .sumate-intro,
  .sumate-card > p {
    font-size: 0.82rem !important;
  }.contact-info-grid {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
  }.contact-info-card {
    padding: 1.1rem 1rem !important;
    gap: 0.4rem !important;
    border-radius: 15px !important;
  }.btn-next,
  .btn-back,
  .sumate-form button[type="submit"],
  .wizard-footer button,
  .form-submit,
  button.btn-primary,
  button.btn-outline {
    min-height: 39px !important;
    height: 39px !important;
    padding: 0.5rem 1rem !important;
    font-size: 0.8rem !important;
    width: 100% !important;
    justify-content: center !important;
  }/* ========== FORMULARIO / WIZARD compacto ≤768px ========== */
  .step-indicator {
    gap: 0.45rem !important;
    padding: 0.7rem 0.9rem !important;
  }.step-num {
    width: 29px !important;
    height: 29px !important;
    font-size: 0.74rem !important;
  }.wizard-header { padding: 1.2rem 1.05rem !important; gap: 0.4rem !important; }.wizard-body   { padding: 1.35rem 1.05rem !important; gap: 1rem !important; }.wizard-footer { padding: 1rem 1.05rem !important; gap: 0.7rem !important; }.wizard-title  { font-size: 1.18rem !important; line-height: 1.22 !important; }.wizard-subtitle { font-size: 0.84rem !important; line-height: 1.42 !important; }.form-group,
  .field-group {
    gap: 0.7rem !important;
    margin-bottom: 0.85rem !important;
    grid-template-columns: 1fr !important;
  }.form-field,
  .field {
    gap: 0.35rem !important;
    margin-bottom: 0.6rem !important;
  }.form-label,
  .field label {
    font-size: 0.78rem !important;
    margin-bottom: 0.22rem !important;
  }.form-input,
  .form-select,
  .form-textarea,
  .field input,
  .field select,
  .field textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  textarea,
  select {
    min-height: 40px !important;
    height: 40px !important;
    padding: 0.48rem 0.78rem !important;
    font-size: 0.84rem !important;
    border-radius: 10px !important;
  }textarea.form-textarea,
  .field textarea,
  textarea {
    min-height: 84px !important;
    height: auto !important;
  }.form-hint,
  .field-hint,
  .field small {
    font-size: 0.72rem !important;
  }.wizard-error,
  .field-error,
  .form-error,
  .error-msg {
    font-size: 0.74rem !important;
    padding: 0.45rem 0.65rem !important;
    margin-top: 0.3rem !important;
    border-radius: 8px !important;
  }.chips-row {
    gap: 0.45rem !important;
  }.chip {
    min-height: 34px !important;
    height: 34px !important;
    padding: 0.4rem 0.85rem !important;
    font-size: 0.78rem !important;
  }.sumate-card {
    padding: 1.35rem !important;
    border-radius: 20px !important;
    gap: 1rem !important;
  }.sumate-title {
    font-size: 1.22rem !important;
  }.sumate-subtitle,
  .sumate-intro,
  .sumate-card > p {
    font-size: 0.84rem !important;
  }.contact-info-grid {
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
  }.contact-info-card {
    padding: 1.2rem 1.1rem !important;
    gap: 0.45rem !important;
    border-radius: 16px !important;
  }.btn-next,
  .btn-back,
  .sumate-form button[type="submit"],
  .wizard-footer button,
  .form-submit,
  button.btn-primary,
  button.btn-outline {
    min-height: 40px !important;
    height: 40px !important;
    padding: 0.52rem 1.05rem !important;
    font-size: 0.82rem !important;
    border-radius: 10px !important;
    width: 100% !important;
    justify-content: center !important;
  }/* Ajustar compresión de testimonios en ≤640px */
  .home-testimonials-shell,
  .home-testimonials-shell.reveal,
  .home-testimonials-shell.reveal.visible {
    max-height: 230px;
  }.home-testimonials-shell::after,
  .home-testimonials-shell.reveal::after,
  .home-testimonials-shell.reveal.visible::after {
    max-width: 320px;
    font-size: 0.8rem;
    padding: 0.75rem 1rem 0.5rem;
  }}@media (max-width: 520px) {:root {
    --section-pad: 2.75rem 0 !important;
    --nav-height: 64px !important;
  }.container { padding: 0 1rem !important; }.container--wide { padding: 0 1rem !important; }#navbar .container { padding: 0 1rem !important; }nav#navbar > div.container > a.nav-logo > img {
    width: 100px !important;
    height: 100px !important;
    margin-left: 44px !important;
  }.home-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.28rem 0.48rem !important;
    max-width: 260px !important;
  }.home-logo-col {
    color: var(--white, #ffffff) !important;
    background: none !important;
    padding: 0.26rem 0.15rem !important;
    min-height: 58px !important;
    box-shadow: 0 1px 2px rgba(0, 30, 80, 0.08) !important;
  }.home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }.home-logo-col img {
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    max-width: min(72px, 80%) !important;
    max-height: 50px !important;
  }.hero-content {
    padding: 3.25rem 0 1rem !important;
  }.hero-layout {
    gap: 0.6rem !important;
    padding-bottom: 0.75rem !important;
  }.hero-calco {
    width: min(130px, 42vw) !important;
    max-width: 130px !important;
    max-height: 120px !important;
  }.hero-tag {
    font-size: 0.6rem !important;
    padding: 0.16rem 0.5rem !important;
    margin-bottom: 0.35rem !important;
  }.hero-title {
    font-size: clamp(1.08rem, 5.8vw, 1.45rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.3rem !important;
  }.hero-sub {
    font-size: 0.78rem !important;
    line-height: 1.45 !important;
    margin-bottom: 0.65rem !important;
  }.hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem !important;
  }.hero-actions .btn-primary,
  .hero-actions .btn-outline {
    width: 100%;
    justify-content: center;
    padding: 0.52rem 0.9rem !important;
    font-size: 0.78rem !important;
  }/* ====== FORMULARIO / WIZARD / SUMATE — compacto (≤520px) ====== */
  .step-label {
    display: none !important;
  }.step-item:not(:last-child)::after {
    min-width: 14px !important;
    margin: 0 0.2rem !important;
  }.step-indicator {
    gap: 0.25rem !important;
    padding: 0.55rem 0.75rem !important;
    justify-content: space-between !important;
  }.step-item {
    min-width: 0 !important;
    gap: 0.15rem !important;
  }.step-num {
    width: 26px !important;
    height: 26px !important;
    font-size: 0.7rem !important;
    border-radius: 999px !important;
  }.wizard-header { padding: 1.05rem 0.9rem !important; gap: 0.3rem !important; }.wizard-body   { padding: 1.15rem 0.9rem !important; gap: 0.85rem !important; }.wizard-footer { padding: 0.85rem 0.9rem !important; gap: 0.55rem !important; flex-direction: column-reverse !important; align-items: stretch !important; }.wizard-title  { font-size: 1.05rem !important; line-height: 1.18 !important; }.wizard-subtitle { font-size: 0.78rem !important; line-height: 1.4 !important; }.form-group,
  .field-group {
    gap: 0.55rem !important;
    margin-bottom: 0.7rem !important;
    grid-template-columns: 1fr !important;
  }.form-field,
  .field {
    gap: 0.3rem !important;
    margin-bottom: 0.5rem !important;
  }.form-label,
  .field label {
    font-size: 0.74rem !important;
    line-height: 1.25 !important;
    margin-bottom: 0.2rem !important;
  }.form-input,
  .form-select,
  .form-textarea,
  .field input,
  .field select,
  .field textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  textarea,
  select {
    min-height: 36px !important;
    height: 36px !important;
    padding: 0.42rem 0.65rem !important;
    font-size: 0.8rem !important;
    line-height: 1.25 !important;
    border-radius: 8px !important;
    margin: 0 !important;
  }textarea.form-textarea,
  .field textarea,
  textarea {
    min-height: 72px !important;
    height: auto !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }.form-hint,
  .field-hint,
  .form-help,
  .field small,
  small.form-hint {
    font-size: 0.68rem !important;
    line-height: 1.35 !important;
    margin-top: 0.18rem !important;
  }.wizard-error,
  .field-error,
  .form-error,
  .error-msg {
    font-size: 0.7rem !important;
    padding: 0.4rem 0.55rem !important;
    margin-top: 0.25rem !important;
    border-radius: 6px !important;
  }.chips-row {
    gap: 0.35rem !important;
    padding-bottom: 0.3rem !important;
  }.chip {
    min-height: 32px !important;
    height: 32px !important;
    padding: 0.32rem 0.75rem !important;
    font-size: 0.74rem !important;
    border-radius: 999px !important;
    min-width: 0 !important;
    width: auto !important;
  }.sumate-card {
    padding: 1.15rem !important;
    border-radius: 18px !important;
    gap: 0.85rem !important;
  }.sumate-header {
    padding: 0 !important;
    margin-bottom: 0.7rem !important;
    gap: 0.3rem !important;
  }.sumate-title {
    font-size: 1.15rem !important;
    line-height: 1.2 !important;
  }.sumate-subtitle,
  .sumate-intro,
  .sumate-card > p {
    font-size: 0.8rem !important;
    line-height: 1.45 !important;
    margin-bottom: 0.5rem !important;
  }.sumate-form {
    padding: 0 !important;
    gap: 0.75rem !important;
  }.contact-info-grid {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
  }.contact-info-card {
    padding: 1rem 0.9rem !important;
    gap: 0.35rem !important;
    border-radius: 14px !important;
  }.contact-info-card h3,
  .contact-info-card .title {
    font-size: 0.88rem !important;
    margin-bottom: 0.15rem !important;
  }.contact-info-card p,
  .contact-info-card a,
  .contact-info-card span {
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
  }.btn-next,
  .btn-back,
  .sumate-form button[type="submit"],
  .wizard-footer button,
  .form-submit,
  button.btn-primary,
  button.btn-outline {
    min-height: 38px !important;
    height: 38px !important;
    padding: 0.48rem 0.95rem !important;
    font-size: 0.78rem !important;
    border-radius: 10px !important;
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
  }.nosotros-stats {
    grid-template-columns: 1fr !important;
  }.caso-card {
    min-width: 100% !important;
  }/* 🔥 TESTIMONIOS MOBILE (≤520px): 1 slide = 1 card. TODAS las cards DESPLEGADAS
     (sin truncado, sin tap-to-expand, sin mask de fade). */
  .home-testimonials-track {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.4rem 0 !important;
    gap: 0.4rem !important;   /* ligero espacio entre cards */
  }.home-testimonials-slide {
    display: contents !important;
    grid-template-columns: 1fr !important;
    padding: 0 0 !important;
  }.home-testimonials-track .testimonial-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: start !important;
    /* Espacio ENTRE cards (exterior): margin horizontal en vez de padding.
       Así no pisa el padding interior de la card. */
    margin: 0 0.1rem !important;
    /* 🔥 PADDING INTERIOR DESDE SELECTOR ESPECÍFICO 2 clases → gana.
       Layout 1 columna: padding simétrico extra en laterales. */
    padding: 1.35rem 1.45rem !important;
    box-sizing: border-box !important;
    display: grid !important;
    max-height: none !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    position: relative !important;
    gap: 0.9rem !important;
    grid-template-columns: 1fr !important;
  }/* Aire lateral EXTRA en todo el bloque derecho (quote/meta/nombre/botón)
     para que NINGÚN texto quede "pegado al borde" */
  .home-testimonials-track .testimonial-card .testimonial-right {
    padding-left: 0.1rem !important;
    padding-right: 0.1rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-quote {
    margin-bottom: 0.95rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-meta {
    padding-top: 0.35rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-more-btn {
    margin-top: 0.3rem !important;
  }/* 🔥 LOGOS testimonios ≤520: ALTURA 48px IDÉNTICA en TODOS los logos.
     Layout 1 columna → logo CENTRADO; ancho variable, altura fija uniforme.
     ✅ NUEVO: Wrapper LEFT altura 88px FIJA + BORDE INFERIOR FIJO → DIVISOR MISMA ALTURA. */
  .home-testimonials-track .testimonial-card .testimonial-left {
    padding-right: 0 !important;
    padding-top: 0.15rem !important;
    padding-bottom: 0.75rem !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--gray-200) !important;  /* ✅ DIVISOR MISMA ALTURA */
    min-height: 88px !important;
    max-height: 88px !important;
    height: 88px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;   /* centrado en layout 1 col */
    min-width: 0 !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
  }/* 🔥 LOGOS ≤520 (1 columna): ALTURA EXACTA 3vh, ancho auto */
  .home-testimonials-track .testimonial-card .testimonial-logo {
    height: 3vh !important;
    min-height: 3vh !important;
    max-height: 3vh !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    margin: 0 auto !important;
  }.home-testimonials-track .testimonial-card .testimonial-logo img {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: rotate(0deg) !important;
    flex-shrink: 0 !important;
  }/* wrapper left 1-col: ancho completo, centrado. ALTURA AUTO (no fija) */
  .home-testimonials-track .testimonial-card .testimonial-left {
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.55rem !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    min-height: auto !important;
    max-height: none !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
  }/* 🔥 Grid card + testimonial-right: ALINEAR ARRIBA, NO centrado vertical */
  .home-testimonials-track .testimonial-card {
    align-items: start !important;
    align-content: start !important;
  }.home-testimonials-track .testimonial-card .testimonial-right {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    align-self: start !important;
  }.home-testimonials-track .testimonial-card::after { display: none !important; }.home-testimonials-slide .testimonial-card:nth-child(2) {
    display: grid !important;
  }.testimonial-card {
    grid-template-columns: 1fr !important;
    gap: 0.85rem;
    /* 🔥 Más padding interno mobile: contenido no tan al borde (≤520px, layout 1 columna) */
    padding: 1.2rem !important;
    border-radius: 18px !important;
  }.testimonial-left {
    padding-right: 0 !important;
    /* más aire arriba/abajo del bloque logo (separado del borde) */
    padding-top: 0.15rem;
    padding-bottom: 0.75rem;
    border-right: 0 !important;
    border-bottom: 1px solid var(--gray-200);
    min-height: 0;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }.testimonial-right {
    min-width: 0;
    gap: 0.25rem;
    /* aire superior para separar contenido del borde divisor */
    padding-top: 0.15rem;
  }.testimonial-quote {
    margin-bottom: 0.9rem;
  }.testimonial-meta {
    padding-top: 0.3rem;
  }.testimonial-logo {
    height: 58px !important;                   /* 🔥 igual que override específico 58px */
    min-height: 58px !important;
    max-height: 58px !important;
    width: auto !important;
    max-width: 178px !important;
    min-width: 116px !important;               /* 🔥 no se pega al borde izq */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;        /* 🔥 centrado H/V */
    flex-shrink: 0 !important;
    overflow: hidden !important;
    margin: 0 auto !important;                 /* 🔥 margen auto = centrado absoluto horizontal */
  }.testimonial-logo img {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    max-width: 178px !important;
    min-width: 116px !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: rotate(0deg) !important;
    flex-shrink: 0 !important;
  }/* ─ FIN TESTIMONIOS DESPLEGADOS ─ */

  /* — Carrusel partners (v4): overflow contra reveal ≤520px — */
  .home-partners-section { overflow: visible !important; }.home-partners-marquees {
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding: 0.25rem 0 0.45rem;
    width: 100% !important;
    margin: 0 !important;
  }/* ↑↑ FIN Carrusel partners v4 ≤520px ↑↑ */

  .floating-whatsapp {
    right: 0.75rem !important;
    bottom: 0.75rem !important;
    min-height: 48px !important;
    width: 48px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center !important;
    gap: 0 !important;
  }.floating-whatsapp span:not(.whatsapp-icon) {
    display: none !important;
  }.floating-whatsapp .whatsapp-icon {
    margin: 0 !important;
  }.home-logos-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }.home-banderas-section {
    padding: 0.6rem 0 !important;
  }.home-logos-grid {
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 104px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: center !important;
  }.home-logo-col {
    padding: 0.5rem 0.24rem 0.44rem !important;
    border-radius: 0 !important;
    height: auto !important;
    min-height: 104px !important;
    overflow: visible !important;
    justify-content: center !important;
  }.home-logo-col img {
    margin: 0 0 0.16rem !important;
    max-height: 60px !important;
    display: block !important;
  }.footer-brand img {
    max-width: 140px;
  }/* Ajustar compresión de testimonios en ≤520px — DESHABILITADO:
     TODAS las cards están DESPLEGADAS en mobile; NO hay truncado ni tap-to-expand. */
  .home-testimonials-shell,
  .home-testimonials-shell.reveal,
  .home-testimonials-shell.reveal.visible {
    max-height: none !important;
    overflow: visible !important;
  }.home-testimonials-shell::after,
  .home-testimonials-shell.reveal::after,
  .home-testimonials-shell.reveal.visible::after {
    display: none !important;
  }}@media (max-width: 480px) {.unidades-grid { grid-template-columns: 1fr !important; }.home-logos-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
  }.home-logos-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }.home-banderas-section {
    padding: 0.55rem 0 !important;
  }.home-logos-grid {
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 98px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: center !important;
  }.home-logo-col {
    padding: 0.46rem 0.22rem 0.4rem !important;
    border-radius: 0 !important;
    height: auto !important;
    min-height: 98px !important;
    overflow: visible !important;
    justify-content: center !important;
  }.home-logo-col img {
    margin: 0 0 0.14rem !important;
    max-height: 56px !important;
    display: block !important;
  }.home-uruguay-num { font-size: 2.5rem; }.home-partner-logo-card {
    width: clamp(126px, 36vw, 164px);
    height: clamp(64px, 14.5vw, 80px);
    padding: 0.45rem 0.62rem;
    border-radius: 16px;
  }.home-partners-track {
    gap: 0.85rem;
  }.home-partners-track-static,
  .home-partners-track.home-partners-track-static {
    gap: 0.4rem 0.52rem !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
    justify-content: center !important;
    padding: 0 0.18rem;
  }.home-partners-track-static .home-partner-logo-card {
    height: clamp(48px, 11.5vw, 66px) !important;
    padding: 0.38rem 0.52rem !important;
    width: clamp(92px, 28vw, 134px) !important;
    flex: 0 0 auto !important;
    max-width: calc((100% - 2 * 0.4rem) / 3) !important;
    min-width: 0 !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(1),
  .home-partners-track-static .home-partner-logo-card:nth-child(2),
  .home-partners-track-static .home-partner-logo-card:nth-child(3) {
    width: clamp(96px, 29vw, 140px) !important;
    max-width: calc((100% - 2 * 0.42rem) / 3) !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(4),
  .home-partners-track-static .home-partner-logo-card:nth-child(5) {
    width: clamp(112px, 33vw, 160px) !important;
    max-width: calc((100% - 0.42rem) / 2) !important;
    margin-top: 0.06rem;
  }.home-partners-track-static .home-partner-logo-card:first-child {
    width: clamp(98px, 29.5vw, 142px) !important;
    max-width: calc((100% - 2 * 0.42rem) / 3) !important;
    height: clamp(54px, 12.2vw, 72px) !important;
  }.hero-content {
    padding: 3.1rem 0 0.9rem !important;
  }.hero-layout {
    gap: 0.5rem !important;
    padding-bottom: 0.6rem !important;
  }.hero-calco {
    width: min(115px, 40vw) !important;
    max-width: 115px !important;
    max-height: 105px !important;
  }.hero-tag {
    font-size: 0.58rem !important;
    padding: 0.15rem 0.48rem !important;
    margin-bottom: 0.3rem !important;
  }.hero-title {
    font-size: clamp(1rem, 5.6vw, 1.3rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.28rem !important;
  }.hero-sub {
    font-size: 0.76rem !important;
    line-height: 1.43 !important;
    margin-bottom: 0.55rem !important;
  }.hero-actions {
    gap: 0.32rem !important;
  }.hero-actions .btn-primary,
  .hero-actions .btn-outline {
    padding: 0.48rem 0.85rem !important;
    font-size: 0.76rem !important;
  }.section-title { font-size: clamp(1.35rem, 6vw, 1.8rem); }.ns-card-num, .ns-num { font-size: 1.5rem; }.sumate-careers-link {
    flex-direction: column;
    align-items: flex-start;
  }.chip { min-width: 190px; }.home-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.22rem 0.4rem !important;
    max-width: 230px !important;
  }.home-logo-col {
    color: var(--white, #ffffff) !important;
    padding: 0.22rem 0.14rem !important;
    min-height: 52px !important;
    box-shadow: 0 1px 2px rgba(0, 30, 80, 0.08) !important;
  }.home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }.home-logo-col img {
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    max-width: min(64px, 78%) !important;
    max-height: 44px !important;
  }/* ========== FORMULARIO / WIZARD compacto ≤480px ========== */
  .step-indicator {
    gap: 0.2rem !important;
    padding: 0.5rem 0.65rem !important;
  }.step-item:not(:last-child)::after {
    min-width: 12px !important;
    margin: 0 0.15rem !important;
  }.step-num {
    width: 24px !important;
    height: 24px !important;
    font-size: 0.68rem !important;
  }.wizard-header { padding: 0.95rem 0.8rem !important; gap: 0.28rem !important; }.wizard-body   { padding: 1.05rem 0.8rem !important; gap: 0.78rem !important; }.wizard-footer { padding: 0.78rem 0.8rem !important; gap: 0.5rem !important; }.wizard-title  { font-size: 1rem !important; line-height: 1.18 !important; }.wizard-subtitle { font-size: 0.76rem !important; line-height: 1.38 !important; }.form-group,
  .field-group {
    gap: 0.5rem !important;
    margin-bottom: 0.65rem !important;
    grid-template-columns: 1fr !important;
  }.form-field,
  .field {
    gap: 0.28rem !important;
    margin-bottom: 0.45rem !important;
  }.form-label,
  .field label {
    font-size: 0.72rem !important;
    margin-bottom: 0.18rem !important;
  }.form-input,
  .form-select,
  .form-textarea,
  .field input,
  .field select,
  .field textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  textarea,
  select {
    min-height: 35px !important;
    height: 35px !important;
    padding: 0.4rem 0.6rem !important;
    font-size: 0.78rem !important;
    border-radius: 8px !important;
  }textarea.form-textarea,
  .field textarea,
  textarea {
    min-height: 68px !important;
    height: auto !important;
  }.form-hint,
  .field-hint,
  .field small {
    font-size: 0.66rem !important;
  }.wizard-error,
  .field-error,
  .form-error,
  .error-msg {
    font-size: 0.68rem !important;
    padding: 0.38rem 0.5rem !important;
    margin-top: 0.22rem !important;
    border-radius: 6px !important;
  }.chips-row { gap: 0.3rem !important; }.chip {
    min-height: 31px !important;
    height: 31px !important;
    padding: 0.3rem 0.7rem !important;
    font-size: 0.72rem !important;
    min-width: 0 !important;
  }.sumate-card {
    padding: 1.05rem 0.95rem !important;
    border-radius: 16px !important;
    gap: 0.78rem !important;
  }.sumate-title {
    font-size: 1.08rem !important;
  }.sumate-subtitle,
  .sumate-intro,
  .sumate-card > p {
    font-size: 0.78rem !important;
  }.contact-info-grid {
    grid-template-columns: 1fr !important;
    gap: 0.6rem !important;
  }.contact-info-card {
    padding: 0.95rem 0.85rem !important;
    gap: 0.32rem !important;
    border-radius: 13px !important;
  }.contact-info-card h3,
  .contact-info-card .title { font-size: 0.82rem !important; }.contact-info-card p,
  .contact-info-card a,
  .contact-info-card span { font-size: 0.76rem !important; }.btn-next,
  .btn-back,
  .sumate-form button[type="submit"],
  .wizard-footer button,
  .form-submit,
  button.btn-primary,
  button.btn-outline {
    min-height: 37px !important;
    height: 37px !important;
    padding: 0.46rem 0.9rem !important;
    font-size: 0.76rem !important;
    border-radius: 9px !important;
    width: 100% !important;
    justify-content: center !important;
  }}@media (max-width: 360px) {:root {
    --nav-height: 60px !important;
  }.home-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.18rem 0.32rem !important;
    max-width: 205px !important;
  }.home-logo-col {
    color: var(--white, #ffffff) !important;
    padding: 0.18rem 0.12rem !important;
    min-height: 46px !important;
    box-shadow: 0 1px 2px rgba(0, 30, 80, 0.08) !important;
  }.home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }.home-logo-col img {
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    max-width: min(56px, 76%) !important;
    max-height: 40px !important;
  }.container { padding: 0 0.85rem !important; }.container--wide { padding: 0 0.85rem !important; }#navbar .container { padding: 0 0.85rem !important; }.nav-logo { font-size: 1.2rem; }nav#navbar > div.container > a.nav-logo > img {
    width: 88px !important;
    height: 88px !important;
    margin-left: 36px !important;
  }.hero-content {
    padding: 2.9rem 0 0.75rem !important;
  }.hero-layout {
    gap: 0.42rem !important;
    padding-bottom: 0.5rem !important;
  }.hero-calco {
    width: min(98px, 38vw) !important;
    max-width: 98px !important;
    max-height: 90px !important;
  }.hero-tag {
    font-size: 0.56rem !important;
    padding: 0.13rem 0.42rem !important;
    margin-bottom: 0.25rem !important;
    letter-spacing: 0.03em;
  }.hero-title {
    font-size: 0.98rem !important;
    line-height: 1.1 !important;
    margin-bottom: 0.22rem !important;
  }.hero-sub {
    font-size: 0.73rem !important;
    line-height: 1.4 !important;
    margin-bottom: 0.48rem !important;
  }.hero-actions {
    gap: 0.28rem !important;
  }.hero-actions .btn-primary,
  .hero-actions .btn-outline {
    padding: 0.45rem 0.8rem !important;
    font-size: 0.74rem !important;
  }.floating-whatsapp {
    right: 0.65rem !important;
    bottom: 0.65rem !important;
    min-height: 48px !important;
    width: 48px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center !important;
  }.floating-whatsapp span:not(.whatsapp-icon) {
    display: none !important;
  }.floating-whatsapp .whatsapp-icon {
    margin: 0 !important;
  }/* — Carrusel partners (v4): overflow contra reveal ≤480px — */
  .home-partners-section { overflow: visible !important; }.home-partners-marquees {
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding: 0.22rem 0 0.4rem;
    width: 100% !important;
    margin: 0 !important;
  }/* ↑↑ FIN Carrusel partners v4 ≤480px ↑↑ */

  .home-logos-copy { font-size: 1.25rem; }.section-title { font-size: 1.25rem; }.home-uruguay-header { padding: 1.25rem; }.home-uruguay-card { padding: 1.25rem; }.home-uruguay-num { font-size: 2.2rem; }.home-partner-logo-card {
    width: clamp(112px, 38vw, 148px);
    height: clamp(58px, 15vw, 72px);
    padding: 0.4rem 0.55rem;
    border-radius: 15px;
  }.home-partners-track {
    gap: 0.8rem;
  }.home-partners-track-static,
  .home-partners-track.home-partners-track-static {
    gap: 0.32rem 0.45rem !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
    justify-content: center !important;
    padding: 0 0.15rem;
  }.home-partners-track-static .home-partner-logo-card {
    height: clamp(44px, 12.8vw, 62px) !important;
    padding: 0.35rem 0.48rem !important;
    width: clamp(78px, 28vw, 118px) !important;
    flex: 0 0 auto !important;
    max-width: calc((100% - 2 * 0.32rem) / 3) !important;
    min-width: 0 !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(1),
  .home-partners-track-static .home-partner-logo-card:nth-child(2) {
    width: clamp(92px, 32vw, 140px) !important;
    max-width: calc((100% - 0.32rem) / 2) !important;
  }.home-partners-track-static .home-partner-logo-card:nth-child(3),
  .home-partners-track-static .home-partner-logo-card:nth-child(4),
  .home-partners-track-static .home-partner-logo-card:nth-child(5) {
    width: clamp(76px, 27vw, 116px) !important;
    max-width: calc((100% - 2 * 0.32rem) / 3) !important;
    margin-top: 0.08rem;
  }.home-partners-track-static .home-partner-logo-card:first-child {
    width: clamp(96px, 33vw, 146px) !important;
    max-width: calc((100% - 0.32rem) / 2) !important;
    height: clamp(48px, 13.5vw, 68px) !important;
  }/* — Carrusel partners (v4): overflow contra reveal ≤360px — */
  .home-partners-section { overflow: visible !important; }.home-partners-marquees {
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding: 0.2rem 0 0.35rem;
    width: 100% !important;
    margin: 0 !important;
  }/* ↑↑ FIN Carrusel partners v4 ≤360px ↑↑ */

  .btn-primary,
  .btn-outline {
    padding: 0.75rem 1.2rem;
    font-size: 0.85rem;
  }/* ========== FORMULARIO / WIZARD compacto ≤360px ========== */
  .step-indicator {
    gap: 0.15rem !important;
    padding: 0.42rem 0.55rem !important;
  }.step-item:not(:last-child)::after {
    min-width: 10px !important;
    margin: 0 0.1rem !important;
  }.step-num {
    width: 22px !important;
    height: 22px !important;
    font-size: 0.65rem !important;
  }.wizard-header { padding: 0.88rem 0.7rem !important; gap: 0.25rem !important; }.wizard-body   { padding: 0.98rem 0.7rem !important; gap: 0.7rem !important; }.wizard-footer { padding: 0.72rem 0.7rem !important; gap: 0.45rem !important; }.wizard-title  { font-size: 0.96rem !important; line-height: 1.18 !important; }.wizard-subtitle { font-size: 0.74rem !important; line-height: 1.38 !important; }.form-group,
  .field-group {
    gap: 0.45rem !important;
    margin-bottom: 0.58rem !important;
    grid-template-columns: 1fr !important;
  }.form-field,
  .field {
    gap: 0.25rem !important;
    margin-bottom: 0.4rem !important;
  }.form-label,
  .field label {
    font-size: 0.7rem !important;
    margin-bottom: 0.15rem !important;
  }.form-input,
  .form-select,
  .form-textarea,
  .field input,
  .field select,
  .field textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  textarea,
  select {
    min-height: 34px !important;
    height: 34px !important;
    padding: 0.38rem 0.55rem !important;
    font-size: 0.76rem !important;
    border-radius: 7px !important;
  }textarea.form-textarea,
  .field textarea,
  textarea {
    min-height: 64px !important;
    height: auto !important;
  }.form-hint,
  .field-hint,
  .field small {
    font-size: 0.64rem !important;
  }.wizard-error,
  .field-error,
  .form-error,
  .error-msg {
    font-size: 0.66rem !important;
    padding: 0.35rem 0.45rem !important;
    margin-top: 0.2rem !important;
    border-radius: 5px !important;
  }.chips-row { gap: 0.28rem !important; }.chip {
    min-height: 30px !important;
    height: 30px !important;
    padding: 0.28rem 0.65rem !important;
    font-size: 0.7rem !important;
    min-width: 0 !important;
  }.sumate-card {
    padding: 0.98rem 0.88rem !important;
    border-radius: 14px !important;
    gap: 0.7rem !important;
  }.sumate-title {
    font-size: 1.02rem !important;
  }.sumate-subtitle,
  .sumate-intro,
  .sumate-card > p {
    font-size: 0.76rem !important;
  }.contact-info-grid {
    grid-template-columns: 1fr !important;
    gap: 0.55rem !important;
  }.contact-info-card {
    padding: 0.88rem 0.78rem !important;
    gap: 0.3rem !important;
    border-radius: 12px !important;
  }.contact-info-card h3,
  .contact-info-card .title { font-size: 0.8rem !important; }.contact-info-card p,
  .contact-info-card a,
  .contact-info-card span { font-size: 0.74rem !important; }.btn-next,
  .btn-back,
  .sumate-form button[type="submit"],
  .wizard-footer button,
  .form-submit,
  button.btn-primary,
  button.btn-outline {
    min-height: 36px !important;
    height: 36px !important;
    padding: 0.44rem 0.85rem !important;
    font-size: 0.74rem !important;
    border-radius: 8px !important;
    width: 100% !important;
    justify-content: center !important;
  }.ai-header, .ai-messages, .ai-input-wrap {
    padding-left: 1rem;
    padding-right: 1rem;
  }}/* ─── Touch & Accesibilidad ───────────────────── */

@media (hover: none) and (pointer: coarse) and (max-width: 1024px) {.home-partners-track {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }.home-partner-logo-card {
    scroll-snap-align: start;
  }.service-chips {
    -webkit-overflow-scrolling: touch;
  }.chip {
    min-width: 78vw;
  }}@media (prefers-reduced-motion: reduce) {.reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }html.js-motion .section-motion {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }html.js-motion .typewriter.typewriter-active .tw-char {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }}/* ═══════════════════════════════════════════════════
   FORMULARIOS — salto de línea COMPLETO ANTES de cortar
   Nunca corta palabras por mitad.
   Aplica tanto desktop como mobile.
   ═══════════════════════════════════════════════════ */

.wizard,
.wizard-container,
.wizard-step,
.wizard-header,
.wizard-body,
.wizard-footer,
.wizard-title,
.wizard-subtitle,
.wizard-legend,
.wizard-copy,
.wizard-label,
.wizard-hint,
.wizard-helper,

.sumate,
.sumate-section,
.sumate-card,
.sumate-header,
.sumate-form,
.sumate-title,
.sumate-subtitle,
.sumate-intro,
.sumate-copy,
.sumate-hint,

.contact,
.contact-section,
.contact-form,
.contact-header,
.contact-info-grid,
.contact-info-card,
.contact-title,
.contact-subtitle,

.form-group,
.field-group,
.form-field,
.field,
.form-label,
.field label,
.form-hint,
.field-hint,
.field small,
.form-help,
.form-error,
.field-error,
.wizard-error,
.error-msg,
.form-copy,
.form-legend,
.form-note,
.form-disclaimer,

.chip,
.chips-row .chip,

.step-label,
.legend,
label,
small {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
  -webkit-line-break: normal;
  line-break: normal;
  white-space: normal !important;
  hanging-punctuation: first allow-end last;
}/* Si una palabra es INCREÍBLEMENTE larga (URL, email, hash),
   al menos SÍ saltar de línea COMPLETA sin cortar letra por letra */
.wizard-error a,
.form-hint a,
.field-hint a,
.contact-info-card a,
.form-error strong,
input[value*="http"],
textarea {
  overflow-wrap: anywhere;
  word-break: normal;
}/* Placeholders y valores de inputs NO SALEN FUERA ni se cortan mal  */
input::placeholder,
textarea::placeholder,
select,
input,
textarea {
  word-break: keep-all;
  overflow-wrap: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}textarea {
  white-space: pre-wrap !important;
}/* ─── Reglas base seguras (no rompen desktop) ──────── */

*,
*::before,
*::after {
  box-sizing: border-box;
}* {
  -webkit-tap-highlight-color: transparent;
}/* ═══════════════════════════════════════════════════
   REGLAS MOBILE-ONLY (≤ 1024px, tablet + phone)
   Aquí TODO lo sensible: anti-scrollbar, logos a color,
   centrado de secciones home, overflow visible, etc.
   ═══════════════════════════════════════════════════ */

@media (max-width: 1024px) {/* Anti-scrollbar horizontal DEFINITIVO mobile.
     Orden de battle-tested:
     1) html   overflow-x:clip   → NO genera scroll, NI barra, NI viewport scrolleable lateral.
        NO usar 100vw → usa 100% para no sumar scrollbar.
     2) body + #app/.root/#root overflow-x:hidden  → segunda capa de seguridad.
     3) selector comodín * (todos los nodos) → max-width:100% !important.
        (no rompe fixed/absolute por ser max-width, no width).
  */
  html {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: clip !important;
    overflow-y: auto !important;
    position: relative !important;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }body,
  #app,
  #root,
  .app,
  .root,
  main {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    position: relative !important;
  }/*
    Selector universal: máximo 100% ancho para TODO.
    No toca width, solo max-width → fixed/absolute/tablas no se rompen,
    pero nada se sale del viewport.
  */
  *,
  *::before,
  *::after {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }/* Proscribir 100vw/98vw/96vw anchos en mobile → 100% siempre */
  * {
    /* Si algún elemento tenía width: Nvw → forzar máximo width 100% */
  }[style*="100vw"],
  [style*="98vw"],
  [style*="96vw"],
  [style*="95vw"],
  [style*="94vw"] {
    width: 100% !important;
    max-width: 100% !important;
  }/* Sobreescribir explícitamente anchos en vw definidos en el CSS base */
  .page-intro-mask,
  .hero-calco,
  .hero-calco::before,
  .hero-calco::after,
  .ai-modal,
  .site-search-modal,
  .policy-viewer,
  .lightbox-img {
    width: auto !important;
    max-width: 100% !important;
  }.ai-modal,
  .site-search-modal,
  .policy-viewer {
    max-width: min(94%, 420px) !important;
  }/* Reemplazar calc(100vw - Xrem) por calc(100% - Xrem) */
  .caso-card,
  .testimonial-card,
  .evento-card,
  .partner-card,
  .field-group > * {
    max-width: 100% !important;
    width: auto !important;
  }/* Forzar overflow normal en cualquier contenedor (solo mobile) */
  section,
  header,
  footer,
  nav,
  main,
  aside,
  article,
  div[class*="container"],
  div[class*="wrapper"],
  div[class*="section"],
  [class*="grid"],
  [class*="-row"],
  .row,
  .grid,
  .container,
  .container--wide,
  [class*="home-"] {
    overflow-x: visible !important;
    overflow-y: visible !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }img,
  svg,
  video,
  picture,
  canvas,
  iframe,
  embed,
  object {
    max-width: 100% !important;
    width: auto !important;
    height: auto;
    display: block;
  }p, h1, h2, h3, h4, h5, h6,
  li, span, a, label, button, input, textarea, select {
    overflow-wrap: normal !important;
    word-wrap: normal !important;
    word-break: normal !important;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    hyphens: none !important;
  }a[href^="http"],
  a[href^="mailto:"],
  a[href^="tel:"],
  code,
  pre,
  .wizard-error a,
  .form-hint a,
  .field-hint a,
  .contact-info-card a,
  input[value*="http"],
  input[value*="@"],
  textarea {
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    word-wrap: break-word !important;
  }table {
    max-width: 100%;
    overflow-x: auto;
    display: block;
  }section,
  .container,
  .container--wide,
  .row,
  .grid,
  [class*="grid-"],
  [class*="-row"],
  [class*="home-"] {
    max-width: 100% !important;
  }html body .home-partners-track,
  html body .home-partners-track-1,
  html body .home-partners-track-2 {
    max-width: none !important;
    width: max-content !important;
  }.home-banderas-section,
  .home-textos-section,
  #home-logos,
  .home-logos-section,
  .home-map-section,
  .home-logos-row,
  .home-uruguay-section,
  .home-partners-section,
  .home-testimonials-section,
  .home-proyecto-section,
  .home-partner-invite-section {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    box-sizing: border-box;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }.home-testimonials-section { padding-top: 2.25rem !important; }.home-testimonials-header,
  .home-testimonials-header.reveal,
  .home-testimonials-header.reveal.visible {
    margin-top: 1.5rem !important;
  }.home-partner-invite-section { padding-top: 1.75rem !important; }.home-banderas-section *,
  .home-textos-section * {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }/* Marquees, chips, carousels, timelines horizontales y galerías scroll:
     en mobile CLIPAMOS el overflow-x para no generar scroll lateral del viewport.
     Si el usuario necesita navegarlos, internamente ya usan flex-wrap en mobile
     o tienen su propio scroll snap; el propósito es que NO generen barra global.

     ⚠️ EXCEPCIÓN EXPLÍCITA:
     .home-partners-track / .home-partners-track-1 / .home-partners-track-2
     NO heredan estos !important porque necesitan `width: max-content`
     y `overflow-x: visible` para poder scrollear los logos sin recortes. */
  .home-logos-row,
  .eventos-galeria,
  .galeria-scroll,
  .timeline-track,
  .timeline,
  .nosotros-timeline,
  .wizard-chips-row,
  .chips-row,
  .nav-chips,
  .service-chips,
  .partners-marquee,
  .marquee,
  .marquee-track,
  .testimonios-carousel,
  .carousel-track,
  .casos-track,
  [class*="marquee"]:not(.home-partners-marquees),
  [class*="-track"]:not(.home-partners-track):not(.home-partners-track-1):not(.home-partners-track-2):not(.home-testimonials-track):not(.eventos-track),
  [class*="carousel"]:not(.home-testimonials-viewport) {
    max-width: 100% !important;
    width: 100% !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* ─── PARTNERS ROWS: tamaños determinísticos MOBILE + no clip horizontal ─── */
  html body section#partners {
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }
  html body section#partners > div.partners-rows,
  html body .partners-rows {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-flex-direction: column !important;
    -ms-flex-direction: column !important;
    flex-direction: column !important;
    -webkit-align-items: stretch !important;
    -ms-flex-align: stretch !important;
    align-items: stretch !important;
    -webkit-justify-content: flex-start !important;
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 100% !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    padding-top: 1rem !important;
    padding-bottom: 0 !important;
    gap: 1.15rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }
  html body section#partners > div.partners-rows > .partners-row,
  html body .partners-rows > .partners-row {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-flex-direction: row !important;
    -ms-flex-direction: row !important;
    flex-direction: row !important;
    -webkit-flex-wrap: nowrap !important;
    -ms-flex-wrap: nowrap !important;
    flex-wrap: nowrap !important;
    -webkit-align-items: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
    -webkit-justify-content: flex-start !important;
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 200% !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    gap: 1rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    will-change: transform !important;
    animation-duration: 22s !important;
  }
  html body .partners-rows > .partners-row.row-1 {
    animation-duration: 22s !important;
  }
  html body .partners-rows > .partners-row.row-2 {
    animation-duration: 26s !important;
  }
  html body section#partners .partner-item,
  html body .partner-item {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-align-items: center !important;
    -ms-flex-align: center !important;
    align-items: center !important;
    -webkit-justify-content: center !important;
    -ms-flex-pack: center !important;
    justify-content: center !important;
    -webkit-flex: 0 0 auto !important;
    -ms-flex: 0 0 auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 82px !important;
    padding: 0.85rem 1.25rem !important;
    border-radius: 18px !important;
    border: 0 !important;
    border-color: transparent !important;
    outline: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    text-shadow: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
  html body section#partners .partner-item > img,
  html body .partner-item > img {
    width: auto !important;
    height: 62px !important;
    max-height: 62px !important;
    max-width: 230px !important;
    min-width: 90px !important;
    min-height: 56px !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    filter: grayscale(100%);
    opacity: 0.88 !important;
    transition: filter 320ms ease, opacity 320ms ease, transform 320ms ease;
    box-sizing: border-box !important;
  }
  html body .partner-item:hover > img {
    filter: grayscale(0%);
    opacity: 1;
    transform: translate3d(0, -1px, 0);
  }
  html body section#alianzas .partner-item {
    min-height: 82px !important;
    padding: 0.85rem 1.25rem !important;
  }
  html body section#alianzas .partner-item > img {
    transform: scale(0.84);
    transform-origin: center center;
  }
  html body section#alianzas .partner-item:hover > img {
    transform: scale(0.84) translate3d(0, -1px, 0);
  }

  @media (max-width: 768px) {
    html body section#partners > div.partners-rows {
      margin-top: 1.3rem !important;
      gap: 0.65rem !important;
      padding-top: 0.4rem !important;
      padding-bottom: 0.4rem !important;
    }
    html body section#partners > div.partners-rows > .partners-row {
      min-height: 0 !important;
      gap: 0.55rem !important;
      padding-left: 0.5rem !important;
      padding-right: 0.5rem !important;
      padding-top: 0.25rem !important;
      padding-bottom: 0.25rem !important;
      animation-duration: 18s !important;
    }
    html body section#partners > div.partners-rows > .partners-row.row-1 { animation-duration: 18s !important; }
    html body section#partners > div.partners-rows > .partners-row.row-2 { animation-duration: 22s !important; }
    html body section#partners .partner-item {
      min-height: 56px !important;
      padding: 0.45rem 0.75rem !important;
      border-radius: 16px !important;
      background: transparent !important;
      background-color: transparent !important;
      background-image: none !important;
      border: 0 !important;
      border-color: transparent !important;
      box-shadow: none !important;
      -webkit-box-shadow: none !important;
      outline: 0 !important;
    }
    html body section#partners .partner-item > img {
      height: 42px !important;
      max-height: 42px !important;
      max-width: 150px !important;
      min-width: 64px !important;
      min-height: 40px !important;
    }
    html body section#alianzas .partner-item {
      min-height: 56px !important;
      padding: 0.45rem 0.75rem !important;
    }
    html body section#alianzas .partner-item > img {
      transform: scale(0.78);
      transform-origin: center center;
    }
    html body section#alianzas .partner-item:hover > img {
      transform: scale(0.78) translate3d(0, -1px, 0);
    }
  }
  html body .eventos-viewport#eventosViewport {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    scrollbar-width: none !important;
    position: relative !important;
    display: block !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
  }
  html body .eventos-viewport#eventosViewport::-webkit-scrollbar {
    display: none !important;
  }
  html body .eventos-track {
    width: auto !important;
    max-width: none !important;
    min-width: 100% !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-flex-direction: row !important;
    -ms-flex-direction: row !important;
    flex-direction: row !important;
    -webkit-flex-wrap: nowrap !important;
    -ms-flex-wrap: nowrap !important;
    flex-wrap: nowrap !important;
    -webkit-align-items: stretch !important;
    -ms-flex-align: stretch !important;
    align-items: stretch !important;
    -webkit-justify-content: flex-start !important;
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
    padding: 0.35rem 0 !important;
    gap: 1.15rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    will-change: transform !important;
  }
  html body .eventos-track > .eventos-slide {
    -webkit-flex: 0 0 100% !important;
    -ms-flex: 0 0 100% !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 0 0.35rem !important;
    margin: 0 !important;
    display: -ms-grid !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    -ms-grid-columns: (1fr)[2];
    gap: 1.15rem !important;
    position: relative !important;
    overflow: visible !important;
  }
  html body .eventos-track > .eventos-slide > .evento-card {
    visibility: visible !important;
    opacity: 1 !important;
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: -webkit-flex !important;
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 270px !important;
    max-height: none !important;
    height: 100% !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
  }
  @media (max-width: 768px) {
    html body .eventos-track {
      gap: 0.7rem !important;
      padding: 0.25rem 0 !important;
    }
    html body .eventos-track > .eventos-slide {
      -webkit-flex: 0 0 100% !important;
      -ms-flex: 0 0 100% !important;
      flex: 0 0 100% !important;
      width: 100% !important;
      max-width: 100% !important;
      padding: 0 !important;
      gap: 0.7rem !important;
      grid-template-columns: 1fr !important;
      -ms-grid-columns: 1fr !important;
    }
    html body .eventos-track > .eventos-slide > .evento-card {
      min-height: 220px !important;
      padding: 1.3rem !important;
      border-radius: 18px !important;
    }
    html body .eventos-arrow {
      width: 38px !important;
      height: 38px !important;
    }
    html body .eventos-controls {
      margin-top: 0.9rem !important;
    }
    html body .eventos-dots {
      gap: 0.45rem !important;
    }
    html body .eventos-dots .dot {
      width: 7px !important;
      height: 7px !important;
    }
    html body .eventos-dots .dot.active {
      width: 22px !important;
    }
  }/* EXCEPCIÓN CRÍTICA: viewport + track de testimonios NECESITAN
     overflow-x:scroll para swipe mobile (scroll-snap x mandatory).
     ── NUEVA ESTRATEGIA 1-slide-per-card ──
     Desktop: .home-testimonials-slide contiene 2 cards (grid 2 cols)
     Mobile:  "desenrollamos" el slide wrapper con display:contents
              y cada .testimonial-card hija pasa a ser UN SLIDE del track flex
              (1 card por pantalla). Eliminamos truncado: TODAS DESPLEGADAS. */
  .home-testimonials-viewport {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: scroll !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    scrollbar-width: none !important;
  }.home-testimonials-viewport::-webkit-scrollbar { display: none !important; }.home-testimonials-track {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
    display: flex !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 0.5rem !important;   /* ligero espacio entre cards (no pegadas) */
  }/* "Desenrollamos" .home-testimonials-slide para que sus .testimonial-card
     hijas se conviertan en slides individuales del track. */
  .home-testimonials-slide {
    display: contents !important;
  }/* CADA tarjeta ahora es un slide de 1 pantalla + scroll-snap align */
  .home-testimonials-track .testimonial-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: start !important;
    /* Espacio ENTRE cards (exterior): margin horizontal en vez de padding.
       Así no pisa el padding interior de la card. */
    margin: 0 0.15rem !important;
    /* 🔥 PADDING INTERIOR desde selector específico 2 clases → gana.
       Valor por defecto para ≤1024; los breakpoints menores lo sobrescriben. */
    padding: 1.55rem 1.7rem !important;
    box-sizing: border-box !important;
    display: grid !important;
    /* 🔥 TODAS las cards empiezan y permanecen DESPLEGADAS en mobile
       (no hay truncado, no hay tap-to-expand, no hay mask de fade). */
    max-height: none !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    position: relative !important;
    transition: none !important;
    gap: 1rem !important;
    grid-template-columns: 1fr !important;                 /* 🔥 1 SOLA COLUMNA: logo ARRIBA, texto ABAJO */
  }/* Aire lateral EXTRA en textos/nombre/botón contra los bordes de la card */
  .home-testimonials-track .testimonial-card .testimonial-right {
    padding-right: 0.15rem !important;
    padding-top: 0.1rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-quote {
    margin-bottom: 0.95rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-meta {
    padding-top: 0.35rem !important;
  }.home-testimonials-track .testimonial-card .testimonial-more-btn {
    margin-top: 0.3rem !important;
  }/* 🔥 LOGOS testimonios mobile (≤1024 general): 1 columna.
     - ALTURA EXACTA 3vh para TODOS los logos.
     - ANCHO AUTO (proporcional según cada SVG).
     - Centrado H/V. */
  .home-testimonials-track .testimonial-card .testimonial-logo {
    height: 3vh !important;                              /* 🔥 3vh (antes 8vh - demasiado grande) */
    min-height: 3vh !important;
    max-height: 3vh !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-right: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    margin: 0 auto !important;
  }.home-testimonials-track .testimonial-card .testimonial-logo img {
    height: 100% !important;                              /* hereda 3vh wrapper */
    min-height: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: rotate(0deg) !important;
    flex-shrink: 0 !important;
  }/* testimonial-left: BLOQUE LOGO ARRIBA (1 columna) */
  .home-testimonials-track .testimonial-card .testimonial-left {
    min-height: auto !important;                        /* 🔥 altura AUTO (no altura fija - el wrapper solo debe contener el logo, aire por padding) */
    max-height: none !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.7rem !important;                   /* solo aire DEBAJO del logo (antes del texto) */
    border-right: 0 !important;
    border-bottom: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
  }/* 🔥 Grid de la card + testimonial-right: ALINEAR ARRIBA, NO centrado vertical */
  .home-testimonials-track .testimonial-card {
    align-items: start !important;                       /* 🔥 grid items alineados HACIA ARRIBA */
    align-content: start !important;
  }.home-testimonials-track .testimonial-card .testimonial-right {
    align-items: flex-start !important;                  /* 🔥 contenido del bloque texto HACIA ARRIBA */
    justify-content: flex-start !important;
    align-self: start !important;                        /* 🔥 NO al centro */
  }/* Anula cualquier intento de ocultar la 2ª card por slide */
  .home-testimonials-slide .testimonial-card:nth-child(2) {
    display: grid !important;
  }/* Eliminar overlay "Toca para leer completo" por tarjeta */
  .home-testimonials-shell .testimonial-card::after,
  .home-testimonials-shell.reveal .testimonial-card::after,
  .home-testimonials-shell.reveal.visible .testimonial-card::after {
    display: none !important;
  }
  .home-testimonials-shell .testimonial-card:focus-within,
  .home-testimonials-shell .testimonial-card:active,
  .home-testimonials-shell.reveal .testimonial-card:focus-within,
  .home-testimonials-shell.reveal .testimonial-card:active,
  .home-testimonials-shell.reveal.visible .testimonial-card:focus-within,
  .home-testimonials-shell.reveal.visible .testimonial-card:active {
    max-height: none !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
  }/* Elementos fixed flotantes (WhatsApp, back-to-top, AI launcher)
     nunca deben generar overflow → acotar max-width. */
  /* 🔥 WhatsApp mobile ≤1024: SOLO icono, sin texto "Escribinos" */
  .floating-whatsapp {
    right: 1rem !important;
    bottom: 1rem !important;
    min-height: 54px !important;
    width: 54px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center !important;
    gap: 0 !important;
  }.floating-whatsapp span:not(.whatsapp-icon) {
    display: none !important;
  }.floating-whatsapp .whatsapp-icon {
    margin: 0 !important;
  }.floating-whatsapp,
  .back-to-top,
  .ai-launcher,
  .chat-launcher,
  .site-search-launcher {
    max-width: calc(100% - 1rem) !important;
  }/* En mobile NO se muestra hero-calco: solo textos + botones.
     Ocultamos tanto el wrapper visual como el nodo calco + pseudos
     para eliminar cualquier resto de altura/espacio. */
  .hero-visual {
    display: none !important;
  }.hero-calco,
  .hero-calco::before,
  .hero-calco::after {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }/* ═══════════════════════════════════════════════════
     home-banderas VISIBLE SIEMPRE en mobile
     ═══════════════════════════════════════════════════
     Fuerza visibilidad absoluta por si alguna regla de
     reveal/transition/transform/opacity lo oculta. */
  #home-logos,
  .home-logos-section,
  .home-logos-row,
  .home-banderas-section,
  .home-textos-section,
  .home-logos-grid,
  .home-logo-col,
  .home-logo-col *,
  .home-banderas-section *,
  .home-logos-row * {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    -webkit-transform: none !important;
    translate: 0 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
    pointer-events: auto !important;
    transition: none !important;
    -webkit-transition: none !important;
    animation: none !important;
    -webkit-animation: none !important;
    will-change: auto !important;
  }/* Contenedores exteriores del bloque logos */
  #home-logos,
  .home-logos-section {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 0 1rem !important;
    padding-top: 0 !important;
    margin: 0 !important;
    margin-top: 0 !important;
    background: var(--white, #ffffff) !important;
    position: relative !important;
    overflow: visible !important;
    z-index: 10 !important;
  }/* home-logos-row: grid 1-col centrado que contiene banderas+textos */
  .home-logos-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    padding: 0 !important;
    gap: 1.5rem 0 !important;
    align-items: stretch !important;
    align-content: stretch !important;
    justify-content: center !important;
  }/* home-banderas-section: SIEMPRE VISIBLE, altura automática */
  .home-banderas-section {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: center !important;
    align-self: stretch !important;
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 90px !important;
    height: auto !important;
    max-height: none !important;
    padding: 0.75rem 0 !important;
    margin: 0 auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    color: inherit !important;
    background: transparent !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    overflow: visible !important;
    z-index: 2 !important;
  }/* home-logos-grid: grid 1 fila × 4 columnas, PEGADAS entre sí */
  .home-logos-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    justify-self: center !important;
    align-self: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 120px !important;
    margin: 0 !important;
    padding: 0 !important;
  }/* home-logo-col: BANDERAS VUELVEN (colores azules originales) */
  .home-logo-col {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 120px !important;
    padding: 0.6rem 0.3rem 0.55rem !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-align: center !important;
    color: var(--white, #ffffff) !important;
    position: relative !important;
    overflow: visible !important;
    z-index: 2 !important;
    box-shadow: none !important;
  }/* Banderas azules originales 4 tonos */
  .home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }/* LOGOS EN BLANCO (invertidos, como estaba originalmente) */
  .home-logo-col img,
  .home-logo-col svg,
  .home-logo-col picture {
    display: block !important;
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
    width: auto !important;
    height: auto !important;
    max-width: min(110px, 90%) !important;
    max-height: 74px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    object-fit: contain !important;
    margin: 0 0 0.2rem !important;
    padding: 0 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
  }.home-logo-col span,
  .home-logo-col small,
  .home-logo-col p,
  .home-logo-col [class*="label"],
  .home-logo-col [class*="text"] {
    display: none !important;
  }/* home-textos-section (columna al lado, abajo en mobile) */
  .home-textos-section {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0.2rem 0.85rem 0.75rem !important;
    margin: 0 auto !important;
    text-align: left !important;
  }/* Alineación IZQUIERDA de TODOS los textos hijos en mobile */
  .home-textos-section *,
  .home-textos-section p,
  .home-textos-section h1,
  .home-textos-section h2,
  .home-textos-section h3,
  .home-textos-section h4,
  .home-textos-section h5,
  .home-textos-section h6,
  .home-textos-section span,
  .home-textos-section li,
  .home-textos-section a,
  .home-textos-section label,
  .home-textos-section strong,
  .home-textos-section em {
    text-align: left !important;
    justify-self: flex-start !important;
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }/* home-map-section también visible (por si va ligado al bloque) */
  .home-map-section,
  .home-map-slot,
  .home-map-visual {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }/* OVERRIDE DEFINITIVO: home-textos alineación IZQUIERDA.
     Usamos :where(body) para subir especificidad sin !important extra
     y vencer los text-align: center heredados de MQs anteriores */
  :where(body) .home-textos-section {
    text-align: left !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }:where(body) .home-textos-section > *,
  :where(body) .home-textos-section p,
  :where(body) .home-textos-section h1,
  :where(body) .home-textos-section h2,
  :where(body) .home-textos-section h3,
  :where(body) .home-textos-section h4,
  :where(body) .home-textos-section h5,
  :where(body) .home-textos-section h6,
  :where(body) .home-textos-section span,
  :where(body) .home-textos-section li,
  :where(body) .home-textos-section a,
  :where(body) .home-textos-section strong,
  :where(body) .home-textos-section em,
  :where(body) .home-textos-section div {
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    justify-self: flex-start !important;
    align-self: flex-start !important;
  }/* ═══════════════════════════════════════════════════
     home-logos-copy: 3 FRASES EN UNA MISMA LÍNEA
     "4 empresas; 1 visión compartida; juntas inspirando futuro"
     Flex-direction: row + inline-wrap, no más columna.
     ═══════════════════════════════════════════════════ */
  .home-logos-copy {
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    font-weight: 800 !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }/* home-logos-copy-delayed: pasar de column → ROW para que
     todo se vea en una sola línea (o wrapee naturalmente) */
  .home-logos-copy-delayed {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    justify-content: flex-start !important;
    gap: 0 0.45rem !important;
    row-gap: 0.15rem !important;
    column-gap: 0.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: left !important;
  }/* Cada frase es un SPAN o grupo SPAN+STRONG: mostrar INLINE
     para que número y palabra queden juntos en la misma flow. */
  .home-logos-copy-delayed > span,
  .home-logos-copy > span,
  .home-logos-copy > strong,
  .home-logos-copy > *,
  .home-logos-copy span,
  .home-logos-copy strong {
    display: inline !important;          /* ← clave: misma línea */
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    white-space: normal !important;
    vertical-align: baseline !important;
  }/* Números y palabras del mismo bloque: sin separación */
  .home-logos-copy span + strong,
  .home-logos-copy strong + span,
  .home-logos-copy-delayed span + strong,
  .home-logos-copy-delayed strong + span {
    margin-left: 0.12em !important;   /* ↓ un pequeño espacio entre "4" y "empresas" */
    margin-top: 0 !important;
  }/* Separadores ";" entre frases (por si hay que añadir visualización) */
  .home-logos-copy strong {
    color: var(--accent-light) !important;
    font-weight: 800 !important;
  }.home-logos-copy span {
    color: var(--accent-dark) !important;
    font-weight: 800 !important;
  }/* home-logos-accent mismo line-height compacto */
  .home-logos-accent {
    line-height: 1.05 !important;
    display: inline !important;
  }}/* Ajuste font-size home-logos-copy en rangos móviles más finos
   (bloques independientes, NO anidados — CSS puro) */
@media (max-width: 768px) {.home-logos-copy {
    /* ~80% of viewport width for the longest line */
    font-size: clamp(1.15rem, 6.8vw, 1.7rem) !important;
  }.home-logos-copy-delayed {
    column-gap: 0.48rem !important;
    gap: 0 0.48rem !important;
    row-gap: 0.14rem !important;
  }.home-logos-copy span + strong,
  .home-logos-copy strong + span {
    margin-left: 0.11em !important;
  }}@media (max-width: 520px) {.home-logos-copy {
    /* target ~80% viewport width for longest line */
    font-size: clamp(0.98rem, 7.2vw, 1.35rem) !important;
    line-height: 1.08 !important;
  }.home-logos-copy-delayed {
    column-gap: 0.38rem !important;
    gap: 0 0.38rem !important;
    row-gap: 0.1rem !important;
  }.home-logos-copy span + strong,
  .home-logos-copy strong + span {
    margin-left: 0.09em !important;
  }}@media (max-width: 400px) {.home-logos-copy {
    /* target ~80% viewport width for longest line on very small screens */
    font-size: clamp(0.88rem, 7.6vw, 1.2rem) !important;
    line-height: 1.1 !important;
  }.home-logos-copy-delayed {
    column-gap: 0.3rem !important;
    gap: 0 0.3rem !important;
    row-gap: 0.08rem !important;
  }.home-logos-copy span + strong,
  .home-logos-copy strong + span {
    margin-left: 0.08em !important;
  }}/* =========================================================================
   ESCUDO DE ESCRITORIO (min-width: 1025px)
   Aplica SOLAMENTE a pantallas grandes. Valores = base desktop ORIGINAL.
   Cualquier regla mobile con !important es anulada aquí por orden posterior.
   ========================================================================= */
@media (min-width: 1025px) {#home-logos {
    padding: 0 !important;
    margin: 0 !important;
  }.home-logos-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
  }.home-banderas-section {
    grid-column: 1 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: stretch !important;
    align-self: stretch !important;
    height: 300px !important;
    min-height: 300px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box !important;
    background: transparent !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }.home-textos-section {
    grid-column: 2 !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: 300px !important;
    padding: 0 3.5rem 0 2rem !important;
  }.home-logos-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(110px, 1fr)) !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 0 !important;
    width: min(100%, 720px) !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: auto !important;
    align-self: auto !important;
  }.home-logo-col {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    min-width: 0 !important;
    width: auto !important;
    border-radius: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }.home-logo-col:nth-child(1) { background: #0055BA !important; }.home-logo-col:nth-child(2) { background: #1C63EF !important; }.home-logo-col:nth-child(3) { background: #1491E7 !important; }.home-logo-col:nth-child(4) { background: #18AAEC !important; }.home-logo-col img {
    max-width: min(120px, 92%) !important;
    max-height: 110px !important;
    min-height: auto !important;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 !important;
    filter: brightness(0) invert(1) !important;
    -webkit-filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
  }.home-logo-col span,
  .home-logo-col small,
  .home-logo-col p,
  .home-logo-col [class*="label"],
  .home-logo-col [class*="text"] {
    display: none !important;
  }}@media (max-width: 1024px) {
  html body #home-logos {
    margin-top: 0 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   REORDENAMIENTO MOBILE: Textos ARRIBA, Banderas ABAJO
   En mobile ≤1024px, .home-logos-row es grid 1-col.
   Mediante `order` invertimos el flujo visual sin tocar HTML.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body .home-logos-row .home-textos-section {
    order: 1 !important;
    margin-top: 0.75rem !important;
  }
  html body .home-logos-row .home-banderas-section {
    order: 2 !important;
  }
}
/* ESCUDO DE ESCRITORIO: `order` por defecto para no alterar
   el layout 2-columnas de desktop ≥1025px */
@media (min-width: 1025px) {
  html body .home-logos-row .home-textos-section,
  html body .home-logos-row .home-banderas-section {
    order: 0 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   HERO-ACTIONS MOBILE: Botones uno al lado del otro,
   alineados a la izquierda, ancho compacto.
   Sobrescribe flex-direction:column y width:100% de ≤520px.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body #hero .hero-actions {
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
  }
  html body #hero .hero-actions .btn-primary,
  html body #hero .hero-actions .btn-outline {
    width: auto !important;
    max-width: 48% !important;
    justify-content: center !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
}
/* ESCUDO DE ESCRITORIO: Resetea cambios para ≥1025px
   y mantiene el layout original de desktop intacto. */
@media (min-width: 1025px) {
  html body #hero .hero-actions {
    flex-direction: row !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
  html body #hero .hero-actions .btn-primary,
  html body #hero .hero-actions .btn-outline {
    width: auto !important;
    max-width: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   HERO-CALCO MOBILE (≤1024px): marca de agua CENTRADA respecto
   a TODA la sección #hero (inset:0 sobre el propio #hero).
   - Relleno BLANCO puro con opacidad EXACTA 5% vía rgba.
   - mask-position: center center para centrado PERFECTO
     HORIZONTAL + VERTICAL dentro de la sección.
   - mask-size: min(560px, 86vh) para que nunca se desborde
     en altura ni en anchura.
   - z-index: 0 para quedar entre el fondo azul (z:-1) y el
     contenido hero-layout (z:1), dentro del stacking context
     isolation:isolate de #hero (el isolation NO bloquea
     z-index ≥0 internos).
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body #hero::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 0 0 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background: rgba(255, 255, 255, 0.05) !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-mask-image: url('../calco-logo-mask.svg') !important;
    -webkit-mask-repeat: no-repeat !important;
    -webkit-mask-position: center center !important;
    -webkit-mask-size: min(560px, 86vh) min(560px, 86vh) !important;
    mask-image: url('../calco-logo-mask.svg') !important;
    mask-repeat: no-repeat !important;
    mask-position: center center !important;
    mask-size: min(560px, 86vh) min(560px, 86vh) !important;
    transform: none !important;
    will-change: auto !important;
  }

  /* Asegura que el indicador de scroll no quede oculto por el calco */
  html body #hero .hero-scroll {
    position: absolute !important;
    z-index: 3 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   ESCUDO DE ESCRITORIO (≥1025px): DESACTIVA EXPLÍCITAMENTE
   el pseudo-elemento #hero::before + resetea .hero-content.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body #hero::before {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    visibility: hidden !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    background: transparent !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    transform: none !important;
  }
  html body #hero .hero-content::before {
    content: none !important;
    display: none !important;
    background: transparent !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  html body #hero .hero-scroll {
    z-index: auto !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   HERO-TITLE MOBILE: TAMAÑO AUMENTADO en todos los breakpoints
   mobile. Alta especificidad + !important para vencer
   las reglas previas de cada media query.
   Rango base ≤1024px, luego reducciones por tamaño cada
   breakpoint pero SIEMPRE más grande que el valor original.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body #hero .hero-title {
    font-size: clamp(2.1rem, 6.2vw, 3.4rem) !important;
    line-height: 1.05 !important;
    margin-bottom: 1.55rem !important;
  }
}
@media (max-width: 980px) {
  html body #hero .hero-title {
    font-size: clamp(2.3rem, 6.8vw, 3.6rem) !important;
    line-height: 1.05 !important;
  }
}
@media (max-width: 768px) {
  html body #hero .hero-title {
    font-size: clamp(1.75rem, 7.2vw, 2.4rem) !important;
    line-height: 1.08 !important;
    margin-bottom: 1rem !important;
  }
}
@media (max-width: 640px) {
  html body #hero .hero-title {
    font-size: clamp(1.55rem, 7.2vw, 2.05rem) !important;
    line-height: 1.08 !important;
    margin-bottom: 0.85rem !important;
  }
}
@media (max-width: 480px) {
  html body #hero .hero-title {
    font-size: clamp(1.35rem, 7.6vw, 1.75rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.7rem !important;
  }
}
@media (max-width: 360px) {
  html body #hero .hero-title {
    font-size: clamp(1.18rem, 7.8vw, 1.45rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.55rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   ESCUDO DE ESCRITORIO (≥1025px): Reestablece los tamaños
   originales de hero-title para no alterar desktop.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body #hero .hero-title {
    font-size: clamp(2.25rem, 5vw, 3.9rem) !important;
    line-height: 1.05 !important;
    margin-bottom: 1.75rem !important;
    letter-spacing: -0.03em !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   HOME-LOGOS-COPY-DELAYED MOBILE (≤1024px): 3 SPANS APILADOS
   (uno arriba del otro → 3 LÍNEAS).
   - Contenedor: flex-direction: column, flex-wrap: nowrap.
   - Cada span > direct: display:block (ocupa una línea entera).
   - Se mantiene el color strong / span original; solo cambia
     la dirección de layout.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body .home-logos-copy-delayed {
    display: flex !important;
    display: inline-flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0.35rem 0 !important;
    row-gap: 0.35rem !important;
    column-gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    white-space: normal !important;
  }
  html body .home-logos-copy-delayed > span,
  html body .home-logos-copy-delayed > span:nth-child(1),
  html body .home-logos-copy-delayed > span:nth-child(2),
  html body .home-logos-copy-delayed > span:nth-child(3) {
    display: block !important;
    display: flow-root !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    line-height: 1.08 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-align: left !important;
  }
  /* Mantener "4 empresas", "1 visión compartida",
     "juntas inspirando futuro" sin cortes dentro de cada línea */
  html body .home-logos-copy-delayed > span,
  html body .home-logos-copy-delayed > span > strong,
  html body .home-logos-copy-delayed > span > span {
    box-sizing: border-box !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   ESCUDO DE ESCRITORIO (≥1025px): REVERTIR forzosamente a
   la versión "todo en una misma línea / wrap natural".
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body .home-logos-copy-delayed {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    justify-content: flex-start !important;
    gap: 0 0.45rem !important;
    row-gap: 0.15rem !important;
    column-gap: 0.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    white-space: normal !important;
  }
  html body .home-logos-copy-delayed > span,
  html body .home-logos-copy-delayed > span:nth-child(1),
  html body .home-logos-copy-delayed > span:nth-child(2),
  html body .home-logos-copy-delayed > span:nth-child(3) {
    display: inline !important;
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    line-height: 1.05 !important;
    text-align: left !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   HOME-TEXTOS-SECTION MOBILE (≤1024px): Aire superior AUMENTADO
   + padding inferior intacto.
   - Se eliminó el margin-top externo previo (0.75rem) y el aire
     pasa a ser PADDING INTERNO.
   - padding-top = 1.2rem (~+0.45rem extra por sobre el inferior)
   - padding-bottom se mantiene 0.75rem.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  html body .home-logos-row .home-textos-section,
  html body #home-logos .home-textos-section,
  html body .home-textos-section {
    /* Sin márgenes exteriores verticales — todo como padding interno */
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    /* Padding con MÁS AIRE SUPERIOR */
    padding-top: 1.2rem !important;
    padding-bottom: 0.75rem !important;
    /* Laterales intactos */
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
    padding-inline: 0.85rem !important;
    box-sizing: border-box !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   ESCUDO DE ESCRITORIO (≥1025px): Restablece padding/margen
   ORIGINAL de .home-textos-section (alto 300px, padding
   horizontal 3.5rem / 2rem, top/bottom 0).
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body .home-logos-row .home-textos-section,
  html body #home-logos .home-textos-section,
  html body .home-textos-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 2rem !important;
    padding-right: 3.5rem !important;
    height: 300px !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   TESTIMONIOS MOBILE (≤1024px): NAVEGACIÓN POR FLECHAS, NO SWIPE.
   - Bloquear scroll horizontal (overflow-x: hidden) en viewport
     para impedir arrastre con dedo.
   - Re-activar scroll-snap internamente + scroll-behavior smooth
     para que el desplazamiento vía flechas sea fluido y encaje.
   - Mostrar las flechas .home-testimonials-arrow (hasta ahora
     display:none en mobile) con posición absoluta fija y un
     offset lateral para no tapar el contenido.
   - Añadir padding horizontal al track para que las cards no
     queden ocultas bajo las flechas (aire lateral).
   - touch-action: pan-y para permitir scroll vertical normal
     del documento.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  /* Contenedor padre: garantiza posicionamiento de las flechas
     y hace el área clicable / táctil completa. */
  html body .home-testimonials-shell {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    /* Espacio horizontal SEGURO para las flechas (margen, no padding — así
       el position:absolute usa todo el ancho del shell y las flechas
       quedan DENTRO del área táctil). */
    margin-left: 0.4rem !important;
    margin-right: 0.4rem !important;
    width: calc(100% - 0.8rem) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    z-index: 50 !important;
    isolation: isolate !important;
    pointer-events: auto !important;
  }

  /* Viewport: scroll DESHABILITADO manualmente PERO scroll programático
     SIGUE FUNCIONANDO. overflow-x: HIDDEN (NO clip — clip bloquea
     scrollTo/scrollBy en Safari iOS). */
  html body .home-testimonials-viewport {
    overflow-y: visible !important;
    overflow-x: hidden !important;
    /* Scroll snap y smooth scroll SIGUEN activos para el desplazamiento
       que lanzan las flechas vía JS. */
    scroll-snap-type: x proximity !important;
    scroll-snap-stop: normal !important;
    scroll-behavior: smooth !important;
    scroll-padding-inline: clamp(0.75rem, 2.2vw, 1.5rem) !important;
    -webkit-overflow-scrolling: touch !important;
    /* NO usar touch-action: pan-y. En mobile puede matar los eventos
       click/tap sobre las flechas hermanas. */
    touch-action: pan-y !important;           /* SOLO scroll vertical, NUNCA swipe horizontal entre cards */
    overscroll-behavior-x: none !important;
    -ms-scroll-chaining: none !important;
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
    border-radius: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
    z-index: 1 !important;
    pointer-events: auto !important;
  }
  html body .home-testimonials-viewport > .home-testimonials-track {
    touch-action: pan-y !important;           /* doble bloqueo por si el padre no lo toma */
    overscroll-behavior-x: none !important;
    user-select: none !important;
    -webkit-user-drag: none !important;
  }
  html body .home-testimonials-viewport > .home-testimonials-track > .home-testimonials-slide {
    touch-action: pan-y !important;
  }
  }
  html body .home-testimonials-viewport::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  /* IMPEDIR SWIPE: una capa transparente sobre el viewport que
     absorbe los eventos pointer en el eje X PERO deja pasar los
     clicks internos (links, botón "ver más").
     Técnica: pointer-events: none en la capa + reactivación sobre
     los hijos interactivos. Sin tocar JS. */
  html body .home-testimonials-viewport::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 9 !important;
    pointer-events: none !important;   /* no bloquea clicks internos */
    touch-action: pan-y !important;    /* el navegador NO asocia el
                                          gesto horizontal al scroll del
                                          viewport (no hay scroll sobre
                                          este pseudo — pero al sumarse
                                          los touch-events le dice a iOS
                                          "este gesto no me toca a mí") */
    background: transparent !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  /* Los hijos NO interactivos (cards, textos) → pointer-events:none
     para que el gesto horizontal se "pierda" (no haga scroll de
     los dedos). Pero los enlaces / botones internos siguen vivos: */
  html body .home-testimonials-viewport .testimonial-card,
  html body .home-testimonials-viewport .testimonial-left,
  html body .home-testimonials-viewport .testimonial-right,
  html body .home-testimonials-viewport .testimonial-logo,
  html body .home-testimonials-viewport .testimonial-quote,
  html body .home-testimonials-viewport .testimonial-meta,
  html body .home-testimonials-viewport .testimonial-name,
  html body .home-testimonials-viewport .testimonial-role,
  html body .home-testimonials-viewport span,
  html body .home-testimonials-viewport p,
  html body .home-testimonials-viewport h1,
  html body .home-testimonials-viewport h2,
  html body .home-testimonials-viewport h3,
  html body .home-testimonials-viewport h4,
  html body .home-testimonials-viewport h5,
  html body .home-testimonials-viewport h6,
  html body .home-testimonials-viewport li,
  html body .home-testimonials-viewport img {
    pointer-events: none !important;
  }
  html body .home-testimonials-viewport .testimonial-more-btn,
  html body .home-testimonials-viewport a,
  html body .home-testimonials-viewport button,
  html body .home-testimonials-viewport [role="button"],
  html body .home-testimonials-viewport [onclick],
  html body .home-testimonials-viewport [href] {
    pointer-events: auto !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  /* Track con padding lateral (aire para que las cards no toquen las flechas) */
  html body .home-testimonials-track {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    padding-left: 0.1rem !important;
    padding-right: 0.1rem !important;
    box-sizing: border-box !important;
    transition: none !important;
  }

  /* FLECHAS: estilo + área táctil + z-index MUY ALTO para que nunca
     queden tapadas y funcionen en mobile a la primera. */
  html body .home-testimonials-arrow,
  html body .home-testimonials-arrow--prev,
  html body .home-testimonials-arrow--next {
    display: inline-flex !important;
    display: flex !important;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    border-radius: 999px !important;
    border: 1.5px solid rgba(15, 23, 42, 0.14) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.18) !important;
    color: rgba(15, 23, 42, 0.9) !important;
    z-index: 999 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, opacity 0.2s ease !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
    /* ÁREA TÁCTIL EXTRA: iOS necesita ≥44x44, ampliamos a 52 + padding fantasma */
    touch-action: manipulation !important;
    pointer-events: auto !important;
    outline: none !important;
  }
  html body .home-testimonials-arrow--prev {
    left: -1.2rem !important;
  }
  html body .home-testimonials-arrow--next {
    right: -1.2rem !important;
  }
  html body .home-testimonials-arrow:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    background: rgba(255, 255, 255, 0.7) !important;
  }
  html body .home-testimonials-arrow:not(:disabled):active {
    transform: translateY(-50%) scale(0.92) !important;
  }
  html body .home-testimonials-arrow:focus,
  html body .home-testimonials-arrow:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(47, 92, 255, 0.25), 0 10px 26px rgba(15, 23, 42, 0.18) !important;
  }
  html body .home-testimonials-arrow svg,
  html body .home-testimonials-arrow span,
  html body .home-testimonials-arrow i,
  html body .home-testimonials-arrow img {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    stroke: currentColor !important;
    fill: none !important;
    stroke-width: 2.2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    color: inherit !important;
    pointer-events: none !important;
    display: block !important;
  }

  /* Controles inferiores: ocultar para no duplicar con flechas laterales */
  html body .home-testimonials-controls {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* ═══════════════════════════════════════════════════════════
     GARANTIZAR 5 CARDS VISIBLES / NAVEGABLES:
     - TODOS los slides wrapper .home-testimonials-slide pasan a
       display: contents (desenrollar). Ninguno se oculta.
     - TODAS las .testimonial-card (1 a 5, n≥4, etc.) son
       display:grid con flex:0 0 100%. Ninguna se recorta,
       ninguna tiene width:0 ni visibility:hidden.
     - Se neutraliza cualquier regla :nth-child(n+4), odd/even,
       last/first, etc. que hubiera podido ocultar cards 4/5.
     ═══════════════════════════════════════════════════════════ */
  html body .home-testimonials-slide,
  html body .home-testimonials-slide:nth-child(1),
  html body .home-testimonials-slide:nth-child(2),
  html body .home-testimonials-slide:nth-child(3),
  html body .home-testimonials-slide:nth-child(4),
  html body .home-testimonials-slide:nth-child(5),
  html body .home-testimonials-slide:nth-child(n+1),
  html body .home-testimonials-slide:nth-child(odd),
  html body .home-testimonials-slide:nth-child(even),
  html body .home-testimonials-slide:last-child,
  html body .home-testimonials-slide:first-child {
    display: contents !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    grid-template-columns: 1fr !important;
    flex: 0 0 auto !important;
    scroll-snap-align: none !important;
    position: static !important;
    transform: none !important;
  }

  /* Viewport: NUNCA recortar en altura. Por si algún overflow:hidden
     de una regla anterior estuviera matando cards 4-5. */
  html body .home-testimonials-viewport {
    max-height: none !important;
    height: auto !important;
    min-height: 0 !important;
    overflow-y: visible !important;
    /* Garantiza que el track tenga espacio real para crecer en horizontal */
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    /* 🔥 NO usar clip — hidden permite scroll programático */
    overflow-x: hidden !important;
  }
  html body .home-testimonials-track {
    max-height: none !important;
    height: auto !important;
    min-height: 0 !important;
    overflow-y: visible !important;
    overflow-x: visible !important;
    /* Track flex, HORIZONTAL, SIN WRAP: 5 cards = 5 slides seguidos. */
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-width: 100% !important;           /* como mínimo la pantalla, luego + slides */
    max-width: none !important;
    /* gap: 0 — el espacio LO METEMOS DENTRO del flex-basis para evitar
       desviaciones de cálculo entre navegadores */
    gap: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* ═══════════════════════════════════════════════════════════
     1 CARD = 1 SLIDE → 5 SLIDES exactos.
     Ajuste clave:
       flex: 0 0 calc(100% - 0.5rem)
          → 100% viewport MENOS 0.25rem izquierda + 0.25 derecha
             (márgenes horizontales de 0.25rem por cada card).
       El margen horizontal (0.25rem cada lado) se resta dentro
       del flex-basis para que NUNCA se produzca wrap o overflow
       que haga desaparecer las últimas.
     Resultado: 5 slides independientes, cada uno ocupa
     (viewport - aire), separadas visualmente y todas navegables.
     ═══════════════════════════════════════════════════════════ */
  html body .home-testimonials-track > .home-testimonials-slide > .testimonial-card,
  html body .home-testimonials-track .home-testimonials-slide .testimonial-card,
  html body .home-testimonials-track .testimonial-card,
  html body .home-testimonials-track .testimonial-card:nth-child(1),
  html body .home-testimonials-track .testimonial-card:nth-child(2),
  html body .home-testimonials-track .testimonial-card:nth-child(3),
  html body .home-testimonials-track .testimonial-card:nth-child(4),
  html body .home-testimonials-track .testimonial-card:nth-child(5),
  html body .home-testimonials-track .testimonial-card:nth-child(n+1),
  html body .home-testimonials-track .testimonial-card:nth-child(odd),
  html body .home-testimonials-track .testimonial-card:nth-child(even),
  html body .home-testimonials-track .testimonial-card:first-child,
  html body .home-testimonials-track .testimonial-card:last-child {
    /* Cada slide = 1 pantalla MENOS los márgenes laterales que se usan
       como separación visual. Así se ven separadas SIN desborde. */
    flex: 0 0 calc(100% - 0.5rem) !important;
    flex-basis: calc(100% - 0.5rem) !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    width: calc(100% - 0.5rem) !important;
    max-width: calc(100% - 0.5rem) !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    /* Aire separador ENTRE cards (NO gap global en el track) */
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    /* Scroll snap independiente por card */
    scroll-snap-align: start !important;
    scroll-snap-stop: normal !important;
    position: relative !important;
    transform: none !important;
    translate: none !important;
    padding: 1.55rem 1.7rem !important;
    box-sizing: border-box !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
    background: var(--white) !important;
    background-color: #ffffff !important;
    border-radius: 20px !important;
    box-shadow: 0 10px 34px rgba(15, 23, 42, 0.07) !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    pointer-events: auto !important;
    transition: none !important;
    animation: none !important;
    /* NUNCA se ocultan por selector de cantidad */
    clip: auto !important;
    clip-path: none !important;
    filter: none !important;
  }
  /* Por la naturaleza de display:contents, las cards realmente NO son
     directas del track — están debajo de cada slide (ahora "invisible").
     Añadimos regla extra para asegurar la separación: */
  html body .home-testimonials-slide + .home-testimonials-slide,
  html body .home-testimonials-slide:not(:first-child) {
    margin-left: 0 !important;
  }

  /* 🔥 ANULAR EXPLÍCITAMENTE cualquier "mostrar solo 3 slides"
     (selectores típicos que limitan). No solo vencemos por cascada,
     lo borramos a cada selector sospechoso. */
  html body .home-testimonials-track .testimonial-card:nth-child(n+4),
  html body .home-testimonials-track .testimonial-card:nth-child(4),
  html body .home-testimonials-track .testimonial-card:nth-child(5),
  html body .home-testimonials-slide:nth-child(n+3) .testimonial-card,
  html body .home-testimonials-slide:nth-child(3) .testimonial-card,
  html body .home-testimonials-slide:nth-child(3) .testimonial-card:nth-child(1),
  html body .home-testimonials-slide:last-child .testimonial-card,
  html body .home-testimonials-slide:nth-child(odd) .testimonial-card:nth-child(even),
  html body .home-testimonials-slide:nth-child(even) .testimonial-card:nth-child(odd) {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: calc(100% - 0.5rem) !important;
    flex: 0 0 calc(100% - 0.5rem) !important;
    max-width: calc(100% - 0.5rem) !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
    scroll-snap-align: start !important;
    position: relative !important;
    transform: none !important;
    pointer-events: auto !important;
    padding: 1.55rem 1.7rem !important;
  }

  /* Re-activar botón "ver más" + enlaces internos (pointer-events:auto
     porque arriba habíamos desactivado los no-interactivos) */
  html body .home-testimonials-track .testimonial-card .testimonial-more-btn,
  html body .home-testimonials-track .testimonial-card a,
  html body .home-testimonials-track .testimonial-card [href],
  html body .home-testimonials-track .testimonial-card [onclick],
  html body .home-testimonials-track .testimonial-card button {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   ESCUDO DE ESCRITORIO (≥1025px): restaurar comportamiento
   original de testimonios (swipe scroll activo, flechas
   absoutas sobre 100%, scroll visible por JS según defina).
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body .home-testimonials-shell {
    position: relative !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  html body .home-testimonials-viewport {
    overflow-x: auto !important;
    overflow-x: scroll !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: auto !important;
    overscroll-behavior-x: auto !important;
    -ms-overflow-style: auto !important;
    scrollbar-width: none !important;
  }
  html body .home-testimonials-viewport::-webkit-scrollbar {
    display: none !important;
  }
  html body .home-testimonials-track {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  html body .home-testimonials-arrow {
    display: flex !important;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(15, 23, 42, 0.12) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(10px) !important;
    align-items: center !important;
    justify-content: center !important;
    color: rgba(90, 89, 85, 0.9) !important;
    z-index: 2 !important;
    opacity: 1 !important;
    visibility: visible !important;
    left: auto !important;
    right: auto !important;
  }
  html body .home-testimonials-arrow--prev { left: 0 !important; }
  html body .home-testimonials-arrow--next { right: 0 !important; }
  html body .home-testimonials-arrow:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
  }
  html body .home-testimonials-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 1.75rem !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    overflow: visible !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   MÉTRICAS — BLOQUE FINAL (ALTA ESPECIFICIDAD)
   ═══════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────
   @keyframes metricasPair_v4
   Representa UN SOLO slot de 4s = 12.5% del ciclo de 32s.
   CORRECCIÓN CLAVE (antes 0% invisible → "ni se ve en mobile"):
     • 0%   = VISIBLE (para que en t=0 aparezca pareja 1-2)
     • 0%..10.4% VISIBLE (3.33s de los 4s)
     • 10.4%..12.49% FADE-OUT (0.67s)
     • 12.501%..99.99% INVIS + reset translateY(14px)
     • 100% = VISIBLE (== 0% → loop cerrado sin salto)
   Resuelve "no funciona / primeros datos se ven bien, luego no"
   porque los cambios de visibilidad son instantáneos y la
   interpolación en Safari no pierde frames.
   ─────────────────────────────────────────────────────────── */
@keyframes metricasPair_v4 {
  0% {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  10.4% {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  12.49% {
    opacity: 0;
    visibility: visible;
    transform: translateY(-10px);
  }
  12.501% {
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
  }
  99.99% {
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
  }
  100% {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

/* ───────────────────────────────────────────────────────────
   MOBILE ≤1024px: 2 ITEMS POR PANTALLA, rotando 8 parejas × 4s
   Estructura:
     • metrics-track = grid 1fr 1fr. Items 1 y 2 (ghost, static)
       definen la altura visual. Items 3..16 (absolute) rotan
       sobre esas 2 celdas.
     • overflow: clip para no ver desbordes al reposicionar.
   Todos los selectores usan "html body #metricas" para ganar
   especificidad y vencer cualquier MQ del archivo.
   ─────────────────────────────────────────────────────────── */
/* 🔴 BLOQUE ANULADO — la estructura nueva de wrappers ".metrics-pair >
   .metric-slot > .metric-item" (front-page.php) ya NO usa ".metric-item"
   como hijo directo de .metrics-track. Este bloque se deja como referencia
   pero NO aplica a los wrappers nuevos, evitando conflictos/superposiciones.
   Las reglas vivas para mobile están en el BLOQUE ABSOLUTO del final del
   archivo (selector #metricsTrack + #metricsTrack > .metrics-pair...). */
/*
@media (max-width: 1024px) {
  html body #metricas {
    overflow: hidden !important;
    padding: 2.1rem 0 2.3rem !important;
    position: relative !important;
    z-index: 30 !important;
  }
  html body #metricas .container,
  html body #metricas > .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 1.15rem !important;
    padding-right: 1.15rem !important;
    margin: 0 auto !important;
  }
  html body #metricas .metrics-track,
  html body #metricas > .container .metrics-track {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto !important;
    gap: 1.1rem 1.05rem !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0.3rem 0 0.4rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: clip !important;
    animation: none !important;
    animation-name: none !important;
    -webkit-animation: none !important;
    transform: none !important;
    translate: none !important;
    will-change: auto !important;
    isolation: isolate !important;
    background: transparent !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    grid-auto-flow: row !important;
    align-content: stretch !important;
  }
  html body #metricas .metrics-track .metric-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0.22rem !important;
    padding: 0.95rem 1rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border-radius: 18px !important;
    color: #ffffff !important;
    flex: 0 0 auto !important;
    white-space: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
    text-align: left !important;
    pointer-events: none !important;
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: clip !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    will-change: opacity, visibility, transform;
  }
  html body #metricas .metrics-track .metric-item .metric-num {
    font-family: var(--font-display) !important;
    font-size: clamp(1.65rem, 6vw, 2.25rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 0.12rem 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }
  html body #metricas .metrics-track .metric-item .metric-label {
    font-family: var(--font-body) !important;
    font-size: clamp(0.82rem, 3.6vw, 1rem) !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    color: rgba(255, 255, 255, 0.92) !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    white-space: normal !important;
    word-break: normal !important;
    text-align: left !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(1),
  html body #metricas .metrics-track .metric-item:nth-child(2) {
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 6.3rem !important;
    height: auto !important;
    animation: metricasPair_v4 32s linear infinite !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
    animation-delay: 0s !important;
    animation-timing-function: linear !important;
    -webkit-animation: metricasPair_v4 32s linear infinite !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-fill-mode: both !important;
    -webkit-animation-delay: 0s !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(1) { grid-column: 1 !important; }
  html body #metricas .metrics-track .metric-item:nth-child(2) { grid-column: 2 !important; }
  html body #metricas .metrics-track .metric-item:nth-child(n+3) {
    position: absolute !important;
    top: 0.3rem !important;
    bottom: 0.4rem !important;
    width: calc(50% - 0.525rem) !important;
    max-width: calc(50% - 0.525rem) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    animation: metricasPair_v4 32s linear infinite !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
    animation-timing-function: linear !important;
    -webkit-animation: metricasPair_v4 32s linear infinite !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-fill-mode: both !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(3) { left: 0 !important;  animation-delay: -4s !important;  -webkit-animation-delay: -4s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(4) { right: 0 !important; animation-delay: -4s !important;  -webkit-animation-delay: -4s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(5) { left: 0 !important;  animation-delay: -8s !important;  -webkit-animation-delay: -8s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(6) { right: 0 !important; animation-delay: -8s !important;  -webkit-animation-delay: -8s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(7) { left: 0 !important;  animation-delay: -12s !important; -webkit-animation-delay: -12s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(8) { right: 0 !important; animation-delay: -12s !important; -webkit-animation-delay: -12s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(9)  { left: 0 !important; animation-delay: -16s !important; -webkit-animation-delay: -16s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(10) { right: 0 !important; animation-delay: -16s !important; -webkit-animation-delay: -16s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(11) { left: 0 !important; animation-delay: -20s !important; -webkit-animation-delay: -20s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(12) { right: 0 !important; animation-delay: -20s !important; -webkit-animation-delay: -20s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(13) { left: 0 !important; animation-delay: -24s !important; -webkit-animation-delay: -24s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(14) { right: 0 !important; animation-delay: -24s !important; -webkit-animation-delay: -24s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(15) { left: 0 !important; animation-delay: -28s !important; -webkit-animation-delay: -28s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(16) { right: 0 !important; animation-delay: -28s !important; -webkit-animation-delay: -28s !important; }
  html body #metricas .metrics-track .metric-item:nth-child(1n+17) {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
  }
}
*/

/* ═══════════════════════════════════════════════════════════
   ESCUDO DESKTOP ≥1025px: MANTENER MARQUESINA scrollTrack.
   NADA de grid, NADA de absolute, NADA de animation-delay.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body #metricas {
    overflow: hidden !important;
    padding: 2.5rem 0 !important;
    position: relative !important;
    z-index: 30 !important;
  }
  html body #metricas .metrics-track,
  html body #metricas > .container .metrics-track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 0 !important;      /* el HTML ya trae 8+8 items duplicados → max-content = ancho exacto, NO se fuerza 2x viewport que rompe el -50% */
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    /* MARQUESINA ORIGINAL */
    animation: scrollTrack 30s linear infinite !important;
    animation-name: scrollTrack !important;
    animation-duration: 30s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: none !important;
    animation-delay: 0s !important;
    animation-direction: normal !important;
    -webkit-animation: scrollTrack 30s linear infinite !important;
    /* NO transform/translate none aquí — la animación scrollTrack necesita transform */
    isolation: auto !important;
    will-change: transform !important;
    background: transparent !important;
  }

  html body #metricas .metrics-track .metric-item {
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1rem !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 2.25rem !important;
    margin: 0 !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
    border-radius: 0 !important;
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
    border: 0 !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    animation-name: none !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    animation-fill-mode: none !important;
    will-change: auto !important;
    overflow: visible !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(n+3) {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    animation: none !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(1),
  html body #metricas .metrics-track .metric-item:nth-child(2),
  html body #metricas .metrics-track .metric-item:nth-child(3),
  html body #metricas .metrics-track .metric-item:nth-child(4),
  html body #metricas .metrics-track .metric-item:nth-child(5),
  html body #metricas .metrics-track .metric-item:nth-child(6),
  html body #metricas .metrics-track .metric-item:nth-child(7),
  html body #metricas .metrics-track .metric-item:nth-child(8),
  html body #metricas .metrics-track .metric-item:nth-child(9),
  html body #metricas .metrics-track .metric-item:nth-child(10),
  html body #metricas .metrics-track .metric-item:nth-child(11),
  html body #metricas .metrics-track .metric-item:nth-child(12),
  html body #metricas .metrics-track .metric-item:nth-child(13),
  html body #metricas .metrics-track .metric-item:nth-child(14),
  html body #metricas .metrics-track .metric-item:nth-child(15),
  html body #metricas .metrics-track .metric-item:nth-child(16) {
    grid-column: auto !important;
    grid-row: auto !important;
    animation: none !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    width: auto !important;
    position: static !important;
  }
  html body #metricas .metrics-track .metric-item:nth-child(1n+17) {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static !important;
    animation: none !important;
  }

  /* Tipografía desktop — inline, nowrap (marquesina 1-línea) */
  html body #metricas .metrics-track .metric-item .metric-num {
    font-family: var(--font-display) !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--white, #fff) !important;
    letter-spacing: -0.01em !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    line-height: 1.1 !important;
    display: inline !important;
    white-space: nowrap !important;
  }
  html body #metricas .metrics-track .metric-item .metric-label {
    font-family: var(--font-body) !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    color: var(--white, #fff) !important;
    letter-spacing: 0 !important;
    line-height: 1.1 !important;
    margin: 0 0 0 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap !important;
    text-align: left !important;
    display: inline !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   KEYFRAME FINAL scrollTrack (DESKTOP MARQUESINA)
   Versión multi-línea, con -webkit-, para máxima compatibilidad
   Safari / Chrome / FF. Asegura loop infinito de 0 → -50%.
   ═══════════════════════════════════════════════════════════ */
@-webkit-keyframes scrollTrack {
  0%   { -webkit-transform: translateX(0);   transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}
@keyframes scrollTrack {
  0%   { -webkit-transform: translateX(0);   transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}

/* ═══════════════════════════════════════════════════════════
   GARANTÍA FINAL DESKTOP — MARQUESINA MÉTRICAS ACTIVA
   Máxima especificidad, después de TODO. Nada la detiene.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body section#metricas {
    overflow: hidden !important;
  }
  html body section#metricas div.metrics-track#metricsTrack,
  html body section#metricas > div.metrics-track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 0 !important;          /* NO forzar 200% — HTML ya trae items duplicados */
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    overflow: visible !important;
    /* NO transform/translate none aquí — la animación scrollTrack necesita transform */
    will-change: transform !important;
    isolation: auto !important;

    animation-name: scrollTrack !important;
    animation-duration: 30s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-direction: normal !important;
    animation-fill-mode: none !important;
    animation-play-state: running !important;
    animation-delay: 0s !important;

    -webkit-animation-name: scrollTrack !important;
    -webkit-animation-duration: 30s !important;
    -webkit-animation-timing-function: linear !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-direction: normal !important;
    -webkit-animation-fill-mode: none !important;
    -webkit-animation-play-state: running !important;
    -webkit-animation-delay: 0s !important;
  }

  /* Resetear CUALQUIER animación de los items individuales en desktop —
     la marquesina la lleva el TRACK, NO cada item */
  html body section#metricas div.metrics-track#metricsTrack > div.metric-item,
  html body section#metricas > div.metrics-track > div.metric-item {
    position: static !important;
    inset: auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0 2.25rem !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1rem !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;

    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;

    animation: none !important;
    animation-name: none !important;
    animation-duration: 0s !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    animation-fill-mode: none !important;
    animation-play-state: running !important;

    -webkit-animation: none !important;
    -webkit-animation-name: none !important;
  }
}

/* Accesibilidad: solo si el usuario pide expresamente reduce-motion,
   paramos la marquesina y mostramos scroll horizontal */
@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
  html body section#metricas div.metrics-track#metricsTrack {
    animation: none !important;
    -webkit-animation: none !important;
    overflow-x: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   MÉTRICAS — BLOQUE ABSOLUTO (FINAL DEL ARCHIVO).
   NO depende de media queries para desktop (default = escritorio activo).
   Mobile (≤1024px) anula explícitamente y activa rotación 2×2.
   Selector por ID (#metricsTrack) para máxima especificidad.
   ════════════════════════════════════════════════════════════════════════ */

/* ── 1) ESTADO POR DEFECTO = MARQUESINA DESKTOP (sin media query) ─────── */
section#metricas {
  overflow: hidden !important;
}
#metricsTrack {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  position: relative !important;
  overflow: visible !important;
  /* NO transform/translate none aquí — la animación scrollTrack necesita transform */
  background: transparent !important;
  will-change: transform !important;
  animation: scrollTrack 30s linear infinite !important;
  animation-name: scrollTrack !important;
  animation-duration: 30s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
  animation-fill-mode: none !important;
  animation-delay: 0s !important;
  animation-play-state: running !important;
  -webkit-animation: scrollTrack 30s linear infinite !important;
  -webkit-animation-name: scrollTrack !important;
  -webkit-animation-duration: 30s !important;
  -webkit-animation-timing-function: linear !important;
  -webkit-animation-iteration-count: infinite !important;
  -webkit-animation-direction: normal !important;
  -webkit-animation-fill-mode: none !important;
  -webkit-animation-delay: 0s !important;
  -webkit-animation-play-state: running !important;
}
/* Desktop: cada pareja se "desarma" a display:contents para que los items
   se integren al flex horizontal de la marquesina sin wrappers. */
#metricsTrack > .metrics-pair {
  display: contents !important;
}
#metricsTrack > .metrics-pair > .metric-slot {
  display: contents !important;
}
#metricsTrack .metric-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 1rem !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  padding: 0 2.25rem !important;
  margin: 0 !important;
  position: static !important;
  inset: auto !important;
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  white-space: nowrap !important;
  line-height: 1.1 !important;
  text-align: left !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-sizing: border-box !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  translate: none !important;
  animation: none !important;
  animation-name: none !important;
  animation-delay: 0s !important;
  animation-iteration-count: 1 !important;
  animation-fill-mode: none !important;
  animation-play-state: running !important;
  will-change: auto !important;
  overflow: visible !important;
}
#metricsTrack .metric-item > .metric-num {
  display: inline !important;
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
}
#metricsTrack .metric-item > .metric-label {
  display: inline !important;
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
}

/* ── 2) SEGUNDA CAPA DE GARANTÍA DESKTOP (≥1025px) por si un MQ anterior anuló ── */
@media (min-width: 1025px) {
  section#metricas {
    overflow: hidden !important;
  }
  #metricsTrack {
    display: flex !important;
    flex-direction: row !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 0 !important;
    animation: scrollTrack 30s linear infinite !important;
    animation-play-state: running !important;
    /* NO transform/translate none aquí — la animación scrollTrack necesita transform */
    will-change: transform !important;
    -webkit-animation: scrollTrack 30s linear infinite !important;
    -webkit-animation-play-state: running !important;
  }
  #metricsTrack > .metrics-pair {
    display: contents !important;
  }
  #metricsTrack > .metrics-pair > .metric-slot {
    display: contents !important;
  }
  #metricsTrack .metric-item {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    padding: 0 2.25rem !important;
    animation: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    flex-direction: row !important;
  }
}

/* ── 3) MOBILE (≤1024px): ANULA MARQUESINA, ACTIVA ROTACIÓN 2×2 POR PAREJAS ───────── */
@media (max-width: 1024px) {
  section#metricas {
    overflow: hidden !important;
    padding: 0.3rem 1.15rem 0.4rem 1.15rem !important;
    box-sizing: border-box !important;
  }
  #metricsTrack {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 6.5rem !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: clip !important;
    overflow-x: clip !important;
    overflow-y: clip !important;
    animation: none !important;
    animation-name: none !important;
    -webkit-animation: none !important;
    -webkit-animation-name: none !important;
    transform: none !important;
    translate: none !important;
    will-change: auto !important;
    isolation: isolate !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 0 !important;
    grid-auto-flow: row !important;
    align-content: stretch !important;
  }

  /* Mobile: TODAS las parejas son grid 2 col y ESTÁN SUPERPUESTAS (absolute full-size).
     La primera pareja (pair-1 / pair-static) define el min-height visual porque
     también lleva position: relative momentáneamente; en realidad todas son absolute
     y el #metricsTrack lleva min-height 6.5rem para no colapsar. */
  #metricsTrack > .metrics-pair {
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 1fr !important;
    gap: 0.75rem 0.95rem !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 6.5rem !important;
    height: 100% !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    align-content: center !important;
    align-items: center !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    will-change: opacity, visibility, transform;
    animation: metricasPair_v4 32s linear infinite !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
    animation-timing-function: linear !important;
    -webkit-animation: metricasPair_v4 32s linear infinite !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-fill-mode: both !important;
    pointer-events: none !important;
  }
  #metricsTrack > .metrics-pair-static,
  #metricsTrack > .metrics-pair-1 {
    /* Pair 1 también absolute (igual que el resto). La altura del #metricsTrack
       la da su min-height: 6.5rem, así NO depende de que un wrapper sea static. */
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 6.5rem !important;
    height: 100% !important;
    max-height: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 1fr !important;
    align-content: center !important;
    align-items: center !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    gap: 0.75rem 0.95rem !important;
    animation-delay: 0s !important;
    -webkit-animation-delay: 0s !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
  }
  #metricsTrack > .metrics-pair-abs {
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    pointer-events: none !important;
  }
  /* Delays negativos para cada pareja (8 parejas × 4s = 32s loop).
     pair-1  0s..4s   visible; pair-2  4s..8s  visible; ... pair-8  28s..32s visible. */
  #metricsTrack > .metrics-pair-1 { animation-delay: 0s    !important; -webkit-animation-delay: 0s    !important; }
  #metricsTrack > .metrics-pair-2 { animation-delay: -4s   !important; -webkit-animation-delay: -4s   !important; }
  #metricsTrack > .metrics-pair-3 { animation-delay: -8s   !important; -webkit-animation-delay: -8s   !important; }
  #metricsTrack > .metrics-pair-4 { animation-delay: -12s  !important; -webkit-animation-delay: -12s  !important; }
  #metricsTrack > .metrics-pair-5 { animation-delay: -16s  !important; -webkit-animation-delay: -16s  !important; }
  #metricsTrack > .metrics-pair-6 { animation-delay: -20s  !important; -webkit-animation-delay: -20s  !important; }
  #metricsTrack > .metrics-pair-7 { animation-delay: -24s  !important; -webkit-animation-delay: -24s  !important; }
  #metricsTrack > .metrics-pair-8 { animation-delay: -28s  !important; -webkit-animation-delay: -28s  !important; }

  /* Slots: cada slot ocupa una columna, y CENTRAN su contenido
     VERTICAL + HORIZONTALMENTE. */
  #metricsTrack > .metrics-pair > .metric-slot {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    text-align: center !important;
  }
  #metricsTrack > .metrics-pair > .metric-slot-left {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  #metricsTrack > .metrics-pair > .metric-slot-right {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  /* Base común items: transparente, sin borde, texto blanco CENTRADO sobre gradiente */
  #metricsTrack > .metrics-pair > .metric-slot > .metric-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.3rem !important;
    padding: 0.3rem 0.2rem !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    white-space: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
    text-align: center !important;
    pointer-events: none !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    animation-name: none !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    animation-fill-mode: none !important;
    animation-play-state: running !important;
    will-change: auto !important;
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
  }
  #metricsTrack > .metrics-pair > .metric-slot > .metric-item > .metric-num {
    font-size: clamp(1.65rem, 6vw, 2.25rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 0.12rem 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    white-space: nowrap !important;
    word-break: normal !important;
    text-align: center !important;
  }
  #metricsTrack > .metrics-pair > .metric-slot > .metric-item > .metric-label {
    font-size: clamp(0.82rem, 3.6vw, 1rem) !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    color: rgba(255, 255, 255, 0.92) !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    white-space: normal !important;
    word-break: normal !important;
    text-align: center !important;
  }

  /* Clean up: por si quedan items antiguos con clase .metric-item
     fuera de .metric-slot (evitar superposiciones). */
  #metricsTrack > .metric-item {
    display: none !important;
  }
}

/* ─── MOBILE: home-uruguay-header SIN FONDO / SIN RECUADRO, texto AZUL ─── */
@media (max-width: 1024px) {
  html body .home-uruguay-header.reveal.visible,
  html body .home-uruguay-header {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    padding: 0 !important;
    margin: 0 0 1.75rem 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
    border-color: transparent !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
  }
  html body .home-uruguay-header.reveal.visible::before,
  html body .home-uruguay-header.reveal.visible::after,
  html body .home-uruguay-header::before,
  html body .home-uruguay-header::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }
  html body .home-uruguay-header .section-label,
  html body .home-uruguay-header .section-title,
  html body .home-uruguay-header .section-title em,
  html body .home-uruguay-header > .section-label,
  html body .home-uruguay-header > .section-title,
  html body .home-uruguay-header h2,
  html body .home-uruguay-header h3,
  html body .home-uruguay-header p,
  html body .home-uruguay-header span,
  html body .home-uruguay-header strong {
    color: #0055BA !important;
    -webkit-text-fill-color: #0055BA !important;
    margin-top: 1.65rem !important;
  }
  html body .home-uruguay-header > .section-label,
  html body .home-uruguay-header .section-label {
    margin-top: 0.5rem !important;
  }
  html body .home-uruguay-header > .section-label + .section-title,
  html body .home-uruguay-header .section-label + .section-title {
    margin-top: 0.85rem !important;
  }
  html body .home-uruguay-header > .section-title,
  html body .home-uruguay-header .section-title {
    margin-top: 1.25rem !important;
  }
  html body .home-uruguay-header > p,
  html body .home-uruguay-header p,
  html body .home-uruguay-header > h2,
  html body .home-uruguay-header > h3 {
    margin-top: 1.1rem !important;
  }
  html body .home-uruguay-header .section-label::before,
  html body .home-uruguay-header > .section-label::before {
    background: #0055BA !important;
  }
  html body .home-uruguay-header .section-title {
    color: #0055BA !important;
    -webkit-text-fill-color: #0055BA !important;
    margin-top: 1.25rem !important;
  }
  html body .home-uruguay-header .section-title em {
    color: #18AAEC !important;
    -webkit-text-fill-color: #18AAEC !important;
    font-style: normal !important;
    margin-top: 0.4rem !important;
  }

  /* ─── MOBILE: home-uruguay-card --compact MUY compacta verticalmente ─── */
  html body .home-uruguay-card.home-uruguay-card--compact.reveal.visible,
  html body .home-uruguay-card.home-uruguay-card--compact {
    min-height: 0 !important;
    height: auto !important;
    padding: 0.9rem 0.95rem 0.95rem !important;
    border-radius: 20px !important;
    margin-top: 0 !important;
    gap: 0 !important;
    box-shadow: 0 10px 26px rgba(0, 85, 186, 0.08) !important;
    transition: transform 280ms cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 280ms cubic-bezier(0.2, 0.9, 0.2, 1), border-color 280ms cubic-bezier(0.2, 0.9, 0.2, 1) !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-num {
    top: 0.45rem !important;
    right: 0.55rem !important;
    font-size: clamp(2.1rem, 4vw, 3rem) !important;
    line-height: 0.9 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-card-body {
    padding-top: 0.95rem !important;
    gap: 0.45rem !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-card-body::before {
    width: 40px !important;
    height: 3px !important;
    border-radius: 999px !important;
    margin-bottom: 0.1rem !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-title {
    font-size: 0.98rem !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
    font-weight: 800 !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-desc {
    font-size: 0.84rem !important;
    line-height: 1.42 !important;
    font-weight: 600 !important;
    color: var(--gray-600) !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-link {
    margin-top: 0.3rem !important;
    padding: 0.38rem 0.82rem !important;
    font-size: 0.76rem !important;
    line-height: 1.1 !important;
    border-radius: 999px !important;
    gap: 0.28rem !important;
  }
}

@media (max-width: 768px) {
  /* Mobile celular chico: todavía más compacta */
  html body .home-uruguay-card.home-uruguay-card--compact.reveal.visible,
  html body .home-uruguay-card.home-uruguay-card--compact {
    padding: 0.78rem 0.82rem 0.88rem !important;
    border-radius: 18px !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-num {
    top: 0.38rem !important;
    right: 0.5rem !important;
    font-size: clamp(1.9rem, 3.7vw, 2.6rem) !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-card-body {
    padding-top: 0.75rem !important;
    gap: 0.38rem !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-title {
    font-size: 0.92rem !important;
    line-height: 1.18 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-desc {
    font-size: 0.8rem !important;
    line-height: 1.4 !important;
  }
  html body .home-uruguay-card.home-uruguay-card--compact .home-uruguay-link {
    margin-top: 0.22rem !important;
    padding: 0.34rem 0.76rem !important;
    font-size: 0.72rem !important;
  }
  html body section.home-uruguay-section > div.container > div.home-uruguay-grid {
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
  }
  html body section#home-uruguay.home-uruguay-section,
  html body section.home-uruguay-section#home-uruguay,
  html body #home-uruguay.home-uruguay-section,
  html body .home-uruguay-section {
    background: #ffffff !important;
    background-image: none !important;
    background-color: #ffffff !important;
  }
}

/* ─────────────────────────────────────────────────────────
   FIX NAVBAR MOBILE — [NEUTRALIZADO]
   La navegación completa (tokens CSS · desktop hover/teclado ·
   tablet/mobile drawer acordeón) vive ahora en el bloque
   #navbar principal (líneas 154–968 aprox.), basado en variables
   CSS sin !important. Este bloque legacy se deja vacío para
   preservar la posición relativa del bloque siguiente
   (GARANTÍA FINAL: MÉTRICAS CARRUSEL EN DESKTOP ≥1025px).
   ───────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  /* — sin reglas activas: gestionado por el bloque #navbar superior — */
}

@media (max-width: 768px) {
  /* — sin reglas activas: gestionado por el bloque #navbar superior — */
}

@media (min-width: 1025px) {
  /* — sin reglas activas: gestionado por el bloque #navbar superior — */
}

/* ═══════════════════════════════════════════════════════════
   GARANTÍA FINAL: MÉTRICAS CARRUSEL EN DESKTOP ≥1025px
   Máxima especificidad. Loop infinito desplazándose izquierda.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  html body section#metricas {
    overflow: hidden !important;
    position: relative !important;
  }
  html body section#metricas div#metricsTrack.metrics-track,
  html body section#metricas > div.metrics-track,
  html body #metricas .metrics-track#metricsTrack {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 0 !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    overflow: visible !important;
    /* NO transform/translate none aquí — la animación scrollTrack necesita transform */
    will-change: transform !important;
    isolation: auto !important;

    animation-name: scrollTrack !important;
    animation-duration: 30s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-direction: normal !important;
    animation-fill-mode: none !important;
    animation-play-state: running !important;
    animation-delay: 0s !important;

    -webkit-animation-name: scrollTrack !important;
    -webkit-animation-duration: 30s !important;
    -webkit-animation-timing-function: linear !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-direction: normal !important;
    -webkit-animation-fill-mode: none !important;
    -webkit-animation-play-state: running !important;
    -webkit-animation-delay: 0s !important;
  }
  html body section#metricas:hover div#metricsTrack.metrics-track,
  html body #metricas:hover .metrics-track#metricsTrack {
    animation-play-state: paused !important;
    -webkit-animation-play-state: paused !important;
  }
  html body section#metricas div#metricsTrack.metrics-track > .metrics-pair,
  html body #metricas .metrics-track#metricsTrack > .metrics-pair {
    display: contents !important;
  }
  html body section#metricas div#metricsTrack.metrics-track > .metrics-pair > .metric-slot,
  html body #metricas .metrics-track#metricsTrack > .metrics-pair > .metric-slot {
    display: contents !important;
  }
  html body section#metricas div#metricsTrack.metrics-track .metric-item,
  html body #metricas .metrics-track#metricsTrack .metric-item {
    position: static !important;
    inset: auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0 2.25rem !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1rem !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    animation-name: none !important;
    -webkit-animation: none !important;
    -webkit-animation-name: none !important;
  }
  html body section#metricas div#metricsTrack.metrics-track .metric-item .metric-num,
  html body #metricas .metrics-track#metricsTrack .metric-item .metric-num {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap !important;
    color: #fff !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
  }
  html body section#metricas div#metricsTrack.metrics-track .metric-item .metric-label,
  html body #metricas .metrics-track#metricsTrack .metric-item .metric-label {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    white-space: nowrap !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
  }
}

@-webkit-keyframes scrollTrack {
  0%   { -webkit-transform: translateX(0);   transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}
@keyframes scrollTrack {
  0%   { -webkit-transform: translateX(0);   transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}

/* ============================================================
   SOLUCIONES: LOGOS EN CARDS → TAMAÑO UNIFORME + CENTRADOS
   Logos que afecta:
     - card DoMUS     : label--logo > proof-logo-link (domus.png)
     - card GROPP     : label       > proof-logo-link (gropp.png)
     - card ERP & CRM : brand-stack (Dynamics / Salesforce / Odoo / Nodum)
   ============================================================ */
/* 1) Contenedores label: obligar a centrar logo horizontalmente */
html body #soluciones-empresariales .ai-solution-card .ai-solution-card-label,
html body #soluciones-empresariales .ai-solution-card .ai-solution-card-label--logo {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
/* Head del card DoMUS (head--brand = title + label): label alineado al centro */
html body #soluciones-empresariales .ai-solution-card--domus .ai-solution-card-head--brand {
  align-items: center !important;
  text-align: center !important;
}
/* 2) Link contenedor proof-logo-link (DoMUS / GROPP): flex centrado */
html body #soluciones-empresariales .ai-solution-card .ai-solution-proof-logo-link {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* 3) TAMAÑO UNIFORME logos cards: altura 42px, ancho auto max 170px */
html body #soluciones-empresariales .ai-solution-card .ai-solution-proof-logo-link img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-card-label img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-card-label--logo img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-stack img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-list--brands img {
  display: block !important;
  height: 42px !important;
  max-height: 42px !important;
  min-height: 40px !important;
  width: auto !important;
  max-width: 170px !important;
  object-fit: contain !important;
  -o-object-fit: contain !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* Override inline style Nodum width:100px (page.php L552) */
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-stack img[style*="width"] {
  width: auto !important;
}
/* 4) Brand-stack (ERP & CRM) centrado dentro de cada ítem de lista */
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-list-item {
  align-items: center !important;
}
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-stack {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* 5) Anular nth-child desproporcionados (Salesforce 62px, Nodum 88px) */
html body #soluciones-empresariales .ai-solution-card .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(1) .ai-solution-brand-stack img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(2) .ai-solution-brand-stack img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(3) .ai-solution-brand-stack img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-list--brands .ai-solution-brand-list-item:nth-child(4) .ai-solution-brand-stack img,
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-stack img[alt="Dell"],
html body #soluciones-empresariales .ai-solution-card .ai-solution-brand-stack img[alt="VMware"] {
  height: 42px !important;
  max-height: 42px !important;
  min-height: 40px !important;
  max-width: 170px !important;
  width: auto !important;
}
/* Fin normalización logos cards Soluciones */

/* ============================================================
   SOLUCIONES: TÍTULOS DE CARDS → ALINEADOS AL CENTRO
   Cards dentro de #soluciones-empresariales (DoMUS, Software, ERP, GROPP)
   ============================================================ */
html body #soluciones-empresariales .ai-solution-card .ai-solution-card-title,
html body #soluciones-empresariales .ai-solution-card--business .ai-solution-card-title,
html body #soluciones-empresariales .ai-solution-card--domus .ai-solution-card-title,
html body #soluciones-empresariales .ai-solution-card--erp .ai-solution-card-title,
html body #soluciones-empresariales .ai-solution-card--software .ai-solution-card-title,
html body #soluciones-empresariales .ai-solution-card--gropp .ai-solution-card-title {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  -webkit-hyphens: manual !important;
          hyphens: manual !important;
}
/* Dentro del head--brand (card DoMUS), el título tiene max-width 30rem por defecto
   → quitamos el cierre a la izquierda para que quede centrado real */
html body #soluciones-empresariales .ai-solution-card--domus .ai-solution-card-title {
  max-width: none !important;
}
/* Fin centrado títulos cards Soluciones */

/* ============================================================
   SOLUCIONES MOBILE: nunca cortar palabras en títulos
   y desactivar la composición por caracteres para que
   el navegador pueda envolver el texto correctamente.
   ============================================================ */
@media (max-width: 1024px) {
  html body .ai-solution-section .section-title,
  html body .ai-solution-section .ai-solution-title,
  html body .ai-solution-section .ai-solution-card-title,
  html body #nuestras-soluciones .section-title,
  html body #soluciones .section-title,
  html body #erps-crms .section-title {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    text-wrap: pretty !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
  }

  html body .ai-solution-section .section-title.typewriter .tw-char,
  html body #nuestras-soluciones .section-title.typewriter .tw-char,
  html body #soluciones .section-title.typewriter .tw-char,
  html body #erps-crms .section-title.typewriter .tw-char {
    display: inline !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    will-change: auto !important;
  }
}

@media (max-width: 1024px) {
  html body .ai-solution-grid,
  html body .ai-solution-service-grid,
  html body #soluciones-empresariales .ai-solution-grid--business,
  html body #servicios-gestionados-soporte .ai-solution-service-grid--managed-support {
    grid-template-columns: 1fr !important;
  }

  html body #soluciones-empresariales .ai-solution-grid--business {
    grid-template-areas:
      "domus"
      "software"
      "erp"
      "gropp" !important;
  }
}

/* ============================================================
   REDUCCIÓN LOGO .ai-solution-proof-hero (webCircular.png)
   — MÁS PEQUEÑO, SIN RECORTE, MARGEN DERECHO en desktop.
   ============================================================ */
/* Base: SIN RECORTE — todo el círculo visible siempre */
html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media img {
  object-fit: contain !important;
  -o-object-fit: contain !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: 6px !important;
  box-sizing: border-box !important;
}
/* Contenedor: aspect-ratio 1/1 para que sea siempre cuadrado,
   así el círculo (que es 1:1) nunca se recorta.
   Margen derecho suave para respirar respecto al texto (desktop). */
html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media {
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-right: 0.9rem !important;
}

/* DESKTOP (≥1025px) — achicado moderado + margen derecho más marcado */
@media (min-width: 1025px) {
  html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media {
    max-width: 260px !important;
    margin-right: 1.4rem !important;
  }
}

/* TABLETS (≤1024px ≥769px) */
@media (max-width: 1024px) and (min-width: 769px) {
  html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media {
    max-width: 190px !important;
    width: 190px !important;
    justify-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 20px !important;
  }
}

/* MOBILE GRANDE (≤768px ≥481px) — MUY pequeño + sin recorte */
@media (max-width: 768px) and (min-width: 481px) {
  html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media {
    max-width: 145px !important;
    width: 145px !important;
    justify-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 16px !important;
  }
}

/* MOBILE CHICO (≤480px) — EXTREMADAMENTE pequeño */
@media (max-width: 480px) {
  html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media {
    max-width: 118px !important;
    width: 118px !important;
    justify-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 14px !important;
  }
  html body #servicios-industriales .ai-solution-proof-hero .ai-solution-proof-media img {
    padding: 4px !important;
  }
}
/* Fin reducción logo proof-hero MÁS PEQUEÑO SIN RECORTE + MARGEN DERECHO */

/* ═══════════════════════════════════════════════════════════
   GARANTÍA FINAL: NAVBAR MEGA / SUBMENÚ — SIN SALTOS DE LÍNEA
   Máxima especificidad (html body #navbar) + !important.
   Gana a cualquier regla inline, plugin de WordPress o regla
   base del navegador.
   Aplica globalmente (desktop y mobile drawer), ya que el
   usuario prohíbe terminantemente saltos de línea tempranos
   en textos de menú / mega / submenú.
   ═══════════════════════════════════════════════════════════ */
html body #navbar .nav-submenu a,
html body #navbar .nav-mega__title,
html body #navbar .nav-mega__cta,
html body #navbar .nav-mega__card-title,
html body #navbar .nav-mega__card-title--nowrap,
html body #navbar .nav-mega__card p,
html body #navbar .nav-mega__card span,
html body #navbar .nav-mega__card small {
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  -webkit-hyphens: manual !important;
          hyphens: manual !important;
}

/* neutraliza etiquetas <br> hardcodeadas que cualquier script
   o edición de WordPress pueda inyectar en estos contenedores */
html body #navbar .nav-submenu a br,
html body #navbar .nav-mega__title br,
html body #navbar .nav-mega__cta br,
html body #navbar .nav-mega__card-title br,
html body #navbar .nav-mega__card-title--nowrap br,
html body #navbar .nav-mega__card p br,
html body #navbar .nav-mega__card span br,
html body #navbar .nav-mega__card small br {
  display: none !important;
}
