  /* ============ TOKENS ============ */
  :root{
    --teal:#31AFB4;
    --teal-deep:#1f8f93;
    --navy:#12566F;
    --navy-deep:#0e4255;
    --yellow:#FFD658;
    --yellow-deep:#f2c233;
    --green:#28A745;
    --green-deep:#1e8537;
    --cream:#FBF7EF;
    --cream-2:#F4EEE0;
    --ink:#173138;
    --body:#455A64;
    --muted:#5d6e75;
    --line:#e7ddca;
    --white:#ffffff;

    --r-sm:14px;
    --r-md:22px;
    --r-lg:34px;
    --r-xl:48px;

    --shadow-sm:0 4px 14px rgba(18,86,111,.07);
    --shadow-md:0 18px 40px -18px rgba(18,86,111,.28);
    --shadow-lg:0 40px 80px -30px rgba(18,86,111,.4);

    --maxw:1240px;
    --ease:cubic-bezier(.22,.61,.36,1);

    --font-display:"Bricolage Grotesque", "Hanken Grotesk", sans-serif;
    --font-body:"Hanken Grotesk", system-ui, sans-serif;
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    font-family:var(--font-body);
    color:var(--body);
    background:var(--cream);
    line-height:1.6;
    font-size:17px;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  body::before{
    content:"";
    position:fixed; inset:0;
    pointer-events:none; z-index:0;
    opacity:.5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  }
  img,svg{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3,h4{
    font-family:var(--font-display);
    color:var(--navy);
    line-height:1.06;
    margin:0;
    letter-spacing:-.02em;
    font-weight:700;
  }
  p{margin:0;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:1;}
  section{position:relative;z-index:1;}

  :focus-visible{
    outline:3px solid var(--navy);
    outline-offset:3px;
    border-radius:6px;
  }
  .skip{
    position:absolute; left:-9999px; top:0; z-index:200;
    background:var(--navy); color:#fff; padding:14px 20px; border-radius:0 0 12px 0;
    font-weight:700;
  }
  .skip:focus{left:0;}

  .eyebrow{
    display:inline-flex; align-items:center; gap:9px;
    font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--teal-deep);
    background:rgba(49,175,180,.12);
    padding:8px 16px; border-radius:100px;
    margin-bottom:22px;
  }
  .eyebrow i{font-size:.8rem;}

  /* ============ BUTTONS ============ */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    font-weight:700; font-size:1rem;
    padding:15px 26px; border-radius:100px;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .25s, color .25s;
    white-space:nowrap; position:relative;
  }
  .btn i{transition:transform .35s var(--ease);}
  .btn-primary{background:var(--navy);color:#fff;box-shadow:var(--shadow-md);}
  .btn-primary:hover{background:var(--navy-deep);transform:translateY(-3px);box-shadow:var(--shadow-lg);}
  .btn-primary:hover i{transform:translateX(4px);}
  .btn-yellow{background:var(--yellow);color:var(--navy);box-shadow:0 14px 30px -12px rgba(242,194,51,.85);}
  .btn-yellow:hover{background:var(--yellow-deep);transform:translateY(-3px);}
  .btn-ghost{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 2px rgba(18,86,111,.16);}
  .btn-ghost:hover{box-shadow:inset 0 0 0 2px var(--navy);transform:translateY(-3px);}
  .btn-lg{padding:18px 34px;font-size:1.06rem;}

  /* ============ HEADER ============ */
  header.site{
    position:sticky; top:0; z-index:100;
    transition:background .3s, box-shadow .3s, padding .3s;
    padding:14px 0;
  }
  header.site.scrolled{
    background:rgba(251,247,239,.86);
    backdrop-filter:blur(16px) saturate(140%);
    -webkit-backdrop-filter:blur(16px) saturate(140%);
    box-shadow:0 1px 0 var(--line), var(--shadow-sm);
    padding:9px 0;
  }
  .navbar{display:flex;align-items:center;justify-content:space-between;gap:24px;}
  .brand{display:flex;align-items:center;gap:12px;flex-shrink:0;}
  .brand .logo-mark{width:44px;height:44px;flex-shrink:0;}
  .brand .wordmark{font-family:var(--font-display);font-weight:800;font-size:1.7rem;color:var(--navy);letter-spacing:-.04em;}
  .brand .wordmark span{color:var(--teal);}

  .nav-main{display:flex;align-items:center;gap:6px;}
  .nav-main a{
    font-weight:600; font-size:.97rem; color:var(--navy);
    padding:9px 15px; border-radius:100px; position:relative;
    transition:color .2s, background .2s;
  }
  .nav-main a::after{
    content:""; position:absolute; left:15px; right:15px; bottom:5px; height:2px;
    background:var(--teal); border-radius:2px;
    transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
  }
  .nav-main a:hover{color:var(--teal-deep);}
  .nav-main a:hover::after{transform:scaleX(1);}

  .nav-right{display:flex;align-items:center;gap:14px;}

  .hamburger{display:none;width:46px;height:46px;border-radius:13px;background:#fff;box-shadow:var(--shadow-sm);align-items:center;justify-content:center;}
  .hamburger span{display:block;width:20px;height:2px;background:var(--navy);position:relative;transition:.3s;}
  .hamburger span::before,.hamburger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--navy);transition:.3s;}
  .hamburger span::before{top:-6px;}
  .hamburger span::after{top:6px;}
  body.menu-open .hamburger span{background:transparent;}
  body.menu-open .hamburger span::before{top:0;transform:rotate(45deg);}
  body.menu-open .hamburger span::after{top:0;transform:rotate(-45deg);}

  .mobile-menu{
    position:fixed; inset:0 0 0 auto; width:min(360px,86vw); z-index:99;
    background:var(--cream); box-shadow:var(--shadow-lg);
    transform:translateX(100%); transition:transform .42s var(--ease);
    padding:96px 28px 32px; display:flex; flex-direction:column; gap:6px;
    overflow-y:auto;
  }
  body.menu-open .mobile-menu{transform:translateX(0);}
  .mobile-menu a{font-family:var(--font-display);font-weight:600;font-size:1.4rem;color:var(--navy);padding:13px 4px;border-bottom:1px solid var(--line);}
  .mobile-menu .btn{margin-top:18px;}
  .menu-backdrop{position:fixed;inset:0;background:rgba(18,66,85,.42);z-index:98;opacity:0;visibility:hidden;transition:.4s;}
  body.menu-open .menu-backdrop{opacity:1;visibility:visible;}

  /* ============ REVEAL ============
     Default: content is VISIBLE (no JS, no observer => nothing hidden).
     Only when <html class="js"> is present AND the element has NOT yet
     entered the viewport do we hide it, then the IntersectionObserver
     adds .in to animate it up. This guarantees the hero (and everything
     else) is painted on first load and can never get stuck at opacity:0. */
  .reveal{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);}
  html.js .reveal.pre{opacity:0;transform:translateY(26px);}
  html.js .reveal.in{opacity:1;transform:none;}

  /* Hero entrance is animation-driven (fill-mode both ends at opacity:1),
     so it NEVER depends on scroll or JS to become visible. */
  @keyframes heroIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
  html.js .hero .anim{opacity:0;animation:heroIn .8s var(--ease) forwards;}
  html.js .hero .anim.d1{animation-delay:.06s;}
  html.js .hero .anim.d2{animation-delay:.14s;}
  html.js .hero .anim.d3{animation-delay:.22s;}
  html.js .hero .anim.d4{animation-delay:.30s;}
  html.js .hero .anim.d5{animation-delay:.18s;}

  /* ============ HERO ============ */
  .hero{padding:54px 0 90px;overflow:hidden;}
  .blob{position:absolute;border-radius:50%;filter:blur(8px);z-index:0;pointer-events:none;opacity:.55;}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
  .hero-flag{
    display:inline-flex;align-items:center;gap:9px;
    background:#fff;border-radius:100px;padding:7px 16px 7px 8px;box-shadow:var(--shadow-sm);
    font-weight:700;font-size:.82rem;color:var(--navy);margin-bottom:24px;
  }
  .hn-flag{width:28px;height:19px;border-radius:4px;overflow:hidden;flex-shrink:0;box-shadow:0 0 0 1px rgba(18,66,85,.12), 0 1px 3px rgba(18,66,85,.18);display:block;}
  .hero h1{
    font-size:clamp(2.5rem,5.6vw,4.3rem);
    font-weight:800;
    margin-bottom:22px;
  }
  .hero h1 .hl{position:relative;white-space:nowrap;color:var(--teal-deep);}
  .hero h1 .hl svg{position:absolute;left:0;right:0;bottom:-12px;width:100%;height:14px;}
  .hero h1 em{font-style:normal;color:var(--navy);}
  .hero-sub{font-size:1.18rem;max-width:540px;margin-bottom:32px;color:var(--body);}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
  .trust-row{display:flex;gap:14px;flex-wrap:wrap;}
  .trust-pill{
    display:flex;align-items:center;gap:11px;
    background:#fff;padding:12px 18px;border-radius:var(--r-sm);box-shadow:var(--shadow-sm);
  }
  .trust-pill .ti{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;}
  .trust-pill b{display:block;font-family:var(--font-display);font-size:1.16rem;color:var(--navy);line-height:1;font-weight:700;}
  .trust-pill small{font-size:.78rem;color:var(--muted);font-weight:600;}

  /* HERO ART */
  .hero-art{position:relative;}
  .art-stage{position:relative;width:100%;aspect-ratio:1/1;max-width:520px;margin-left:auto;}
  .float{animation:floaty 6s ease-in-out infinite;}
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
  .badge-card{
    position:absolute;background:#fff;border-radius:18px;box-shadow:var(--shadow-md);
    padding:13px 16px;display:flex;align-items:center;gap:11px;z-index:5;
  }
  .badge-card .bi{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:#fff;flex-shrink:0;}
  .badge-card b{font-family:var(--font-display);color:var(--navy);font-size:.96rem;display:block;line-height:1.1;}
  .badge-card small{font-size:.74rem;color:var(--muted);font-weight:600;}
  .bc-1{top:6%;left:-4%;animation-delay:-1s;}
  .bc-2{bottom:14%;right:-6%;animation-delay:-3s;}
  .bc-3{bottom:-2%;left:8%;animation-delay:-2s;}

  /* ============ SECTORS STRIP ============ */
  .sectors{padding:30px 0;}
  .sectors-inner{
    background:var(--navy);border-radius:var(--r-lg);padding:34px 40px;
    box-shadow:var(--shadow-md);position:relative;overflow:hidden;
  }
  .sectors-inner::before{content:"";position:absolute;top:-60%;right:-10%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(49,175,180,.4),transparent 70%);}
  .sectors-head{color:#cfe6ea;font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;margin-bottom:22px;}
  .sectors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;}
  .sector{display:flex;align-items:center;gap:14px;color:#fff;}
  .sector i{width:50px;height:50px;border-radius:14px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--yellow);flex-shrink:0;}
  .sector b{display:block;font-family:var(--font-display);font-size:1.1rem;}
  .sector small{font-size:.8rem;color:#a9cbd2;}

  /* ============ COVERAGE / CENTROAMÉRICA ============ */
  .coverage{padding:30px 0 8px;}
  .coverage-inner{
    background:linear-gradient(135deg,#fff,var(--cream));border-radius:var(--r-lg);
    border:1px solid var(--line);box-shadow:var(--shadow-sm);
    padding:42px 40px;position:relative;overflow:hidden;
  }
  .coverage-inner::before{content:"";position:absolute;top:-50%;right:-8%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(49,175,180,.12),transparent 70%);}
  .coverage-top{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;}
  .coverage-top h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:14px;font-weight:800;}
  .coverage-top p{font-size:1.06rem;color:var(--body);}
  .coverage-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
  .coverage-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(49,175,180,.12);color:var(--navy);font-weight:700;font-size:.82rem;padding:7px 14px;border-radius:100px;}
  .coverage-tag i{font-size:.78rem;}
  .countries{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:34px;position:relative;}
  .country{
    background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
    padding:18px 12px;text-align:center;box-shadow:var(--shadow-sm);
    transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  }
  .country:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
  .country{display:flex;flex-direction:column;align-items:center;}
  .country .flag{margin-bottom:12px;display:flex;align-items:center;}
  .country .flag svg{width:42px;height:28px;border-radius:5px;box-shadow:0 0 0 1px rgba(18,66,85,.14), 0 2px 6px rgba(18,66,85,.16);display:block;}
  .country b{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.98rem;color:var(--navy);font-weight:700;min-height:2.5em;line-height:1.2;}
  .country small{font-size:.72rem;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:auto;}
  .country.home{background:var(--navy);border-color:var(--navy);}
  .country.home b{color:#fff;}
  .country.home small{color:var(--yellow);}

  /* ============ SECTION HEADS ============ */
  .sec{padding:78px 0;}
  .sec-head{max-width:680px;margin-bottom:48px;}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .sec-head h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:16px;font-weight:800;}
  .sec-head p{font-size:1.12rem;color:var(--body);}

  /* ============ SERVICES ============ */
  .svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .svc{
    background:#fff;border-radius:var(--r-md);padding:30px;position:relative;overflow:hidden;
    box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease);
    border:1px solid var(--line);
  }
  .svc::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--teal);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease);}
  .svc:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .svc:hover::after{transform:scaleY(1);}
  .svc-ic{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.45rem;color:#fff;margin-bottom:20px;transition:transform .4s var(--ease);}
  .svc:hover .svc-ic{transform:rotate(-7deg) scale(1.06);}
  .svc h3{font-size:1.32rem;margin-bottom:10px;}
  .svc p{font-size:.97rem;color:var(--body);}
  .svc-tag{display:inline-block;margin-top:16px;font-size:.78rem;font-weight:700;color:var(--teal-deep);background:rgba(49,175,180,.1);padding:5px 12px;border-radius:100px;}
  .svc-case{display:block;margin-top:12px;font-size:.8rem;color:var(--body);background:rgba(255,214,88,.16);border:1px dashed rgba(217,169,22,.45);border-radius:10px;padding:7px 10px;}
  .svc-case i{color:#b9901a;margin-right:4px;}
  .svc-case b{color:var(--navy);}

  /* ============ TECH BAND ============ */
  .tech-band{margin-top:34px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:28px 30px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
  .tech-band::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--teal),var(--yellow),var(--navy));}
  .tech-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:18px;}
  .tech-head b{font-family:var(--font-display);font-size:1.15rem;color:var(--navy);}
  .tech-head b i{color:var(--teal-deep);margin-right:6px;}
  .tech-head span{font-size:.92rem;color:var(--body);}
  .tech-chips{display:flex;flex-wrap:wrap;gap:8px;}
  .tech-chip{font-size:.82rem;font-weight:700;color:var(--navy);background:var(--cream);border:1px solid var(--line);border-radius:9px;padding:6px 13px;transition:all .25s var(--ease);cursor:default;}
  .tech-chip:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px);}
  .tech-note{margin-top:16px;font-size:.88rem;color:var(--muted);font-style:italic;}

  /* ============ MURO DE CLIENTES ============ */
  .wall{padding:26px 0 80px;}
  .wall-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;}
  .wall-grid .placa{width:calc(25% - 14px);min-width:212px;}
  .placa{
    background:#fff;border:1px solid var(--line);border-radius:14px;
    outline:1px solid rgba(18,86,111,.14);outline-offset:-7px;
    min-height:158px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
    padding:26px 18px;box-shadow:var(--shadow-sm);position:relative;
    transition:transform .4s var(--ease),box-shadow .4s var(--ease);
  }
  .placa::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:34px;height:3px;border-radius:3px;background:var(--yellow);opacity:.85;}
  .placa:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .placa img{height:48px;width:auto;max-width:86%;object-fit:contain;filter:grayscale(1) contrast(1.04) opacity(.78);mix-blend-mode:multiply;transition:filter .4s var(--ease),opacity .4s var(--ease);}
  .placa:hover img{filter:none;opacity:1;}
  .placa small{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;}

  /* ============ PRODUCTS ============ */
  .prod-wrap{background:var(--cream-2);}
  .prod-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px;}
  .prod{
    background:#fff;border-radius:var(--r-md);padding:26px;position:relative;overflow:hidden;
    box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease);
    display:flex;flex-direction:column;
  }
  .prod:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .prod-logo{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;color:#fff;font-size:1.1rem;margin-bottom:16px;letter-spacing:-.03em;box-shadow:0 4px 12px rgba(18,66,85,.14);}
  .prod-brand{height:52px;display:flex;align-items:center;margin-bottom:16px;}
  .prod-brand img{height:34px;width:auto;max-width:200px;object-fit:contain;display:block;}
  .prod h3{font-size:1.34rem;margin-bottom:8px;}
  .prod p{font-size:.95rem;flex-grow:1;}
  .prod-sector{margin-top:16px;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px;}
  .prod-sector i{color:var(--teal);}
  /* featured product spans + has mock dashboard */
  .prod.feature{grid-column:span 3;grid-row:span 2;background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:#fff;padding:34px;}
  .prod.feature h3{color:#fff;font-size:2rem;}
  .prod.feature p{color:#cfe6ea;font-size:1.04rem;}
  .prod.feature .prod-sector{color:#9fc4cd;}
  .prod.feature .prod-sector i{color:var(--yellow);}
  .prod.feature .star{position:absolute;top:24px;right:24px;background:var(--yellow);color:var(--navy);font-weight:700;font-size:.72rem;padding:6px 13px;border-radius:100px;letter-spacing:.06em;}
  .prod.feature .prod-logo{background:rgba(255,255,255,.12);font-size:1.3rem;width:62px;height:62px;}
  .prod.small{grid-column:span 3;}
  .prod.small.b2{grid-column:span 2;}

  /* dashboard mock inside feature */
  .mock{margin-top:24px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px;}
  .mock-bar{display:flex;gap:6px;margin-bottom:12px;}
  .mock-bar i{width:9px;height:9px;border-radius:50%;}
  .mock-row{display:flex;gap:10px;align-items:flex-end;height:70px;}
  .mock-row span{flex:1;background:linear-gradient(180deg,var(--teal),rgba(49,175,180,.25));border-radius:5px 5px 0 0;}
  .mock-meta{display:flex;justify-content:space-between;margin-top:12px;font-size:.72rem;color:#9fc4cd;font-weight:600;}

  /* ============ PROMESA 100 ============ */
  .promesa{padding:80px 0;}
  .promesa-card{
    background:linear-gradient(135deg,#fff,var(--cream));border-radius:var(--r-xl);
    box-shadow:var(--shadow-md);border:2px dashed var(--line);
    padding:54px;display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center;position:relative;overflow:hidden;
  }
  .promesa-card::before{content:"";position:absolute;top:-40%;left:-15%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(40,167,69,.14),transparent 70%);}
  .seal{position:relative;width:200px;height:200px;margin:0 auto;}
  .seal .ring{position:absolute;inset:0;animation:spin 26s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg)}}
  .seal .core{position:absolute;inset:34px;background:var(--green);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-md);}
  .seal .core b{font-family:var(--font-display);font-size:2.5rem;line-height:.9;font-weight:800;}
  .seal .core small{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;margin-top:4px;}
  .promesa h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:16px;font-weight:800;}
  .promesa p{font-size:1.1rem;margin-bottom:24px;}
  .pledge{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .pledge li{display:flex;align-items:flex-start;gap:11px;font-weight:600;color:var(--navy);font-size:.98rem;}
  .pledge li i{color:var(--green);font-size:1.05rem;margin-top:3px;flex-shrink:0;}

  /* ============ PROCESS ============ */
  .process{position:relative;}
  .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative;}
  .steps::before{content:"";position:absolute;top:36px;left:8%;right:8%;height:3px;background:repeating-linear-gradient(90deg,var(--teal) 0 12px,transparent 12px 22px);z-index:0;}
  .step{text-align:center;position:relative;z-index:1;}
  .step-num{
    width:74px;height:74px;border-radius:22px;background:#fff;box-shadow:var(--shadow-sm);
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:1.5rem;color:var(--teal-deep);
    border:1px solid var(--line);transition:transform .4s var(--ease),background .3s,color .3s;
  }
  .step:hover .step-num{transform:translateY(-6px) rotate(-6deg);background:var(--teal);color:#fff;}
  .step b{display:block;font-family:var(--font-display);font-size:.74rem;color:var(--teal-deep);letter-spacing:.14em;margin-bottom:6px;}
  .step h3{font-size:1.18rem;margin-bottom:8px;}
  .step p{font-size:.9rem;}

  /* ============ TESTIMONIALS ============ */
  .testi-wrap{background:var(--navy);color:#fff;border-radius:var(--r-xl);margin:0 24px;padding:64px 0;overflow:hidden;position:relative;}
  .testi-wrap::before{content:"";position:absolute;bottom:-40%;right:-8%;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(49,175,180,.3),transparent 70%);}
  .testi-wrap .wrap{position:relative;}
  .testi-wrap .sec-head h2{color:#fff;}
  .testi-wrap .sec-head p{color:#bcd9df;}
  .testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .testi{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);padding:34px;backdrop-filter:blur(6px);}
  .testi .quote-ic{font-size:1.6rem;color:var(--yellow);margin-bottom:16px;}
  .testi blockquote{font-family:var(--font-display);font-size:1.28rem;line-height:1.4;color:#fff;margin:0 0 24px;font-weight:500;}
  .testi .stars{color:var(--yellow);margin-bottom:18px;letter-spacing:3px;font-size:.95rem;}
  .testi-by{display:flex;align-items:center;gap:14px;}
  .testi-av{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--navy);flex-shrink:0;}
  .testi-by b{display:block;color:#fff;font-family:var(--font-display);}
  .testi-by small{color:#9fc4cd;font-size:.85rem;}

  /* ============ CTA STRIP ============ */
  .ctastrip{padding:80px 0;}
  .ctastrip-inner{
    background:linear-gradient(120deg,var(--teal),var(--teal-deep));border-radius:var(--r-xl);
    padding:58px;text-align:center;box-shadow:var(--shadow-md);position:relative;overflow:hidden;color:#fff;
  }
  .ctastrip-inner::before,.ctastrip-inner::after{content:"";position:absolute;border-radius:50%;}
  .ctastrip-inner::before{top:-50%;left:-6%;width:300px;height:300px;background:rgba(255,255,255,.12);}
  .ctastrip-inner::after{bottom:-60%;right:-4%;width:340px;height:340px;background:rgba(18,86,111,.22);}
  .ctastrip-inner h2{color:#fff;font-size:clamp(2rem,4vw,3rem);margin-bottom:16px;position:relative;font-weight:800;}
  .ctastrip-inner p{color:#e6f7f8;font-size:1.16rem;max-width:560px;margin:0 auto 30px;position:relative;}
  .ctastrip-inner .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative;}

  /* ============ CONTACT ============ */
  .contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:start;}
  .contact-info h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:18px;font-weight:800;}
  .contact-info>p{font-size:1.1rem;margin-bottom:30px;}
  .cinfo-list{display:flex;flex-direction:column;gap:14px;margin-bottom:30px;}
  .cinfo{display:flex;align-items:center;gap:16px;background:#fff;padding:18px 20px;border-radius:var(--r-sm);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease);}
  .cinfo:hover{transform:translateX(5px);}
  .cinfo i{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;}
  .cinfo b{display:block;color:var(--navy);font-family:var(--font-display);font-size:1.02rem;}
  .cinfo small{color:var(--muted);font-size:.85rem;}
  .wa-card{display:flex;align-items:center;gap:16px;background:var(--green);color:#fff;padding:20px;border-radius:var(--r-sm);box-shadow:var(--shadow-md);}
  .wa-card>i{font-size:2rem;}
  .wa-card b{font-size:1.1rem;font-family:var(--font-display);}
  .wa-card small{display:block;color:rgba(255,255,255,.85);}
  .wa-card a{margin-left:auto;background:#fff;color:var(--green-deep);font-weight:700;padding:11px 20px;border-radius:100px;font-size:.92rem;transition:transform .3s var(--ease);}
  .wa-card a:hover{transform:scale(1.05);}

  .form-card{background:#fff;border-radius:var(--r-lg);padding:38px;box-shadow:var(--shadow-md);border:1px solid var(--line);}
  .form-card h3{font-size:1.5rem;margin-bottom:6px;}
  .form-card .fc-sub{color:var(--muted);font-size:.95rem;margin-bottom:26px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .field{margin-bottom:16px;}
  .field label{display:block;font-weight:600;font-size:.88rem;color:var(--navy);margin-bottom:7px;}
  .field label .req{color:var(--teal-deep);}
  .field input,.field select,.field textarea{
    width:100%;padding:13px 15px;border-radius:13px;border:1.5px solid var(--line);
    background:var(--cream);font-family:inherit;font-size:.97rem;color:var(--ink);transition:border .2s,box-shadow .2s,background .2s;
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(49,175,180,.14);}
  .field textarea{resize:vertical;min-height:108px;}
  .hp{position:absolute!important;left:-9999px!important;top:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0;}
  /* Toast de resultado del formulario */
  .gg-toast{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;align-items:flex-start;gap:10px;max-width:min(420px,calc(100vw - 36px));background:#fff;border-radius:14px;box-shadow:0 12px 34px rgba(18,66,85,.22);padding:14px 16px;font-size:.92rem;line-height:1.45;color:var(--ink);border-left:5px solid var(--teal);opacity:0;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease);}
  .gg-toast.show{opacity:1;transform:none;}
  .gg-toast i{margin-top:2px;font-size:1.05rem;color:var(--teal-deep);}
  .gg-toast.error{border-left-color:#d64545;}
  .gg-toast.error i{color:#d64545;}
  .privacy-row{display:flex;align-items:flex-start;gap:11px;margin:6px 0 22px;font-size:.86rem;color:var(--body);}
  .privacy-row input{width:20px;height:20px;margin-top:2px;accent-color:var(--teal);flex-shrink:0;}
  .privacy-row a{color:var(--teal-deep);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
  .form-card .btn{width:100%;}

  /* ============ FOOTER ============ */
  footer.site{background:var(--navy);color:#cfe0e5;padding:64px 0 28px;margin-top:30px;position:relative;overflow:hidden;}
  footer.site::before{content:"";position:absolute;top:-30%;left:50%;transform:translateX(-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(49,175,180,.16),transparent 70%);}
  .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;position:relative;margin-bottom:44px;}
  .foot-brand .brand .wordmark{color:#fff;}
  .foot-brand p{margin:18px 0 22px;font-size:.95rem;color:#a9cbd2;max-width:300px;}
  .foot-socials{display:flex;gap:10px;}
  .foot-socials a{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.05rem;transition:.25s;}
  .foot-socials a:hover{background:var(--teal);transform:translateY(-3px);}
  .foot-col h4{color:#fff;font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:18px;}
  .foot-col li{margin-bottom:11px;}
  .foot-col a{color:#a9cbd2;font-size:.95rem;transition:color .2s,padding .2s;display:inline-block;}
  .foot-col a:hover{color:var(--yellow);padding-left:4px;}
  .foot-loc{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px;font-size:.92rem;color:#a9cbd2;}
  .foot-loc i{color:var(--teal);margin-top:3px;}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;position:relative;}
  .foot-bottom p{font-size:.86rem;color:#c3d9de;}
  .foot-bottom .legal{display:flex;gap:22px;}
  .foot-bottom .legal a{font-size:.86rem;color:#a9cbd2;}
  .foot-bottom .legal a:hover{color:var(--yellow);}
  .made-hn{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);padding:6px 14px;border-radius:100px;font-size:.82rem;font-weight:600;color:#fff;}

  /* ============ RESPONSIVE ============ */
  @media (max-width:1024px){
    .hero-grid{grid-template-columns:1fr;gap:40px;}
    .art-stage{margin:0 auto;}
    .coverage-top{grid-template-columns:1fr;gap:24px;}
    .countries{grid-template-columns:repeat(3,1fr);}
    .prod-grid{grid-template-columns:repeat(2,1fr);}
    .prod.feature{grid-column:span 2;grid-row:auto;}
    .prod.small,.prod.small.b2{grid-column:span 1;}
    .svc-grid{grid-template-columns:repeat(2,1fr);}
    .wall-grid .placa{width:calc(33.33% - 12px);}
    .steps{grid-template-columns:repeat(2,1fr);}
    .steps::before{display:none;}
    .promesa-card{grid-template-columns:1fr;gap:36px;text-align:center;}
    .pledge{text-align:left;}
    .foot-grid{grid-template-columns:1fr 1fr;gap:32px;}
  }
  @media (max-width:860px){
    .nav-main,.nav-right .btn{display:none;}
    .hamburger{display:flex;}
    .nav-right{gap:10px;}
    .sectors-grid{grid-template-columns:1fr 1fr;gap:22px;}
    .testi-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;gap:36px;}
  }
  @media (max-width:560px){
    body{font-size:16px;}
    .wrap{padding:0 18px;}
    .sec{padding:56px 0;}
    .svc-grid{grid-template-columns:1fr;}
    .prod-grid{grid-template-columns:1fr;}
    .prod.feature,.prod.small,.prod.small.b2{grid-column:span 1;}
    .steps{grid-template-columns:1fr;}
    .sectors-grid{grid-template-columns:1fr;}
    .countries{grid-template-columns:1fr 1fr;}
    .sectors-inner,.coverage-inner,.promesa-card,.ctastrip-inner,.form-card{padding:28px 22px;}
    .form-row{grid-template-columns:1fr;}
    .pledge{grid-template-columns:1fr;}
    .testi-wrap{margin:0 14px;border-radius:var(--r-lg);}
    .hero h1 .hl{white-space:normal;}
    .wa-card{flex-wrap:wrap;}
    .wa-card a{margin-left:0;width:100%;text-align:center;}
    .foot-grid{grid-template-columns:1fr;}
    .foot-bottom{flex-direction:column;align-items:flex-start;}
  }

  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
    .reveal,html.js .reveal.pre,html.js .hero .anim{opacity:1!important;transform:none!important;}
  }

  /* ============ PREMIUM POLISH ============ */
  ::selection{background:var(--yellow);color:var(--navy);}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(49,175,180,.55);outline-offset:2px;border-radius:6px;}
