:root{
  --ink:#0A0A0C;
  --paper:#FAFAF9;
  --paper-2:#F1F0EE;
  --line:rgba(10,10,12,0.10);
  --line-strong:rgba(10,10,12,0.16);
  --text-hi:#0A0A0C;
  --text-lo:#68666B;
  --text-on-ink-hi:#FAFAF9;
  --text-on-ink-lo:#8E8C92;
  --line-on-ink:rgba(250,250,249,0.14);
  --accent:#00F0D6;
  --accent-deep:#007A6D;
  --accent-ink:#03102E;
  --accent-soft:rgba(0,240,214,0.16);
  --accent-glow:rgba(0,240,214,0.65);
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:10px;
  --content-w:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

/* ---------- scroll progress ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:0%; z-index:60;
  background:var(--accent);
}

body{
  margin:0;
  background:var(--paper);
  color:var(--text-hi);
  font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size:1.05rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}

h1,h2,h3{
  font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight:700;
  line-height:1.06;
  letter-spacing:-0.025em;
  text-wrap:balance;
  margin:0;
}

.mono{ font-family:"IBM Plex Mono", ui-monospace, Menlo, monospace; font-variant-numeric:tabular-nums; }

.eyebrow{
  font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--text-lo);
}

a{ color:inherit }
img,svg{ display:block; max-width:100% }

.wrap{
  max-width:var(--content-w);
  margin:0 auto;
  padding-left:clamp(20px,5vw,64px);
  padding-right:clamp(20px,5vw,64px);
}

/* ---------- nav ---------- */
header.nav{
  position:sticky; top:0; z-index:30;
  background:rgba(10,10,12,0.86);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, box-shadow .3s ease;
}
header.nav.is-scrolled{
  border-bottom-color:var(--line-on-ink);
  box-shadow:0 8px 24px rgba(0,0,0,0.24);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; padding-top:18px; padding-bottom:18px; transition:padding .3s ease; }
header.nav.is-scrolled .nav-inner{ padding-top:13px; padding-bottom:13px; }
.wordmark{ display:inline-flex; align-items:center; text-decoration:none; }
.logo-img{ display:block; height:30px; width:auto; }
.nav-links{ display:none; gap:32px; font-size:0.92rem; font-weight:500; align-items:center; }
@media (min-width:860px){ .nav-links{ display:flex; } }
.nav-links a{ text-decoration:none; color:var(--text-on-ink-lo); transition:color .15s ease; }
.nav-links a:hover{ color:var(--text-on-ink-hi); }
.nav-links a.is-active{ color:var(--text-on-ink-hi); }
.nav-links a.btn-line{ background:transparent; border-color:var(--line-on-ink); color:var(--text-on-ink-hi); }
.nav-links a.btn-line:hover{ background:rgba(250,250,249,0.08); }
a:focus-visible, button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

/* ---------- mobile nav toggle ---------- */
.nav-toggle{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; margin:0; flex:none;
  border:none; border-radius:8px; background:none; background-color:transparent;
  cursor:pointer; -webkit-tap-highlight-color:transparent; font:inherit; color:inherit;
}
@media (min-width:860px){ .nav-toggle{ display:none; } }
.nav-toggle-icon{ display:block; overflow:visible; max-width:none; pointer-events:none; }
.nav-toggle-line{
  stroke:var(--text-on-ink-hi); stroke-width:2; stroke-linecap:round;
  transform-box:fill-box; transform-origin:center;
  transition:transform .25s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] .l1{ transform:translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .l2{ opacity:0; }
.nav-toggle[aria-expanded="true"] .l3{ transform:translateY(-5.5px) rotate(-45deg); }

.mobile-menu{
  display:none; flex-direction:column;
  border-top:1px solid var(--line-on-ink);
  background:rgba(10,10,12,0.97);
  backdrop-filter:saturate(180%) blur(14px);
}
.mobile-menu.is-open{ display:flex; }
@media (min-width:860px){ .mobile-menu{ display:none !important; } }
.mobile-menu a{
  text-decoration:none; color:var(--text-on-ink-lo); font-size:1.02rem; font-weight:500;
  padding:15px clamp(20px,5vw,64px); border-bottom:1px solid var(--line-on-ink);
  transition:color .15s ease;
}
.mobile-menu a:last-child{ border-bottom:none; }
.mobile-menu a:hover{ color:var(--text-on-ink-hi); }
.mobile-menu a.is-active{ color:var(--accent); }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif; font-size:0.92rem; font-weight:600;
  text-decoration:none; padding:0.85em 1.5em; border-radius:999px;
  border:1px solid transparent; cursor:pointer; transition:transform .15s ease, opacity .15s ease, background .15s ease;
}
.btn:active{ transform:scale(0.97); }
.btn-accent{
  background:var(--accent); color:var(--accent-ink); position:relative; overflow:hidden;
  transition:transform .15s ease, filter .3s ease;
}
.btn-accent:hover, .btn-accent:focus-visible{ filter:brightness(1.06); }
.btn-accent::after{
  content:""; position:absolute; top:0; left:-30%; width:14%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,0.32), transparent);
  transform:skewX(-18deg); pointer-events:none;
  transition:left 2.6s cubic-bezier(.4,0,.2,1);
}
.btn-accent:hover::after, .btn-accent:focus-visible::after{ left:130%; }
.btn-line{ background:transparent; border-color:var(--line-strong); color:var(--text-hi); }
.btn-line:hover{ background:var(--paper-2); }
.btn-line-ink{ background:transparent; border-color:var(--line-on-ink); color:var(--text-on-ink-hi); }
.btn-line-ink:hover{ background:rgba(250,250,249,0.08); }
.btn-sm{ padding:0.6em 1.15em; font-size:0.84rem; }

