:root{
  --negro:#000;
  --blanco:#fff;
  --gris-900:#0a0a0a;
  --gris-800:#141414;
  --gris-700:#1d1d1f;
  --gris-600:#2c2c2e;
  --gris-500:#424245;
  --gris-400:#6e6e73;
  --gris-300:#86868b;
  --gris-200:#d2d2d7;
  --gris-100:#f5f5f7;
  --borde:rgba(255,255,255,.12);
  --borde-fuerte:rgba(255,255,255,.28);
  --ancho:1200px;
  --gutter:16px;
  --radio:18px;
  --t:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--negro);color:var(--blanco);
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:17px;line-height:1.5;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.035em;line-height:1.05}
h1{font-size:clamp(2.75rem,9vw,6.5rem)}
h2{font-size:clamp(2rem,5.5vw,3.75rem)}
h3{font-size:clamp(1.35rem,3vw,1.75rem)}
p{margin:0}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--blanco);outline-offset:3px;border-radius:4px}

.env{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 var(--gutter)}
.ojo{color:var(--gris-300)}
.etq{
  font-size:.6875rem;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;color:var(--gris-300);
}

/* ---------- logo ---------- */
.marca{display:flex;align-items:center;gap:.6rem}
.marca svg{display:block;overflow:visible}
.marca-txt{font-size:1.0625rem;font-weight:700;letter-spacing:-.03em}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(0,0,0,.72);backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--borde);
}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:56px}
.nav-links{display:none;gap:2rem;font-size:.875rem;color:var(--gris-200)}
.nav-links a{transition:color .2s var(--t)}
.nav-links a:hover{color:var(--blanco)}
@media(min-width:860px){.nav-links{display:flex}}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:44px;padding:.75rem 1.5rem;border-radius:980px;
  font-size:.9375rem;font-weight:500;letter-spacing:-.01em;
  border:1px solid transparent;cursor:pointer;
  transition:transform .2s var(--t),background .2s var(--t),color .2s var(--t),border-color .2s var(--t);
}
.btn-solido{background:var(--blanco);color:var(--negro)}
.btn-solido:hover{transform:scale(1.03)}
.btn-linea{border-color:var(--borde-fuerte);color:var(--blanco)}
.btn-linea:hover{background:rgba(255,255,255,.08);border-color:var(--blanco)}
.pie-links{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.875rem}
.pie-links a{color:var(--gris-300);text-decoration:none;transition:color .2s}
.pie-links a:hover{color:var(--blanco)}
.btn-chico{min-height:36px;padding:.4rem 1.05rem;font-size:.8125rem}

/* ---------- hero ---------- */
.hero{
  position:relative;padding:clamp(4rem,12vh,8rem) 0 clamp(3.5rem,9vh,6rem);
  text-align:center;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;inset:auto 0 0;height:1px;
  background:linear-gradient(90deg,transparent,var(--borde-fuerte),transparent);
}
.hero-marca{display:flex;justify-content:center;margin-bottom:clamp(2rem,5vh,3.25rem)}
.hero-marca svg{width:clamp(92px,11vw,136px);height:auto}
.hero h1{margin:0 auto;max-width:14em}
.hero h1 .tenue{color:var(--gris-400)}
.hero-sub{
  margin:1.75rem auto 0;max-width:34rem;
  font-size:clamp(1.0625rem,2.3vw,1.3125rem);color:var(--gris-200);letter-spacing:-.015em;
}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2.5rem}

/* ---------- cifras ---------- */
.cifras{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--borde);
}
@media(min-width:760px){.cifras{grid-template-columns:repeat(4,1fr)}}
.cifra{
  padding:2.25rem 1rem;text-align:center;
  border-bottom:1px solid var(--borde);border-right:1px solid var(--borde);
}
.cifra:nth-child(2n){border-right:0}
@media(min-width:760px){
  .cifra{border-bottom:0}
  .cifra:nth-child(2n){border-right:1px solid var(--borde)}
  .cifra:last-child{border-right:0}
}
.cifra b{display:block;font-size:clamp(2rem,4.5vw,2.875rem);font-weight:700;letter-spacing:-.04em;line-height:1}
.cifra span{display:block;margin-top:.55rem;font-size:.8125rem;color:var(--gris-300)}

