:root {
    --verde: #009988;
    --verde-osc: #008070;
    --azul: #001B69;
    --azul-osc: #00144d;
    --ink: #1A1A1A;
    --gris: #4B5563;
    --bg: #F4F6F8;
  }
  body { font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:var(--ink); background:var(--ink); }
  .font-mono-code { font-family:'DM Mono',monospace; }
  ::-webkit-scrollbar { width:8px; height:8px; }
  ::-webkit-scrollbar-track { background:var(--bg); }
  ::-webkit-scrollbar-thumb { background:var(--verde); border-radius:4px; }
  ::selection { background:var(--verde); color:#fff; }
  .texture-primary { background-image:radial-gradient(circle at 20% 20%, #009988 0%, transparent 40%), radial-gradient(circle at 85% 80%, #001B69 0%, transparent 45%); }
  .texture-secondary { background-image:radial-gradient(circle at 80% 20%, #009988 0%, transparent 45%); }
  :focus-visible { outline:3px solid #45d6bf; outline-offset:3px; }
  .skip-link { position:fixed; left:1rem; top:1rem; z-index:100; transform:translateY(-200%); border-radius:.5rem; background:#fff; color:var(--azul); padding:.75rem 1rem; font-weight:700; }
  .skip-link:focus { transform:translateY(0); }

  .js-motion .reveal { opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
  .js-motion .reveal.visible { opacity:1; transform:translateY(0); }
  .reveal-d1 { transition-delay:.1s; } .reveal-d2 { transition-delay:.2s; } .reveal-d3 { transition-delay:.3s; }

  .hero-bg {
    background:
      radial-gradient(circle at 85% 10%, rgba(0,153,136,.12) 0%, transparent 50%),
      radial-gradient(circle at 10% 90%, rgba(0,27,105,.10) 0%, transparent 55%),
      linear-gradient(180deg,#FFFFFF 0%,#F4F6F8 100%);
  }
  .grid-pattern {
    background-image:linear-gradient(rgba(0,27,105,.045) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(0,27,105,.045) 1px,transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,black 40%,transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,black 40%,transparent 100%);
  }
  .btn-primary {
    background:var(--verde); color:#fff;
    box-shadow:0 8px 24px -6px rgba(0,153,136,.45);
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  }
  .btn-primary:hover { background:var(--verde-osc); transform:translateY(-2px); box-shadow:0 14px 30px -6px rgba(0,153,136,.55); }
  .btn-ghost {
    border:1.5px solid rgba(255,255,255,.35); color:#fff; backdrop-filter:blur(6px);
    transition:all .25s ease;
  }
  .btn-ghost:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.7); transform:translateY(-2px); }
  .btn-navy { background:var(--azul); color:#fff; transition:all .25s ease; }
  .btn-navy:hover { background:var(--azul-osc); transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(0,27,105,.5); }

  .card-hover { transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease; }
  .card-hover:hover { transform:translateY(-6px); box-shadow:0 20px 45px -14px rgba(0,27,105,.18); border-color:rgba(0,153,136,.45); }

  .service-num {
    font-family:'DM Mono',monospace; font-size:5.5rem; line-height:1; font-weight:500;
    color:transparent; -webkit-text-stroke:1.5px rgba(0,153,136,.35);
    transition:all .4s ease;
  }
  .card-hover:hover .service-num { -webkit-text-stroke:1.5px var(--verde); }

  .tick-item svg { flex:none; }
  .marquee-track { display:flex; width:max-content; animation:marquee 26s linear infinite; }
  @keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

  .float-badge { animation:floaty 5s ease-in-out infinite; }
  @keyframes floaty { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }

  .step-line::before {
    content:''; position:absolute; left:23px; top:48px; bottom:-8px; width:2px;
    background:linear-gradient(180deg,var(--verde),rgba(0,153,136,.15));
  }
  .step-item:last-child .step-line::before { display:none; }

  .stat-bar { height:6px; border-radius:99px; background:rgba(255,255,255,.15); overflow:hidden; }
  .stat-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,var(--verde),#4ade80); width:0; transition:width 1.4s cubic-bezier(.16,1,.3,1); }
  #nosotros.is-counted .stat-fill[data-width="98"] { width:98%; }
  #nosotros.is-counted .stat-fill[data-width="82"] { width:82%; }
  #nosotros.is-counted .stat-fill[data-width="40"] { width:40%; }

  .whatsapp-fab {
    position:fixed; right:20px; bottom:20px; z-index:60;
    width:58px; height:58px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 28px -6px rgba(37,211,102,.55);
    transition:transform .25s ease;
  }
  .whatsapp-fab:hover { transform:scale(1.1) rotate(6deg); }
  .hero-video-toggle { display:none; position:absolute; right:7rem; bottom:1rem; z-index:20; align-items:center; justify-content:center; width:44px; height:44px; gap:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(0,20,77,.42); color:#fff; padding:0; opacity:.62; font-size:.75rem; font-weight:700; cursor:pointer; backdrop-filter:blur(6px); transition:opacity .2s ease, background-color .2s ease; }
  .hero-video-toggle.is-visible { display:inline-flex; }
  .hero-video-toggle:hover, .hero-video-toggle:focus-visible, .hero-video-toggle:active { opacity:1; background:rgba(0,20,77,.82); }
  .hero-video-toggle span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
  .hero-video-toggle .pause-icon { display:none; }
  .hero-video-toggle.is-playing .play-icon { display:none; }
  .hero-video-toggle.is-playing .pause-icon { display:block; }

  #navbar { transition:background .3s ease, box-shadow .3s ease; }
  #navbar > .nav-shell { position:relative; isolation:isolate; height:76px; }
  #navbar > .nav-shell::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:0; background:rgba(255,255,255,.94); backdrop-filter:blur(14px); box-shadow:0 8px 28px -12px rgba(0,27,105,.28); opacity:0; pointer-events:none; transition:inset .3s ease, border-radius .3s ease, opacity .3s ease; }
  #navbar .navbar-logo { position:relative; display:block; flex:none; width:250px; height:76px; transform:scale(1.9); transform-origin:left center; }
  #navbar .navbar-logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:left center; transition:opacity .3s ease; }
  #navbar .navbar-logo .logo-color { opacity:0; }
  #navbar.scrolled .navbar-logo .logo-white { opacity:0; }
  #navbar.scrolled .navbar-logo .logo-color { opacity:1; }
  #desktop-nav { flex-wrap:nowrap; white-space:nowrap; gap:28px; }
  #desktop-nav a { white-space:nowrap; }
  #navbar .btn-primary { white-space:nowrap; flex-shrink:0; }
  footer img { width:220px !important; max-width:none !important; height:auto !important; object-fit:contain; }
  /* Footer: columnas compactas y alineadas */
  footer > div > div:first-child {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.25fr);
    gap: clamp(32px, 6vw, 80px);
    align-items: start;
  }
  footer > div > div:first-child > div:first-child {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-width: 0;
  }
  footer > div > div:first-child > div:first-child > div {
    display: flex;
    justify-content: center;
    align-items: center;
    height: auto;
    margin: 0 0 12px;
  }
  footer > div > div:first-child > div:first-child > div img {
    width: 220px !important;
    max-width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain;
    filter: brightness(0) invert(1);
  }
  footer > div > div:first-child > div:first-child > p {
    max-width: 390px;
    margin: 0;
  }
  footer > div > div:first-child > div:nth-child(2),
  footer > div > div:first-child > div:nth-child(3) { min-width: 0; }
  footer > div > div:first-child ul { margin: 0; }

  @media (max-width: 1024px) {
    footer > div > div:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    footer > div > div:first-child > div:first-child > div img { width: 200px !important; }
    #navbar .navbar-logo { width:220px; height:72px; transform:scale(1.75); }
  }
  @media (max-width: 767px) {
    footer > div > div:first-child { grid-template-columns: 1fr; gap: 32px; }
    footer > div > div:first-child > div:first-child > div img { width: 190px !important; }
    footer > div > div:first-child > div:first-child > p {
      max-width: 100%;
      font-size: .875rem;
      line-height: 1.5;
    }
    footer h4 { font-size: .65rem; margin-bottom: 12px; }
    footer ul { font-size: .72rem; line-height: 1.4; }
    footer ul li + li { margin-top: .45rem; }
  }
  @media (max-width: 640px) {
    #navbar .navbar-logo { width:180px; height:66px; transform:scale(1.6); }
  }
  #navbar.scrolled > .nav-shell::before { inset:10px 18px 0; border-radius:18px; opacity:1; }

  @media (max-width:767px) {
    #navbar > .nav-shell { width:100%; max-width:none; height:68px; margin:0; padding-left:16px; padding-right:16px; }
    #navbar > .nav-shell::before { inset:0; border-radius:0; background:transparent; box-shadow:none; opacity:0; }
    #navbar.scrolled > .nav-shell::before { inset:0; border-radius:0; background:rgba(255,255,255,.96); box-shadow:0 8px 24px -10px rgba(0,27,105,.3); opacity:1; }
    .hero-video-toggle { right:1rem; bottom:4rem; }
    #navbar .navbar-logo { width:200px; height:78px; transform:none; }
    .hero-service-badge { position:relative; top:-40px; max-width:100%; padding-left:10px; padding-right:10px; font-size:clamp(8px,2.2vw,9px); letter-spacing:.01em; white-space:nowrap; }
    #inicio > .max-w-7xl { transform:translateY(36px); }
    #hero-video { object-position:40% center; transform:scale(1.06) translateY(3%); transform-origin:center; }
    .hero-service-badge + .hero-title { margin-top:16px; }
    .hero-title { position:relative; top:-25px; font-weight:700; }
    #inicio .hero-title + p { margin-top:32px; }
    #inicio .hero-title + p + div { margin-top:24px; }
  }

  footer > div > div > div:first-child > div { background:transparent; padding-left:0; padding-right:0; }

  .mobile-menu { transition:transform .35s cubic-bezier(.16,1,.3,1); transform:translateX(100%); }
  .mobile-menu.open { transform:translateX(0); }

#navbar:not(.scrolled) .btn-primary { background: rgba(0,153,136,.92); }
  #navbar.scrolled #desktop-nav { color: #334155; }
  #navbar.scrolled #menu-btn { color: #334155; }
  .hero-title { text-shadow: 0 2px 12px rgba(0,0,0,.22); }
  .hero-title .hero-accent { color: #009f92; }
  .hero-copy-mobile { display: none; }

@media (max-width: 767px) {
  .hero-copy-desktop { display: none; }
  .hero-copy-mobile { display: inline; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  #inicio video { display:none; }
  #inicio.manual-video-enabled video { display:block; }
  #inicio { background-color: var(--azul); }
}
