/* ===================== BASE / TOKENS ===================== */
:root{
  --ink: #0b1220;
  --ink-2: #121a2b;
  --ink-soft: #1b2438;
  --cream: #f6f4ef;
  --paper: #fbfaf7;
  --muted: #5b6478;
  --line: rgba(11,18,32,.10);
  --line-dark: rgba(255,255,255,.10);

  --c1: #8fd7ff;   /* aire azul */
  --c2: #8b7bff;   /* violeta */
  --c3: #a7f3d0;   /* menta */
  --grad: linear-gradient(120deg, var(--c1), var(--c2));

  --radius: 20px;
  --radius-sm: 12px;
  --shadow: 0 30px 60px -30px rgba(11,18,32,.35);
  --maxw: 1180px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:"Manrope", system-ui, -apple-system, sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:"Fraunces", Georgia, serif; font-weight:500; line-height:1.08; letter-spacing:-.01em; }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
section{ scroll-margin-top:80px; }
.grad{
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
strong{ font-weight:700; }

/* ===================== BUTTONS ===================== */
.btn{
  --pad: .95rem 1.6rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:var(--pad);
  font-weight:700; font-size:.98rem; letter-spacing:.01em;
  border-radius:100px; border:1px solid transparent;
  cursor:pointer; transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s;
  white-space:nowrap;
}
.btn--primary{
  color:#0b1220; background:var(--grad);
  box-shadow:0 12px 30px -12px rgba(139,123,255,.7);
}
.btn--primary:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -14px rgba(139,123,255,.8); }
.btn--ghost{ color:inherit; border-color:var(--line); background:transparent; }
.btn--ghost:hover{ border-color:var(--ink); transform:translateY(-3px); }
.btn--block{ width:100%; }

/* ===================== NAV ===================== */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem clamp(1.2rem, 4vw, 3rem);
  background:rgba(251,250,247,.72);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:border-color .4s, box-shadow .4s, background .4s;
}
.nav.is-scrolled{ border-color:var(--line); box-shadow:0 8px 30px -18px rgba(11,18,32,.3); }

.brand{ display:flex; align-items:center; gap:.6rem; }
.brand__mark{ display:grid; place-items:center; }
.brand__text{
  font-family:"Fraunces", serif; font-weight:600; font-size:1.35rem; letter-spacing:.02em;
  display:flex; flex-direction:column; line-height:1;
}
.brand__text em{
  font-family:"Manrope", sans-serif; font-style:normal; font-weight:600;
  font-size:.58rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--muted); margin-top:.28rem;
}

.nav__links{ display:flex; align-items:center; gap:.4rem; }
.nav__links a{
  padding:.55rem .9rem; border-radius:100px; font-weight:600; font-size:.94rem;
  color:var(--ink); transition:background .25s, color .25s;
}
.nav__links a:not(.nav__cta):hover{ background:rgba(11,18,32,.06); }
.nav__cta{
  color:#0b1220 !important; background:var(--grad); margin-left:.4rem;
  box-shadow:0 10px 24px -12px rgba(139,123,255,.7);
}
.nav__cta:hover{ transform:translateY(-2px); }

.nav__toggle{
  display:none; flex-direction:column; gap:5px; width:44px; height:44px;
  align-items:center; justify-content:center; background:none; border:none; cursor:pointer;
}
.nav__toggle span{ width:24px; height:2px; background:var(--ink); border-radius:2px; transition:transform .35s var(--ease), opacity .3s; }
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ===================== HERO ===================== */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding:8rem clamp(1.2rem,5vw,3rem) 4rem;
  background:
    radial-gradient(120% 90% at 80% -10%, rgba(143,215,255,.20), transparent 55%),
    radial-gradient(90% 80% at 0% 110%, rgba(139,123,255,.16), transparent 55%),
    var(--paper);
  overflow:hidden;
}
.hero__aura{
  position:absolute; inset:auto -10% -40% auto; width:60vw; height:60vw;
  background:conic-gradient(from 120deg, var(--c1), var(--c3), var(--c2), var(--c1));
  filter:blur(90px); opacity:.16; border-radius:50%;
  animation:float 16s ease-in-out infinite;
}
@keyframes float{ 50%{ transform:translate(-6%, -8%) scale(1.08); } }

