/* ---- Fuentes autohospedadas (woff2 latin) — evita round-trip a Google ---- */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/space-grotesk-400.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/space-grotesk-500.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/space-grotesk-700.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/inter-600.woff2') format('woff2');}

/* ========================================================================
   PROAM — Estilos del sitio
   Estándar Facand · mobile-first · paleta "cielo oscuro"
   ======================================================================== */

:root {
    --navy-900: #060A33;   /* azul noche profundo */
    --navy-700: #00007B;   /* títulos / tarjetas oscuras */
    --blue-600: #2E2F93;   /* enlace puertas */
    --blue-400: #7A99D4;   /* eyebrows */
    --amber:    #F8D653;   /* acento cálido */
    --ink:      #1b2150;   /* texto base */
    --ink-2:    #4a5478;   /* texto secundario */
    --ink-soft: #B6C2E0;   /* texto sobre oscuro */
    --cloud:    #dfe5f3;
    --bg:       #ffffff;
    --bg-soft:  #f5f7fc;
    --bg-soft2: #f7f9fd;
    --border:   #e7ecf7;
    --border-2: #eef1f8;
    --wa:       #25D366;

    --font-display: 'Space Grotesk', system-ui, sans-serif;
    --font-body: 'Inter', system-ui, sans-serif;
    --max-width: 1180px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; overflow-x: hidden; max-width: 100%; }

body {
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--navy-900);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    max-width: 100%;
}

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }

.amber { color: var(--amber); }

.container {
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 28px;
}

/* ---------- Starfield (canvas fijo de fondo) ---------- */
.starfield {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg, #060A33 0%, #0a0f48 55%, #0c1150 100%);
}

.page-root {
    position: relative;
    z-index: 1;
    background: transparent;
}

/* ========================================================================
   Botones
   ======================================================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 500;
    border-radius: 999px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}

.btn--amber {
    color: var(--navy-900);
    background: var(--amber);
    box-shadow: 0 8px 22px rgba(248,214,83,0.35);
    font-size: 14.5px;
    padding: 11px 22px;
}
.btn--amber:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(248,214,83,0.5); }

.btn--ghost {
    color: #fff;
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.28);
    backdrop-filter: blur(6px);
}
.btn--ghost:hover { background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.5); }

.btn--lg {
    font-size: 16px;
    padding: 16px 34px;
}
.btn--ghost.btn--lg { padding: 15px 30px; }

/* ========================================================================
   Navegación
   ======================================================================== */
.site-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    padding: 16px 0;
    background: transparent;
    border-bottom: 1px solid transparent;
    backdrop-filter: blur(10px);
    transition: background .35s ease, padding .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.site-nav.is-scrolled {
    padding: 12px 0;
    background: rgba(255,255,255,0.94);
    box-shadow: 0 8px 28px rgba(6,10,51,0.10);
    border-bottom: 1px solid rgba(6,10,51,0.06);
}

.site-nav__inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.site-nav__logo { display: flex; align-items: center; flex: none; }
.site-nav__logo-img { width: auto; display: block; }
.site-nav__logo-img.is-top { height: 40px; display: block; }
.site-nav__logo-img.is-scrolled { height: 32px; display: none; }
.site-nav.is-scrolled .site-nav__logo-img.is-top { display: none; }
.site-nav.is-scrolled .site-nav__logo-img.is-scrolled { display: block; }

