/* Replica-only additions: utilities the source build referenced or that the
   hand-written signup modal needs, and which the vendored Tailwind output
   does not contain. */
.border-0 { border-width: 0 }
.hover\:shadow-cardh:hover { box-shadow: 0 34px 64px -32px #a020208c }

/* El CSS compilado de origen solo trae row-start hasta 6 y row-span 7, porque
   ese hero tenía una fila menos. Al meter los chips hay que agregar la 7 y el
   span 8, si no la fila sobrante cae por auto-placement hasta arriba. */
@media (min-width:1024px){
  .lg\:row-start-7{grid-row-start:7}
  .lg\:row-span-8{grid-row:span 8/span 8}
}

/* Clases que la landing nueva usa y que el CSS compilado de origen no traía,
   porque su página no las ocupaba. Sin esto fallan en silencio: el HTML se ve
   bien pero el navegador ignora la clase. */
.break-inside-avoid{break-inside:avoid}
.aspect-\[3\/4\]{aspect-ratio:3/4}
@media (min-width:640px){ .sm\:columns-2{columns:2} }
@media (min-width:768px){ .md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))} }
@media (min-width:1024px){ .lg\:columns-3{columns:3} }

/* ══════════ iPhone ══════════
   El wordmark del header lleva tracking .22em y a 19px mide 534px: en un iPhone
   de 390 empujaba la página a 574 y aparecía scroll horizontal en la landing.
   Se achica y se le deja partir en dos líneas. */
@media (max-width:640px){
  header#site-header span,
  footer#site-footer span[class*="tracking-[0.22em]"]{
    font-size:14px!important;
    letter-spacing:.14em!important;
    line-height:1.25;
    white-space:normal;
    max-width:min(92vw,340px);
  }
  /* nada se sale de la pantalla, pase lo que pase */
  html,body{overflow-x:hidden;max-width:100vw}

  /* objetivos de toque de 44px, que es lo que pide Apple */
  #site-footer nav a{padding:10px 6px;display:inline-block;min-height:44px;line-height:24px}
  .aicom-phone .PhoneInputInput{min-height:44px}
  .aicom-phone select{min-height:44px}
  label.flex input[type=checkbox]{min-width:22px;min-height:22px}

  /* el booker de iClosed no debe desbordar */
  #book-your-call, #book-your-call iframe{max-width:100%!important;width:100%!important}
}

/* En iOS, un input de menos de 16px hace que Safari haga zoom solo al tocarlo
   y ya no regresa. Todos los campos van en 16px. */
input, select, textarea{font-size:16px}

/* El layout de origen deja el footer fijo abajo y la hoja flotando encima. En
   desktop cabe; en un iPhone el pie mide 743px contra 664 de pantalla, así que
   se desbordaba por arriba y tapaba el header. En móvil el pie va estático. */
@media (max-width:900px){
  footer#site-footer{position:static!important;padding-top:56px}
  main#site-main{margin-bottom:0!important}
}

/* ══════════ Banda de casos, al estilo del precall ══════════
   Negro con dorado, igual que dominarelsistema.com/precall. Va como banda
   oscura dentro de la página clara: la prueba resalta más por el contraste. */
.casos-banda{background:#0a0a0a;color:#fff;padding:clamp(44px,7vw,78px) 0;border-radius:28px;
  margin:clamp(34px,5vw,58px) 0;box-shadow:0 40px 90px -50px rgba(0,0,0,.8)}
.casos-banda .cb-wrap{max-width:1080px;margin:0 auto;padding-inline:20px}
.cb-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(217,164,65,.5);
  background:rgba(217,164,65,.08);color:#D9A441;border-radius:999px;padding:7px 16px;
  font-family:var(--font-head,"Manrope",sans-serif);font-size:11.5px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase}