.hero__inner{ position:relative; width:100%; max-width:var(--maxw); margin:0 auto; }
.eyebrow{
  font-weight:700; font-size:.78rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--c2); margin-bottom:1.2rem;
}
.hero__title{
  font-size:clamp(2.6rem, 7vw, 5.4rem);
  max-width:16ch; margin-bottom:1.6rem;
}
.hero__lead{
  font-size:clamp(1.05rem, 1.7vw, 1.3rem);
  max-width:56ch; color:#2c3547; margin-bottom:2.4rem;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:3.4rem; }

.hero__proof{
  list-style:none; display:flex; flex-wrap:wrap; gap:clamp(1.6rem,5vw,3.4rem);
  padding-top:2.2rem; border-top:1px solid var(--line);
}
.hero__proof li{ display:flex; flex-direction:column; }
.hero__proof strong{ font-family:"Fraunces",serif; font-size:2rem; font-weight:600; }
.hero__proof span{ font-size:.86rem; color:var(--muted); }

.hero__scroll{
  position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%);
  width:26px; height:42px; border:2px solid var(--line); border-radius:100px;
  display:grid; place-items:start center; padding-top:7px;
}
.hero__scroll span{ width:4px; height:8px; border-radius:4px; background:var(--c2); animation:scrolldot 1.6s infinite; }
@keyframes scrolldot{ 0%{opacity:0;transform:translateY(-3px);} 40%{opacity:1;} 80%{opacity:0;transform:translateY(10px);} }

/* ===================== TRUST ===================== */
.trust{ padding:3rem clamp(1.2rem,5vw,3rem); max-width:var(--maxw); margin:0 auto; text-align:center; }
.trust__label{ font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin-bottom:1.4rem; }
.trust__row{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:clamp(1.6rem,5vw,3.2rem);
}
.trust__row span{
  font-family:"Fraunces",serif; font-size:1.25rem; letter-spacing:.05em;
  color:var(--ink); opacity:.42; transition:opacity .3s;
}
.trust__row span:hover{ opacity:.9; }

/* ===================== SECTIONS ===================== */
.section{ padding:clamp(4.5rem,9vw,7.5rem) clamp(1.2rem,5vw,3rem); max-width:var(--maxw); margin:0 auto; }
.section__head{ max-width:64ch; margin:0 auto 3.5rem; text-align:center; }
.section__title{ font-size:clamp(2rem,4.4vw,3.2rem); margin-bottom:1.1rem; }
.section__sub{ font-size:1.08rem; color:var(--muted); }
.section--dark .section__sub{ color:rgba(255,255,255,.65); }
.section .eyebrow{ margin-bottom:.9rem; }

/* ===================== CARDS ===================== */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.card{
  position:relative; padding:2.2rem 1.8rem 2rem;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  overflow:hidden;
}
.card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.card:hover::before{ transform:scaleX(1); }
.card__num{
  font-family:"Fraunces",serif; font-size:.95rem; font-weight:600;
  color:var(--c2); letter-spacing:.05em;
}
.card h3{ font-size:1.4rem; margin:.7rem 0 .7rem; }
.card p{ color:var(--muted); font-size:.98rem; }

/* ===================== MÉTODO (dark) ===================== */
.section--dark{
  max-width:none; margin:0;
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(139,123,255,.22), transparent 50%),
    radial-gradient(70% 100% at 0% 100%, rgba(143,215,255,.16), transparent 50%),
    var(--ink);
  color:var(--cream);
}
.section--dark .section__head,
.section--dark .steps{ max-width:var(--maxw); margin-left:auto; margin-right:auto; }
.section--dark .section__title{ color:var(--cream); }
.section--dark .eyebrow{ color:var(--c1); }