/* ---------- secciones ---------- */
.sec{padding:clamp(4.5rem,11vh,8rem) 0}
.sec-cab{max-width:46rem;margin-bottom:clamp(2.5rem,6vh,4rem)}
.sec-cab .etq{display:block;margin-bottom:1.25rem}
.sec-cab p{margin-top:1.25rem;font-size:clamp(1rem,2vw,1.1875rem);color:var(--gris-300)}

/* ---------- capacitaciones ---------- */
.modalidades{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:900px){.modalidades{grid-template-columns:repeat(3,1fr);align-items:start}}
.modalidad{
  display:flex;flex-direction:column;height:100%;padding:2rem 1.5rem;
  border:1px solid var(--borde);border-radius:var(--radio);background:var(--gris-900);
  transition:border-color .3s var(--t),transform .3s var(--t);
}
.modalidad:hover{border-color:var(--borde-fuerte);transform:translateY(-3px)}
.modalidad--destacada{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.modalidad--destacada .etq,.modalidad--destacada .mod-sub{color:var(--gris-400)}
.modalidad--destacada .mod-lista li{color:var(--gris-500)}
.modalidad--destacada .mod-lista b{color:var(--negro)}
.modalidad--destacada .btn-solido{background:var(--negro);color:var(--blanco)}
.modalidad--destacada svg{color:var(--negro)}
.mod-tope{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:1.5rem}
.modalidad h3{margin-top:1.25rem;font-size:1.375rem}
.mod-sub{margin-top:.5rem;font-size:.9375rem;color:var(--gris-300)}
.mod-precio{display:flex;align-items:baseline;gap:.4rem;margin:1.5rem 0 .25rem}
.mod-precio b{font-size:clamp(2.25rem,5vw,2.875rem);font-weight:700;letter-spacing:-.045em;line-height:1}
.mod-precio span{font-size:.9375rem;color:var(--gris-300)}
.mod-lista{margin-top:1.5rem;display:flex;flex-direction:column;gap:.625rem;flex:1}
.mod-lista li{display:flex;gap:.625rem;align-items:flex-start;font-size:.9375rem;line-height:1.45;color:var(--gris-200)}
.mod-lista svg{flex:0 0 auto;margin-top:.28em}
.modalidad .btn{width:100%;margin-top:1.5rem}

.temario{
  margin-top:clamp(2.5rem,6vh,3.5rem);padding:clamp(1.75rem,4vw,2.5rem);
  border:1px solid var(--borde);border-radius:var(--radio);background:var(--gris-900);
}
.temario-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-top:1.75rem}
@media(min-width:760px){.temario-grid{grid-template-columns:repeat(5,1fr)}}
.paso{padding-top:1rem;border-top:2px solid var(--borde-fuerte)}
.paso b{display:block;font-family:inherit;font-size:.75rem;letter-spacing:.14em;color:var(--gris-400)}
.paso p{margin-top:.625rem;font-size:.9375rem;line-height:1.4}