/* ---------- hero (home) ---------- */
.hero{
  background:var(--ink); color:var(--text-on-ink-hi);
  padding-top:clamp(120px,16vw,180px); padding-bottom:clamp(90px,12vw,140px);
  position:relative; overflow:hidden;
}
.hero .glow, .page-hero .glow{
  position:absolute; width:52vw; height:52vw; max-width:760px; max-height:760px;
  right:-14vw; top:-18vw; border-radius:50%;
  background:radial-gradient(circle at 50% 50%, var(--accent) 0%, transparent 68%);
  opacity:0.36; filter:blur(10px); pointer-events:none;
}
@media (prefers-reduced-motion: no-preference){
  .hero .glow, .page-hero .glow{ animation:breathe 9s ease-in-out infinite; }
}
@keyframes breathe{
  0%,100%{ transform:translate(0,0) scale(1); opacity:0.36; }
  50%{ transform:translate(-2.5%,3%) scale(1.08); opacity:0.48; }
}
.hero-inner{ position:relative; max-width:1180px; }
.hero-grid{ position:relative; display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
@media (min-width:1180px){ .hero-grid{ grid-template-columns:1.08fr 0.92fr; gap:48px; } }
.hero-copy{ min-width:0; }
.hero-visual{
  position:relative; display:flex; align-items:center; justify-content:center;
  height:clamp(240px,58vw,340px); margin-top:8px;
}
.hero-visual svg{ width:auto; height:100%; max-width:100%; overflow:visible; }
@media (min-width:1180px){
  .hero-visual{ height:clamp(440px,62vh,660px); margin-top:0; }
  .hero-visual svg{ width:100%; height:100%; }
}
@media (max-width:1179px){ .hero-structure .hide-mobile{ display:none; } }
.pulse-node{ animation:pulse-node 2.6s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }
@keyframes pulse-node{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.72; transform:scale(1.18); }
}
.pulse-ring{ animation:pulse-ring 2.6s ease-out infinite; transform-origin:center; transform-box:fill-box; }
@keyframes pulse-ring{
  0%{ opacity:.55; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.6); }
}
/* ---------- hero structure (composición geométrica, de complejidad a estructura) ---------- */
.hero-structure .struct-el{ transform-box:fill-box; transform-origin:center; }
.hero-axis-glow{ opacity:1; }
@media (prefers-reduced-motion: no-preference){
  .hero-structure .struct-el{
    animation:struct-settle 1.8s cubic-bezier(.19,1,.22,1) both;
  }
  @keyframes struct-settle{
    0%{ transform:translate(var(--dx),var(--dy)) rotate(var(--dr)); opacity:0; }
    55%{ opacity:1; }
    100%{ transform:translate(0,0) rotate(0deg); opacity:1; }
  }
  .hero-axis-glow{
    animation:axis-glow-in 2.4s ease-out both;
  }
  @keyframes axis-glow-in{
    0%{ opacity:0; }
    100%{ opacity:1; }
  }
  .hero-structure{
    transform-box:fill-box; transform-origin:center;
    animation:struct-breathe 13s ease-in-out 2.8s infinite;
  }
  @keyframes struct-breathe{
    0%,100%{ transform:translate(0,0); }
    50%{ transform:translate(0,-2px); }
  }
  .hero-structure .struct-el.is-live{
    animation:struct-settle 1.8s cubic-bezier(.19,1,.22,1) both, struct-live 12s ease-in-out infinite;
  }
  @keyframes struct-live{
    0%,100%{ transform:translate(0,0); }
    50%{ transform:translate(var(--ldx,4px),var(--ldy,-4px)); }
  }
  .struct-redraw{
    transform-box:fill-box; transform-origin:center;
    animation:struct-redraw-draw 11s ease-in-out 1s infinite;
  }
  @keyframes struct-redraw-draw{
    0%{ stroke-dashoffset:214; opacity:0; }
    15%{ opacity:.85; }
    50%{ stroke-dashoffset:0; opacity:.85; }
    85%{ opacity:.85; }
    100%{ stroke-dashoffset:214; opacity:0; }
  }
  .hero-node{
    transform-box:fill-box; transform-origin:center;
    animation:hero-node-breathe 9s ease-in-out infinite;
  }
  @keyframes hero-node-breathe{
    0%,100%{ transform:scale(1); opacity:1; }
    50%{ transform:scale(1.35); opacity:.78; }
  }
}
.hero .eyebrow{ color:var(--text-on-ink-lo); margin-bottom:24px; white-space:nowrap; }
@media (max-width:640px){ .hero .eyebrow{ white-space:normal; } }
.hero h1{ font-size:clamp(2.3rem,4.4vw,3.9rem); max-width:14ch; }
.hero h1 .accent{ color:var(--accent); }
.hero-tagline{
  color:var(--accent); font-weight:600; font-size:0.95rem; letter-spacing:0.01em;
  margin-top:14px;
}
.hero p.lede{
  font-size:clamp(1.1rem,2vw,1.3rem); font-weight:400; color:var(--text-on-ink-lo);
  max-width:46ch; margin-top:24px; line-height:1.55;
}
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
.hero .trust{
  margin-top:64px; padding-top:26px; border-top:1px solid var(--line-on-ink);
  font-size:0.92rem; color:var(--text-on-ink-lo); max-width:58ch; line-height:1.7;
}

/* ---------- page-hero (páginas internas) ---------- */
.page-hero{
  background:var(--ink); color:var(--text-on-ink-hi);
  padding-top:clamp(100px,14vw,140px); padding-bottom:clamp(56px,8vw,88px);
  position:relative; overflow:hidden;
}
.page-hero-inner{ position:relative; max-width:760px; }
.page-hero .eyebrow{ color:var(--text-on-ink-lo); margin-bottom:18px; }
.page-hero h1{ font-size:clamp(2.1rem,4.4vw,3.2rem); max-width:20ch; }
.page-hero p.lede{
  font-size:clamp(1rem,1.6vw,1.14rem); font-weight:400; color:var(--text-on-ink-lo);
  max-width:56ch; margin-top:18px; line-height:1.6;
}
.page-hero-grid{ position:relative; display:grid; grid-template-columns:1fr; gap:36px; align-items:center; }
@media (min-width:920px){ .page-hero-grid{ grid-template-columns:1.05fr 0.95fr; gap:24px; } }
.page-hero-grid .page-hero-inner{ max-width:none; }
.page-hero-visual{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0;
  height:clamp(200px,54vw,300px); margin-top:4px;
}
.page-hero-visual svg{ width:auto; height:100%; max-width:100%; overflow:visible; }
.page-hero-visual .bars-hint{ width:100%; max-width:280px; margin-top:10px; }
.page-hero-visual:has(.bars-hint){ height:clamp(230px,60vw,330px); }
.page-hero-visual:has(.bars-hint) svg{ height:clamp(170px,46vw,240px); }
@media (min-width:920px){
  .page-hero-visual{ display:block; height:auto; margin-top:0; }
  .page-hero-visual svg{ width:100%; height:auto; }
  .page-hero-visual:has(.bars-hint) svg{ height:auto; }
  .page-hero-visual .bars-hint{ max-width:none; margin-top:18px; }
}
/* ---------- paquetes — visual modular (módulos / integración) ---------- */
.pkg-modules a{ cursor:pointer; }
.pkg-modules a rect{ transition:fill .2s ease, stroke .2s ease; }
.pkg-modules a text{ transition:fill .2s ease; }
.pkg-modules a:hover rect, .pkg-modules a:focus-visible rect{ stroke:#00F0D6; fill:rgba(0,240,214,0.16); }
.pkg-modules a:hover text, .pkg-modules a:focus-visible text{ fill:#FAFAF9; }
.pkg-modules a:focus-visible{ outline:none; }
.pkg-module{ transform-box:fill-box; transform-origin:center; }
.pkg-link{ fill:none; stroke-dasharray:1; stroke-dashoffset:0; }
@media (prefers-reduced-motion: no-preference){
  .pkg-module{ animation:pkg-module-in 1.3s cubic-bezier(.19,1,.22,1) both; }
  @keyframes pkg-module-in{
    0%{ opacity:0; transform:scale(.82); }
    100%{ opacity:1; transform:scale(1); }
  }
  .pkg-link{ animation:pkg-link-draw 1.6s cubic-bezier(.45,.05,.35,1) both; }
  @keyframes pkg-link-draw{
    0%{ stroke-dashoffset:1; opacity:0; }
    100%{ stroke-dashoffset:0; opacity:1; }
  }
  .pkg-modules{ animation:pkg-breathe 13s ease-in-out 3s infinite; transform-box:fill-box; transform-origin:center; }
  @keyframes pkg-breathe{
    0%,100%{ transform:translate(0,0); }
    50%{ transform:translate(0,-2px); }
  }
}
.bars-hint{
  margin-top:18px; overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent, black 14%, black 86%, transparent);
  mask-image:linear-gradient(to right, transparent, black 14%, black 86%, transparent);
}
.hint-track{
  display:flex; width:max-content;
  font-family:"IBM Plex Mono",monospace; font-size:0.72rem; letter-spacing:0.03em;
  color:var(--text-on-ink-lo); opacity:0.75; white-space:nowrap;
}
.hint-item{ margin-right:56px; }
@media (prefers-reduced-motion: no-preference){
  .hint-track{ animation:hint-scroll 10s linear infinite; }
}
@media (prefers-reduced-motion: reduce){
  .bars-hint{ mask-image:none; -webkit-mask-image:none; }
  .hint-track{ justify-content:flex-end; }
  .hint-item:last-child{ display:none; }
}
@keyframes hint-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ---------- sections ---------- */
section{ padding-top:clamp(64px,9vw,108px); padding-bottom:clamp(64px,9vw,108px); }
.section-head{ display:flex; flex-direction:column; gap:14px; margin-bottom:clamp(40px,6vw,64px); max-width:640px; }
.section-head h2{ font-size:clamp(1.9rem,3.6vw,2.6rem); }
.section-head p{ color:var(--text-lo); font-size:1.04rem; }
hr.rule{ border:none; border-top:1px solid var(--line); margin:0; }
.inline-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.92rem; font-weight:600; color:var(--text-hi); text-decoration:none;
  margin-top:22px; border-bottom:1px solid var(--line-strong); padding-bottom:2px;
  transition:border-color .15s ease, color .15s ease;
}
.inline-link:hover{ color:var(--accent-deep); border-color:var(--accent-deep); }