.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; list-style:none; }
.step{
  padding:2rem 1.6rem; border:1px solid var(--line-dark); border-radius:var(--radius);
  background:rgba(255,255,255,.03); position:relative;
  transition:background .4s, transform .4s var(--ease);
}
.step:hover{ background:rgba(255,255,255,.06); transform:translateY(-5px); }
.step__index{
  display:inline-grid; place-items:center; width:46px; height:46px; border-radius:50%;
  font-family:"Fraunces",serif; font-weight:600; color:#0b1220;
  background:var(--grad); margin-bottom:1.1rem;
}
.step h3{ font-size:1.3rem; color:var(--cream); margin-bottom:.5rem; }
.step p{ color:rgba(255,255,255,.62); font-size:.95rem; }

/* ===================== STATS ===================== */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; margin-bottom:4rem; }
.stat{ text-align:center; padding:2rem 1rem; border:1px solid var(--line); border-radius:var(--radius); }
.stat strong{
  display:block; font-family:"Fraunces",serif; font-weight:600;
  font-size:clamp(2.4rem,5vw,3.4rem); line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  margin-bottom:.6rem;
}
.stat span{ color:var(--muted); font-size:.92rem; }

.quote{ max-width:64ch; margin:0 auto; text-align:center; }
.quote blockquote{
  font-family:"Fraunces",serif; font-size:clamp(1.4rem,3vw,2rem); line-height:1.35;
  font-weight:400; margin-bottom:1.6rem;
}
.quote__name{ display:block; font-weight:700; }
.quote__role{ color:var(--muted); font-size:.9rem; }