.cb-h2{font-family:"Manrope",sans-serif;font-size:clamp(27px,3.8vw,42px);font-weight:800;
  line-height:1.08;letter-spacing:-.022em;color:#fff;margin:16px 0 10px}
.cb-h2 em{font-style:normal;color:#D9A441}
.cb-sub{color:rgba(255,255,255,.62);font-size:clamp(14.5px,1.7vw,17px);max-width:52ch;margin-inline:auto}
.cb-grupo{margin-top:10px;display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(217,164,65,.45);
  background:rgba(217,164,65,.1);color:#D9A441;border-radius:999px;padding:6px 14px;
  font-family:"Manrope",sans-serif;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.cb-nota{color:rgba(255,255,255,.5);font-size:14px;margin-top:8px}

/* carrusel de los conocidos */
.cb-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 0 14px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cb-rail::-webkit-scrollbar{display:none}
.cb-card{position:relative;flex:0 0 clamp(230px,72vw,260px);scroll-snap-align:start;
  border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.1);
  background:#141414;cursor:pointer;transition:transform .2s,border-color .2s}
.cb-card:hover{transform:translateY(-3px);border-color:rgba(217,164,65,.5)}
.cb-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.cb-card__badge{position:absolute;top:10px;right:10px;z-index:3;background:#D9A441;color:#0a0a0a;
  border-radius:999px;padding:5px 11px;font-family:"Manrope",sans-serif;font-size:12px;font-weight:800}
.cb-card__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  width:52px;height:52px;border-radius:50%;background:rgba(217,164,65,.92);
  display:flex;align-items:center;justify-content:center;transition:transform .2s}
.cb-card:hover .cb-card__play{transform:translate(-50%,-50%) scale(1.1)}
.cb-card__play span{margin-left:4px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:15px solid #0a0a0a}
.cb-card__grad{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:1;
  background:linear-gradient(to top,rgba(0,0,0,.95),rgba(0,0,0,.45) 45%,transparent)}
.cb-card__meta{position:absolute;left:13px;right:13px;bottom:13px;z-index:2}
.cb-card__n{display:block;font-family:"Manrope",sans-serif;font-size:15px;font-weight:800;color:#fff;line-height:1.2}
.cb-card__h{display:block;font-size:12.5px;color:rgba(255,255,255,.62);margin-top:2px}
.cb-dots{display:flex;gap:6px;justify-content:center;margin-top:14px}
.cb-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.22);transition:all .2s}
.cb-dot.on{background:#D9A441;width:20px;border-radius:999px}

/* los que apenas empezaron: tarjeta con video horizontal */
.cb-lista{display:grid;gap:14px}
@media(min-width:760px){.cb-lista{grid-template-columns:1fr 1fr}}
.cb-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1);
  background:#141414;cursor:pointer;transition:transform .2s,border-color .2s}
.cb-item:hover{transform:translateY(-2px);border-color:rgba(217,164,65,.5)}
.cb-item__thumb{position:relative;aspect-ratio:16/9;background:#0f0f0f;overflow:hidden}
.cb-item__thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.cb-item__dur{position:absolute;top:10px;right:10px;z-index:3;background:rgba(0,0,0,.72);color:#fff;
  border-radius:8px;padding:3px 9px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.cb-item__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  width:48px;height:48px;border-radius:50%;background:rgba(217,164,65,.92);display:flex;align-items:center;justify-content:center}
.cb-item__play span{margin-left:4px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:14px solid #0a0a0a}
.cb-item__pie{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px}
.cb-item__n{font-family:"Manrope",sans-serif;font-size:15px;font-weight:800;color:#fff;line-height:1.2}
.cb-item__a{font-size:12.5px;color:rgba(255,255,255,.58);margin-top:2px}
.cb-item__r{flex:none;background:#D9A441;color:#0a0a0a;border-radius:999px;padding:5px 12px;
  font-family:"Manrope",sans-serif;font-size:12.5px;font-weight:800;white-space:nowrap}
.cb-legal{color:rgba(255,255,255,.4);font-size:12px;line-height:1.6;max-width:74ch;margin:26px auto 0;text-align:center}

/* ══════════ El programa, rejilla estilo Armando ══════════ */
.prog-grid{display:grid;gap:16px}
@media(min-width:700px){.prog-grid{grid-template-columns:1fr 1fr}}
.prog-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--color-surface,#fff);
  box-shadow:0 18px 44px -30px rgba(80,30,160,.4)}
.prog-card__top{position:relative;aspect-ratio:3/2;background:#0a0a0a;overflow:hidden}
.prog-card__top img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease}
.prog-card:hover .prog-card__top img{transform:scale(1.03)}
.prog-card__bar{position:absolute;left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,#ef4444,#f87171)}
.prog-card__body{padding:18px 20px 20px}
.prog-card__n{font-family:"Manrope",sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.16em;color:#ef4444}
.prog-card__t{font-family:"Manrope",sans-serif;font-size:17px;font-weight:800;color:var(--color-text,#1a0a0a);margin:5px 0 6px}
.prog-card__d{font-size:14px;line-height:1.55;color:var(--color-muted,#5c4a4a)}
.pasos-lista{display:grid;gap:12px;max-width:640px;margin:0 auto}
.paso-fila{display:flex;align-items:flex-start;gap:14px;border:1px solid var(--line);
  border-radius:16px;background:var(--color-surface,#fff);padding:15px 18px;
  box-shadow:0 14px 34px -28px rgba(80,30,160,.45)}
.paso-num{flex:none;width:38px;height:38px;border-radius:11px;background:#ef4444;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:"Manrope",sans-serif;font-size:18px;font-weight:800}
.paso-t{display:block;font-family:"Manrope",sans-serif;font-size:16px;font-weight:800;color:var(--color-text,#1a0a0a);line-height:1.25}
.paso-d{display:block;font-size:13.8px;line-height:1.55;color:var(--color-muted,#5c4a4a);margin-top:3px}

/* En el celular la pastilla le robaba media línea al texto: la mandamos abajo */
@media (max-width:640px){
  .stack-row{display:grid;grid-template-columns:20px 1fr;column-gap:12px;row-gap:9px;align-items:start}
  .stack-row > span:nth-child(2){min-width:0}
  .stack-row > span:last-child{grid-column:2;justify-self:start;margin-top:0}
}

/* ══════════ El VSL en prueba A/B: horizontal o vertical ══════════
   VTurb decide el formato por variante (56.25% = 16:9, 177.78% = 9:16).
   Bryan lo quiere a todo lo ancho: el vertical usa la caja completa,
   igual que el horizontal. Como eso deja el botón abajo del pliegue,
   el hero aprieta sus márgenes y aparece una barra fija con el CTA. */
.vsl-box{transition:max-width .18s ease}

/* Con la variante vertical el hero crece: se le quitan unos pixeles a los
   huecos para que el botón entre completo arriba del pliegue en un iPhone. */
@media (max-width:1023px){
  .vsl-vertical [class*="row-start-5"],   /* los chips */
  .vsl-vertical [class*="row-span-8"],    /* el video */
  .vsl-vertical [class*="row-start-6"]{margin-top:6px}
}


/* El titular en el celular: se sale del padding de la sección para ganar
   40px de ancho y sube de 23 a 28px. Sigue en 4 líneas — bajarlo a 3
   exigiría achicar la letra, que es lo contrario de lo que se busca. */
@media (max-width:640px){
  .hero-h1{margin-inline:-20px;font-size:28px;line-height:1.09;letter-spacing:-.028em}
}
@media (max-width:380px){
  .hero-h1{font-size:26px}
}

/* ══════════ Barra fija con el CTA (solo celular) ══════════
   Con el vertical a todo lo ancho el botón del hero cae 82px abajo del
   pliegue. La barra aparece cuando ese botón se sale de vista, así el
   acceso siempre está a un toque. Va igual en las DOS variantes: si
   solo saliera en una, contaminaría la prueba A/B. */
.cta-fijo{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.86);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);box-shadow:0 -8px 26px -18px rgba(0,0,0,.4);
  transform:translateY(110%);transition:transform .22s ease;pointer-events:none}
.cta-fijo.visible{transform:translateY(0);pointer-events:auto}
.cta-fijo__btn{display:flex;width:100%;max-width:460px;margin:0 auto;cursor:pointer;
  align-items:center;justify-content:center;border-radius:14px;border:0;
  background:var(--grad-btn,linear-gradient(135deg,#ef4444,#f87171));color:#fff;
  padding:14px 20px;font-family:"Manrope",sans-serif;font-size:16px;font-weight:800;
  letter-spacing:-.01em;box-shadow:0 12px 28px -12px rgba(239,68,68,.7);
  min-height:48px;transition:filter .15s,transform .15s}
.cta-fijo__btn:active{transform:scale(.985)}
@media (min-width:1024px){.cta-fijo{display:none}}

/* ══════════ Las caras de los alumnos ══════════
   Fotos reales, no el sprite genérico. Van encimadas como en Armando.
   Wero, Jesús y Godoy van al final, a la derecha: son los que se reconocen.
   Por eso en el celular se ocultan las TRES PRIMERAS, no las últimas. */
.alumnos-fila{display:inline-flex;align-items:center;flex:none}
.alumno-cara{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block;
  border:2px solid var(--color-surface,#fff);box-shadow:0 1px 3px rgba(0,0,0,.16)}
.alumno-cara + .alumno-cara{margin-left:-9px}
.alumnos-fila img:nth-child(-n+3){display:none}         /* en el celular, 6 */
@media (min-width:420px){.alumnos-fila img:nth-child(-n+3){display:block}}