/* ---------- comparativa: tarjetas elevadas ---------- */
.compare-cards{ display:grid; grid-template-columns:1fr; gap:20px; align-items:start; }
@media (min-width:860px){
  .compare-cards{ grid-template-columns:1fr 1.08fr 1fr; grid-template-rows:auto repeat(5,auto); gap:20px; }
  .compare-card{ grid-row:1 / -1; display:grid; grid-template-rows:subgrid; }
}
.compare-card{
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px 28px; background:var(--paper);
}
.compare-card-head{
  font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--text-lo); font-weight:700;
  margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line);
}
.compare-row{ display:flex; flex-direction:column; gap:4px; padding:12px 0; border-bottom:1px solid var(--line); }
.compare-row:last-child{ border-bottom:none; padding-bottom:0; }
.compare-row span{ font-size:0.72rem; color:var(--text-lo); opacity:0.85; text-transform:uppercase; letter-spacing:0.04em; }
.compare-row strong{ font-size:0.98rem; font-weight:500; color:var(--text-hi); }
.compare-card.is-featured{
  background:var(--ink); border:1px solid rgba(0,240,214,0.35); position:relative;
  box-shadow:0 28px 56px -16px rgba(10,10,12,0.28); transform:translateY(-14px);
}
@media (max-width:859px){ .compare-card.is-featured{ transform:none; order:-1; } }
.compare-badge{
  position:absolute; top:-13px; left:28px; background:var(--accent); color:var(--accent-ink); font-weight:700;
  font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase; padding:5px 14px; border-radius:99px;
}
.compare-card.is-featured .compare-card-head{ color:var(--accent); border-bottom-color:var(--line-on-ink); }
.compare-card.is-featured .compare-row{ border-bottom-color:var(--line-on-ink); }
.compare-card.is-featured .compare-row span{ color:var(--text-on-ink-lo); }
.compare-card.is-featured .compare-row strong{ color:var(--text-on-ink-hi); font-weight:600; }
.compare-row em{ font-style:normal; font-size:0.82rem; color:var(--text-on-ink-lo); line-height:1.5; margin-top:2px; }
.compare-cards-single{ max-width:640px; }
.compare-cards-single .compare-card{ padding:clamp(32px,5vw,44px); }
.compare-single-text{ font-size:clamp(1.02rem,1.6vw,1.15rem); line-height:1.7; color:var(--text-on-ink-hi); margin:0; text-align:left; }
.compare-attrs{ margin-top:clamp(22px,3vw,30px); padding-top:clamp(22px,3vw,30px); border-top:1px solid var(--line-on-ink); }
.compare-close{ max-width:660px; margin:clamp(40px,5vw,56px) auto 0; text-align:center; }
.compare-close .lead{ font-size:clamp(1.05rem,2vw,1.22rem); font-weight:700; color:var(--text-hi); line-height:1.4; }
.compare-close .sub{ margin-top:12px; color:var(--text-lo); font-size:0.98rem; line-height:1.65; }

/* ---------- soluciones (teaser en home) ---------- */
.sol-teaser-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.sol-teaser-card{
  background:var(--paper); padding:28px 24px; display:flex; flex-direction:column; gap:2px; text-decoration:none; color:inherit;
  transition:transform .25s ease, box-shadow .25s ease; position:relative;
}
.sol-teaser-card:hover{ transform:translateY(-4px); box-shadow:0 16px 32px rgba(10,10,12,0.06); z-index:1; }
@media (prefers-reduced-motion: reduce){ .sol-teaser-card:hover{ transform:none; } }
.sol-teaser-num{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:clamp(1.8rem,3.2vw,2.4rem); line-height:1; color:transparent; -webkit-text-stroke:1.4px var(--line-strong); text-stroke:1.4px var(--line-strong); }
.sol-teaser-cat{ font-size:0.7rem; font-weight:600; color:var(--accent-deep); text-transform:uppercase; letter-spacing:0.03em; margin-top:10px; line-height:1.4; min-height:4.2em; }
.sol-teaser-card h3{ font-size:1.2rem; font-weight:700; margin-top:6px; }
.sol-teaser-card p{ margin:6px 0 0; color:var(--text-lo); font-size:0.92rem; line-height:1.55; flex:1; }
.sol-teaser-cta{ font-size:0.85rem; font-weight:600; color:var(--text-hi); margin-top:16px; }
.sol-teaser-card:hover .sol-teaser-cta{ color:var(--accent-deep); }
.sol-teaser-card.is-featured{ background:var(--ink); }
.sol-teaser-card.is-featured .sol-teaser-num{ -webkit-text-stroke-color:var(--line-on-ink); text-stroke-color:var(--line-on-ink); }
.sol-teaser-card.is-featured h3{ color:var(--text-on-ink-hi); }
.sol-teaser-card.is-featured p{ color:var(--text-on-ink-lo); }
.sol-teaser-card.is-featured .sol-teaser-cat{ color:var(--accent); }
.sol-teaser-card.is-featured .sol-teaser-cta{ color:var(--accent); }

