  /* ============ TOKENS ============ */
  :root{
    --bg:           #060a1e;
    --bg-2:         #0a1130;
    --surface:      #0e1638;
    --surface-2:    #131c44;
    --card:         #0f1838;
    --card-2:       #1a2454;
    --line:         rgba(255,255,255,.08);
    --line-strong:  rgba(255,255,255,.16);

    --paper:        #f6f7fb;
    --paper-2:      #ffffff;
    --ink:          #0a1130;
    --ink-soft:     #4a527a;
    --ink-mute:     #6b7396;

    --brand:        #6366f1;       /* indigo */
    --brand-2:      #818cf8;       /* lighter indigo */
    --brand-3:      #a78bfa;       /* violet */
    --sky:          #60a5fa;       /* light blue accent */
    --ok:           #4ade80;

    --grad-text:    linear-gradient(135deg, #93c5fd 0%, #a5b4fc 35%, #c4b5fd 65%, #d8b4fe 100%);
    --grad-cta:     linear-gradient(180deg, #6366f1 0%, #4f46e5 100%);
    --grad-hero:    radial-gradient(120% 80% at 50% 10%, #1a2466 0%, #0a1130 45%, #060a1e 100%);

    --r-xs:  8px;
    --r-sm:  12px;
    --r-md:  16px;
    --r-lg:  20px;
    --r-xl:  28px;
    --r-2xl: 36px;
    --r-pill: 999px;

    --shadow-card:  0 24px 60px -24px rgba(8, 14, 50, .55), 0 8px 24px -12px rgba(8, 14, 50, .45);
    --shadow-cta:   0 10px 30px -8px rgba(99, 102, 241, .55), inset 0 1px 0 rgba(255,255,255,.18);
    --shadow-glow:  0 0 0 1px rgba(99,102,241,.25), 0 30px 80px -30px rgba(99,102,241,.5);

    --ff:           "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --ff-serif:     "Cormorant Garamond", "Times New Roman", serif;
    --maxw:         1280px;
  }

  /* ============ BASE ============ */
  *,*::before,*::after{ box-sizing:border-box }
  html{ scroll-behavior:smooth }
  body{
    margin:0;
    font-family:var(--ff);
    color:#e6e9f4;
    background:var(--bg);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  img,svg{ display:block; max-width:100% }
  a{ color:inherit; text-decoration:none }
  button{ font:inherit; cursor:pointer; border:0; background:none; color:inherit }
  ::selection{ background:var(--brand); color:#fff }

  .wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,4vw,40px) }

  /* ============ TYPE ============ */
  h1,h2,h3,h4{ margin:0; color:#fff; letter-spacing:-.022em; line-height:1.08; font-weight:700 }
  h1{ font-size:clamp(40px, 5.6vw, 76px); font-weight:700 }
  h2{ font-size:clamp(32px, 4vw, 52px); font-weight:700 }
  h3{ font-size:20px; font-weight:600; letter-spacing:-.01em }
  p { margin:0 }
  .grad-text{
    background:var(--grad-text);
    -webkit-background-clip:text; background-clip:text;
    color:transparent;
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    padding:7px 14px 7px 10px; border-radius:var(--r-pill);
    background:rgba(99,102,241,.14);
    border:1px solid rgba(99,102,241,.28);
    font-size:12.5px; font-weight:500; color:#c7d2fe; letter-spacing:.01em;
  }
  .eyebrow .pill{
    background:var(--brand); color:#fff; font-weight:700; font-size:10.5px;
    letter-spacing:.16em; text-transform:uppercase; padding:3px 9px; border-radius:var(--r-pill);
  }
  .eyebrow.light-bg{
    background:rgba(99,102,241,.10);
    border-color:rgba(99,102,241,.25);
    color:#4338ca;
  }
  .eyebrow.light-bg .pill{ background:var(--brand); color:#fff }

  /* ============ LOGO ============ */
  .logo{
    display:inline-flex; align-items:center;
    user-select:none; color:#fff; line-height:0;
  }
  .logo img{ height:46px; width:auto; display:block }
  .logo--sm img{ height:34px }

  /* ============ NAV ============ */
  .nav{
    position:fixed; inset:0 0 auto 0; z-index:60;
    transition:background .35s ease, backdrop-filter .35s ease, border-color .35s ease, padding .35s ease;
    border-bottom:1px solid transparent;
    padding-block:16px;
  }
  .nav.scrolled{
    background:rgba(6,10,30,.78);
    backdrop-filter:saturate(160%) blur(14px);
    -webkit-backdrop-filter:saturate(160%) blur(14px);
    border-bottom-color:var(--line);
    padding-block:10px;
  }
  .nav__inner{
    display:flex; align-items:center; justify-content:space-between; gap:24px;
  }
  .nav__menu{ display:flex; align-items:center; gap:4px }
  .nav__menu a{
    position:relative; padding:10px 14px; font-size:14px; font-weight:500;
    color:rgba(230,233,244,.78); border-radius:var(--r-pill);
    transition:color .2s ease, background .2s ease;
  }
  .nav__menu a:hover{ color:#fff; background:rgba(255,255,255,.05) }
  .nav__menu a.active{ color:#fff; background:rgba(99,102,241,.16) }
  .nav__actions{ display:flex; align-items:center; gap:10px }
  .nav__login{
    padding:10px 18px; border-radius:var(--r-pill);
    border:1px solid var(--line-strong); color:#fff; font-weight:500; font-size:14px;
    transition:background .2s ease, border-color .2s ease;
  }
  .nav__login:hover{ background:rgba(255,255,255,.05); border-color:#fff }

  .nav__burger{ display:none; width:40px; height:40px; position:relative; border-radius:12px; background:rgba(255,255,255,.05) }
  .nav__burger span{
    position:absolute; left:10px; right:10px; height:1.8px; background:#fff; border-radius:2px;
    transition:transform .3s ease, opacity .2s ease, top .3s ease;
  }
  .nav__burger span:nth-child(1){ top:14px }
  .nav__burger span:nth-child(2){ top:19px }
  .nav__burger span:nth-child(3){ top:24px }
  .nav.open .nav__burger span:nth-child(1){ top:19px; transform:rotate(45deg) }
  .nav.open .nav__burger span:nth-child(2){ opacity:0 }
  .nav.open .nav__burger span:nth-child(3){ top:19px; transform:rotate(-45deg) }

  /* Mobile CTA at the bottom of the hamburger menu — hidden by default (desktop). */
  .nav__menu-cta{ display:none }

  @media (max-width: 1000px){
    .nav__menu{
      position:fixed; inset:64px 16px auto 16px; flex-direction:column; align-items:stretch;
      background:var(--bg-2); padding:20px; gap:2px;
      transform:translateY(-110%) scale(.98); opacity:0; pointer-events:none;
      transition:transform .35s ease, opacity .25s ease;
      border:1px solid var(--line); border-radius:var(--r-lg);
      box-shadow:var(--shadow-card);
    }
    .nav.open .nav__menu{ transform:none; opacity:1; pointer-events:auto }
    .nav__menu a{ padding:14px 16px; font-size:15px; border-radius:12px }
    .nav__login{ display:none }
    .nav__actions .btn--primary{ display:none }
    .nav__burger{ display:block }
    .nav__menu-cta{
      display:inline-flex; align-items:center; justify-content:center; gap:10px;
      margin-top:14px; padding:14px 22px;
      background:var(--grad-cta); color:#fff;
      font-weight:600; font-size:15px; letter-spacing:0;
      border-radius:var(--r-pill);
      box-shadow:var(--shadow-cta);
      transition:transform .2s ease, box-shadow .2s ease;
    }
    .nav__menu-cta:hover{
      transform:translateY(-1px);
      box-shadow:0 16px 36px -10px rgba(99,102,241,.7), inset 0 1px 0 rgba(255,255,255,.2);
    }
    .nav__menu-cta .arrow{ width:16px; height:12px; transition:transform .25s ease }
    .nav__menu-cta:hover .arrow{ transform:translateX(4px) }
  }

  /* ============ BUTTONS ============ */
  .btn{
    display:inline-flex; align-items:center; gap:10px; justify-content:center;
    padding:14px 22px; border-radius:var(--r-pill); font-weight:600; font-size:14.5px;
    letter-spacing:0; transition:all .25s ease; cursor:pointer;
    border:1px solid transparent;
  }
  .btn .arrow{ width:16px; height:12px; transition:transform .25s ease }
  .btn:hover .arrow{ transform:translateX(4px) }
  .btn--primary{
    background:var(--grad-cta); color:#fff;
    box-shadow:var(--shadow-cta);
  }
  .btn--primary:hover{ transform:translateY(-2px); box-shadow:0 16px 36px -10px rgba(99,102,241,.7), inset 0 1px 0 rgba(255,255,255,.2) }
  .btn--ghost{ color:#fff; border-color:var(--line-strong); background:rgba(255,255,255,.02) }
  .btn--ghost:hover{ background:rgba(255,255,255,.06); border-color:#fff }
  .btn--ghost-dark{ color:var(--ink); border-color:rgba(10,17,48,.14); background:#fff }
  .btn--ghost-dark:hover{ border-color:var(--ink); background:var(--paper) }
  .btn--sm{ padding:10px 16px; font-size:13.5px }

  /* ============ HERO ============ */
  .hero{
    position:relative; padding-block:160px 100px;
    background:var(--grad-hero);
    overflow:hidden; isolation:isolate;
  }
  .hero__bg{
    position:absolute; inset:0; z-index:-2; pointer-events:none;
    background-size:cover; background-position:center;
    opacity:0;
    transform:scale(1.02);
    transition:opacity 2.5s ease-in-out;
    will-change:opacity, transform;
  }
  .hero__bg--a{ background-image:url('assets/santiago.png') }
  .hero__bg--b{ background-image:url('assets/mountain.png') }
  .hero__bg--c{ background-image:url('assets/offices.png') }
  .hero__bg.is-active{ opacity:.55 }
  .hero__bg.is-zooming{
    animation:hero-bg-zoom 12s linear forwards;
  }
  @keyframes hero-bg-zoom{
    from{ transform:scale(1.02) }
    to  { transform:scale(1.18) }
  }
  @media (prefers-reduced-motion: reduce){
    .hero__bg{ transition:none; animation:none }
    .hero__bg--a{ opacity:.55 }
    .hero__bg--b, .hero__bg--c{ opacity:0 }
  }
  @media (prefers-reduced-motion: reduce){
    .hero__bg{ animation:none; opacity:.55; transform:none }
    .hero__bg--b{ opacity:0 }
  }
  .hero__bg-veil{
    position:absolute; inset:0; z-index:-2; pointer-events:none;
    background:
      linear-gradient(180deg, rgba(6,10,30,.4) 0%, rgba(6,10,30,.65) 60%, rgba(6,10,30,.9) 100%),
      linear-gradient(90deg, rgba(6,10,30,.7) 0%, rgba(6,10,30,.2) 50%, rgba(6,10,30,.6) 100%);
  }
  .hero__glow{
    position:absolute; z-index:-1; pointer-events:none;
    width:900px; height:900px; border-radius:50%;
    background:radial-gradient(circle, rgba(99,102,241,.32) 0%, rgba(99,102,241,0) 60%);
    top:-300px; right:-200px; filter:blur(20px);
  }
  .hero__glow.b{
    background:radial-gradient(circle, rgba(167,139,250,.22) 0%, rgba(167,139,250,0) 60%);
    top:auto; bottom:-300px; left:-200px; right:auto;
  }

  .hero__grid{
    display:grid; grid-template-columns:1.15fr .9fr; gap:60px; align-items:center;
  }
  .hero h1{
    font-size:clamp(32px, 4.4vw, 58px); line-height:1.06; letter-spacing:-.022em;
    margin-top:22px; max-width:19ch; font-weight:700;
  }
  .hero__sub{
    font-size:clamp(14.5px, 1.15vw, 16.5px); color:rgba(230,233,244,.72);
    max-width:52ch; line-height:1.65; margin-top:22px;
  }
  .hero__ctas{ display:flex; flex-wrap:wrap; gap:12px; margin-top:36px }
  .hero__check{
    display:flex; align-items:center; gap:10px; margin-top:28px;
    font-size:13.5px; color:rgba(230,233,244,.6);
  }
  .hero__check svg{ width:18px; height:18px; color:var(--ok); flex:0 0 auto }

  /* hero stat card */
  .stat-card{
    background:linear-gradient(180deg, rgba(20,29,72,.92) 0%, rgba(14,22,56,.92) 100%);
    border:1px solid var(--line-strong);
    border-radius:var(--r-xl);
    padding:24px 26px;
    box-shadow:var(--shadow-card);
    backdrop-filter:blur(12px);
    position:relative; overflow:hidden;
  }
  .stat-card::before{
    content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, rgba(99,102,241,.4) 0%, rgba(99,102,241,0) 35%, rgba(167,139,250,.3) 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
  }
  .stat-card__head{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding-bottom:12px; border-bottom:1px solid var(--line);
    font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:rgba(230,233,244,.5);
  }
  .stat-card__head .left{ display:flex; align-items:center; gap:10px }
  .stat-card__head .dot{ width:7px; height:7px; border-radius:50%; background:var(--ok); box-shadow:0 0 12px var(--ok) }
  .stat-card__head .accent{ color:var(--brand-2) }
  .stat-card__row{
    display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center;
    padding:16px 0; border-bottom:1px solid var(--line);
  }
  .stat-card__row:last-child{ border-bottom:0; padding-bottom:0 }
  .stat-card__num{
    font-size:clamp(30px, 3.2vw, 44px); font-weight:700; line-height:1; color:#fff;
    letter-spacing:-.03em; display:flex; align-items:baseline; gap:2px; min-width:108px;
  }
  .stat-card__num .pre{ color:var(--brand-2); margin-right:2px }
  .stat-card__num .unit{ font-size:.5em; color:var(--brand-2); margin-left:3px }
  .stat-card__label{ font-size:12.5px; color:rgba(230,233,244,.65); line-height:1.45 }

  @media (max-width:980px){
    .hero{ padding-block:130px 60px }
    .hero__grid{ grid-template-columns:1fr; gap:48px }
    .stat-card{ padding:20px 22px }
  }

  /* ============ TRUST STRIP ============ */
  .trust{
    background:var(--bg); padding-block:32px;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    overflow:hidden;
  }
  .trust__inner{
    display:flex; align-items:center; gap:32px;
  }
  .trust__label{
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:rgba(230,233,244,.4); flex:0 0 auto; padding-left:4px;
  }
  .trust__viewport{
    flex:1; min-width:0; overflow:hidden; position:relative;
    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
            mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  }
  .trust__track{
    display:flex; gap:56px; align-items:center; width:max-content;
    animation:trust-scroll 38s linear infinite;
  }
  .trust:hover .trust__track{ animation-play-state:paused }
  .trust__logo{
    font-size:15px; font-weight:600; color:rgba(230,233,244,.45);
    letter-spacing:.02em; transition:color .25s ease;
    white-space:nowrap; flex:0 0 auto;
  }
  .trust__logo:hover{ color:rgba(230,233,244,.9) }
  .trust__logo span{ font-weight:300; opacity:.6; margin-right:6px }
  @keyframes trust-scroll{
    from{ transform:translateX(0) }
    to  { transform:translateX(-50%) }
  }
  @media (max-width:680px){
    .trust__inner{ flex-direction:column; align-items:stretch; gap:16px }
    .trust__label{ text-align:center }
  }

  /* ============ SECTIONS (light) ============ */
  .section{ padding-block:clamp(80px, 9vw, 130px); position:relative }
  .section--light{ background:var(--paper); color:var(--ink) }
  .section--light h2{ color:var(--ink) }
  .section--light .lead{ color:var(--ink-soft) }
  .section--white{ background:#fff; color:var(--ink) }
  .section--white h2{ color:var(--ink) }
  .areas h2, .plans h2, .blog h2, .team h2 { color:var(--ink) }
  .areas h3, .plans h3, .blog h3, .team h3 { color:var(--ink) }
  .section__head{
    text-align:center; max-width:680px; margin-inline:auto; margin-bottom:64px;
  }
  .section__head--left{ text-align:left; margin-inline:0 }
  .section__head h2{ margin-top:18px }
  .section__head .lead{ margin-top:18px; font-size:17px; color:var(--ink-soft); line-height:1.65 }
  .section--light .eyebrow,
  .section--white .eyebrow{ background:rgba(99,102,241,.10); border-color:rgba(99,102,241,.22); color:#4338ca }

  /* ============ ÁREAS ============ */
  .areas{
    background:var(--paper); color:var(--ink);
    padding-block:clamp(80px, 9vw, 130px);
    position:relative; overflow:hidden; isolation:isolate;
  }
  .areas::before{
    content:""; position:absolute; inset:0; z-index:-2;
    background-image:url('assets/stairs.png');
    background-size:cover; background-position:center;
  }
  .areas::after{
    content:""; position:absolute; inset:0; z-index:-1;
    background:
      linear-gradient(180deg, rgba(246,247,251,.92) 0%, rgba(246,247,251,.85) 50%, rgba(246,247,251,.96) 100%);
  }
  .areas__head{
    display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; margin-bottom:56px;
  }
  .areas__head h2{ max-width:18ch }
  .areas__head .lead{ color:var(--ink-soft); max-width:42ch }
  .areas__grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;
  }
  .area{
    position:relative;
    background:#fff;
    border:1px solid rgba(10,17,48,.08);
    border-radius:var(--r-xl);
    padding:28px; cursor:pointer;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
    display:flex; flex-direction:column; gap:16px; overflow:hidden;
  }
  .area::after{
    content:""; position:absolute; right:-40px; top:-40px;
    width:140px; height:140px; border-radius:50%;
    background:radial-gradient(circle, rgba(99,102,241,.10) 0%, rgba(99,102,241,0) 70%);
    opacity:0; transition:opacity .3s ease;
  }
  .area:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -20px rgba(8,14,50,.18); border-color:rgba(99,102,241,.3) }
  .area:hover::after{ opacity:1 }
  .area__icon{
    width:48px; height:48px; border-radius:14px;
    background:rgba(99,102,241,.10);
    display:grid; place-items:center; color:var(--brand);
  }
  .area__icon svg{ width:24px; height:24px }
  .area h3{ color:var(--ink); font-size:18px; font-weight:600 }
  .area p{ color:var(--ink-soft); font-size:14px; line-height:1.55 }
  .area__tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:8px }
  .area__tag{
    font-size:11.5px; padding:4px 10px; border-radius:var(--r-pill);
    background:rgba(10,17,48,.05); color:var(--ink-soft);
  }
  .area__chip{
    align-self:flex-start; display:inline-flex; align-items:center; gap:6px;
    background:rgba(99,102,241,.10); color:var(--brand);
    font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
    padding:5px 10px; border-radius:var(--r-pill);
  }
  .area__arrow{
    position:absolute; top:24px; right:24px;
    width:32px; height:32px; border-radius:50%; background:rgba(10,17,48,.05);
    display:grid; place-items:center; color:var(--ink-soft);
    transition:background .25s ease, color .25s ease, transform .25s ease;
  }
  .area:hover .area__arrow{ background:var(--brand); color:#fff; transform:rotate(-45deg) }

  @media (max-width:980px){ .areas__grid{ grid-template-columns:repeat(2,1fr) } .areas__head{ grid-template-columns:1fr } }
  @media (max-width:640px){ .areas__grid{ grid-template-columns:1fr } }

  /* ============ NOSOTROS ============ */
  .about{
    background:var(--bg-2); color:#fff;
    padding-block:clamp(80px, 9vw, 130px);
    position:relative; overflow:hidden; isolation:isolate;
  }
  .about::before{
    content:""; position:absolute; inset:0; z-index:-2;
    background-image:url('assets/santiago.png');
    background-size:cover; background-position:center bottom;
    opacity:.45;
  }
  .about::after{
    content:""; position:absolute; inset:0; z-index:-1;
    background:
      linear-gradient(180deg, rgba(10,17,48,.80) 0%, rgba(10,17,48,.65) 40%, rgba(10,17,48,.92) 100%),
      linear-gradient(90deg, rgba(10,17,48,.6) 0%, rgba(10,17,48,.2) 50%, rgba(10,17,48,.7) 100%);
  }
  .about__glow{
    position:absolute; pointer-events:none;
    width:700px; height:700px; border-radius:50%;
    background:radial-gradient(circle, rgba(99,102,241,.18) 0%, rgba(99,102,241,0) 60%);
    top:-200px; left:-150px;
  }
  .about__grid{
    display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; position:relative;
  }
  .about__copy h2{ margin-top:24px }
  .about__copy p{ color:rgba(230,233,244,.7); margin-top:24px; font-size:17px; max-width:54ch; line-height:1.7 }
  .pillars{ display:grid; grid-template-columns:1fr; gap:14px }
  .pillar{
    background:rgba(255,255,255,.03);
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:24px 26px;
    display:flex; gap:18px; align-items:flex-start;
    transition:transform .25s ease, background .25s ease, border-color .25s ease;
    position:relative; overflow:hidden;
  }
  .pillar:hover{ transform:translateY(-3px); background:rgba(255,255,255,.06); border-color:rgba(99,102,241,.4) }
  .pillar__icon{
    width:44px; height:44px; border-radius:12px;
    background:rgba(99,102,241,.16); color:var(--brand-2);
    display:grid; place-items:center; flex:0 0 auto;
  }
  .pillar__icon svg{ width:22px; height:22px }
  .pillar h3{ font-size:17px; color:#fff }
  .pillar p{ font-size:14px; color:rgba(230,233,244,.6); margin-top:6px; line-height:1.55 }

  @media (max-width:980px){ .about__grid{ grid-template-columns:1fr; gap:48px } }

  /* ============ PLANS ============ */
  .plans{ background:var(--paper); color:var(--ink) }
  .plans__grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;
  }
  .plan{
    background:#fff;
    border:1px solid rgba(10,17,48,.08);
    border-radius:var(--r-xl);
    padding:32px; display:flex; flex-direction:column;
    position:relative; isolation:isolate;
    transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
  }
  .plan::after{
    content:""; position:absolute; inset:0; border-radius:inherit; z-index:-1;
    background:radial-gradient(120% 80% at 50% 0%, rgba(99,102,241,.10) 0%, rgba(99,102,241,0) 60%);
    opacity:0; transition:opacity .35s ease;
  }
  .plan:hover{
    transform:translateY(-10px);
    box-shadow:0 36px 70px -28px rgba(8,14,50,.32), 0 12px 28px -14px rgba(99,102,241,.32);
    border-color:rgba(99,102,241,.45);
  }
  .plan:hover::after{ opacity:1 }
  .plan:hover .plan__price{ color:var(--brand) }
  .plan--featured{
    background:linear-gradient(180deg, #131c44 0%, #0e1638 100%);
    color:#fff; border-color:transparent;
    box-shadow:var(--shadow-glow);
  }
  .plan--featured:hover{
    transform:translateY(-10px);
    box-shadow:0 0 0 1px rgba(99,102,241,.45), 0 40px 90px -30px rgba(99,102,241,.7);
    border-color:transparent;
  }
  .plan--featured:hover .plan__price{ color:#fff }
  .plan--featured:hover::after{ opacity:0 }
  .plan--featured::before{
    content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, rgba(99,102,241,.5) 0%, rgba(167,139,250,.5) 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
  }
  .plan__badge{
    position:absolute; top:-12px; left:50%; transform:translateX(-50%);
    background:var(--grad-cta); color:#fff;
    font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    padding:6px 14px; border-radius:var(--r-pill);
    box-shadow:0 8px 20px -6px rgba(99,102,241,.5);
  }
  .plan__name{ font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--brand) }
  .plan--featured .plan__name{ color:var(--brand-2) }
  .plan__price{
    font-weight:700; font-size:48px; line-height:1; margin-top:20px;
    letter-spacing:-.03em; display:flex; align-items:baseline; gap:6px; color:var(--ink);
    transition:color .3s ease;
  }
  .plan--featured .plan__price{ color:#fff }
  .plan__price small{ font-size:14px; font-weight:500; color:var(--ink-soft); letter-spacing:0 }
  .plan--featured .plan__price small{ color:rgba(230,233,244,.6) }
  .plan__desc{ margin-top:10px; font-size:14px; color:var(--ink-soft); line-height:1.55 }
  .plan--featured .plan__desc{ color:rgba(230,233,244,.65) }
  .plan__divider{ height:1px; background:rgba(10,17,48,.08); margin:24px 0 }
  .plan--featured .plan__divider{ background:var(--line) }
  .plan__features{ list-style:none; margin:0; padding:0; display:grid; gap:12px; flex:1 }
  .plan__features li{
    display:flex; gap:10px; align-items:flex-start;
    font-size:14px; color:var(--ink-soft); line-height:1.5;
  }
  .plan--featured .plan__features li{ color:rgba(230,233,244,.78) }
  .plan__features li svg{ flex:0 0 auto; margin-top:2px; color:var(--brand) }
  .plan--featured .plan__features li svg{ color:var(--brand-2) }
  .plan__cta{ margin-top:28px; width:100%; justify-content:center }

  @media (max-width:980px){ .plans__grid{ grid-template-columns:1fr } }

  /* simplified plans (no prices / no checklist) */
  .plans__grid--simple .plan{ padding:36px 32px }
  .plan__hero{
    display:flex; align-items:center; gap:14px;
    padding-bottom:22px; margin-bottom:22px;
    border-bottom:1px solid rgba(10,17,48,.08);
  }
  .plan--featured .plan__hero{ border-bottom-color:var(--line) }
  .plan__icon{
    width:48px; height:48px; border-radius:14px;
    background:rgba(99,102,241,.10); color:var(--brand);
    display:grid; place-items:center; flex:0 0 auto;
    transition:background .3s ease, color .3s ease;
  }
  .plan--featured .plan__icon{ background:rgba(99,102,241,.18); color:var(--brand-2) }
  .plan__icon svg{ width:24px; height:24px }
  .plans__grid--simple .plan__name{ margin:0 }
  .plan__title{
    font-size:22px; font-weight:600; color:var(--ink);
    letter-spacing:-.01em; line-height:1.25;
  }
  .plan--featured .plan__title{ color:#fff }
  .plans__grid--simple .plan__desc{
    margin-top:14px; font-size:15px; line-height:1.6;
    color:var(--ink-soft); flex:1;
  }
  .plan--featured .plans__grid--simple .plan__desc,
  .plans__grid--simple .plan--featured .plan__desc{ color:rgba(230,233,244,.72) }
  .plan__bullets{
    list-style:none; padding:0; margin:24px 0 0;
    display:flex; flex-direction:column; gap:8px;
  }
  .plan__bullets li{
    display:flex; align-items:center; gap:10px;
    font-size:13.5px; font-weight:500; color:var(--ink);
    letter-spacing:.01em;
  }
  .plan--featured .plan__bullets li{ color:rgba(230,233,244,.88) }
  .plan__bullets li::before{
    content:""; width:6px; height:6px; border-radius:50%;
    background:var(--brand); flex:0 0 auto;
  }
  .plan--featured .plan__bullets li::before{ background:var(--brand-2) }
  .plans__grid--simple .plan__cta{ margin-top:28px }

  /* ============ MEMBER MODAL ============ */
  .member{ cursor:pointer }
  .member__avatar{ aspect-ratio:4/5 }
  .modal{
    position:fixed; inset:0; z-index:200;
    background:rgba(6,10,30,.75);
    backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center;
    padding:24px; opacity:0; pointer-events:none;
    transition:opacity .25s ease;
  }
  .modal.open{ opacity:1; pointer-events:auto }
  .modal__panel{
    background:#fff; color:var(--ink);
    border-radius:var(--r-2xl);
    width:100%; max-width:760px;
    box-shadow:0 40px 100px -20px rgba(8,14,50,.55);
    overflow:hidden;
    display:grid; grid-template-columns:280px 1fr;
    transform:translateY(20px) scale(.98);
    transition:transform .35s cubic-bezier(.2,.7,.2,1);
    max-height:90vh;
  }
  .modal.open .modal__panel{ transform:none }
  .modal__avatar{ background:var(--card); position:relative; overflow:hidden }
  .modal__avatar svg{ width:100%; height:100%; display:block }
  .modal__body{ padding:36px 38px 36px 36px; overflow-y:auto; position:relative }
  .modal__close{
    position:absolute; top:18px; right:18px;
    width:36px; height:36px; border-radius:50%;
    background:rgba(10,17,48,.06); color:var(--ink);
    display:grid; place-items:center;
    transition:background .2s ease, transform .2s ease;
  }
  .modal__close:hover{ background:rgba(10,17,48,.12); transform:rotate(90deg) }
  .modal__spec{
    display:inline-block; font-size:11px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase;
    color:var(--brand); background:rgba(99,102,241,.10);
    padding:5px 11px; border-radius:var(--r-pill);
  }
  .modal__name{
    font-family:var(--ff-serif); font-size:34px;
    font-weight:600; color:var(--ink); letter-spacing:-.01em;
    margin-top:14px; line-height:1.1;
  }
  .modal__role{
    font-size:14px; color:var(--ink-soft); margin-top:6px; letter-spacing:.01em;
  }
  .modal__divider{ height:1px; background:rgba(10,17,48,.08); margin:22px 0 }
  .modal__bio{ font-size:14.5px; line-height:1.65; color:var(--ink-soft) }
  .modal__bio + .modal__bio{ margin-top:12px }
  .modal__meta{
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
    margin-top:22px;
  }
  .modal__meta-item{ display:flex; flex-direction:column; gap:4px }
  .modal__meta-item .label{
    font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--ink-mute); font-weight:600;
  }
  .modal__meta-item .value{ font-size:13.5px; color:var(--ink); line-height:1.5 }
  @media (max-width:720px){
    .modal__panel{ grid-template-columns:1fr; max-height:92vh }
    .modal__avatar{ aspect-ratio:16/10 }
    .modal__body{ padding:28px 24px }
    .modal__name{ font-size:28px }
  }

  /* ============ WHATSAPP BUTTON ============ */
  .btn--whatsapp{
    background:#25D366; color:#fff;
    border-color:transparent;
    box-shadow:0 10px 24px -8px rgba(37,211,102,.55), inset 0 1px 0 rgba(255,255,255,.2);
  }
  .btn--whatsapp:hover{
    background:#1ebe5a;
    transform:translateY(-2px);
    box-shadow:0 14px 30px -8px rgba(37,211,102,.7), inset 0 1px 0 rgba(255,255,255,.25);
  }
  .btn--whatsapp svg{ width:18px; height:18px }
  .form__submit--double{ justify-content:flex-end; gap:12px }
  .form__submit--double .form__note{ margin-right:auto; max-width:26ch }
  @media (max-width:520px){
    .form__submit--double{ flex-direction:column; align-items:stretch }
    .form__submit--double .btn{ width:100% }
  }

  /* ============ EQUIPO ============ */
  .team{ background:#fff; color:var(--ink) }
  .team__head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; flex-wrap:wrap;
  }
  .team__head h2{ max-width:14ch }
  .team__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px }
  .member{
    background:var(--paper); border:1px solid rgba(10,17,48,.06);
    border-radius:var(--r-lg); overflow:hidden;
    transition:transform .35s ease, box-shadow .3s ease;
  }
  .member:hover{ transform:translateY(-4px); box-shadow:0 16px 36px -16px rgba(8,14,50,.16) }
  .member__avatar{ aspect-ratio:1/1; background:var(--card); position:relative; overflow:hidden }
  .member__avatar svg{ width:100%; height:100%; display:block }
  .member__body{ padding:20px 22px 22px }
  .member__name{ font-size:16px; font-weight:600; color:var(--ink) }
  .member__role{ font-size:13px; color:var(--ink-soft); margin-top:4px }
  .member__spec{
    display:inline-block; margin-top:14px; font-size:11px; font-weight:600;
    letter-spacing:.06em; text-transform:uppercase;
    color:var(--brand); background:rgba(99,102,241,.10);
    padding:4px 10px; border-radius:var(--r-pill);
  }
  @media (max-width:900px){ .team__grid{ grid-template-columns:repeat(2,1fr) } }

  /* ============ BLOG ============ */
  .blog{ background:var(--paper) }
  .blog__head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px; flex-wrap:wrap;
  }
  .blog__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
  .post{
    background:#fff; border:1px solid rgba(10,17,48,.06);
    border-radius:var(--r-xl); overflow:hidden;
    display:flex; flex-direction:column;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .post:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -20px rgba(8,14,50,.18) }
  .post__cover{ aspect-ratio:16/10; background:var(--bg-2); position:relative; overflow:hidden }
  .post__cover svg{ width:100%; height:100% }
  .post__body{ padding:24px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1 }
  .post__meta{ display:flex; align-items:center; gap:10px; font-size:12px; color:var(--ink-soft) }
  .post__cat{
    color:var(--brand); font-weight:600; background:rgba(99,102,241,.10);
    padding:3px 10px; border-radius:var(--r-pill); font-size:11px; letter-spacing:.04em;
  }
  .post__title{ font-size:18px; font-weight:600; color:var(--ink); line-height:1.35; letter-spacing:-.005em; transition:color .25s ease }
  .post:hover .post__title{ color:var(--brand) }
  .featured-post h2{ transition:color .25s ease }
  .featured-post:hover h2{ color:var(--brand) }
  .post__read{
    margin-top:auto; font-size:13px; font-weight:600; color:var(--brand);
    display:inline-flex; gap:8px; align-items:center;
  }
  .post:hover .post__read{ gap:12px }
  @media (max-width:900px){ .blog__grid{ grid-template-columns:1fr } }

  /* ============ DCS BANNER ============ */
  .dcs{
    background:var(--bg-2); color:#fff;
    padding-block:clamp(48px, 6vw, 72px); position:relative; overflow:hidden; isolation:isolate;
  }
  .dcs::after{
    content:""; position:absolute; inset:0; z-index:-2;
    background-image:url('assets/mountain.png');
    background-size:cover; background-position:center;
    opacity:.5;
  }
  .dcs::before{
    content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
    background:
      linear-gradient(180deg, rgba(10,17,48,.85) 0%, rgba(10,17,48,.55) 50%, rgba(10,17,48,.92) 100%),
      radial-gradient(700px 300px at 80% 50%, rgba(99,102,241,.22), transparent 60%),
      radial-gradient(500px 300px at 20% 50%, rgba(167,139,250,.14), transparent 60%);
  }
  .dcs__inner{
    position:relative;
    display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center;
    background:rgba(255,255,255,.03);
    border:1px solid var(--line);
    border-radius:var(--r-2xl); padding:36px;
  }
  .dcs__brand{ display:flex; align-items:center; gap:18px }
  .dcs__brand-mark{
    width:64px; height:64px; border-radius:18px;
    background:var(--grad-cta);
    display:grid; place-items:center; flex:0 0 auto;
    box-shadow:0 12px 28px -8px rgba(99,102,241,.5), inset 0 1px 0 rgba(255,255,255,.18);
  }
  .dcs__brand-mark svg{ width:32px; height:32px }
  .dcs__brand-name{ font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--brand-2); font-weight:600 }
  .dcs__brand-tag{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(230,233,244,.5); margin-top:4px }
  .dcs__body h3{ font-size:clamp(20px, 2.2vw, 26px); font-weight:600; letter-spacing:-.01em }
  .dcs__body p{ color:rgba(230,233,244,.65); margin-top:8px; font-size:14.5px; max-width:60ch }
  .dcs__body .pills{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px }
  .dcs__body .pill-item{
    font-size:11.5px; padding:5px 11px; border:1px solid var(--line-strong);
    border-radius:var(--r-pill); color:rgba(230,233,244,.78); letter-spacing:.02em;
  }
  @media (max-width:980px){
    .dcs__inner{ grid-template-columns:1fr; gap:24px; padding:28px }
  }

  /* ============ CONTACT ============ */
  .contact{ background:var(--bg-2); color:#fff; position:relative; overflow:hidden }
  .contact__glow{
    position:absolute; pointer-events:none;
    width:800px; height:800px; border-radius:50%;
    background:radial-gradient(circle, rgba(99,102,241,.18) 0%, transparent 60%);
    top:-200px; right:-200px;
  }
  .contact__grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:80px; align-items:start; position:relative }
  .contact__copy h2{ margin-top:24px }
  .contact__lead{ color:rgba(230,233,244,.72); margin-top:24px; max-width:44ch; font-size:17px; line-height:1.65 }
  .contact__details{ list-style:none; padding:0; margin:40px 0 0; display:grid; gap:18px }
  .contact__details li{ display:flex; gap:16px; align-items:flex-start }
  .contact__details .icon{
    width:42px; height:42px; border-radius:12px; background:rgba(99,102,241,.14);
    color:var(--brand-2); display:grid; place-items:center; flex:0 0 auto;
  }
  .contact__details .icon svg{ width:20px; height:20px }
  .contact__details .label{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(230,233,244,.5) }
  .contact__details .value{ font-size:15px; color:#fff; margin-top:4px }

  .form{
    background:rgba(255,255,255,.03);
    border:1px solid var(--line);
    border-radius:var(--r-2xl);
    padding:clamp(28px, 3vw, 40px);
    display:grid; gap:18px;
    box-shadow:var(--shadow-card);
  }
  .field{ display:flex; flex-direction:column; gap:8px }
  .field label{ font-size:12px; letter-spacing:.06em; color:rgba(230,233,244,.65); font-weight:500 }
  .field input,
  .field textarea{
    width:100%; background:rgba(255,255,255,.04);
    border:1px solid var(--line);
    border-radius:14px;
    color:#fff; font:inherit; font-size:15px;
    padding:13px 16px;
    transition:border-color .2s ease, background .2s ease;
  }
  .field input:focus,
  .field textarea:focus{ outline:0; border-color:var(--brand); background:rgba(99,102,241,.06) }
  .field textarea{ resize:vertical; min-height:110px }
  .field--row{ display:grid; grid-template-columns:1fr 1fr; gap:14px }
  .form__submit{ display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:8px; flex-wrap:wrap }
  .form__note{
    display:flex; align-items:center; gap:8px;
    font-size:12px; color:rgba(230,233,244,.55); max-width:30ch; line-height:1.5;
  }
  .form__note svg{ color:var(--brand-2); flex:0 0 auto }
  @media (max-width:980px){ .contact__grid{ grid-template-columns:1fr; gap:48px } .field--row{ grid-template-columns:1fr } }

  /* ============ FOOTER ============ */
  .footer{ background:var(--bg); color:rgba(230,233,244,.65); padding-block:64px 28px; border-top:1px solid var(--line) }
  .footer__top{
    display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px;
    padding-bottom:48px; border-bottom:1px solid var(--line);
  }
  .footer h4{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:18px; font-weight:600 }
  .footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:10px; font-size:14px }
  .footer ul a{ color:rgba(230,233,244,.6) }
  .footer ul a:hover{ color:#fff }
  .footer__about{ color:rgba(230,233,244,.55); font-size:14px; max-width:38ch; margin-top:20px; line-height:1.65 }
  .footer__dcs{
    margin-top:24px; display:inline-flex; align-items:center; gap:14px;
    padding:12px 18px 12px 12px; border-radius:var(--r-lg);
    border:1px solid var(--line);
    background:rgba(99,102,241,.06);
    transition:border-color .25s ease, background .25s ease, transform .25s ease;
  }
  .footer__dcs:hover{ border-color:var(--brand); background:rgba(99,102,241,.12); transform:translateY(-2px) }
  .footer__dcs-mark{
    width:36px; height:36px; border-radius:10px;
    background:var(--grad-cta); display:grid; place-items:center;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  }
  .footer__dcs-mark svg{ width:18px; height:18px }
  .footer__dcs-text small{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(230,233,244,.5); display:block }
  .footer__dcs-text strong{ font-size:14px; color:#fff; font-weight:600; display:block; margin-top:2px }
  .footer__bottom{
    display:flex; justify-content:space-between; align-items:center; gap:24px;
    padding-top:24px; font-size:12.5px; color:rgba(230,233,244,.45); flex-wrap:wrap;
  }
  .footer__legal{ display:flex; gap:24px; flex-wrap:wrap }
  .footer__legal a:hover{ color:#fff }
  @media (max-width:980px){ .footer__top{ grid-template-columns:1fr 1fr; row-gap:36px } }
  @media (max-width:600px){ .footer__top{ grid-template-columns:1fr } }

  /* ============ ANIM ============ */
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1) }
  .reveal.in{ opacity:1; transform:none }
  .reveal--d1{ transition-delay:.08s }
  .reveal--d2{ transition-delay:.16s }
  .reveal--d3{ transition-delay:.24s }
  .reveal--d4{ transition-delay:.32s }
  .reveal--d5{ transition-delay:.40s }

  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none }
    *{ animation:none !important }
  }