.site-nav__links { display: none; align-items: center; gap: 30px; }
.site-nav__link {
    font-size: 14.5px;
    font-weight: 500;
    color: rgba(255,255,255,0.88);
    transition: color .3s ease;
}
.site-nav__link.is-active { color: var(--amber); font-weight: 600; }
.site-nav__link:hover { color: #fff; }
.site-nav.is-scrolled .site-nav__link { color: var(--ink); }
.site-nav.is-scrolled .site-nav__link.is-active { color: var(--navy-700); }

.site-nav__actions { display: flex; align-items: center; gap: 14px; }
.site-nav__cta { display: none; }

.site-nav__burger {
    display: inline-block;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 8px;
}
.site-nav__burger span {
    display: block;
    width: 24px;
    height: 2px;
    background: rgba(255,255,255,0.9);
    margin: 5px 0;
    border-radius: 2px;
    transition: background .3s ease;
}
.site-nav.is-scrolled .site-nav__burger span { background: var(--ink); }

/* ---------- Menú móvil ---------- */
.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 49;
    background: rgba(6,10,51,0.97);
    backdrop-filter: blur(12px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.mobile-menu[hidden] { display: none; }
.mobile-menu__link {
    font-family: var(--font-display);
    font-size: 25px;
    color: #fff;
    padding: 11px;
}
.mobile-menu__link.is-active { color: var(--amber); }
.mobile-menu__cta { font-size: 18px; padding: 14px 32px; margin-top: 18px; }

/* ========================================================================
   Hero
   ======================================================================== */
.hero {
    position: relative;
    z-index: 1;
    min-height: 100svh;
    min-height: 100dvh;
    min-height: 100vh; /* fallback que gana: garantiza pantalla completa al abrir */
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: var(--navy-900);
}
.hero__bg {
    position: absolute; inset: 0; z-index: 0;
    background-color: var(--navy-900);
    background-size: cover;
    background-position: 60% 42%;
    transform: scale(1.1);
    animation: hero-kenburns 16s ease-in-out infinite alternate;
    will-change: transform;
}
/* Móvil: hero estático (sin zoom) → no infla el Speed Index; ahorra CPU/batería */
@media (max-width: 767px) {
    .hero__bg { animation: none; transform: none; will-change: auto; }
    .badge-pill, .badge-pill svg { animation: none; opacity: 1; transform: none; box-shadow: none; }
    .whatsapp-float { animation: none; }
}

/* Entrada sutil del hero. El H1 (elemento LCP) SOLO se desliza (opacity 1 desde
   el inicio) → visible al instante, no retrasa el LCP. Los textos de apoyo entran
   en cascada suave (no son LCP). Sin fade en el H1 = puntaje intacto. */
@keyframes heroSlideIn { from { transform: translateY(20px); } to { transform: translateY(0); } }
@keyframes heroFadeIn  { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.hero__title   { animation: heroSlideIn .7s cubic-bezier(.2,.7,.2,1) both; }
.hero__eyebrow { animation: heroFadeIn .55s ease .05s both; }
.hero__lead    { animation: heroFadeIn .55s ease .16s both; }
.hero__sub     { animation: heroFadeIn .55s ease .24s both; }
.hero__cta-row { animation: heroFadeIn .55s ease .32s both; }
@media (prefers-reduced-motion: reduce) {
    .hero__title, .hero__eyebrow, .hero__lead, .hero__sub, .hero__cta-row { animation: none; }
}
@keyframes hero-kenburns {
    from { transform: scale(1.1) translate3d(2.5%, 2%, 0); }
    to   { transform: scale(1.24) translate3d(-3%, -2.5%, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .hero__bg { animation: none; transform: none; }
}
.hero__video {
    position: absolute; inset: 0; z-index: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: 60% 42%;
    opacity: 0;
    transition: opacity .9s ease;
    pointer-events: none;
}
.hero__video.is-ready { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
    .hero__video { display: none; } /* se mantiene la imagen fija */
}
.hero__overlay {
    position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(180deg, rgba(6,10,51,0.34) 0%, rgba(6,10,51,0.24) 48%, rgba(6,10,51,0.66) 100%);
}
.hero__vignette {
    position: absolute; inset: 0; z-index: 0;
    background: radial-gradient(ellipse 78% 72% at 50% 42%, transparent 46%, rgba(6,10,51,0.40) 100%);
}
.hero__inner {
    position: relative;
    max-width: 1240px;
    margin: 0 auto;
    padding: 130px 28px 96px;
    width: 100%;
}
.hero__content { max-width: 840px; }
.hero__eyebrow {
    font-size: 14px; font-weight: 500;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--ink-soft);
    margin-bottom: 22px;
}
.hero__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(42px, 7vw, 88px);
    line-height: 1.02;
    letter-spacing: -0.02em;
    color: #fff;
    margin-bottom: 26px;
    text-wrap: balance;
}
.hero__lead {
    font-size: clamp(17px, 2.2vw, 21px);
    line-height: 1.55;
    color: var(--cloud);
    max-width: 660px;
    margin-bottom: 14px;
}
.hero__lead strong { color: #fff; font-weight: 600; }
.hero__sub {
    font-size: 15.5px; line-height: 1.5;
    color: var(--ink-soft);
    margin-bottom: 22px;
}
.hero__badge-row { margin-bottom: 40px; }
.badge-pill {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--font-display);
    font-size: 13px; font-weight: 500; letter-spacing: .02em;
    color: var(--amber);
    border: 1px solid rgba(248,214,83,0.55);
    background: rgba(248,214,83,0.08);
    padding: 8px 16px;
    border-radius: 999px;
    transform-origin: center;
    /* Entrada con pop al cargar + brillo dorado pulsante continuo */
    animation: badge-in .9s cubic-bezier(.2,.9,.25,1.25) .7s both,
               badge-glow 2.8s ease-in-out 1.7s infinite;
}
.badge-pill svg {
    transform-origin: center;
    animation: badge-star 2.8s ease-in-out 1.7s infinite;
}
@keyframes badge-in {
    0%   { opacity: 0; transform: scale(.5) translateY(12px); }
    55%  { opacity: 1; transform: scale(1.14) translateY(0); }
    75%  { transform: scale(.96); }
    100% { opacity: 1; transform: scale(1); }
}
@keyframes badge-glow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(248,214,83,0); border-color: rgba(248,214,83,0.55); }
    50%      { box-shadow: 0 0 20px 2px rgba(248,214,83,0.45); border-color: rgba(248,214,83,0.95); }
}
@keyframes badge-star {
    0%, 100% { transform: scale(1) rotate(0); opacity: .85; }
    50%      { transform: scale(1.35) rotate(22deg); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .badge-pill, .badge-pill svg { animation: none; opacity: 1; transform: none; box-shadow: none; }
}
.hero__cta-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.hero__cta-row .btn--amber.btn--lg {
    box-shadow: 0 14px 34px rgba(248,214,83,0.4), inset 0 1px 0 rgba(255,255,255,0.5);
}
.hero__cta-row .btn--amber.btn--lg:hover {
    box-shadow: 0 18px 42px rgba(248,214,83,0.55), inset 0 1px 0 rgba(255,255,255,0.5);
}

/* ========================================================================
   Stats
   ======================================================================== */
.stats { position: relative; z-index: 1; background: var(--bg); padding: 72px 0 8px; }
.stats__grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
.stat-card {
    background: var(--bg-soft);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 34px 30px;
    display: flex; flex-direction: column; gap: 8px;
}
.stat-card--dark { background: var(--navy-700); border-color: var(--navy-700); }
.stat-card__num {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(40px, 5vw, 56px);
    line-height: 1;
    color: var(--navy-700);
}
.stat-card__num--nowrap { white-space: nowrap; }
.stat-card__num--sm { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.05; color: var(--amber); }
.stat-card__label { font-size: 15px; color: var(--ink-2); }
.stat-card--dark .stat-card__label { color: #c3cbe6; }

/* ========================================================================
   Puertas (navegación a secciones)
   ======================================================================== */
.doors { position: relative; z-index: 1; background: var(--bg); padding: 84px 0 100px; }
.section-head { max-width: 680px; margin-bottom: 46px; }
.section-head__eyebrow {
    font-size: 13px; font-weight: 600;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--blue-400);
    margin-bottom: 16px;
}
.section-head__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(28px, 3.8vw, 46px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--navy-700);
    text-wrap: balance;
}
.section-head__lead {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--ink-2);
    max-width: 620px;
}
.doors__grid { display: grid; gap: 22px; grid-template-columns: 1fr; }
.door {
    background: var(--bg-soft2);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 36px 32px;
    display: block;
    transition: transform .3s ease, box-shadow .3s ease;
}
.door:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(6,10,51,0.09); }
.door--dark { background: var(--navy-900); border-color: var(--navy-900); }
.door--dark:hover { box-shadow: 0 20px 44px rgba(6,10,51,0.28); }
.door__num { font-family: var(--font-display); font-size: 13px; font-weight: 500; color: var(--blue-400); letter-spacing: .06em; }
.door--dark .door__num { color: var(--amber); }
.door__title { font-family: var(--font-display); font-weight: 500; font-size: 22px; color: var(--navy-700); margin: 10px 0; }
.door--dark .door__title { color: #fff; }
.door__text { font-size: 15px; line-height: 1.55; color: var(--ink-2); margin-bottom: 18px; }
.door--dark .door__text { color: #c3cbe6; }
.door__link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 14px; font-weight: 500; color: var(--blue-600); }
.door--dark .door__link { color: var(--amber); }
.door__arrow { display: inline-block; transition: transform .35s cubic-bezier(.16,1,.3,1); }
.door:hover .door__arrow { transform: translateX(6px); }

/* ========================================================================
   Clientes (marquee)
   ======================================================================== */
.clients { position: relative; z-index: 1; background: var(--bg); padding: 18px 0 72px; border-top: 1px solid var(--border-2); }
.clients__title {
    text-align: center;
    font-size: 13px; font-weight: 600;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--blue-400);
    margin: 48px 0 10px;
}
.clients__sub {
    text-align: center;
    font-size: 15px; line-height: 1.5;
    color: var(--ink-2);
    max-width: 560px;
    margin: 0 auto 34px;
}
.clients__mask {
    position: relative;
    overflow: hidden;
    contain: paint; /* fuerza el recorte de la pista animada en móvil (iOS/Chrome) */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.clients__track {
    display: flex;
    width: max-content;
    align-items: center;
    gap: 60px;
    animation: proam-marquee 46s linear infinite;
}
.clients__track:hover { animation-play-state: paused; }
.clients__logo {
    flex: none;
    max-height: 40px; max-width: 150px;
    width: auto; object-fit: contain;
    transition: transform .3s ease;
}
.clients__logo:hover { transform: scale(1.06); }
.clients__name {
    flex: none;
    font-family: var(--font-display);
    font-weight: 600; font-size: 19px; letter-spacing: .02em;
    color: #b3bcd4; white-space: nowrap;
    transition: color .3s ease;
}
.clients__name:hover { color: var(--navy-700); }

@keyframes proam-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ========================================================================
   Cierre CTA (sobre el cielo)
   ======================================================================== */
.closing-cta { position: relative; z-index: 1; background: transparent; padding: 118px 0; overflow: hidden; }
.closing-cta__bg { position: absolute; inset: 0; background-color: var(--navy-900); background-size: cover; background-position: center; }
.closing-cta__veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(6,10,51,0.72) 0%, rgba(6,10,51,0.80) 100%); }
.closing-cta__glow {
    position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(circle at 80% 18%, rgba(248,214,83,0.16), transparent 46%);
}
.closing-cta__inner {
    position: relative;
    max-width: 880px;
    margin: 0 auto;
    padding: 0 28px;
    text-align: center;
}
.closing-cta__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(30px, 4.6vw, 54px);
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: #fff;
    margin-bottom: 20px;
    text-wrap: balance;
}
.closing-cta__text {
    font-size: clamp(16px, 2vw, 19px);
    line-height: 1.6;
    color: #c3cbe6;
    margin: 0 auto 38px;
    max-width: 560px;
}
.closing-cta__row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }

/* ========================================================================
   Footer
   ======================================================================== */
.site-footer {
    position: relative;
    z-index: 1;
    background: var(--navy-900);
    color: var(--ink-soft);
    padding: 58px 0 40px;
    border-top: 1px solid rgba(255,255,255,0.08);
}
.site-footer__grid {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: space-between;
    align-items: flex-start;
}
.site-footer__brand { max-width: 320px; }
.site-footer__logo { height: 40px; width: auto; margin-bottom: 18px; }
.site-footer__line { font-size: 13.5px; line-height: 1.6; color: #9aa6c8; margin-bottom: 4px; }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 14px 28px; max-width: 440px; }
.site-footer__nav a { font-size: 14px; color: var(--ink-soft); transition: color .25s ease; }
.site-footer__nav a:hover { color: #fff; }
.site-footer__linkedin {
    display: inline-flex; align-items: center; gap: 8px;
    color: #fff; font-size: 14px;
    border: 1px solid rgba(255,255,255,0.18);
    padding: 10px 18px;
    border-radius: 999px;
    transition: border-color .25s ease;
}
.site-footer__linkedin:hover { border-color: rgba(255,255,255,0.4); }
.site-footer__in { font-family: var(--font-display); font-weight: 700; font-size: 13px; }
.site-footer__bottom {
    max-width: var(--max-width);
    margin: 36px auto 0;
    padding: 20px 28px 0;
    border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 12.5px;
    color: #7a85a8;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    justify-content: space-between;
    align-items: center;
}
.site-footer__credit a { color: var(--amber); font-weight: 600; transition: opacity .25s ease; }
.site-footer__credit a:hover { opacity: .8; }

/* ========================================================================
   Botón flotante WhatsApp
   ======================================================================== */
.whatsapp-float {
    position: fixed;
    bottom: 28px; right: 28px;
    z-index: 80;
    width: 58px; height: 58px;
    border-radius: 50%;
    background: var(--wa);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 10px 30px rgba(37,211,102,0.42);
    animation: proam-pulse 2.8s ease-in-out infinite;
    transition: transform .25s ease;
}
.whatsapp-float:hover { transform: translateY(-3px) scale(1.04); }

@keyframes proam-pulse {
    0%, 100% { box-shadow: 0 10px 30px rgba(37,211,102,0.35), 0 0 0 0 rgba(37,211,102,0.45); }
    50%      { box-shadow: 0 10px 30px rgba(37,211,102,0.35), 0 0 0 14px rgba(37,211,102,0); }
}

/* ========================================================================
   Barra de progreso de scroll (inyectada por JS)
   ======================================================================== */
.proam-progress {
    position: fixed; top: 0; left: 0;
    height: 2px; width: 0;
    background: var(--amber);
    z-index: 60; pointer-events: none;
    transition: width .12s linear;
}

/* ========================================================================
   Reveal on scroll
   ======================================================================== */
[data-reveal] { opacity: 1; transform: none; }
[data-reveal].pre {
    opacity: 0;
    transform: translate3d(var(--rv-x, 0), var(--rv-y, 46px), 0) scale(var(--rv-s, 1));
    transition: opacity 1s ease, transform 1.25s cubic-bezier(.2, .8, .2, 1.06);
    will-change: opacity, transform;
}
[data-reveal].pre[data-shown] { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
/* Variantes direccionales */
[data-reveal="left"].pre  { --rv-x: -72px; --rv-y: 0; }
[data-reveal="right"].pre { --rv-x: 72px;  --rv-y: 0; }
[data-reveal="scale"].pre { --rv-s: .84; --rv-y: 0; }
/* Tarjetas de grilla: entran convergiendo + zoom (JS define --rv-x por posición) */
.reveal-card.pre { --rv-y: 28px; --rv-s: .9; }

/* ========================================================================
   Pulido: micro-motion de iconos, botones y títulos
   ======================================================================== */
/* Iconos de contenedor: fondo con leve gradiente + animación al hover de la tarjeta */
.value-card__icon, .svc-card__icon { background: linear-gradient(135deg, #eaf0fb, #dde7fb); transition: transform .4s cubic-bezier(.2,.8,.2,1.08), box-shadow .4s ease; }
.value-card:hover .value-card__icon, .svc-card:hover .svc-card__icon { transform: scale(1.12) rotate(-5deg); box-shadow: 0 10px 22px rgba(46,47,147,0.18); }
.value-card__icon svg, .svc-card__icon svg { transition: transform .4s cubic-bezier(.2,.8,.2,1.08); }
.value-card:hover .value-card__icon svg, .svc-card:hover .svc-card__icon svg { transform: scale(1.06); }

/* Números de paso (proceso) y badges: pop al hover de su tarjeta/columna */
.proceso-step:hover .proceso-step__num { transform: scale(1.08) translateY(-2px); box-shadow: 0 12px 26px rgba(0,0,123,0.32); }
.proceso-step__num { transition: transform .35s cubic-bezier(.2,.8,.2,1.08), box-shadow .35s ease; }
.value-card__num { transition: transform .35s ease; }
.value-card:hover .value-card__num { transform: translateY(-3px); }

/* Botones ámbar: barrido de brillo al pasar el mouse */
.btn--amber { position: relative; overflow: hidden; }
.btn--amber > * { position: relative; z-index: 1; }
.btn--amber::after {
    content: ""; position: absolute; top: 0; left: -130%; width: 65%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.6), transparent);
    transform: skewX(-18deg); transition: left .65s ease; pointer-events: none;
}
.btn--amber:hover::after { left: 140%; }

/* Eyebrow con guion de acento ámbar */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--amber); border-radius: 2px; flex: none; }

/* ========================================================================
   Armonía de color en tríos de contenedores (degradé azul cohesivo)
   light → medio → navy, en vez de 2 blancos + 1 azul
   ======================================================================== */
.doors__grid .door:nth-child(1) { background: #eef3fc; border-color: #dde7fb; }
.doors__grid .door:nth-child(2) { background: #d6e2f9; border-color: #c4d5f4; }
.stats__grid .stat-card:nth-child(1) { background: #eef3fc; border-color: #dde7fb; }
.stats__grid .stat-card:nth-child(2) { background: #d6e2f9; border-color: #c4d5f4; }

@media (prefers-reduced-motion: reduce) {
    .clients__track { animation: none !important; }
    .whatsapp-float { animation: none !important; }
    [data-reveal].pre { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ========================================================================
   Utilidades compartidas (páginas internas)
   ======================================================================== */
.eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-400); margin-bottom: 16px; }
.eyebrow--amber { color: var(--amber); }
.section-title { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.8vw, 46px); line-height: 1.1; letter-spacing: -0.02em; color: var(--navy-700); text-wrap: balance; }
.section-title--sm { font-size: clamp(26px, 3.4vw, 40px); line-height: 1.12; }
.section-light { position: relative; z-index: 1; background: var(--bg); }
.section-soft { position: relative; z-index: 1; background: var(--bg-soft2); border-top: 1px solid var(--border-2); border-bottom: 1px solid var(--border-2); }

/* ===== Submenú (scrollspy) ===== */
.subnav {
    position: fixed; top: 56px; left: 0; right: 0; z-index: 40;
    opacity: 0; transform: translateY(-8px); pointer-events: none;
    transition: opacity .3s ease, transform .3s ease;
    background: rgba(255,255,255,0.94); backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border);
}
.subnav.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.subnav__inner { max-width: 1240px; margin: 0 auto; padding: 0 22px; display: flex; gap: 8px; align-items: center; height: 50px; overflow-x: auto; }
.subnav__link { font-family: var(--font-display); font-size: 13.5px; font-weight: 500; color: var(--ink-2); padding: 8px 15px; border-radius: 999px; white-space: nowrap; transition: color .25s ease, background .25s ease; }
.subnav__link.is-active { color: var(--navy-700); background: #eef2fb; }

/* ===== Hero de página interna ===== */
.page-hero { position: relative; z-index: 1; padding: 165px 0 100px; overflow: hidden; }
.page-hero__bg { position: absolute; inset: 0; background-color: var(--navy-900); background-size: cover; background-position: center; }
.page-hero__fade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(6,10,51,0.34) 0%, rgba(6,10,51,0.08) 55%, rgba(6,10,51,0.30) 100%); }
.page-hero__inner { position: relative; max-width: 1080px; margin: 0 auto; padding: 0 28px; }
.page-hero__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(36px, 5.6vw, 68px); line-height: 1.04; letter-spacing: -0.02em; color: #fff; margin-bottom: 24px; max-width: 900px; text-wrap: balance; }
.page-hero__lead { font-size: clamp(17px, 2vw, 20px); line-height: 1.6; color: var(--cloud); max-width: 700px; }

/* ===== Historia (texto + stats) ===== */
.historia { padding: 30px 0 92px; scroll-margin-top: 120px; }
.historia__grid { max-width: 1100px; margin: 0 auto; padding: 0 28px; display: grid; gap: 54px; align-items: center; grid-template-columns: 1fr; }
.historia__body p { font-size: 16.5px; line-height: 1.68; color: var(--ink-2); margin-bottom: 18px; }
.historia__body p:last-child { margin-bottom: 0; }
.historia__title { margin-bottom: 22px; }
.historia__stats { display: flex; flex-direction: column; gap: 16px; }
.stat-block { border-radius: 20px; padding: 30px 28px; }
.stat-block--dark { background: var(--navy-900); }
.stat-block--light { background: var(--bg-soft); border: 1px solid var(--border); }
.stat-block__num { font-family: var(--font-display); font-weight: 700; font-size: 46px; line-height: 1; }
.stat-block__num--word { font-size: clamp(20px, 2.4vw, 26px); line-height: 1.12; }
.stat-block--dark .stat-block__num { color: var(--amber); }
.stat-block--light .stat-block__num { color: var(--navy-700); white-space: nowrap; }
.stat-block__label { font-size: 14.5px; margin-top: 8px; }
.stat-block--dark .stat-block__label { color: #c3cbe6; }
.stat-block--light .stat-block__label { color: var(--ink-2); }

/* ===== Valores ===== */
.valores { padding: 92px 0; scroll-margin-top: 104px; }
.valores__head { max-width: 680px; margin-bottom: 48px; }
.valores__grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
.value-card { background: #fff; border: 1px solid var(--border); border-radius: 20px; padding: 30px 28px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.value-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(6,10,51,0.08); border-color: #d7e0f3; }
.value-card__icon { width: 46px; height: 46px; border-radius: 13px; background: #eaf0fb; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.value-card__title { font-family: var(--font-display); font-weight: 500; font-size: 18px; color: var(--navy-700); margin-bottom: 8px; }
.value-card__text { font-size: 14.5px; line-height: 1.55; color: var(--ink-2); }

/* ===== Sectores ===== */
.sectores { padding: 92px 0; scroll-margin-top: 104px; }
.sectores__grid { max-width: 1140px; margin: 0 auto; padding: 0 28px; display: grid; gap: 54px; align-items: center; grid-template-columns: 1fr; }
.sectores__title { margin-bottom: 26px; }
.sectores__list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
.sector-item { display: flex; gap: 14px; align-items: flex-start; }
.sector-item__dot { flex: none; margin-top: 3px; width: 9px; height: 9px; border-radius: 50%; background: var(--amber); }
.sector-item p { font-size: 15.5px; line-height: 1.5; color: var(--ink-2); }
.sector-item strong { color: var(--navy-700); font-weight: 600; }
.sectores__logos-label { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #9aa6c8; margin-bottom: 18px; }
.sectores__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; }
.sectores__logos img { max-height: 34px; max-width: 130px; object-fit: contain; }
.sectores__media { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; }
.sectores__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sectores__media-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,10,51,0.12) 0%, rgba(6,10,51,0.5) 100%); }
.sectores__caption { position: absolute; left: 22px; bottom: 20px; font-family: var(--font-display); font-size: 13px; font-weight: 500; color: #fff; letter-spacing: .03em; background: rgba(6,10,51,0.45); border: 1px solid rgba(255,255,255,0.2); padding: 8px 14px; border-radius: 999px; backdrop-filter: blur(4px); }

/* ===== Equipo (organigrama) ===== */
.equipo { padding: 92px 0 70px; border-top: 1px solid var(--border-2); scroll-margin-top: 104px; }
.equipo__inner { max-width: 1080px; margin: 0 auto; padding: 0 28px; }
.equipo__head { max-width: 680px; margin-bottom: 50px; }
.equipo__head p { font-size: 16px; line-height: 1.6; color: var(--ink-2); margin-top: 14px; }
.org-row { display: flex; justify-content: center; }
.org-row--pair { gap: 20px; flex-wrap: wrap; }

/* Niveles ejecutivos: linea de mando central (Hugo, Mauricio) + staff lateral
   (Administracion a la derecha, HSEC a la izquierda). Movil: apila con la
   tarjeta principal primero. */
/* Línea de mando con staff lateral. Móvil: apila (Hugo, Admin, Mauricio, HSEC). */
.orgc { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.orgc > div { display: flex; justify-content: center; }
.orgc__link { display: none; }
.org-col--spacer { display: none; }
.org-card { width: 300px; max-width: 100%; border-radius: 20px; display: flex; align-items: center; gap: 18px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.org-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(6,10,51,0.12); border-color: var(--amber); }
.org-card--lead { background: var(--navy-900); border: 1px solid var(--navy-900); padding: 22px 26px; }
.org-card--mid { background: #fff; border: 1px solid #d7e0f3; padding: 20px 24px; box-shadow: 0 6px 22px rgba(6,10,51,0.05); }
.org-card--node { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 22px 18px; text-align: center; width: 100%; flex-direction: column; }
.org-avatar { flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; color: #fff; }
.org-avatar--lead { width: 84px; height: 84px; font-size: 27px; background: linear-gradient(135deg, #F8D653, #e8c24f); color: var(--navy-900); }
.org-avatar--blue { width: 78px; height: 78px; font-size: 25px; background: linear-gradient(135deg, #2E2F93, #7A99D4); }
.org-avatar--sm { width: 96px; height: 96px; font-size: 32px; background: linear-gradient(135deg, #2E2F93, #7A99D4); }
.org-avatar--photo { overflow: hidden; background: #e7ecf7; }
.org-avatar--photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.org-card--node .org-avatar { margin: 0 auto 14px; }
.org-name { font-family: var(--font-display); font-weight: 500; margin-bottom: 3px; }
.org-card--lead .org-name { font-size: 18px; color: #fff; }
.org-card--mid .org-name { font-size: 17px; color: var(--ink); }
.org-card--node .org-name { font-size: 15.5px; color: var(--ink); margin-bottom: 4px; }
.org-role { font-size: 13px; font-weight: 600; margin-bottom: 3px; }
.org-card--lead .org-role { color: var(--amber); font-size: 13.5px; }
.org-card--mid .org-role { color: var(--navy-700); }
.org-card--node .org-role { color: var(--navy-700); font-size: 12.5px; margin-bottom: 4px; }
.org-edu { font-size: 12.5px; color: #6a7396; line-height: 1.4; }
.org-card--lead .org-edu { color: #aab4d6; }
.org-card--node .org-edu { font-size: 12px; }
.org-line { width: 2px; background: #c3cee6; margin: 0 auto; }
.org-busline-wrap { position: relative; height: 2px; }
.org-busline { position: absolute; top: 0; left: 12.5%; right: 12.5%; height: 2px; background: #c3cee6; }
.org-grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
.org-col { display: flex; flex-direction: column; align-items: center; }
.org-line--dashed { width: 0; height: 30px; border-left: 2px dashed #c3cee6; background: none; margin: 30px auto 0; }
.org-divider { text-align: center; margin: 18px 0 26px; }
.org-divider span { font-family: var(--font-display); font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-400); background: #eef2fb; border: 1px solid #e1e8f6; padding: 7px 18px; border-radius: 999px; }
.org-consultores { display: grid; gap: 18px; grid-template-columns: 1fr; max-width: 680px; margin: 0 auto; }
.org-card--consultor { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 24px; }
.equipo__note { text-align: center; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; color: #9aa3c0; margin-top: 42px; }

/* ===== Reveal de líneas (organigrama) ===== */
[data-line].pre { opacity: 0; transform: scaleY(0); transform-origin: top; transition: opacity .5s ease, transform .55s cubic-bezier(.16,1,.3,1); }
[data-line].pre[data-shown] { opacity: 1; transform: scaleY(1); }
[data-busline].pre { opacity: 0; transform: scaleX(0); transform-origin: center; transition: opacity .5s ease, transform .6s cubic-bezier(.16,1,.3,1); }
[data-busline].pre[data-shown] { opacity: 1; transform: scaleX(1); }
[data-hide-m] { display: none; }

/* ========================================================================
   Servicios
   ======================================================================== */
.svc-section { padding: 24px 0 86px; scroll-margin-top: 120px; }
.svc-head { max-width: 680px; margin-bottom: 40px; }
.svc-list { display: flex; flex-direction: column; gap: 36px; }
.svc-card { display: grid; gap: 46px; align-items: center; border: 1px solid var(--border-2); border-radius: 28px; padding: 44px; overflow: hidden; grid-template-columns: 1fr; background: #fff; }
.svc-card--alt { background: var(--bg-soft2); }
.svc-card__head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.svc-card__icon { width: 50px; height: 50px; border-radius: 14px; background: #eaf0fb; display: flex; align-items: center; justify-content: center; flex: none; }
.svc-card__num { font-family: var(--font-display); font-size: 14px; font-weight: 500; color: var(--blue-400); letter-spacing: .06em; }
.svc-card__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(23px, 2.8vw, 32px); line-height: 1.15; letter-spacing: -0.01em; color: var(--navy-700); margin-bottom: 16px; }
.svc-card__lead { font-size: 16px; line-height: 1.65; color: var(--ink-2); }
.svc-card__detail { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s ease, opacity .4s ease; }
.svc-card.is-open .svc-card__detail { max-height: 300px; opacity: 1; }
.svc-card__detail p { font-size: 15.5px; line-height: 1.65; color: var(--ink-2); margin: 18px 0 0; padding-top: 18px; border-top: 1px solid var(--border); }
.svc-toggle { margin-top: 22px; background: none; border: 1px solid #d8def0; padding: 11px 20px; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 13.5px; font-weight: 500; color: var(--blue-600); transition: background .25s ease, border-color .25s ease; }
.svc-toggle:hover { background: #eef2fb; border-color: #c3cee6; }
.svc-toggle svg { transition: transform .3s ease; }
.svc-card.is-open .svc-toggle svg { transform: rotate(180deg); }
.svc-card .svc-toggle__less { display: none; }
.svc-card.is-open .svc-toggle__more { display: none; }
.svc-card.is-open .svc-toggle__less { display: inline; }
.svc-card__media { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
.svc-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.svc-card__media-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,10,51,0.06) 0%, rgba(6,10,51,0.42) 100%); }

/* ===== Líneas core ===== */
.cores { padding: 90px 0; }
.cores__head { max-width: 680px; margin-bottom: 46px; }
.cores__grid { display: grid; gap: 24px; grid-template-columns: 1fr; }

/* ===== Servicios (tarjetas con imagen) ===== */
.serv-grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
.serv-item { position: relative; background: #fff; border: 1px solid var(--border); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.serv-item:hover { transform: translateY(-6px); box-shadow: 0 24px 54px rgba(6,10,51,0.16); border-color: var(--amber); }
.serv-item__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--navy-900); }
.serv-item__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.serv-item:hover .serv-item__media img { transform: scale(1.07); }
.serv-item__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,10,51,0) 42%, rgba(6,10,51,0.60) 100%); }
.serv-item__num { position: absolute; top: 14px; left: 18px; z-index: 2; font-family: var(--font-display); font-weight: 700; font-size: 22px; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.45); }
.serv-item__body { position: relative; padding: 34px 22px 26px; }
.serv-item__icon { position: absolute; top: -24px; right: 20px; z-index: 3; width: 48px; height: 48px; border-radius: 13px; background: #fff; box-shadow: 0 10px 24px rgba(6,10,51,.18); display: flex; align-items: center; justify-content: center; }
.serv-item__title { font-family: var(--font-display); font-weight: 600; font-size: 17.5px; color: var(--ink); margin-bottom: 8px; line-height: 1.28; }
.serv-item__text { font-size: 14px; line-height: 1.55; color: #6a7396; }

/* ===== Marco Normativo (tarjetas de normas) ===== */
.norm-marco { padding: 84px 0 40px; }
.norm-marco .section-head__title { color: #fff; }
.norm-marco .section-head__lead { color: var(--cloud); }
.norm-normcard { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 26px 24px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.norm-normcard:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(6,10,51,0.10); border-color: var(--amber); }
.norm-normcard__tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--navy-700); background: rgba(46,47,147,0.08); padding: 4px 10px; border-radius: 999px; margin-bottom: 12px; }
.norm-normcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--navy-700); margin-bottom: 4px; }
.norm-normcard__sub { font-size: 13.5px; font-weight: 600; color: #2E2F93; margin-bottom: 12px; }
.norm-normcard > p:last-child { font-size: 13.5px; line-height: 1.55; color: #6a7396; }
.core-card { border-radius: 28px; overflow: hidden; min-height: 420px; display: flex; flex-direction: column; position: relative; }
.core-card--dark { background: var(--navy-900); color: #fff; }
.core-card--light { background: #fff; border: 1px solid var(--border); }
.core-card__media { position: relative; height: 240px; overflow: hidden; }
.core-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.core-card:hover .core-card__media img { transform: scale(1.05); }
.core-card--dark .core-card__media img { opacity: .9; }
.core-card--dark .core-card__media-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,10,51,0.05) 0%, rgba(6,10,51,0.35) 55%, #060A33 100%); }
.core-card--light .core-card__media-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.92) 100%); }
.core-card__body { padding: 34px 36px 40px; flex: 1; position: relative; }
.core-card__line { display: inline-block; font-family: var(--font-display); font-size: 11.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; margin-bottom: 12px; }
.core-card--dark .core-card__line { color: var(--navy-900); background: var(--amber); }
.core-card--light .core-card__line { color: #fff; background: var(--navy-700); }
.core-card__title { font-family: var(--font-display); font-weight: 700; font-size: 26px; line-height: 1.15; margin: 12px 0 14px; }
.core-card--light .core-card__title { color: var(--navy-700); }
.core-card__text { font-size: 15.5px; line-height: 1.65; }
.core-card--dark .core-card__text { color: #c3cbe6; }
.core-card--light .core-card__text { color: var(--ink-2); }

/* ===== Proceso (4 pasos) ===== */
.proceso { padding: 90px 0; scroll-margin-top: 104px; }
.proceso__head { max-width: 680px; margin-bottom: 58px; }
.proceso__grid { position: relative; display: grid; gap: 28px; grid-template-columns: 1fr; }
.proceso__line { position: absolute; top: 26px; left: 9%; right: 9%; height: 2px; background: linear-gradient(90deg, #7A99D4, #2E2F93); opacity: .35; z-index: 0; }
.proceso-step { position: relative; z-index: 1; }
.proceso-step__num { width: 54px; height: 54px; border-radius: 50%; background: var(--navy-700); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 19px; margin-bottom: 22px; box-shadow: 0 8px 22px rgba(0,0,123,0.25); border: 4px solid #fff; }
.proceso-step__title { font-family: var(--font-display); font-weight: 500; font-size: 18px; color: var(--ink); margin-bottom: 8px; line-height: 1.25; }
.proceso-step__text { font-size: 14px; line-height: 1.55; color: #6a7396; }

/* ===== Ruta del proyecto (timeline vertical, flujo de cara al cliente) ===== */
.ruta { padding: 90px 0; scroll-margin-top: 104px; }
.ruta__head { max-width: 680px; margin-bottom: 48px; }
.ruta__lead { margin-top: 16px; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.ruta__steps { position: relative; max-width: 820px; }
.ruta__steps::before { content: ''; position: absolute; left: 26px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(180deg, #7A99D4, #2E2F93); opacity: .30; }
.ruta-step { position: relative; display: grid; grid-template-columns: 54px 1fr; gap: 22px; align-items: start; padding-bottom: 30px; }
.ruta-step:last-child { padding-bottom: 0; }
.ruta-step__num { width: 54px; height: 54px; border-radius: 50%; background: var(--navy-700); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 18px; box-shadow: 0 8px 22px rgba(0,0,123,0.25); border: 4px solid #fff; z-index: 1; }
.ruta-step__body { padding-top: 4px; }
.ruta-step__title { font-family: var(--font-display); font-weight: 500; font-size: 18px; color: var(--ink); margin-bottom: 7px; line-height: 1.3; }
.ruta-step__text { font-size: 14px; line-height: 1.55; color: #6a7396; }
.ruta-step__tools { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ruta-step__tool { font-size: 12px; font-weight: 600; color: var(--navy-700); background: rgba(46,47,147,0.08); border: 1px solid rgba(46,47,147,0.16); padding: 4px 11px; border-radius: 999px; }

/* ===== Sectores (franja de rubros en Inicio) ===== */
.sectores-band { padding: 84px 0; }
.sectores-chips { display: grid; gap: 18px; grid-template-columns: 1fr; }
.sector-chip { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 24px 20px; text-align: center; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.sector-chip:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(6,10,51,0.10); border-color: var(--amber); }
.sector-chip__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: #eef2fb; margin-bottom: 14px; }
.sector-chip__title { font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--navy-700); margin-bottom: 6px; }
.sector-chip__text { font-size: 13px; line-height: 1.5; color: #6a7396; }

/* ===== Valores de servicio (numerados) ===== */
.svc-values { padding: 84px 0; }
.svc-values__head { max-width: 680px; margin-bottom: 42px; }
.value-card__num { font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--amber); background: var(--navy-900); width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.grid-4 { display: grid; gap: 20px; grid-template-columns: 1fr; }

/* ========================================================================
   Normativa (tema CLARO, coherente con el resto del sitio)
   ======================================================================== */
.norm-hero { position: relative; z-index: 1; padding: 185px 0 110px; overflow: hidden; }
.norm-hero__bg { position: absolute; inset: 0; background-color: var(--navy-900); background-size: cover; background-position: center 60%; }
.norm-hero__overlay { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(6,10,51,0.70) 0%, rgba(6,10,51,0.58) 45%, rgba(6,10,51,0.88) 100%); }
.norm-hero__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 82% 12%, rgba(248,214,83,0.16), transparent 44%); }
.norm-hero__inner { position: relative; max-width: 1080px; margin: 0 auto; padding: 0 28px; }
.norm-hero__lead { font-size: clamp(17px, 2vw, 20px); line-height: 1.6; color: var(--cloud); max-width: 720px; }
.norm-hero__stats { display: grid; gap: 16px; grid-template-columns: 1fr; margin-top: 40px; max-width: 780px; }
.norm-hstat { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-radius: 14px; padding: 18px 20px; }
.norm-hstat__num { display: block; font-family: var(--font-display); font-weight: 700; font-size: 34px; color: var(--amber); line-height: 1; margin-bottom: 8px; }
.norm-hstat__label { font-size: 13.5px; line-height: 1.4; color: var(--cloud); }

.norm-section { position: relative; z-index: 1; }

/* Cifras clave */
.norm-figs { background: var(--bg); padding: 64px 0 22px; }
.norm-figs__grid { max-width: 1080px; margin: 0 auto; padding: 0 28px; display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); }
.norm-fig { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 18px; padding: 26px 24px; display: flex; flex-direction: column; align-items: flex-start; }
.norm-fig--amber { background: var(--navy-900); border-color: var(--navy-900); }
.norm-fig__icon { width: 40px; height: 40px; border-radius: 11px; background: #e6edff; border: 1px solid #cfdcff; display: flex; align-items: center; justify-content: center; color: #2f63d6; margin-bottom: 16px; }
.norm-fig--amber .norm-fig__icon { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.22); color: var(--amber); }
.norm-fig__num { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.2vw, 38px); color: var(--navy-700); line-height: 1; }
.norm-fig__num--white { white-space: nowrap; }
.norm-fig--amber .norm-fig__num { color: var(--amber); }
.norm-fig__num--date { font-size: clamp(19px, 2.1vw, 25px); line-height: 1.05; }
.norm-fig__label { font-size: 13px; line-height: 1.45; color: var(--ink-2); margin-top: 8px; }
.norm-fig--amber .norm-fig__label { color: #c3cbe6; }

/* Panel D.S. + subtarjetas */
.norm-panels { background: var(--bg); padding: 40px 0 64px; }
.norm-panels__wrap { max-width: 1080px; margin: 0 auto; padding: 0 28px; display: flex; flex-direction: column; gap: 22px; }
.norm-panel { background: #fff; border: 1px solid var(--border); border-radius: 24px; padding: 42px 40px; box-shadow: 0 12px 32px rgba(6,10,51,0.05); }
.norm-panel__head { margin-bottom: 16px; }
.norm-panel__badge { display: inline-block; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #8a6d12; background: #fdf3d3; border: 1px solid #f0e0a8; padding: 5px 12px; border-radius: 999px; margin-bottom: 14px; }
.norm-panel__title { display: block; font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 30px); color: var(--navy-700); }
.norm-panel__src { display: block; font-size: 13px; color: var(--ink-2); margin-top: 6px; }
.norm-panel__text { font-size: 16px; line-height: 1.7; color: var(--ink-2); margin-bottom: 8px; max-width: 860px; }
.norm-panel__text strong { color: var(--navy-700); font-weight: 600; }
.norm-panel__sub { font-family: var(--font-display); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-400); margin: 26px 0 16px; }
.norm-subgrid { display: grid; gap: 16px; grid-template-columns: 1fr; }
.norm-subcard { background: var(--bg-soft2); border: 1px solid var(--border); border-radius: 16px; padding: 24px 22px; display: flex; flex-direction: column; transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease; }
.norm-subcard:hover { border-color: #d7e0f3; transform: translateY(-4px); box-shadow: 0 16px 34px rgba(6,10,51,0.07); }
.norm-subcard__icon { width: 44px; height: 44px; border-radius: 12px; background: #fdeec4; border: 1px solid #f0dca0; display: flex; align-items: center; justify-content: center; color: #c08a10; margin-bottom: 14px; }
.norm-subcard__tag { font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-400); margin-bottom: 6px; }
.norm-subcard h3 { font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--navy-700); margin-bottom: 7px; }
.norm-subcard p { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); }

/* Tarjetas Áreas / SEIA */
.norm-duo { display: grid; gap: 22px; grid-template-columns: 1fr; }
.norm-card { border-radius: 24px; padding: 38px 36px; }
.norm-card--amber { background: #fff8e8; border: 1px solid #f2e4bd; }
.norm-card--glass { background: #fff; border: 1px solid var(--border); box-shadow: 0 12px 32px rgba(6,10,51,0.05); }
.norm-card__head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.norm-card__icon { width: 46px; height: 46px; border-radius: 13px; display: flex; align-items: center; justify-content: center; flex: none; }
.norm-card--amber .norm-card__icon { background: #fdf0c8; border: 1px solid #f0e0a8; color: #b88a12; }
.norm-card--glass .norm-card__icon { background: #e6edff; border: 1px solid #cfdcff; color: #2f63d6; }
.norm-card__title { font-family: var(--font-display); font-weight: 600; font-size: 22px; margin-bottom: 0; color: var(--navy-700); }
.norm-card__text { font-size: 15px; line-height: 1.65; color: var(--ink-2); margin-bottom: 14px; }
.norm-card__text:last-child { margin-bottom: 0; }
.norm-card__text strong { color: var(--navy-700); font-weight: 600; }
.norm-list { list-style: none; display: flex; flex-direction: column; gap: 13px; margin-top: 4px; }
.norm-list li { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; line-height: 1.55; color: var(--ink-2); }
.norm-list li strong { color: var(--navy-700); font-weight: 600; }
.norm-list__check { flex: none; margin-top: 1px; width: 18px; height: 18px; color: #2f63d6; }
.norm-card--amber .norm-list__check { color: #d39a16; }

/* ===== FAQ (acordeón claro) ===== */
.norm-faq { background: var(--bg-soft); padding: 70px 0 90px; }
.norm-faq__inner { max-width: 860px; margin: 0 auto; padding: 0 28px; }
.norm-faq__head { margin-bottom: 36px; }
.norm-faq__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(26px, 3.6vw, 42px); line-height: 1.1; letter-spacing: -0.02em; color: var(--navy-700); text-wrap: balance; }
.faq-list { display: flex; flex-direction: column; gap: 12px; }
.faq-item { background: #fff; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.faq-q { width: 100%; text-align: left; background: transparent; border: 0; cursor: pointer; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.faq-q__text { font-family: var(--font-display); font-weight: 500; font-size: 16.5px; color: var(--navy-700); line-height: 1.35; }
.faq-icon { flex: none; width: 28px; height: 28px; border-radius: 50%; background: #fdf3d3; color: #b88a12; display: flex; align-items: center; justify-content: center; font-size: 18px; transition: transform .3s ease; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.faq-item.is-open .faq-a { max-height: 320px; }
.faq-a p { font-size: 15px; line-height: 1.65; color: var(--ink-2); padding: 0 24px 24px; }

/* ========================================================================
   Contacto (página oscura con formulario)
   ======================================================================== */
.contact-section { position: relative; z-index: 1; padding: 170px 0 96px; overflow: hidden; }
.contact-section__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .42; pointer-events: none; }
.contact-section__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(6,10,51,0.45) 0%, rgba(6,10,51,0.30) 50%, rgba(6,10,51,0.55) 100%); }
.contact-section__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 16% 16%, rgba(248,214,83,0.1), transparent 42%); }
.contact__grid { position: relative; max-width: 1080px; margin: 0 auto; padding: 0 28px; display: grid; gap: 56px; align-items: start; grid-template-columns: 1fr; }
.contact__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(32px, 4.6vw, 56px); line-height: 1.06; letter-spacing: -0.02em; margin-bottom: 20px; color: #fff; text-wrap: balance; }
.contact__lead { font-size: 16.5px; line-height: 1.6; color: #c3cbe6; margin-bottom: 38px; max-width: 440px; }
.contact__methods { display: flex; flex-direction: column; gap: 18px; }
.contact-method { display: inline-flex; align-items: center; gap: 13px; color: #fff; font-size: 15px; }
.contact-method__icon { width: 42px; height: 42px; flex: none; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.contact-method__icon--wa { background: rgba(37,211,102,0.18); border: 1px solid rgba(37,211,102,0.4); color: var(--wa); }
.contact-method__icon--mail { background: rgba(122,153,212,0.18); border: 1px solid rgba(122,153,212,0.4); color: var(--blue-400); }
.contact-method__icon--in { background: rgba(0,0,123,0.3); border: 1px solid rgba(122,153,212,0.4); color: #fff; font-family: var(--font-display); font-size: 13px; }
.contact-method__label { display: block; color: var(--ink-soft); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.contact-form-wrap { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: 24px; padding: 36px; }
.contact-form { display: flex; flex-direction: column; gap: 16px; }
.contact-form__row { display: grid; gap: 16px; grid-template-columns: 1fr; }
.field { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.18); border-radius: 12px; padding: 14px 16px; color: #fff; font-size: 15px; font-family: var(--font-body); outline: none; width: 100%; transition: border-color .25s ease; }
.field:focus { border-color: rgba(248,214,83,0.6); }
.field::placeholder { color: #8b94b8; }
textarea.field { resize: vertical; }
.contact-form__submit { font-family: var(--font-display); font-size: 16px; font-weight: 500; color: var(--navy-900); background: var(--amber); border: 0; padding: 16px; border-radius: 999px; cursor: pointer; box-shadow: 0 12px 30px rgba(248,214,83,0.35); transition: transform .25s ease; }
.contact-form__submit:hover { transform: translateY(-2px); }
.contact-form__note { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; color: #8b94b8; margin-top: 2px; text-align: center; }
.contact-form__error { background: rgba(255,90,90,0.12); border: 1px solid rgba(255,90,90,0.35); color: #ffd2d2; border-radius: 12px; padding: 12px 16px; font-size: 14px; }
.field--honey { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-success { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 48px 10px; }
.form-success__check { width: 64px; height: 64px; border-radius: 50%; background: var(--amber); color: var(--navy-900); display: flex; align-items: center; justify-content: center; font-size: 30px; margin-bottom: 20px; }
.form-success h2 { font-family: var(--font-display); font-weight: 500; font-size: 22px; margin-bottom: 8px; color: #fff; }
.form-success p { font-size: 15px; color: #c3cbe6; line-height: 1.5; }

/* ========================================================================
   Banda parallax (fondo fijo que se revela al hacer scroll)
   ======================================================================== */
.parallax-band {
    position: relative;
    z-index: 1;
    min-height: 88vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #060A33; /* fallback; la imagen se define inline en la página */
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* el fondo queda fijo y se revela al scrollear */
}
.parallax-band__overlay {
    position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(6,10,51,0.55) 0%, rgba(6,10,51,0.30) 50%, rgba(6,10,51,0.65) 100%);
}
.parallax-band__inner { position: relative; max-width: 880px; margin: 0 auto; padding: 90px 28px; text-align: center; }
.parallax-band__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 4.4vw, 52px); line-height: 1.1; letter-spacing: -0.02em; color: #fff; margin-bottom: 18px; text-wrap: balance; }
.parallax-band__text { font-size: clamp(16px, 2vw, 19px); line-height: 1.6; color: var(--cloud); max-width: 560px; margin: 0 auto; }

/* iOS/móvil ignora background-attachment:fixed (y produce saltos) → fondo normal */
@media (max-width: 879px) {
    .parallax-band { background-attachment: scroll; min-height: 68vh; }
}

/* ========================================================================
   Responsive — tablet (>=880px)
   ======================================================================== */
@media (min-width: 600px) {
    .valores__grid { grid-template-columns: repeat(2, 1fr); }
    .org-grid { grid-template-columns: repeat(2, 1fr); }
    .org-consultores { grid-template-columns: repeat(2, 1fr); }
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .proceso__grid { grid-template-columns: repeat(2, 1fr); }
    .serv-grid { grid-template-columns: repeat(2, 1fr); }
    .norm-hero__stats { grid-template-columns: repeat(3, 1fr); }
    .sectores-chips { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 880px) {
    .site-nav__links { display: flex; }
    .site-nav__cta { display: inline-flex; }
    .site-nav__burger { display: none; }

    .stats__grid { grid-template-columns: repeat(3, 1fr); }
    .doors__grid { grid-template-columns: repeat(3, 1fr); }

    .historia__grid { grid-template-columns: 1.15fr 0.85fr; }
    .sectores__grid { grid-template-columns: 0.92fr 1.08fr; }
    .svc-card { grid-template-columns: 1.05fr 0.95fr; }
    .cores__grid { grid-template-columns: 1fr 1fr; }
    .cores__grid--3 { grid-template-columns: repeat(3, 1fr); }
    .norm-figs__grid { grid-template-columns: repeat(4, 1fr); }
    .norm-subgrid { grid-template-columns: repeat(3, 1fr); }
    .norm-duo { grid-template-columns: 1fr 1fr; }
    .contact__grid { grid-template-columns: 1fr 1fr; }
    .contact-form__row { grid-template-columns: 1fr 1fr; }
    [data-hide-m] { display: block; }
}

@media (min-width: 980px) {
    .valores__grid { grid-template-columns: repeat(3, 1fr); }
    .org-grid { grid-template-columns: repeat(4, 1fr); }
    .grid-4 { grid-template-columns: repeat(4, 1fr); }
    .proceso__grid { grid-template-columns: repeat(4, 1fr); }
    .serv-grid { grid-template-columns: repeat(3, 1fr); }
    .sectores-chips { grid-template-columns: repeat(5, 1fr); }

    /* Organigrama fiel al PPT: línea de mando central (Hugo → Mauricio) con staff
       lateral (Administración a la derecha, HSEC a la izquierda), cada uno en su
       propia fila para no solaparse. Conectores con líneas que cruzan al centro. */
    .orgc {
        display: grid;
        grid-template-columns: 1fr 300px 1fr;
        grid-template-areas:
            ".     hugo   ."
            ".     ladmin admin"
            ".     mau    ."
            "hsec  lhsec  .";
        align-items: center;
        justify-items: center;
        column-gap: 0;
        row-gap: 0;
        max-width: 1000px;
        margin: 0 auto;
    }
    .orgc__hugo  { grid-area: hugo; }
    .orgc__admin { grid-area: admin; justify-self: start; }
    .orgc__mau   { grid-area: mau; }
    .orgc__hsec  { grid-area: hsec; justify-self: end; }
    .orgc__admin .org-card, .orgc__hsec .org-card { width: 290px; }
    /* Conector rama derecha (Administración): tramo vertical central + horizontal a la derecha */
    .orgc__link--admin { grid-area: ladmin; display: block; position: relative; align-self: stretch; width: 100%; }
    .orgc__link--admin::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: #c3cee6; }
    .orgc__link--admin::after  { content: ''; position: absolute; left: 50%; top: 50%; right: -1px; height: 2px; background: #c3cee6; }
    /* Conector rama izquierda (HSEC): tramo vertical central + horizontal a la izquierda */
    .orgc__link--hsec { grid-area: lhsec; display: block; position: relative; align-self: stretch; width: 100%; }
    .orgc__link--hsec::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: #c3cee6; }
    .orgc__link--hsec::after  { content: ''; position: absolute; right: 50%; top: 50%; left: -1px; height: 2px; background: #c3cee6; }
    /* Última fila desplazada a la derecha (bajo Pedro→Ricardo) */
    .org-col--spacer { display: block; }
}