/* ---------- misión ---------- */
.mission{ max-width:760px; text-align:left; display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.mission h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); line-height:1.28; }
.mission p{ color:var(--text-lo); font-size:1.02rem; line-height:1.65; max-width:56ch; }
.mission .btn{ margin-top:10px; }

/* ---------- teaser box (cliente fundador) ---------- */
.teaser-box{
  display:flex; flex-direction:column; gap:22px; padding:clamp(28px,4vw,36px); border:1px solid var(--line);
  border-radius:var(--radius-lg); background:var(--paper-2);
}
@media (min-width:700px){ .teaser-box{ flex-direction:row; align-items:center; justify-content:space-between; gap:32px; } }
.teaser-box-body .eyebrow{ margin-bottom:10px; }
.teaser-box-body p{ color:var(--text-lo); font-size:0.98rem; line-height:1.6; max-width:56ch; margin:0; }
.teaser-box .btn{ flex-shrink:0; }

/* ---------- cta banner (contacto teaser) ---------- */
.cta-banner{
  background:var(--ink); border-radius:var(--radius-lg); padding:clamp(40px,7vw,72px);
  text-align:left; display:flex; flex-direction:column; align-items:flex-start; gap:12px;
}
.cta-banner .eyebrow{ color:var(--text-on-ink-lo); }
.cta-banner h2{ color:var(--text-on-ink-hi); font-size:clamp(1.8rem,3.4vw,2.3rem); max-width:20ch; }
.cta-banner p{ color:var(--text-on-ink-lo); font-size:1rem; line-height:1.6; max-width:52ch; }
.cta-banner .btn{ margin-top:14px; }

/* ---------- footer tagline ---------- */
.footer-tag{
  color:var(--text-on-ink-hi); font-weight:600; letter-spacing:-0.01em;
  font-size:clamp(1.15rem,2.2vw,1.6rem); line-height:1.35; max-width:34ch;
  margin:0 0 clamp(40px,6vw,56px);
}