/* agendar presencial */
.agenda-caja{
  margin-top:clamp(2rem,5vh,3rem);padding:clamp(1.75rem,4vw,2.5rem);
  border:1px solid var(--borde);border-radius:var(--radio);
  display:grid;gap:2rem;
}
@media(min-width:960px){.agenda-caja{grid-template-columns:1fr 1fr;gap:3rem}}
.ciudades{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.ciudad{
  padding:.6rem 1.1rem;border-radius:999px;border:1px solid var(--borde);
  background:transparent;font-size:.875rem;font-weight:500;min-height:42px;
  transition:background .2s var(--t),border-color .2s var(--t),color .2s var(--t);
}
.ciudad:hover:not([disabled]){border-color:var(--borde-fuerte)}
.ciudad[aria-pressed="true"]{background:var(--blanco);color:var(--negro);border-color:var(--blanco);font-weight:700}
.ciudad[disabled]{opacity:.42;cursor:not-allowed;text-decoration:line-through}
.turnos{display:grid;gap:.5rem;margin-top:1rem;max-height:264px;overflow-y:auto;padding-right:.25rem}
.turno{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.8rem 1rem;border-radius:12px;border:1px solid var(--borde);
  background:transparent;text-align:left;min-height:52px;
  transition:border-color .2s var(--t),background .2s var(--t);
}
.turno:hover:not([disabled]){border-color:var(--borde-fuerte);background:rgba(255,255,255,.04)}
.turno[aria-pressed="true"]{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.turno[disabled]{opacity:.4;cursor:not-allowed}
.turno b{display:block;font-size:.9375rem}
.turno span{display:block;font-size:.75rem;color:var(--gris-400);margin-top:.1rem}
.turno[aria-pressed="true"] span{color:var(--gris-500)}
.turno-libres{font-size:.75rem;color:var(--gris-400);white-space:nowrap}
.campos-insc{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}
.campos-insc input{
  width:100%;padding:.8rem 1rem;border-radius:12px;border:1px solid var(--borde);
  background:var(--gris-800);color:var(--blanco);font:inherit;font-size:.9375rem;min-height:48px;
}
.campos-insc input:focus{border-color:var(--blanco);outline:none}
.insc-aviso{margin-top:.875rem;padding:.8rem 1rem;border-radius:12px;font-size:.875rem;line-height:1.5}
.insc-aviso.ok{background:rgba(48,196,106,.14);color:#4ddc8a}
.insc-aviso.mal{background:rgba(240,74,74,.14);color:#ff8585}
.sold-out{
  display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .75rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.25);font-size:.6875rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;color:var(--gris-300);
}

/* ---------- planes ---------- */
.planes{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:900px){.planes{grid-template-columns:repeat(3,1fr);align-items:start}}
.plan{
  display:flex;flex-direction:column;height:100%;
  padding:2rem 1.5rem;border:1px solid var(--borde);border-radius:var(--radio);
  background:var(--gris-900);
  transition:border-color .3s var(--t),transform .3s var(--t);
}
.plan:hover{border-color:var(--borde-fuerte);transform:translateY(-3px)}
.plan--destacado{
  background:var(--blanco);color:var(--negro);border-color:var(--blanco);
}
.plan--destacado .ojo,.plan--destacado .etq,.plan--destacado .plan-sub{color:var(--gris-400)}
.plan--destacado .plan-lista li{color:var(--gris-500)}
.plan--destacado .plan-lista b{color:var(--negro)}
.plan--destacado .plan-cat{color:var(--gris-400);border-color:rgba(0,0,0,.1)}
.plan--destacado .btn-solido{background:var(--negro);color:var(--blanco)}
.plan--destacado .plan-roi{background:rgba(0,0,0,.05);color:var(--gris-500)}
.plan--destacado svg{color:var(--negro)}

.plan-tope{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:1.5rem}
.plan-pop{
  padding:.25rem .625rem;border-radius:980px;background:var(--negro);color:var(--blanco);
  font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
}
.plan h3{margin-top:1.25rem}
.plan-sub{margin-top:.5rem;font-size:.9375rem;color:var(--gris-300)}
.plan-precio{display:flex;align-items:baseline;gap:.4rem;margin:1.75rem 0 .25rem}
.plan-precio b{font-size:clamp(2.5rem,6vw,3.25rem);font-weight:700;letter-spacing:-.045em;line-height:1}
.plan-precio span{font-size:.9375rem;color:var(--gris-300)}
.plan-roi{
  margin-top:1rem;padding:.625rem .875rem;border-radius:10px;
  background:rgba(255,255,255,.06);font-size:.8125rem;color:var(--gris-200);
}
.plan .btn{width:100%;margin-top:1.5rem}
.plan-lista{margin-top:2rem;display:flex;flex-direction:column;gap:1.5rem;flex:1}
.plan-cat{
  font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  color:var(--gris-400);padding-bottom:.625rem;margin-bottom:.875rem;
  border-bottom:1px solid var(--borde);
}
.plan-lista li{
  display:flex;gap:.625rem;align-items:flex-start;
  font-size:.9375rem;line-height:1.45;color:var(--gris-200);
}
.plan-lista li+li{margin-top:.625rem}
.plan-lista li b{font-weight:700;color:var(--blanco)}
.plan-lista svg{flex:0 0 auto;margin-top:.28em}
.plan-lista .no{color:var(--gris-500)}
.plan-lista .no svg{opacity:.55}
.plan-nota{margin-top:1.5rem;font-size:.75rem;color:var(--gris-400)}

/* ---------- software ---------- */
.modulos{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:720px){.modulos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.modulos{grid-template-columns:repeat(3,1fr)}}
.modulo{
  padding:1.75rem 1.5rem;border:1px solid var(--borde);border-radius:var(--radio);
  background:var(--gris-900);transition:border-color .3s var(--t),transform .3s var(--t);
}
.modulo:hover{border-color:var(--borde-fuerte);transform:translateY(-3px)}
.modulo-id{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.6875rem;letter-spacing:.1em;color:var(--gris-400);
}
.modulo h3{margin-top:1rem;font-size:1.125rem}
.modulo p{margin-top:.625rem;font-size:.9375rem;color:var(--gris-300)}
.modulo-plan{
  margin-top:1.25rem;display:inline-flex;padding:.2rem .6rem;border-radius:999px;
  border:1px solid var(--borde);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gris-300);
}
.franja{
  margin-top:clamp(2.5rem,6vh,3.5rem);padding:clamp(1.75rem,4vw,2.5rem);
  border:1px solid var(--borde);border-radius:var(--radio);
  display:grid;gap:1.5rem;align-items:center;
}
@media(min-width:860px){.franja{grid-template-columns:1fr auto;gap:3rem}}
.franja h3{font-size:clamp(1.25rem,2.6vw,1.625rem)}
.franja p{margin-top:.75rem;font-size:.9375rem;color:var(--gris-300);max-width:40rem}

/* ---------- tarjetas de miembro ---------- */
.escena{
  display:grid;gap:clamp(2.5rem,6vw,3.5rem);grid-template-columns:1fr;
  perspective:1400px;margin-top:clamp(1rem,4vh,2rem);
}
@media(min-width:960px){.escena{grid-template-columns:repeat(3,1fr);gap:2rem}}
.tarjeta-env{display:flex;flex-direction:column;align-items:center;gap:1.5rem}
.tarjeta{
  position:relative;width:min(100%,370px);aspect-ratio:1.586;border-radius:16px;
  transform-style:preserve-3d;transform:rotateX(0deg) rotateY(0deg);
  transition:transform .5s var(--t),box-shadow .5s var(--t);
  will-change:transform;cursor:default;isolation:isolate;overflow:hidden;
  box-shadow:0 24px 48px -16px rgba(0,0,0,.9),0 2px 0 rgba(255,255,255,.06) inset;
}
/* grano metálico cepillado */
.tarjeta::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:repeating-linear-gradient(96deg,
    rgba(255,255,255,.055) 0 1px,
    rgba(0,0,0,.05) 1px 2px,
    rgba(255,255,255,0) 2px 4px);
  mix-blend-mode:overlay;opacity:.9;
}
/* barrido de luz */
.tarjeta::after{
  content:"";position:absolute;inset:-40%;z-index:2;pointer-events:none;
  background:linear-gradient(105deg,
    transparent 38%,
    rgba(255,255,255,.26) 47%,
    rgba(255,255,255,.52) 50%,
    rgba(255,255,255,.26) 53%,
    transparent 62%);
  transform:translateX(-62%);
}
@media(prefers-reduced-motion:no-preference){
  .tarjeta::after{animation:barrido 5.5s var(--t) infinite}
  .tarjeta-env:nth-child(2) .tarjeta::after{animation-delay:.6s}
  .tarjeta-env:nth-child(3) .tarjeta::after{animation-delay:1.2s}
}
@keyframes barrido{
  0%,62%{transform:translateX(-62%)}
  100%{transform:translateX(62%)}
}
/* acabados */
.tarjeta--mate{
  background:
    radial-gradient(120% 140% at 15% 10%,#2a2a2d 0%,#141416 45%,#09090a 100%);
  color:#f2f2f4;border:1px solid rgba(255,255,255,.14);
}
.tarjeta--cepillada{
  background:
    linear-gradient(118deg,#8e8e93 0%,#f3f3f5 18%,#c8c8cd 34%,#fafafb 52%,
                    #b9b9bf 68%,#ededf0 84%,#9a9aa0 100%);
  color:#0a0a0a;border:1px solid rgba(255,255,255,.65);
}
.tarjeta--cromo{
  background:
    linear-gradient(118deg,#3a3a3e 0%,#8f9096 14%,#d9dade 28%,#6e6f75 42%,
                    #e8e9ed 56%,#5a5b61 70%,#b7b8be 85%,#303034 100%);
  color:#0a0a0a;border:1px solid rgba(255,255,255,.5);
}
.tarjeta-cara{
  position:absolute;inset:0;z-index:3;padding:clamp(1.25rem,3.6vw,1.75rem);
  display:flex;flex-direction:column;justify-content:space-between;
}
.tarjeta-fila{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.tarjeta-marca{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:700;letter-spacing:-.02em}
.tarjeta-nivel{
  font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.22em;
  opacity:.72;text-align:right;
}
.chip-emv{
  width:clamp(34px,9%,42px);aspect-ratio:1.32;border-radius:5px;
  background:linear-gradient(135deg,#dedacb,#a9a188 45%,#f2eee2 70%,#9b937c 100%);
  position:relative;overflow:hidden;flex:0 0 auto;
  box-shadow:0 1px 2px rgba(0,0,0,.35);
}
.chip-emv::before,.chip-emv::after{
  content:"";position:absolute;background:rgba(0,0,0,.26);
}
.chip-emv::before{inset:32% 0 auto;height:1px}
.chip-emv::after{inset:0 auto 0 50%;width:1px}
.tarjeta-num{
  margin-top:.22rem;font-size:clamp(.9375rem,2.5vw,1.125rem);font-weight:600;
  letter-spacing:.1em;font-variant-numeric:tabular-nums;
}
.tarjeta-ids{display:flex;gap:clamp(1.25rem,5%,2.25rem);flex-wrap:wrap}
.tarjeta-pie{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.tarjeta-campo{font-size:.5625rem;text-transform:uppercase;letter-spacing:.18em;opacity:.6}
.tarjeta-valor{
  margin-top:.2rem;font-size:clamp(.6875rem,1.9vw,.8125rem);font-weight:500;
  letter-spacing:.05em;white-space:nowrap;
}
/* grabado */
.grabado{
  text-transform:uppercase;
  text-shadow:0 1px 0 rgba(255,255,255,.22),0 -1px 0 rgba(0,0,0,.42);
}
.tarjeta--mate .grabado{text-shadow:0 1px 0 rgba(255,255,255,.14),0 -1px 1px rgba(0,0,0,.6)}

.tarjeta-txt{text-align:center;max-width:22rem}
.tarjeta-txt h3{font-size:1.25rem}
.tarjeta-txt p{margin-top:.625rem;font-size:.9375rem;color:var(--gris-300)}
.tarjeta-txt .etq{display:block;margin-bottom:.75rem}

/* ---------- diferencias ---------- */
.tabla-env{margin-top:1rem;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}
.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:560px;font-size:.9375rem}
th,td{padding:1rem 1.125rem;text-align:left;border-bottom:1px solid var(--borde)}
thead th{
  font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  color:var(--gris-300);background:var(--gris-900);white-space:nowrap;
}
tbody th{font-weight:400;color:var(--gris-200)}
tbody td{color:var(--blanco);font-weight:500;white-space:nowrap}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:rgba(255,255,255,.03)}

/* ---------- circulo ---------- */
.circulo{
  border:1px solid var(--borde);border-radius:var(--radio);
  padding:clamp(2rem,5vw,3.5rem);background:var(--gris-900);
}
.circulo-grid{display:grid;gap:2.5rem}
@media(min-width:900px){.circulo-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.circulo h2{font-size:clamp(1.75rem,4vw,2.75rem)}
.circulo-lista li{
  display:flex;gap:.75rem;padding:.875rem 0;
  border-bottom:1px solid var(--borde);font-size:.9375rem;color:var(--gris-200);
}
.circulo-lista li:last-child{border-bottom:0}
.circulo-lista svg{flex:0 0 auto;margin-top:.22em}

/* ---------- garantia ---------- */
.garantias{display:grid;gap:1.25rem}
@media(min-width:800px){.garantias{grid-template-columns:repeat(3,1fr)}}
.garantia{padding:2rem 1.5rem;border:1px solid var(--borde);border-radius:var(--radio)}
.garantia-num{
  font-size:.6875rem;font-weight:700;letter-spacing:.14em;color:var(--gris-400);
}
.garantia h3{margin-top:1.25rem;font-size:1.1875rem}
.garantia p{margin-top:.75rem;font-size:.9375rem;color:var(--gris-300)}

/* ---------- faq ---------- */
.faq{max-width:48rem}
.faq details{border-bottom:1px solid var(--borde)}
.faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.5rem 0;cursor:pointer;list-style:none;
  font-size:clamp(1rem,2vw,1.125rem);font-weight:500;letter-spacing:-.02em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:0 0 auto;width:12px;height:12px;
  border-right:1.5px solid var(--gris-300);border-bottom:1.5px solid var(--gris-300);
  transform:rotate(45deg);transition:transform .25s var(--t);
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq-cuerpo{padding:0 0 1.75rem;max-width:38rem;font-size:.9375rem;line-height:1.6;color:var(--gris-300)}

/* ---------- cierre ---------- */
.cierre{text-align:center;padding:clamp(5rem,13vh,9rem) 0;border-top:1px solid var(--borde)}
.cierre h2{max-width:20em;margin:0 auto}
.cierre p{margin:1.5rem auto 0;max-width:30rem;color:var(--gris-300)}

/* ---------- pie ---------- */
.pie{border-top:1px solid var(--borde);padding:3rem 0}
.pie-in{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}
@media(min-width:760px){.pie-in{flex-direction:row;justify-content:space-between;align-items:center}}
.pie small{font-size:.8125rem;color:var(--gris-400)}

.rev{opacity:1}
@media(prefers-reduced-motion:no-preference){
  .js .rev{opacity:0}
}

/* ============================================================
   Lo de abajo es para el nuevo reparto del sitio: la portada
   como indice de lineas de trabajo, y las paginas de cada una.
   ============================================================ */

/* ---------- lineas de trabajo (portada) ---------- */
.lineas{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:clamp(2rem,5vh,3rem)}
@media(min-width:720px){.lineas{grid-template-columns:repeat(2,1fr)}}
.linea{
  display:flex;flex-direction:column;min-height:100%;
  padding:clamp(1.75rem,4vw,2.5rem);
  border:1px solid var(--borde);border-radius:var(--radio);background:var(--gris-900);
  transition:border-color .3s var(--t),transform .3s var(--t),background .3s var(--t);
}
.linea:hover{border-color:var(--borde-fuerte);transform:translateY(-3px);background:var(--gris-800)}
.linea--punta{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.linea--punta:hover{background:var(--gris-100);border-color:var(--blanco)}
.linea--punta .etq,.linea--punta p{color:var(--gris-500)}
.linea--punta .linea-mas{color:var(--negro)}
.linea-tope{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.linea h3{margin-top:1.125rem;font-size:clamp(1.375rem,2.8vw,1.75rem)}
.linea p{margin-top:.75rem;font-size:.9375rem;line-height:1.5;color:var(--gris-300);flex:1}
.linea-mas{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:1.5rem;
  font-size:.9375rem;font-weight:500;color:var(--blanco);
}
.linea-mas svg{transition:transform .25s var(--t)}
.linea:hover .linea-mas svg{transform:translateX(4px)}

/* ---------- prueba: lo ya construido ---------- */
.obras{display:grid;gap:1rem;grid-template-columns:1fr;margin-top:clamp(2rem,5vh,3rem)}
@media(min-width:680px){.obras{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.obras{grid-template-columns:repeat(4,1fr)}}
.obra{
  padding:1.5rem 1.375rem;border:1px solid var(--borde);border-radius:var(--radio);
  transition:border-color .3s var(--t);
}
.obra:hover{border-color:var(--borde-fuerte)}
.obra .etq{display:block;margin-bottom:.875rem}
.obra h3{font-size:1.0625rem}
.obra p{margin-top:.5rem;font-size:.875rem;line-height:1.45;color:var(--gris-300)}

/* ---------- capacidades (/software) ---------- */
.capas{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:clamp(2rem,5vh,3rem)}
@media(min-width:900px){.capas{grid-template-columns:repeat(3,1fr);align-items:start}}
.capa{
  display:flex;flex-direction:column;height:100%;padding:2rem 1.5rem;
  border:1px solid var(--borde);border-radius:var(--radio);background:var(--gris-900);
  transition:border-color .3s var(--t),transform .3s var(--t);
}
.capa:hover{border-color:var(--borde-fuerte);transform:translateY(-3px)}
.capa-num{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.6875rem;letter-spacing:.1em;color:var(--gris-400);
}
.capa h3{margin-top:1rem;font-size:1.25rem}
.capa>p{margin-top:.75rem;font-size:.9375rem;line-height:1.5;color:var(--gris-300)}
.capa-lista{margin-top:1.5rem;display:flex;flex-direction:column;gap:.625rem;flex:1}
.capa-lista li{
  display:flex;gap:.625rem;align-items:flex-start;
  font-size:.875rem;line-height:1.45;color:var(--gris-200);
}
.capa-lista svg{flex:0 0 auto;margin-top:.28em}

/* ---------- casos (/software) ---------- */
.casos{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:clamp(2rem,5vh,3rem)}
@media(min-width:860px){.casos{grid-template-columns:repeat(2,1fr)}}
.caso{
  padding:clamp(1.75rem,4vw,2.25rem);
  border:1px solid var(--borde);border-radius:var(--radio);background:var(--gris-900);
  transition:border-color .3s var(--t);
}
.caso:hover{border-color:var(--borde-fuerte)}
.caso-tope{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.caso h3{margin-top:1.125rem;font-size:1.3125rem}
.caso>p{margin-top:.75rem;font-size:.9375rem;line-height:1.55;color:var(--gris-300)}
.caso-datos{
  display:flex;flex-wrap:wrap;gap:1.75rem;margin-top:1.5rem;
  padding-top:1.5rem;border-top:1px solid var(--borde);
}
.caso-dato b{display:block;font-size:1.5rem;font-weight:700;letter-spacing:-.04em;line-height:1}
.caso-dato span{display:block;margin-top:.35rem;font-size:.75rem;color:var(--gris-400)}
.sello{
  display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:999px;
  border:1px solid var(--borde);font-size:.6875rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--gris-300);white-space:nowrap;
}
.sello--vivo{border-color:rgba(77,220,138,.4);color:#4ddc8a}

/* ---------- fases (/software) ---------- */
.fases{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:clamp(2rem,5vh,3rem)}
@media(min-width:760px){.fases{grid-template-columns:repeat(4,1fr)}}
.fase{padding-top:1.125rem;border-top:2px solid var(--borde-fuerte)}
.fase b{display:block;font-size:.75rem;letter-spacing:.14em;color:var(--gris-400)}
.fase h3{margin-top:.75rem;font-size:1.0625rem}
.fase p{margin-top:.5rem;font-size:.875rem;line-height:1.45;color:var(--gris-300)}

/* ---------- migas ---------- */
.migas{padding:1.25rem 0 0;font-size:.8125rem;color:var(--gris-400)}
.migas a{color:var(--gris-300);transition:color .2s var(--t)}
.migas a:hover{color:var(--blanco)}
.migas span{margin:0 .5rem;opacity:.5}

/* El hero de las paginas internas va alineado a la izquierda. */
.hero--pag{text-align:left;padding-top:clamp(2.5rem,7vh,4.5rem)}
.hero--pag h1{margin-left:0;font-size:clamp(2.25rem,7vw,4.75rem);max-width:16em}
.hero--pag .hero-sub{margin-left:0;max-width:38rem}
.hero--pag .hero-ctas{justify-content:flex-start}
