  /* =============================================================
     VLV Media — "Black & Gold" alternate design.
     Same content/structure/functionality as the original navy/warm
     build; this is a from-scratch visual system: near-black ground,
     champagne-gold accent, sharp/hairline geometry instead of soft
     rounded cards + gradients, for a premium-agency feel.
     ============================================================= */
  :root{
    --navy:#120f0a;
    --navy-2:#1c1712;
    --navy-3:#26201a;
    --cream:#f6f1e4;
    --warm:#d4af37;
    --warm-2:#f0d78c;
    --gold:#d4af37;
    --gold-deep:#9c7a1f;
    --text-dark:#171512;
    --text-soft:#6b6355;
    --white:#ffffff;
    --radius:2px;
    --shadow:0 24px 60px -24px rgba(0,0,0,.55);
    --hair:1px solid rgba(212,175,55,.35);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;overflow-x:hidden;width:100%;overscroll-behavior-x:none;}
  body{
    font-family:'Manrope',sans-serif;
    color:var(--text-dark);
    background:var(--cream);
    overflow-x:hidden;
    width:100%;
    max-width:100%;
    position:relative;
    overscroll-behavior-x:none;
    touch-action:pan-y;
  }
  h1,h2,h3,.serif{font-family:'Playfair Display',serif;}
  a{text-decoration:none;color:inherit;}
  ul{list-style:none;}
  img{max-width:100%;display:block;}
  .container{max-width:1180px;margin:0 auto;padding:0 24px;}
  section{position:relative;}
  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:11.5px;letter-spacing:3px;text-transform:uppercase;
    font-weight:700;color:var(--gold-deep);margin-bottom:18px;
  }
  .eyebrow::before{content:"";width:30px;height:1px;background:var(--gold);display:inline-block;}
  .sec-dark .eyebrow{color:var(--gold);}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    padding:16px 32px;border-radius:var(--radius);font-weight:700;font-size:13px;
    letter-spacing:1.5px;text-transform:uppercase;
    cursor:pointer;border:1px solid transparent;transition:.3s ease;white-space:nowrap;
  }
  .btn-primary{background:var(--gold);color:#0a0a09;box-shadow:0 14px 32px -14px rgba(212,175,55,.55);}
  .btn-primary:hover{transform:translateY(-3px);background:var(--warm-2);box-shadow:0 20px 40px -14px rgba(212,175,55,.7);}
  .btn-outline{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;}
  .btn-outline:hover{border-color:var(--gold);color:var(--gold);}
  .btn-dark{background:#0a0a09;color:var(--gold);border:1px solid rgba(212,175,55,.5);}
  .btn-dark:hover{background:#000;border-color:var(--gold);transform:translateY(-3px);}

  /* ===== HEADER ===== */
  header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    padding:22px 0;transition:.35s ease;border-bottom:1px solid transparent;
  }
  header.scrolled{background:rgba(10,10,9,.94);backdrop-filter:blur(10px);padding:14px 0;border-bottom-color:rgba(212,175,55,.2);}
  .nav-wrap{display:flex;align-items:center;justify-content:space-between;}
  /* ===== ANIMATED LOGO =====
     Base state is the FINISHED state; keyframes animate from hidden.
     If animations never run, the logo still renders fully. */
  .logo{display:inline-flex;align-items:center;gap:11px;}
  /* Marca oficial VLV (SVG del cliente, relleno con degradados dorados).
     Base = estado final; la animación solo la revela, así que si nunca
     corre, el logo igual se ve completo. */
  .logo-mark{width:46px;height:28px;flex:none;overflow:visible;
    opacity:1;transition:transform .3s ease;
    animation:vlvReveal .55s cubic-bezier(.25,.8,.3,1) .1s both;
  }
  /* Safety net: if the intro animations never run (frozen tab, disabled
     animations), .logo-lit forces the finished state so the logo can't
     be stuck invisible. Set by JS ~2.5s after load. */
  .logo-lit .logo-mark{animation:none;opacity:1;transform:none;}
  .logo-lit .logo-word{animation:none;opacity:1;transform:none;}
  @keyframes vlvReveal{
    from{opacity:0;transform:translateY(4px) scale(.94);}
    to{opacity:1;transform:none;}
  }
  .logo-word{
    font-family:'Playfair Display',serif;font-weight:800;font-size:23px;
    color:#fff;letter-spacing:1px;line-height:1;white-space:nowrap;
    animation:vlvWord .5s ease .55s both;
  }
  .logo-word em{
    font-family:'Manrope',sans-serif;font-style:normal;font-weight:500;
    font-size:20px;color:var(--warm-2);letter-spacing:.5px;
  }
  @keyframes vlvWord{from{opacity:0;transform:translateX(-10px);}to{opacity:1;transform:none;}}
  .logo:hover .logo-mark{filter:brightness(1.15);transform:translateY(-2px);}
  .foot-mark{width:64px;height:39px;margin-bottom:14px;display:block;}
  .nav-links{display:flex;align-items:center;gap:36px;}
  .nav-links a{color:#fff;font-size:12.5px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;opacity:.75;transition:.2s;position:relative;padding-bottom:4px;}
  .nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .35s ease;}
  .nav-links a:hover{opacity:1;color:var(--gold);}
  .nav-links a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left;}
  .nav-right{display:flex;align-items:center;gap:18px;}
  .lang-toggle{
    display:flex;background:transparent;border:1px solid rgba(212,175,55,.4);
    border-radius:var(--radius);padding:3px;cursor:pointer;
  }
  .lang-toggle button{
    background:transparent;border:none;color:#fff;font-weight:700;font-size:11.5px;letter-spacing:1px;
    padding:7px 14px;border-radius:0;cursor:pointer;transition:.2s;opacity:.55;
  }
  .lang-toggle button.active{background:var(--gold);color:#0a0a09;opacity:1;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1200;}
  .burger span{width:26px;height:1.5px;background:var(--gold);border-radius:0;}

  /* ===== HERO ===== */
  .hero{
    min-height:100vh;display:flex;align-items:center;position:relative;
    background:var(--navy);
    padding:160px 0 100px;overflow:hidden;
  }
  /* Cinematic hero plate. Parallaxes against the cursor via --hx/--hy for a
     layered depth effect; scale() gives headroom so edges never expose. */
  .hero-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    object-position:center right;opacity:.34;z-index:0;pointer-events:none;
    transform:scale(1.08) translate3d(var(--hx,0px),var(--hy,0px),0);
    will-change:transform;
    /* Slow ambient zoom, always on. This is the guaranteed "it's alive" motion
       for the hero: it doesn't depend on the video loading/playing at all, so
       every device shows movement from the first frame, even on a slow
       connection or if the .mp4 never manages to autoplay. The video (below)
       is a progressive enhancement layered on top when it succeeds. */
    animation:heroBgDrift 22s ease-in-out infinite alternate;
  }
  @keyframes heroBgDrift{
    from{transform:scale(1.08) translate3d(var(--hx,0px),var(--hy,0px),0);}
    to{transform:scale(1.16) translate3d(var(--hx,0px),var(--hy,0px),0);}
  }
  /* Left-weighted scrim so the headline always clears the image behind it. */
  .hero::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(90deg,rgba(10,10,9,.94) 0%,rgba(10,10,9,.78) 38%,rgba(10,10,9,.5) 72%,rgba(10,10,9,.62) 100%);
  }
  .hero::before{
    content:"";position:absolute;inset:0;z-index:1;
    background-image:
      radial-gradient(900px 560px at 82% 8%, rgba(212,175,55,.20), transparent 55%),
      radial-gradient(700px 500px at 6% 92%, rgba(212,175,55,.13), transparent 50%),
      repeating-linear-gradient(90deg, rgba(212,175,55,.035) 0 1px, transparent 1px 120px);
    pointer-events:none;
  }
  /* Full-bleed cinematic hero video. Sits at z-index:0 (same tier as the
     static .hero-bg plate, which stays underneath as poster/fallback) so
     BOTH scrims — ::after (readability) and ::before (gold ambience), each
     z-index:1 — still layer on top and keep the headline legible. Fades in
     only once it can actually play, and is paused by IntersectionObserver
     whenever the hero scrolls out of view. */
  .hero-video{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    object-position:center;z-index:0;pointer-events:none;
    opacity:0;transition:opacity 1.2s ease;
    transform:scale(1.06) translate3d(var(--hx,0px),var(--hy,0px),0);
    will-change:transform;
  }
  .hero-video.ready{opacity:.62;}
  .hero-drips{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;}
  .hero-drip{
    position:absolute;top:-40px;width:6px;height:10px;
    border-radius:50% 50% 50% 0;transform:rotate(45deg);
    background:linear-gradient(135deg,#f8e6ac,#d4af37 55%,#9c7a1f);
    box-shadow:0 0 10px 1px rgba(212,175,55,.6);
    opacity:0;animation:heroDrip linear infinite;
  }
  .hero-drip.sm{width:4px;height:7px;box-shadow:0 0 6px 1px rgba(212,175,55,.5);}
  .hero-drip.lg{width:9px;height:15px;box-shadow:0 0 14px 2px rgba(212,175,55,.65);}
  @keyframes heroDrip{
    0%{opacity:0;transform:translateY(0) rotate(45deg) scale(.7);}
    6%{opacity:.85;}
    92%{opacity:.5;}
    100%{opacity:0;transform:translateY(115vh) rotate(45deg) scale(1.1);}
  }
  @media(prefers-reduced-motion:reduce){
    .hero-drips{display:none;}
    .hero-video{display:none;}
  }
  .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;position:relative;z-index:3;}
  .hero h1{font-size:clamp(38px,5.2vw,62px);line-height:1.1;color:#fff;font-weight:800;margin-bottom:26px;}
  .hero h1 em{font-style:italic;color:var(--gold);}
  .hero p.lead{color:rgba(255,255,255,.68);font-size:17.5px;line-height:1.75;max-width:540px;margin-bottom:38px;}
  .hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px;}
  .hero-stats{display:flex;gap:40px;flex-wrap:wrap;}
  .hero-stats div{border-left:1px solid var(--gold);padding-left:16px;}
  .hero-stats .num{font-family:'Playfair Display',serif;font-size:30px;font-weight:800;color:var(--gold);}
  .hero-stats .lbl{font-size:12px;color:rgba(255,255,255,.6);max-width:160px;line-height:1.5;}
  .hero-card{
    background:rgba(255,255,255,.02);border:var(--hair);
    border-radius:var(--radius);padding:36px;
    box-shadow:var(--shadow);position:relative;
  }
  .hero-card::before{content:"";position:absolute;top:0;left:0;width:34px;height:34px;border-top:1px solid var(--gold);border-left:1px solid var(--gold);}
  .hero-card::after{content:"";position:absolute;bottom:0;right:0;width:34px;height:34px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);}
  .hero-card .tag{color:var(--gold);font-weight:700;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:block;}
  .hero-card h3{color:#fff;font-size:21px;margin-bottom:18px;line-height:1.4;font-weight:700;}
  .hero-card ul li{color:rgba(255,255,255,.78);font-size:14px;padding:11px 0;border-top:1px solid rgba(212,175,55,.14);display:flex;gap:12px;align-items:flex-start;}
  .hero-card ul li:first-child{border-top:none;}
  .hero-card ul li svg{flex:none;margin-top:2px;}

  /* ===== SECTION GENERIC ===== */
  .sec{padding:120px 0;}
  .sec-dark{background:var(--navy);color:#fff;position:relative;}
  /* Ambient gold wash, shared by every dark section so the whole site reads
     warmer than flat black even before the cursor spotlight kicks in. Sits
     at z-index 0 so section-specific plates/scrims (also z-index 0/1+) still
     layer correctly since it's always first in the DOM (::before). */
  .sec-dark::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background-image:
      radial-gradient(1100px 620px at 14% -6%, rgba(212,175,55,.10), transparent 55%),
      radial-gradient(900px 560px at 100% 108%, rgba(212,175,55,.08), transparent 55%);
  }
  .sec-dark > .container{position:relative;z-index:1;}
  .sec-head{max-width:680px;margin-bottom:60px;}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .sec-head h2{font-size:clamp(29px,3.6vw,42px);line-height:1.2;font-weight:800;}
  .sec-dark .sec-head h2{color:#fff;}
  .sec-head p{color:var(--text-soft);font-size:16.5px;margin-top:18px;line-height:1.75;}
  .sec-dark .sec-head p{color:rgba(255,255,255,.62);}

  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ===== PROBLEM (asymmetric bento instead of uniform 3-col) ===== */
  .problem-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgba(212,175,55,.18);}
  .problem-card{
    background:var(--navy);padding:34px 28px;grid-column:span 2;
    position:relative;overflow:hidden;isolation:isolate;transition:.3s ease;
  }
  .problem-card:nth-child(1){grid-column:span 3;}
  .problem-card:nth-child(2){grid-column:span 3;}
  .problem-card:hover{box-shadow:inset 0 0 0 1px var(--gold);}
  .problem-card .ico{
    width:44px;height:44px;border-radius:0;
    background:rgba(10,10,9,.85);border:1px solid var(--gold);backdrop-filter:blur(4px);
    display:flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--gold);
  }
  .problem-card h3{font-size:18.5px;color:#fff;margin-bottom:12px;font-family:'Manrope',sans-serif;font-weight:700;}
  .problem-card p{color:rgba(255,255,255,.58);font-size:14px;line-height:1.7;}

  /* ===== SOLUTION STRIP ===== */
  .strip{background:#000;border-top:1px solid rgba(212,175,55,.3);border-bottom:1px solid rgba(212,175,55,.3);padding:48px 0;}
  .strip .container{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
  .strip h3{color:#fff;font-size:22px;max-width:640px;line-height:1.5;font-weight:700;font-family:'Playfair Display',serif;}
  .strip h3 em{color:var(--gold);font-style:italic;}
  .strip .btn-dark{flex:none;}

  /* ===== SERVICES (sharp cards, gold corner tick) ===== */
  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(212,175,55,.22);}
  .service-card{
    background:var(--navy-2);padding:36px 28px;
    transition:.3s ease;position:relative;overflow:hidden;isolation:isolate;
  }
  /* Cinematic plate sits behind the copy. It parallaxes against the cursor via
     --mx/--my (set by the tilt3d script) — translateZ can't be used here because
     overflow:hidden flattens preserve-3d. Shared with .problem-card. */
  .svc-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:.30;z-index:0;pointer-events:none;user-select:none;
    transform:scale(1.14) translate(var(--mx,0px), var(--my,0px));
    transition:opacity .5s ease, transform .5s cubic-bezier(.25,.46,.45,.94);
  }
  /* Scrim keeps body copy readable no matter how busy the plate is. */
  .service-card::after, .problem-card::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(175deg,rgba(10,10,9,.62) 0%,rgba(10,10,9,.82) 55%,rgba(10,10,9,.93) 100%);
    transition:opacity .4s ease;
  }
  .svc-inner{position:relative;z-index:2;}
  .service-card:hover{box-shadow:inset 0 0 0 1px var(--gold);}
  .service-card:hover .svc-bg, .problem-card:hover .svc-bg{opacity:.52;transform:scale(1.2) translate(var(--mx,0px), var(--my,0px));}
  .service-card:hover::after, .problem-card:hover::after{opacity:.82;}
  .service-card::before{content:"";position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 26px 26px 0;border-color:transparent var(--gold) transparent transparent;opacity:0;transition:.3s;z-index:3;}
  .service-card:hover::before{opacity:1;}
  .service-card .ico{
    width:50px;height:50px;border-radius:0;
    background:rgba(10,10,9,.85);border:1px solid var(--gold);backdrop-filter:blur(4px);
    display:flex;align-items:center;justify-content:center;color:var(--gold);margin-bottom:22px;
  }
  .service-card h3{font-size:18px;margin-bottom:10px;font-weight:700;color:#fff;}
  .service-card p{font-size:14px;color:rgba(255,255,255,.68);line-height:1.7;}
  @media(prefers-reduced-motion:reduce){
    .svc-bg{transform:scale(1.05);transition:opacity .3s ease;}
    .service-card:hover .svc-bg, .problem-card:hover .svc-bg{transform:scale(1.05);}
  }

  /* ===== PROCESS ===== */
  .process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:step;}
  .step{position:relative;padding:0 26px 0 0;border-left:1px solid rgba(212,175,55,.3);padding-left:26px;}
  .step:first-child{border-left:none;padding-left:0;}
  .step .n{
    font-family:'Playfair Display',serif;font-weight:800;font-size:44px;
    color:transparent;-webkit-text-stroke:1.4px var(--gold);margin-bottom:20px;display:block;
  }
  .step h3{font-size:17.5px;margin-bottom:12px;font-weight:700;}
  .step p{color:rgba(255,255,255,.6);font-size:14px;line-height:1.65;}

  /* ===== GROWTH LADDER ===== */
  #crecimiento{overflow:hidden;position:relative;}
  #crecimiento .container{position:relative;z-index:3;}
  .growth-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    object-position:center;opacity:.34;z-index:0;pointer-events:none;
  }
  #crecimiento::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(18,15,10,.72),rgba(18,15,10,.5) 45%,rgba(18,15,10,.88));
  }
  .growth-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2;}
  .growth-particles span{
    position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;
    background:var(--gold);opacity:0;
    animation:gRise linear infinite;
  }
  @keyframes gRise{
    0%{opacity:0;transform:translateY(0) scale(.6);}
    12%{opacity:.55;}
    80%{opacity:.35;}
    100%{opacity:0;transform:translateY(-70vh) scale(1.1);}
  }
  .growth-chart{position:relative;margin-top:20px;}
  .growth-trend{display:none;} /* superseded by real 3D bars below — a flat SVG overlay would no longer line up once the scene tilts */

  /* ----- Desktop: real isometric 3D bars, not flat scaleY blocks -----
     Each .bar-fill gets a lit top cap (::before) and a shadowed side face
     (::after) hinged into 3D space with rotateX/rotateY, inside a
     perspective scene that itself tilts toward the cursor. preserve-3d is
     threaded down every ancestor so the faces don't get flattened. */
  @media(min-width:721px){
    .growth-bars{
      display:grid;grid-template-columns:repeat(4,1fr);gap:34px;
      align-items:end;position:relative;z-index:2;
      perspective:1500px;
    }
    .growth-bar,.bar-track{transform-style:preserve-3d;}
    .bar-track{height:420px;display:flex;align-items:flex-end;}
    .bar-fill{
      position:relative;width:100%;
      transform:scaleY(0);
      transform-origin:bottom;transform-style:preserve-3d;
      transition:transform .9s cubic-bezier(.22,.8,.3,1);
      transition-delay:calc(var(--bar-index) * .15s);
    }
    .growth-chart.in .bar-fill{transform:scaleY(1);}
    /* top cap */
    .bar-fill::before{
      content:"";position:absolute;left:0;top:0;width:100%;height:22px;
      background:var(--bar-top);transform-origin:top;
      transform:rotateX(90deg) translateY(-11px);
    }
    /* right shadow face */
    .bar-fill::after{
      content:"";position:absolute;top:0;right:0;width:16px;height:100%;
      background:var(--bar-side);transform-origin:right;
      transform:rotateY(90deg) translateX(8px);
    }
    .growth-bar:nth-child(1) .bar-fill{height:26%;background:var(--bar-front);--bar-front:#332c24;--bar-top:#5a4d38;--bar-side:#171310;}
    .growth-bar:nth-child(2) .bar-fill{height:46%;background:var(--bar-front);--bar-front:#5a4a28;--bar-top:#8a7040;--bar-side:#2a2114;}
    .growth-bar:nth-child(3) .bar-fill{height:70%;background:var(--bar-front);--bar-front:#a9853a;--bar-top:#d4af37;--bar-side:#4a3a1c;}
    .growth-bar:nth-child(4) .bar-fill{height:100%;background:var(--bar-front);--bar-front:#d4af37;--bar-top:#f8e6ac;--bar-side:#8a6a24;}
    /* Whole scene tilts toward the cursor (base rotateX gives a permanent
       isometric look even with JS/motion off; --grx/--gry add the delta). */
    .growth-bars{
      transform:perspective(1500px) rotateX(calc(11deg + var(--grx,0deg))) rotateY(var(--gry-scene,0deg));
      transform-style:preserve-3d;
      transition:transform .6s cubic-bezier(.25,.46,.45,.94);
    }
  }
  .growth-bar{display:flex;flex-direction:column;justify-content:flex-end;}
  .bar-fill{
    width:100%;border-radius:2px 2px 0 0;
    border:1px solid rgba(212,175,55,.35);border-bottom:none;
  }
  .bar-label{padding-top:16px;text-align:center;}
  .bar-amount{
    font-family:'Playfair Display',serif;font-weight:800;font-size:clamp(20px,2.4vw,30px);
    color:var(--gold);line-height:1.1;
  }
  .growth-bar:nth-child(4) .bar-amount{color:var(--warm-2);}
  .bar-stage{font-size:12.5px;color:rgba(255,255,255,.6);margin-top:6px;letter-spacing:.4px;}
  .bar-note{
    font-size:11.5px;line-height:1.55;color:rgba(255,255,255,.4);
    margin-top:8px;padding-top:8px;text-align:center;
    border-top:1px solid rgba(212,175,55,.16);
  }
  .growth-disclaimer{
    font-size:12px;color:rgba(255,255,255,.45);line-height:1.65;
    max-width:760px;margin:34px auto 0;text-align:center;
  }
  @media(max-width:720px){
    .growth-bars{
      grid-template-columns:1fr;height:auto;gap:18px;
    }
    /* Stack label over a full-width track so the 26/46/70/100% widths stay
       proportional — a fixed-width side label would eat the space and make
       the last two bars render identically. */
    .growth-bar{
      flex-direction:column;align-items:stretch;justify-content:flex-start;
      gap:9px;height:auto;
      padding-bottom:20px;border-bottom:1px solid rgba(212,175,55,.16);
    }
    .growth-bar:last-child{border-bottom:none;padding-bottom:0;}
    .bar-label{
      order:1;padding-top:0;text-align:left;
      display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;
    }
    .bar-amount{font-size:22px;}
    .bar-stage{margin-top:0;}
    .bar-track{order:2;height:auto;width:100%;}
    .bar-fill{
      height:14px !important;width:100%;border-radius:2px;
      transform:scaleX(0);transform-origin:left;border:1px solid rgba(212,175,55,.35);
    }
    .growth-chart.in .bar-fill{transform:scaleX(1);}
    .growth-bar:nth-child(1) .bar-track{max-width:26%;}
    .growth-bar:nth-child(2) .bar-track{max-width:46%;}
    .growth-bar:nth-child(3) .bar-track{max-width:70%;}
    .growth-bar:nth-child(4) .bar-track{max-width:100%;}
    .bar-note{
      order:3;width:100%;text-align:left;
      margin-top:1px;padding-top:0;border-top:none;
    }
    .growth-trend{display:none;}
  }
  @media(prefers-reduced-motion:reduce){
    .growth-particles{display:none;}
  }

  /* ===== WHY US ===== */
  .why-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
  .why-list li{display:flex;gap:18px;padding:18px 0;border-top:1px solid #ece4d0;}
  .why-list li:first-child{border-top:none;}
  .why-list .ico{
    width:36px;height:36px;border-radius:0;background:var(--navy);color:var(--gold);
    display:flex;align-items:center;justify-content:center;flex:none;
  }
  .why-list h4{font-size:16px;font-weight:700;margin-bottom:5px;}
  .why-list p{font-size:13.5px;color:var(--text-soft);line-height:1.65;}
  .why-panel{
    background:var(--navy);border-radius:0;padding:44px;color:#fff;
    border:var(--hair);position:relative;
  }
  .why-panel::before{content:"\201C";position:absolute;top:18px;left:26px;font-family:'Playfair Display',serif;font-size:80px;color:rgba(212,175,55,.25);line-height:1;}
  .why-panel .quote{font-family:'Playfair Display',serif;font-size:23px;line-height:1.55;font-weight:600;margin-bottom:28px;font-style:italic;position:relative;z-index:1;}
  .why-panel .src{font-size:12.5px;color:var(--gold);letter-spacing:.5px;}

  /* ===== GUARANTEE ===== */
  .guarantee{
    background:var(--navy);border:1px solid var(--gold);border-radius:0;
    padding:50px;text-align:center;max-width:820px;margin:0 auto;color:#fff;
  }
  .guarantee h3{font-size:25px;margin-bottom:16px;color:var(--gold);}
  .guarantee p{color:rgba(255,255,255,.65);font-size:15px;line-height:1.75;}

  /* ===== TESTIMONIALS ===== */
  .test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(212,175,55,.16);}
  .test-card{
    background:var(--navy);padding:32px;
    display:flex;flex-direction:column;gap:18px;
  }
  .test-card .stars{color:var(--gold);font-size:14px;letter-spacing:2px;}
  .test-card p{font-size:14px;color:rgba(255,255,255,.6);line-height:1.75;font-style:italic;}
  .test-card .who{display:flex;align-items:center;gap:12px;margin-top:auto;}
  .test-card .avatar{
    width:40px;height:40px;border-radius:0;background:transparent;border:1px solid var(--gold);
    display:flex;align-items:center;justify-content:center;color:var(--gold);font-weight:700;font-size:13px;
  }
  .test-card .name{font-weight:700;font-size:13.5px;color:#fff;}
  .test-card .biz{font-size:12px;color:rgba(255,255,255,.5);}

  /* ===== FAQ ===== */
  .faq-item{border-bottom:1px solid #ece4d0;padding:24px 0;cursor:pointer;}
  .faq-q{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:16px;gap:20px;}
  .faq-q .plus{font-size:20px;color:var(--gold-deep);transition:.3s;flex:none;font-weight:400;}
  .faq-item.open .plus{transform:rotate(45deg);}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
  .faq-a p{padding-top:16px;color:var(--text-soft);font-size:14px;line-height:1.75;max-width:760px;}

  /* ===== FOUNDER ===== */
  .founder{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center;}
  .founder-photo{
    aspect-ratio:4/5;border-radius:0;
    background:var(--navy);
    display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
    border:1px solid var(--gold);
  }
  .founder-photo::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 30% 20%, rgba(212,175,55,.25), transparent 55%);
  }
  .founder-photo .initials{
    font-family:'Playfair Display',serif;font-size:110px;font-weight:800;color:rgba(212,175,55,.16);
  }
  .founder-badge{
    position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);
    backdrop-filter:blur(6px);border-top:1px solid var(--gold);padding:16px 20px;
  }
  .founder-badge .role{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;}
  .founder-badge .nm{color:#fff;font-family:'Playfair Display',serif;font-size:19px;font-weight:700;}
  .founder-text p{color:var(--text-soft);font-size:15px;line-height:1.9;margin-bottom:20px;}
  .founder-stats{display:flex;gap:32px;margin-top:28px;flex-wrap:wrap;}
  .founder-stats div{border-left:1px solid var(--gold);padding-left:14px;}
  .founder-stats .num{font-family:'Playfair Display',serif;font-weight:800;font-size:23px;}
  .founder-stats .lbl{font-size:11.5px;color:var(--text-soft);max-width:150px;line-height:1.45;}

  /* ===== FINAL CTA / FORM ===== */
  .cta-final{
    background:var(--navy);
    color:#fff;border-radius:0;padding:72px 58px;position:relative;overflow:hidden;
    border:1px solid rgba(212,175,55,.35);
  }
  .cta-final::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 500px at 15% 15%, rgba(212,175,55,.12), transparent 60%);pointer-events:none;}
  .cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:flex-start;position:relative;z-index:2;}
  .cta-final h2{color:#fff;font-size:clamp(27px,3.4vw,37px);margin-bottom:20px;line-height:1.25;}
  .cta-final p{color:rgba(255,255,255,.62);font-size:15px;line-height:1.75;margin-bottom:30px;}
  .trust-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:10px;}
  .trust-row span{font-size:12.5px;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:8px;}

  form.lead{background:var(--cream);border-radius:0;padding:36px;color:var(--text-dark);border:1px solid var(--gold);}
  form.lead .row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
  form.lead label{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-soft);display:block;margin-bottom:7px;}
  form.lead input,form.lead textarea,form.lead select{
    width:100%;padding:13px 14px;border:1px solid #d8cfb8;border-radius:0;font-family:'Manrope',sans-serif;
    font-size:14px;background:#fff;
  }
  form.lead input:focus,form.lead textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);}
  form.lead button{width:100%;margin-top:8px;}
  .form-note{font-size:11.5px;color:var(--text-soft);margin-top:16px;text-align:center;}
  #formStatus{font-size:13px;margin-top:10px;text-align:center;font-weight:700;}

  /* ===== FOOTER ===== */
  footer{background:#000;color:rgba(255,255,255,.55);padding:64px 0 28px;border-top:1px solid rgba(212,175,55,.25);}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:44px;}
  .foot-logo{font-family:'Playfair Display',serif;font-weight:800;font-size:22px;color:#fff;margin-bottom:16px;}
  footer p{font-size:13.5px;line-height:1.75;max-width:320px;}
  footer h5{color:var(--gold);font-size:12px;margin-bottom:18px;letter-spacing:2px;text-transform:uppercase;}
  footer ul li{margin-bottom:11px;font-size:13px;}
  footer ul li a:hover{color:var(--gold);}
  .foot-bottom{border-top:1px solid rgba(212,175,55,.2);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11.5px;}

  .fade-badge{
    display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
    background:transparent;color:var(--gold);border:1px solid var(--gold);padding:8px 16px;border-radius:0;margin-bottom:20px;
  }

  /* ===== LANGUAGE-CONDITIONAL BLOCKS =====
     Some blocks aren't just translated text, they're structurally different
     per language (e.g. contact form in EN vs a Book-a-Call CTA in ES).
     setLang() sets <html lang="es|en">, these hook into that. */
  .es-only{display:none;}
  html[lang="es"] .es-only{display:block;}
  html[lang="es"] .en-only{display:none;}

  .book-call-panel{
    background:var(--cream);border:1px solid var(--gold);border-radius:0;
    padding:44px 36px;color:var(--text-dark);text-align:center;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  }
  .book-call-panel .ico{
    width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--gold);
    display:flex;align-items:center;justify-content:center;
  }
  .book-call-panel h3{font-size:20px;font-weight:700;line-height:1.4;}
  .book-call-panel p{font-size:14px;color:var(--text-soft);line-height:1.7;max-width:340px;}
  .book-call-panel .btn{width:100%;max-width:320px;}

  /* ===== 3D tilt hook (added for this design; see script at bottom) ===== */
  .tilt3d{ transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .5s cubic-bezier(.25,.46,.45,.94); transform-style:preserve-3d; }
  .tilt3d:hover{ transition-duration:.15s; }

  /* ===== GOLD CURSOR SPOTLIGHT (whole-site interactive light, see script) =====
     Fixed layer above everything, screen-blended so it warms/lightens
     whatever section is under the cursor — dark sections bloom gold,
     light sections get a faint warm lift. Position driven by --sx/--sy. */
  #goldSpotlight{
    position:fixed;inset:0;z-index:9998;pointer-events:none;
    background:radial-gradient(480px 480px at var(--sx,50%) var(--sy,50%),
      rgba(240,215,140,.20), rgba(212,175,55,.08) 42%, transparent 72%);
    mix-blend-mode:screen;opacity:0;transition:opacity .5s ease;
  }
  #goldSpotlight.active{opacity:1;}
  @media(prefers-reduced-motion:reduce), (hover:none){
    #goldSpotlight{display:none;}
  }

  /* ===== RESPONSIVE ===== */
  @media(max-width:980px){
    .hero-grid{grid-template-columns:1fr;}
    .problem-grid{grid-template-columns:repeat(2,1fr);}
    .problem-card,.problem-card:nth-child(1),.problem-card:nth-child(2){grid-column:span 1;}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .process{grid-template-columns:repeat(2,1fr);}
    .step{border-left:none;border-top:1px solid rgba(212,175,55,.3);padding:26px 0 0;}
    .step:first-child{border-top:none;}
    .why-grid,.founder,.cta-grid{grid-template-columns:1fr;}
    .founder{gap:36px;}
    .founder-photo{max-width:320px;margin:0 auto;}
    .hero{padding:120px 0 64px;}
  }
  @media(max-width:720px){
    .nav-links{
      position:fixed;top:0;right:0;height:100vh;width:78%;max-width:320px;
      background:var(--navy);flex-direction:column;justify-content:center;align-items:flex-start;
      padding:40px;gap:26px;border-left:1px solid var(--gold);
      transform:translateX(100%);transition:transform .35s ease;
    }
    .nav-links.open{transform:translateX(0);}
    .burger{display:flex;}
    .problem-grid,.services-grid,.test-grid{grid-template-columns:1fr;}
    .process{grid-template-columns:1fr;}
    .sec{padding:78px 0;}
    form.lead .row{grid-template-columns:1fr;}
    .cta-final{padding:42px 22px;}
    .strip .container{flex-direction:column;text-align:center;}
  }