/* ---------- servicios ---------- */
.familias{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.familia{ background:var(--paper); padding:32px 28px; display:flex; flex-direction:column; gap:14px; transition:transform .3s ease, box-shadow .3s ease; position:relative; }
.familia:hover{ transform:translateY(-4px); box-shadow:0 16px 32px rgba(10,10,12,0.06); z-index:1; }
@media (prefers-reduced-motion: reduce){ .familia:hover{ transform:none; } }
.familia .tag{ font-size:0.78rem; font-weight:600; color:var(--accent-deep); letter-spacing:0.02em; }
.familia h3{ font-size:1.22rem; font-weight:700; line-height:1.25; min-height:2.6em; display:flex; align-items:flex-start; }
.familia p{ margin:0; color:var(--text-lo); font-size:0.95rem; line-height:1.6; }
.familia ul{ margin:0; padding-left:1.05em; color:var(--text-lo); font-size:0.95rem; line-height:1.6; }
.familia li{ margin-bottom:0.4em; }
.familia li::marker{ color:var(--accent-deep); }

/* ---------- paquetes ---------- */
.paquetes{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
@media (max-width:1200px){ .paquetes{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .paquetes{ grid-template-columns:1fr; } }
.plan{
  position:relative; background:var(--paper); padding:36px 28px 30px;
  display:flex; flex-direction:column; gap:0;
  transition:background-color .35s ease;
}
.plan .plan-index{ font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:600; color:var(--text-lo); letter-spacing:0.04em; margin-bottom:22px; opacity:0.7; }
.plan .badge{
  position:absolute; top:34px; right:28px;
  font-size:0.62rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); border:1px solid var(--accent); padding:4px 10px; border-radius:999px;
}
.plan h3{ font-size:1.08rem; font-weight:600; line-height:1.3; letter-spacing:-0.01em; }
.plan .subtitle{ font-size:0.83rem; color:var(--text-lo); font-weight:400; line-height:1.4; margin-top:5px; }
.plan .plan-replaces{ margin-top:14px; font-size:0.76rem; line-height:1.4; color:var(--text-lo); }
.plan .plan-replaces .k{ display:block; font-family:"IBM Plex Mono",monospace; font-size:0.62rem; font-weight:600; letter-spacing:0.07em; text-transform:uppercase; color:var(--accent); margin-bottom:3px; }
.plan.is-featured .plan-replaces{ color:var(--text-on-ink-lo); }
.plan .price{ margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.plan .price .from{ display:block; font-size:0.65rem; font-weight:600; letter-spacing:0.07em; text-transform:uppercase; color:var(--text-lo); margin-bottom:8px; opacity:0.85; }
.plan .price .amount{ font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-size:1.7rem; font-weight:500; line-height:1.15; letter-spacing:-0.01em; }
.plan ul{ list-style:none; margin:22px 0 0; padding:0; font-size:0.85rem; color:var(--text-lo); line-height:1.5; flex:1; }
.plan li{ display:flex; align-items:flex-start; gap:9px; padding:9px 0; border-top:1px solid var(--line); }
.plan li:first-child{ border-top:none; }
.plan li svg{ flex-shrink:0; width:13px; height:13px; margin-top:3px; color:var(--accent); }
.plan .cta{ margin-top:26px; align-self:stretch; justify-content:center; font-size:0.82rem; padding:0.75em 1.2em; }

.plan.is-featured{ background:var(--ink); }
.plan.is-featured .plan-index{ color:var(--text-on-ink-lo); }
.plan.is-featured .badge{ color:var(--accent); border-color:var(--accent); }
.plan.is-featured h3{ color:var(--text-on-ink-hi); }
.plan.is-featured .subtitle{ color:var(--text-on-ink-lo); }
.plan.is-featured .price{ border-top-color:var(--line-on-ink); }
.plan.is-featured .price .from{ color:var(--text-on-ink-lo); }
.plan.is-featured .price .amount{ color:var(--text-on-ink-hi); }
.plan.is-featured ul{ color:var(--text-on-ink-lo); }
.plan.is-featured li{ border-top-color:var(--line-on-ink); }
.plan.is-featured li:first-child{ border-top:none; }

/* ---------- soluciones (paquetes) ---------- */
.solutions{ display:flex; flex-direction:column; }
.solution-row{
  padding:clamp(44px,7vw,72px) 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:1fr; gap:24px;
  scroll-margin-top:96px;
}
.solution-row:first-child{ padding-top:0; }
.solution-row:last-child{ border-bottom:none; padding-bottom:0; }
@media (min-width:860px){
  .solution-row{ grid-template-columns:150px 1fr; gap:48px; align-items:start; }
}
.solution-num{
  font-family:"IBM Plex Mono",monospace; font-weight:600;
  font-size:clamp(2.8rem,5.5vw,4.2rem); line-height:1; letter-spacing:-0.02em;
  color:var(--accent);
}
.solution-head h3{ font-size:clamp(1.5rem,2.8vw,2rem); letter-spacing:-0.015em; }
.solution-tagline{ color:var(--accent-deep); font-weight:600; margin-top:10px; font-size:1.02rem; }
.solution-lede{ color:var(--text-lo); margin-top:16px; max-width:62ch; line-height:1.65; font-size:0.98rem; }
.solution-items{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:clamp(28px,4vw,36px); }
@media (min-width:640px){ .solution-items{ grid-template-columns:1fr 1fr; gap:22px 32px; } }
.solution-item{ padding-left:16px; border-left:2px solid var(--line-strong); }
.solution-item strong{ display:block; font-size:0.92rem; font-weight:700; margin-bottom:5px; letter-spacing:-0.005em; }
.solution-item span{ font-size:0.85rem; color:var(--text-lo); line-height:1.55; }
.solution-result{
  display:flex; gap:8px; margin-top:clamp(28px,4vw,36px); padding-top:20px;
  border-top:1px solid var(--line); font-size:0.92rem; color:var(--text-hi); line-height:1.6;
}
.solution-result .k{ flex-shrink:0; font-family:"IBM Plex Mono",monospace; font-size:0.68rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent-deep); padding-top:3px; }
.solution-cta{ margin-top:26px; }

.solution-row.is-featured{
  background:var(--ink); border-radius:var(--radius-lg); border-bottom:none;
  padding:clamp(36px,6vw,56px); margin-top:8px;
}
.solution-row.is-featured .solution-tagline{ color:var(--accent); }
.solution-row.is-featured .solution-result .k{ color:var(--accent); }
.solution-row.is-featured .solution-num{ -webkit-text-stroke-color:var(--line-on-ink); text-stroke-color:var(--line-on-ink); }
.solution-row.is-featured .solution-head h3{ color:var(--text-on-ink-hi); }
.solution-row.is-featured .solution-lede{ color:var(--text-on-ink-lo); }
.solution-row.is-featured .solution-item{ border-left-color:var(--line-on-ink); }
.solution-row.is-featured .solution-item strong{ color:var(--text-on-ink-hi); }
.solution-row.is-featured .solution-item span{ color:var(--text-on-ink-lo); }
.solution-row.is-featured .solution-result{ border-top-color:var(--line-on-ink); color:var(--text-on-ink-hi); }

/* ---------- cliente fundador — visual orbital (origen / pertenencia) ---------- */
.cf-orbit-path{ fill:none; stroke-dasharray:1; stroke-dashoffset:0; }
.cf-dot{ transform-box:fill-box; transform-origin:center; }
.cf-core{ transform-box:fill-box; transform-origin:center; }
@media (prefers-reduced-motion: no-preference){
  .cf-orbit-path{ animation:cf-orbit-draw 16s cubic-bezier(.45,.05,.35,1) infinite; }
  @keyframes cf-orbit-draw{
    0%{ stroke-dashoffset:1; opacity:.4; }
    40%{ stroke-dashoffset:0; opacity:1; }
    58%{ stroke-dashoffset:0; opacity:1; }
    100%{ stroke-dashoffset:1; opacity:.4; }
  }
  .cf-dot{ animation:cf-dot-appear 16s cubic-bezier(.45,.05,.35,1) infinite; }
  @keyframes cf-dot-appear{
    0%{ opacity:.12; transform:scale(.5); }
    40%{ opacity:1; transform:scale(1); }
    58%{ opacity:1; transform:scale(1); }
    100%{ opacity:.12; transform:scale(.5); }
  }
  .cf-core{ animation:cf-core-pulse 10s ease-in-out infinite; }
  @keyframes cf-core-pulse{
    0%,100%{ opacity:.9; transform:scale(1); }
    50%{ opacity:1; transform:scale(1.12); }
  }
}

/* ---------- cliente fundador (editorial, exclusivo — sin tarjetas ni pricing) ---------- */
.founder-sequence{ max-width:640px; }

.founder-eyebrow{
  font-size:0.78rem; font-weight:600; letter-spacing:0.09em; text-transform:uppercase;
  color:#66666B;
  margin-bottom:clamp(28px,4vw,40px);
}
.founder-num{ font-family:"IBM Plex Mono",monospace; color:#8A8A8F; }
.founder-eyebrow-dash{ margin:0 10px; color:#D5D5D8; }

.founder-stat{
  font-weight:700; font-size:clamp(4.2rem,9vw,7.2rem); line-height:0.95;
  letter-spacing:-0.03em; color:var(--accent);
}
.founder-stat-unit{ font-size:0.42em; font-weight:500; margin-left:4px; color:var(--text-lo); }

.founder-statlabel{
  font-size:0.85rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--text-lo);
  margin-top:14px; margin-bottom:clamp(24px,3vw,30px);
}

.founder-text{ color:var(--text-lo); font-size:1rem; line-height:1.75; max-width:46ch; margin:0 0 24px; }

.founder-meta{
  font-family:"IBM Plex Mono",monospace; font-size:0.78rem; color:var(--text-lo);
  font-weight:600; letter-spacing:0.03em;
}

.founder-divider{
  width:56px; height:1px; background:var(--line-strong); border:none;
  margin:clamp(80px,10vw,128px) 0;
}

.founder-close{
  text-align:center; max-width:600px; margin:clamp(96px,11vw,132px) auto 0;
  display:flex; flex-direction:column; align-items:center; gap:28px;
}
.founder-close p{ font-size:clamp(1.08rem,1.9vw,1.3rem); color:var(--text-hi); line-height:1.6; font-weight:500; margin:0; }

/* ---------- proceso ---------- */
.proceso{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:28px; }
.paso .num{ font-family:"IBM Plex Mono",monospace; font-size:0.85rem; font-weight:600; color:var(--accent); display:block; margin-bottom:14px; }
.paso h3{ font-size:1.05rem; font-weight:700; margin-bottom:8px; }
.paso p{ font-size:0.92rem; color:var(--text-lo); margin:0; line-height:1.6; }

/* ---------- nosotros ---------- */
.nosotros{ display:grid; grid-template-columns:1fr; gap:44px; }
@media (min-width:860px){ .nosotros{ grid-template-columns:1fr 1fr; } }
.nosotros .copy p{ margin:0 0 1.1em; color:var(--text-hi); }
.nosotros .copy p:last-child{ margin-bottom:0; }
.valores{ display:flex; flex-direction:column; }
.valor{ display:grid; grid-template-columns:auto 1fr; gap:28px; padding:26px 0; border-bottom:1px solid var(--line); align-items:center; }
.valor:first-child{ border-top:1px solid var(--line); }
.valor .mono{
  font-family:"IBM Plex Mono",monospace;
  font-size:clamp(2.8rem,5.5vw,4.2rem); font-weight:600; line-height:1; letter-spacing:-0.02em;
  color:transparent; -webkit-text-stroke:1.4px var(--line-strong); text-stroke:1.4px var(--line-strong);
  min-width:1.5em;
}
.valor strong{ font-weight:700; display:block; margin-bottom:3px; font-size:1rem; }
.valor span.desc{ color:var(--text-lo); font-size:0.92rem; }

/* ---------- cómo trabajamos ---------- */
.como-trabajamos-header{ margin-bottom:clamp(36px,6vw,56px); text-align:left; }
.como-trabajamos-header h2{ font-size:1.05rem; margin-bottom:12px; color:var(--text-lo); font-weight:600; }
.como-trabajamos-header .subtitle{ font-size:clamp(1.8rem,3.4vw,2.3rem); color:var(--text-hi); margin:0; font-weight:700; }
.como-trabajamos-grid{ display:grid; grid-template-columns:1fr; gap:56px; }
@media (min-width:760px){
  .como-trabajamos-grid{ grid-template-columns:repeat(3,1fr); column-gap:clamp(40px,5vw,64px); row-gap:clamp(64px,7vw,96px); }
}
.paso-block{ padding-top:clamp(24px,3vw,32px); border-top:1px solid var(--line); background:none; border-radius:0; }
.paso-num{
  font-family:"IBM Plex Mono",monospace;
  font-size:clamp(2.8rem,5.5vw,4.2rem); font-weight:600; line-height:1; letter-spacing:-0.02em;
  color:var(--accent);
  margin-bottom:clamp(16px,2.4vw,24px);
}
.paso-block h3{ font-size:1.1rem; font-weight:700; margin-bottom:10px; margin-top:0; color:var(--text-hi); }
.paso-block p{ font-size:0.92rem; color:var(--text-lo); margin:0; line-height:1.65; max-width:36ch; }

/* ---------- cierre de marca ---------- */
.brand-close{ text-align:center; padding-top:clamp(64px,9vw,104px); padding-bottom:clamp(64px,9vw,104px); border-top:1px solid var(--line); }
.brand-close .mark{ font-size:clamp(2.4rem,6.5vw,4.8rem); font-weight:700; letter-spacing:-0.02em; }
.brand-close .q{ color:var(--accent); }
.brand-close .tag{ margin-top:12px; font-size:1.05rem; font-weight:600; color:var(--text-lo); }

/* ---------- contacto (page hero variant) ---------- */
.contact-hero{ background:var(--ink); color:var(--text-on-ink-hi); padding-top:clamp(100px,14vw,140px); padding-bottom:clamp(64px,9vw,96px); position:relative; overflow:hidden; }
.contact-hero-inner{ position:relative; max-width:640px; }
.contact-hero .eyebrow{ color:var(--accent); margin-bottom:18px; }
.contact-hero h1{ font-size:clamp(2.1rem,4.4vw,3.2rem); }
.contact-hero p.lede{ color:var(--text-on-ink-lo); max-width:52ch; margin-top:18px; font-size:1.06rem; line-height:1.6; }
.contact-hero .cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.contact-hero-grid{ position:relative; display:grid; grid-template-columns:1fr; gap:36px; align-items:center; }
@media (min-width:920px){ .contact-hero-grid{ grid-template-columns:1.05fr 0.95fr; gap:24px; } }
.contact-hero-grid .contact-hero-inner{ max-width:none; }
.contact-hero-visual{
  position:relative; display:flex; align-items:center; justify-content:center;
  height:clamp(200px,54vw,300px); margin-top:4px;
}
.contact-hero-visual svg{ width:auto; height:100%; max-width:100%; overflow:visible; }
@media (min-width:920px){
  .contact-hero-visual{ display:block; height:auto; margin-top:0; }
  .contact-hero-visual svg{ width:100%; height:auto; }
}

/* ---------- contacto — visual conexión / respuesta ---------- */
.conn-origin, .conn-dest, .conn-tick{ transform-box:fill-box; transform-origin:center; }
.conn-trace{ fill:none; stroke-dasharray:1; stroke-dashoffset:0; }
.conn-glow{ opacity:1; }
@media (prefers-reduced-motion: no-preference){
  .conn-origin{ animation:conn-in 1.1s cubic-bezier(.19,1,.22,1) both; }
  .conn-glow{ animation:conn-glow-in 2s ease-out .3s both; }
  .conn-trace{ animation:conn-draw 1.9s cubic-bezier(.45,.05,.35,1) .5s both; }
  .conn-tick{ animation:conn-in 1s cubic-bezier(.19,1,.22,1) both; }
  .conn-dest{ animation:conn-in 1s cubic-bezier(.19,1,.22,1) 2.1s both; }
  @keyframes conn-in{
    0%{ opacity:0; transform:scale(.5); }
    100%{ opacity:1; transform:scale(1); }
  }
  @keyframes conn-glow-in{
    0%{ opacity:0; }
    100%{ opacity:1; }
  }
  @keyframes conn-draw{
    0%{ stroke-dashoffset:1; opacity:.3; }
    100%{ stroke-dashoffset:0; opacity:1; }
  }
  .conn-piece{
    transform-box:fill-box; transform-origin:center;
    animation:conn-breathe 13s ease-in-out 3.2s infinite;
  }
  @keyframes conn-breathe{
    0%,100%{ transform:translate(0,0); }
    50%{ transform:translate(0,-2px); }
  }
}

/* ---------- footer ---------- */
footer{ background:var(--ink); color:var(--text-on-ink-hi); padding-top:clamp(56px,8vw,80px); padding-bottom:40px; }
.contact-grid{ display:grid; grid-template-columns:1fr; gap:44px; padding-bottom:52px; border-bottom:1px solid var(--line-on-ink); }
@media (min-width:760px){ .contact-grid{ grid-template-columns:1.2fr 1fr; } }
footer h2{ color:var(--text-on-ink-hi); font-size:clamp(2rem,4vw,2.8rem); max-width:14ch; }
footer .eyebrow{ color:var(--accent); margin-bottom:18px; }
footer .lede{ color:var(--text-on-ink-lo); max-width:44ch; margin-top:18px; font-size:1.06rem; }
.contact-list{ display:flex; flex-direction:column; }
.contact-list .item{ border-top:1px solid var(--line-on-ink); padding:18px 0; }
.contact-list .k{ font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:600; color:var(--text-on-ink-lo); display:block; margin-bottom:6px; }
.contact-list .v{ font-weight:600; font-size:1.08rem; }
.contact-list a.v{ text-decoration:none; }
.contact-list a.v:hover{ color:var(--accent); }
.bottom-bar{ display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; padding-top:28px; font-size:0.82rem; color:var(--text-on-ink-lo); }
.bottom-bar .wordmark{ display:inline-flex; align-items:center; text-decoration:none; }
.bottom-bar .logo-img{ height:26px; }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* staggered cascade for grid children — driven by the parent's .reveal state */
.familias > *, .paquetes > *, .proceso > *, .valores > *, .solutions > *{
  opacity:0; transform:translateY(14px);
  transition:opacity .55s ease, transform .55s ease;
  transition-delay:calc(var(--i, 0) * 80ms);
}
.familias.is-visible > *, .paquetes.is-visible > *, .proceso.is-visible > *, .valores.is-visible > *, .solutions.is-visible > *{
  opacity:1; transform:none;
}
.familias > *:nth-child(1), .paquetes > *:nth-child(1), .proceso > *:nth-child(1), .valores > *:nth-child(1), .solutions > *:nth-child(1){ --i:0; }
.familias > *:nth-child(2), .paquetes > *:nth-child(2), .proceso > *:nth-child(2), .valores > *:nth-child(2), .solutions > *:nth-child(2){ --i:1; }
.familias > *:nth-child(3), .paquetes > *:nth-child(3), .proceso > *:nth-child(3), .valores > *:nth-child(3), .solutions > *:nth-child(3){ --i:2; }
.familias > *:nth-child(4), .paquetes > *:nth-child(4), .proceso > *:nth-child(4), .valores > *:nth-child(4), .solutions > *:nth-child(4){ --i:3; }
.valores > *:nth-child(5){ --i:4; }
@media (prefers-reduced-motion: reduce){
  .familias > *, .paquetes > *, .proceso > *, .valores > *, .solutions > *{ opacity:1; transform:none; transition:none; }
}

/* ---------- floating whatsapp ---------- */
.float-whatsapp{
  position:fixed; right:22px; bottom:22px; z-index:41;
  width:56px; height:56px; border-radius:50%;
  background:var(--accent); color:var(--accent-ink);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px rgba(10,10,12,0.22);
  text-decoration:none; transition:transform .2s ease, background-color .45s ease;
}
.float-whatsapp:hover{ transform:scale(1.07); }
.float-whatsapp:active{ transform:scale(0.96); }
.float-whatsapp svg{ width:26px; height:26px; }

/* re-assert hover lift over the staggered-reveal transform reset (source order) */
.familia:hover{ transform:translateY(-4px); }
.plan:hover{ transform:translateY(-6px); }
@media (prefers-reduced-motion: reduce){ .familia:hover, .plan:hover{ transform:none; } }

::selection{ background:var(--accent); color:var(--accent-ink); }

/* ==========================================================================\n   QuLabs — premium refinement 2026\n   ========================================================================== */

:root{
  --content-w:1240px;
  --radius-xl:36px;
  --shadow-soft:0 28px 80px rgba(10,10,12,.09);
  --shadow-ink:0 34px 90px rgba(0,0,0,.28);
}

.skip-link{
  position:fixed; left:20px; top:-80px; z-index:100;
  background:var(--accent); color:var(--accent-ink); padding:10px 16px;
  border-radius:999px; font-weight:700; text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{ top:16px; }

body{ letter-spacing:-.006em; }
.wrap{ padding-left:clamp(24px,5vw,72px); padding-right:clamp(24px,5vw,72px); }

header.nav{ background:rgba(10,10,12,.82); }
.nav-inner{ padding-top:20px; padding-bottom:20px; }
.logo-img{ height:34px; }
.nav-links{ gap:34px; }
.nav-links a:not(.btn){ position:relative; }
.nav-links a:not(.btn)::after{
  content:""; position:absolute; left:0; right:100%; bottom:-9px; height:1px;
  background:var(--accent); transition:right .25s ease;
}
.nav-links a:not(.btn):hover::after,.nav-links a.is-active::after{ right:0; }

.hero{
  min-height:calc(100svh - 74px); display:flex; align-items:center;
  padding-top:clamp(88px,10vw,132px); padding-bottom:clamp(88px,10vw,132px);
  background:
    radial-gradient(circle at 78% 34%, rgba(0,240,214,.10), transparent 28%),
    radial-gradient(circle at 70% 70%, rgba(0,240,214,.035), transparent 34%),
    var(--ink);
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.18;
  background-image:linear-gradient(rgba(250,250,249,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(250,250,249,.045) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to right,transparent 0%,transparent 48%,#000 72%,transparent 100%);
}
.hero-inner{ width:100%; }
.hero-grid{ z-index:1; }
.hero h1{ font-size:clamp(3rem,5.4vw,5rem); max-width:12.5ch; letter-spacing:-.045em; }
.hero-tagline{ font-size:.95rem; letter-spacing:-.01em; }
.hero p.lede{ max-width:54ch; font-size:clamp(1.04rem,1.35vw,1.18rem); line-height:1.68; }
.hero-visual{ filter:drop-shadow(0 0 52px rgba(0,240,214,.07)); }
.hero .cta-row{ margin-top:42px; }
.btn{ padding:.92em 1.55em; }
.btn-accent{ box-shadow:0 10px 28px rgba(0,240,214,.12); }

.capability-rail{ padding:0; background:var(--ink); color:var(--text-on-ink-hi); border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink); }
.capability-rail-inner{ display:grid; grid-template-columns:1fr; }
.capability-rail-inner > div{ display:grid; grid-template-columns:auto 1fr; gap:4px 16px; padding:24px 0; border-bottom:1px solid var(--line-on-ink); }
.capability-rail-inner > div:last-child{ border-bottom:none; }
.capability-rail .mono{ color:var(--accent); font-size:.72rem; grid-row:1 / span 2; padding-top:3px; }
.capability-rail strong{ font-size:.94rem; }
.capability-rail em{ font-style:normal; color:var(--text-on-ink-lo); font-size:.84rem; }
@media(min-width:760px){
  .capability-rail-inner{ grid-template-columns:repeat(3,1fr); }
  .capability-rail-inner > div{ border-bottom:none; border-right:1px solid var(--line-on-ink); padding:26px 28px; }
  .capability-rail-inner > div:first-child{ padding-left:0; }
  .capability-rail-inner > div:last-child{ border-right:none; }
}

section.wrap{ position:relative; }
.process-section{ padding-top:clamp(86px,10vw,132px); }
.process-section .section-head{ max-width:700px; }
.como-trabajamos-grid{ position:relative; }
@media(min-width:1120px){
  .como-trabajamos-grid{ grid-template-columns:repeat(5,1fr); column-gap:28px; row-gap:0; }
  .paso-block{ min-height:238px; padding:28px 18px 0 0; position:relative; }
  .paso-block::after{ content:""; position:absolute; top:-4px; left:0; width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 7px rgba(0,240,214,.08); }
  .paso-num{ font-size:clamp(2.6rem,3.5vw,3.8rem); }
}

.entry-section{ padding-top:clamp(92px,11vw,150px); padding-bottom:clamp(92px,11vw,150px); }
.sol-teaser-grid{ box-shadow:var(--shadow-soft); border-radius:24px; overflow:hidden; }
.sol-teaser-card{ min-height:300px; transition:background .25s ease,color .25s ease,transform .25s ease; }
.sol-teaser-card:hover{ transform:none; background:#fff; }
.sol-teaser-card.is-featured:hover{ background:#111114; }
.sol-teaser-num{ font-size:clamp(2.8rem,4vw,4rem); }

.why-section{ padding-top:clamp(72px,8vw,104px); padding-bottom:clamp(92px,11vw,148px); }
.why-section .section-head{ margin-bottom:34px; }
.compare-cards-single{ max-width:none; }
.compare-card.is-featured{
  transform:none; border-radius:var(--radius-xl); padding:clamp(34px,5vw,64px);
  display:grid; grid-template-columns:1fr; gap:44px; box-shadow:var(--shadow-ink);
  background:linear-gradient(135deg,#0A0A0C 0%,#0C1010 65%,#081A18 100%);
  overflow:hidden;
}
.compare-card.is-featured::before{
  content:""; position:absolute; width:360px; height:360px; border-radius:50%; right:-160px; top:-180px;
  background:radial-gradient(circle,rgba(0,240,214,.14),transparent 68%); pointer-events:none;
}
.compare-single-text{ font-size:clamp(1.35rem,2.3vw,1.95rem); line-height:1.48; letter-spacing:-.025em; max-width:24ch; margin:0; }
.compare-attrs{ border-top:1px solid var(--line-on-ink); }
.compare-row{ padding:18px 0; }
.compare-row strong{ color:var(--text-on-ink-hi); font-weight:650; }
.compare-row em{ color:var(--text-on-ink-lo); font-style:normal; font-size:.88rem; line-height:1.5; }
@media(min-width:900px){
  .compare-card.is-featured{ grid-template-columns:.9fr 1.25fr; gap:clamp(54px,7vw,96px); align-items:start; }
  .compare-attrs{ border-top:none; }
  .compare-row:first-child{ padding-top:0; }
}

.simplicity-section{ padding-top:0; padding-bottom:0; }
.simplicity-section .section-head{
  max-width:none; margin:0; padding:clamp(58px,7vw,84px) 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:1fr; gap:18px;
}
.simplicity-section .section-head h2{ max-width:16ch; }
.simplicity-section .section-head p{ max-width:56ch; margin:0; }
@media(min-width:840px){
  .simplicity-section .section-head{ grid-template-columns:.8fr 1.2fr; column-gap:10vw; }
  .simplicity-section .section-head h2{ grid-row:1 / span 3; font-size:clamp(2.2rem,4vw,3.35rem); }
  .simplicity-section .inline-link{ margin-top:10px; justify-self:start; }
}

.mission-section{ padding-top:clamp(88px,10vw,132px); padding-bottom:clamp(88px,10vw,132px); }
.mission{ max-width:980px; gap:18px; }
.mission h2{ font-size:clamp(2.35rem,4.8vw,4.15rem); line-height:1.08; max-width:19ch; letter-spacing:-.04em; }
.mission p{ font-size:1.04rem; }
.mission p:nth-of-type(2){ color:var(--accent-deep); font-weight:600; }

.founder-teaser-section{ padding-top:0; padding-bottom:clamp(88px,10vw,132px); }
.teaser-box{
  border-radius:var(--radius-xl); padding:clamp(36px,5vw,58px); align-items:flex-end;
  background:linear-gradient(135deg,#F3F2F0,#FAFAF9); box-shadow:0 28px 70px rgba(10,10,12,.06);
}
.teaser-box-body h2{ margin:12px 0 14px; font-size:clamp(1.8rem,3.1vw,2.55rem); max-width:17ch; }
.founder-teaser-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.founder-teaser-meta span{ border:1px solid var(--line-strong); border-radius:999px; padding:8px 13px; font-size:.8rem; color:var(--text-lo); }
.founder-teaser-meta strong{ color:var(--text-hi); font-size:.95rem; }

.contact-teaser-section{ padding-top:0; padding-bottom:0; }
.cta-banner{
  border-radius:var(--radius-xl) var(--radius-xl) 0 0; padding:clamp(46px,7vw,80px);
  min-height:420px; justify-content:center; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#0A0A0C 0%,#0A0A0C 56%,#08201d 100%);
}
.cta-banner::after{
  content:""; position:absolute; width:420px; height:420px; right:-120px; bottom:-220px; border-radius:50%;
  border:1px solid rgba(0,240,214,.18); box-shadow:0 0 0 54px rgba(0,240,214,.025),0 0 0 108px rgba(0,240,214,.018);
}
.cta-banner h2{ font-size:clamp(2.2rem,4vw,3.4rem); max-width:18ch; }
.cta-banner p{ max-width:58ch; }
.cta-banner .btn{ align-self:flex-start; }

.page-hero,.contact-hero{
  background:
    radial-gradient(circle at 78% 38%,rgba(0,240,214,.11),transparent 28%),
    var(--ink);
  min-height:560px; display:flex; align-items:center;
}
.page-hero h1,.contact-hero h1{ letter-spacing:-.04em; font-size:clamp(2.65rem,5vw,4.25rem); }
.page-hero p.lede,.contact-hero p.lede{ font-size:clamp(1.02rem,1.3vw,1.14rem); line-height:1.68; }
.page-hero-visual,.contact-hero-visual{ filter:drop-shadow(0 0 50px rgba(0,240,214,.05)); }

.familias{ border-radius:24px; overflow:hidden; box-shadow:var(--shadow-soft); }
.familia{ background:var(--paper); }
.solution-row{ scroll-margin-top:110px; }
.solution-row.is-featured{ box-shadow:var(--shadow-ink); }
.founder-sequence{ max-width:760px; }
.founder-stat{ letter-spacing:-.06em; }
.founder-close{ border-top:1px solid var(--line); padding-top:64px; }

footer{ padding-top:clamp(68px,9vw,96px); }
.footer-tag{ font-size:clamp(1.7rem,3vw,2.45rem); max-width:22ch; letter-spacing:-.03em; line-height:1.2; }
.contact-list .item{ transition:padding-left .2s ease; }
.contact-list .item:hover{ padding-left:6px; }
.bottom-bar{ margin-top:10px; }

.float-whatsapp{ width:52px; height:52px; right:20px; bottom:20px; box-shadow:0 14px 36px rgba(10,10,12,.24); }

@media(max-width:700px){
  .hero{ min-height:auto; }
  .hero h1{ font-size:clamp(2.6rem,12vw,3.6rem); }
  .hero-visual{ height:220px; }
  .cta-banner{ border-radius:26px 26px 0 0; min-height:360px; }
  .teaser-box{ border-radius:26px; }
  .compare-card.is-featured{ border-radius:26px; }
}