/* ===================== SPLIT / NOSOTROS ===================== */
.section--split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.split__text .section__title{ text-align:left; margin-bottom:1.4rem; }
.split__text .eyebrow{ text-align:left; }
.split__text p{ color:#2c3547; margin-bottom:1.1rem; max-width:52ch; }
.values{ display:grid; gap:1rem; margin-top:2rem; }
.values div{ display:flex; flex-direction:column; padding-left:1rem; border-left:2px solid; border-image:var(--grad) 1; }
.values strong{ font-size:1.05rem; }
.values span{ color:var(--muted); font-size:.92rem; }

.split__visual{
  position:relative; aspect-ratio:1/1; border-radius:28px;
  background:linear-gradient(160deg, var(--ink), var(--ink-2));
  display:grid; place-items:center; overflow:hidden; box-shadow:var(--shadow);
}
.orb{ position:absolute; width:60%; height:60%; border-radius:50%; filter:blur(50px); background:var(--c2); opacity:.35; top:-10%; right:-10%; }
.orb--2{ background:var(--c1); bottom:-15%; left:-10%; top:auto; right:auto; opacity:.3; }
.split__card{
  position:relative; z-index:2; width:78%; padding:1.8rem;
  background:rgba(255,255,255,.06); border:1px solid var(--line-dark);
  border-radius:var(--radius); backdrop-filter:blur(6px); color:var(--cream);
}
.split__card>span{ font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.bars{ display:flex; align-items:flex-end; gap:.5rem; height:120px; margin:1.2rem 0 1rem; }
.bars i{ flex:1; height:var(--h); border-radius:6px 6px 0 0; background:var(--grad); opacity:.9; }
.split__card strong{ font-family:"Fraunces",serif; font-size:1.8rem; font-weight:600; }
.split__card em{ font-style:normal; font-size:.85rem; color:rgba(255,255,255,.6); font-family:"Manrope"; }

/* ===================== CONTACTO ===================== */
.section--contact{ }
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,4.5rem); align-items:start; }
.contact__intro .section__title,
.contact__intro .eyebrow{ text-align:left; }
.contact__intro .section__title{ margin-bottom:1.1rem; }
.contact__intro p{ color:#2c3547; max-width:44ch; margin-bottom:2rem; }
.contact__list{ list-style:none; display:grid; gap:1rem; }
.contact__list li{ display:flex; align-items:center; gap:.8rem; font-weight:600; }
.contact__list span{
  display:grid; place-items:center; width:38px; height:38px; border-radius:50%;
  background:rgba(139,123,255,.12); color:var(--c2); font-size:1rem;
}
.contact__list a:hover{ color:var(--c2); }

/* Tarjeta de correo elegante */
.mailcard{
  display:inline-flex; align-items:center; gap:1.1rem;
  padding:1.1rem 1.4rem; border-radius:var(--radius);
  border:1px solid var(--line); background:var(--paper);
  box-shadow:0 20px 40px -30px rgba(11,18,32,.4);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.mailcard:hover{ transform:translateY(-3px); border-color:transparent; box-shadow:var(--shadow); }
.mailcard__icon{
  display:grid; place-items:center; flex:none; width:48px; height:48px; border-radius:50%;
  color:#0b1220; background:var(--grad); font-size:1.15rem;
  box-shadow:0 10px 22px -10px rgba(139,123,255,.7);
}
.mailcard__body{ display:flex; flex-direction:column; line-height:1.25; }
.mailcard__label{
  font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
}
.mailcard__addr{
  font-family:"Fraunces", serif; font-size:1.08rem; font-weight:500;
  color:var(--ink); word-break:normal; overflow-wrap:normal;
}
.mailcard__arrow{
  margin-left:auto; color:var(--c2); font-size:1.2rem; font-weight:700;
  transition:transform .35s var(--ease); flex:none;
}
.mailcard:hover .mailcard__arrow{ transform:translateX(5px); }

.form{
  padding:2.2rem; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); box-shadow:var(--shadow); display:grid; gap:1.1rem;
}
.field{ display:grid; gap:.4rem; }
.field label{ font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink); }
.field input, .field textarea{
  font-family:inherit; font-size:1rem; color:var(--ink);
  padding:.85rem 1rem; border:1px solid var(--line); border-radius:var(--radius-sm);
  background:#fff; transition:border-color .25s, box-shadow .25s; resize:vertical;
}
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--c2); box-shadow:0 0 0 4px rgba(139,123,255,.14);
}
.form__note{ font-size:.9rem; font-weight:600; min-height:1.2em; }
.form__note.ok{ color:#1a7f5a; }
.form__note.err{ color:#c0392b; }

/* ===================== FOOTER ===================== */
.footer{ background:var(--ink); color:rgba(255,255,255,.8); padding:clamp(3rem,6vw,4.5rem) clamp(1.2rem,5vw,3rem) 2rem; }
.footer__top{
  max-width:var(--maxw); margin:0 auto 2.5rem; display:flex; flex-wrap:wrap; gap:1.6rem;
  justify-content:space-between; align-items:center;
  padding-bottom:2rem; border-bottom:1px solid var(--line-dark);
}
.brand--footer .brand__text{ color:var(--cream); }
.brand--footer .brand__text em{ color:rgba(255,255,255,.5); }
.footer__nav{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.footer__nav a{ font-weight:600; color:rgba(255,255,255,.7); transition:color .25s; }
.footer__nav a:hover{ color:var(--c1); }
.footer__bottom{
  max-width:var(--maxw); margin:0 auto; display:flex; flex-wrap:wrap; gap:.6rem;
  justify-content:space-between; font-size:.86rem; color:rgba(255,255,255,.5);
}

/* ===================== REVEAL ANIM ===================== */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* ===================== RESPONSIVE ===================== */
@media (max-width:900px){
  .cards{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .section--split{ grid-template-columns:1fr; }
  .split__text .section__title{ text-align:left; }
  .contact{ grid-template-columns:1fr; }
}
@media (max-width:680px){
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(78vw,320px);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:.6rem;
    padding:2rem; background:var(--paper); box-shadow:-20px 0 60px -20px rgba(11,18,32,.4);
    transform:translateX(100%); transition:transform .45s var(--ease);
  }
  .nav__links.is-open{ transform:none; }
  .nav__links a{ font-size:1.1rem; width:100%; }
  .nav__cta{ margin-left:0; }
  .nav__toggle{ display:flex; z-index:60; }
  .cards, .steps, .stats{ grid-template-columns:1fr; }
  .hero__proof{ gap:1.4rem; }
}

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