/* ============================================================
   NT · Web pública — v0.1.1
   TODO cuelga de .nt-web. Sin esta clase no aplica una sola regla.
   Bloques:
     00 · Fuentes                 (@font-face, archivos locales)
     01 · Tokens                  (en .nt-web, NUNCA en :root)
     02 · Base acotada            (reset dentro de .nt-web)
     03 · Tipografía
     04 · Layout y utilidades
     05 · Componentes             (H3 — aún vacío)
     06 · Comportamientos globales (B2 barra · B5 widget)
     07 · Movimiento reducido
   ============================================================ */

/* ── 00 · FUENTES ───────────────────────────────────────────
   Archivos locales, subconjunto latin. Anton v27 y Archivo v25,
   SIL Open Font License 1.1 (ver assets/fonts/FUENTES.txt).
   Ninguna petición a servidores de terceros. */
@font-face{
  font-family:"NT Anton";
  src:url("../fonts/anton-latin-400-normal.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:"NT Archivo";
  src:url("../fonts/archivo-latin-400-normal.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"NT Archivo";
  src:url("../fonts/archivo-latin-700-normal.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"NT Archivo";
  src:url("../fonts/archivo-latin-800-normal.woff2") format("woff2");
  font-weight:800; font-style:normal; font-display:swap;
}

/* ── 01 · TOKENS ────────────────────────────────────────────
   En .nt-web. Un :root filtraría las variables a todo el sitio. */
.nt-web{
  --nt-ink-900:#071827;
  --nt-ink-950:#050f1a;
  --nt-ink-800:#0d2a45;
  --nt-ink-grad:linear-gradient(145deg,#071827,#0d2a45);
  --nt-teal:#0ea5b7;
  --nt-teal-deep:#0b8695;
  --nt-teal-bright:#2dd6e1;
  --nt-teal-pale:#bff8fb;
  --nt-paper:#f6f4f8;
  --nt-card:#ffffff;
  --nt-text:#1c1526;
  --nt-muted:#6b6377;
  --nt-line:#e2dde8;
  --nt-line-ink:rgba(191,248,251,.16);
  --nt-ok:#0f9d76;
  --nt-warn:#b57414;
  --nt-error:#bd3f36;
  --nt-shadow:0 14px 45px rgba(30,20,40,.10);

  --nt-font-display:"NT Anton","Anton","Impact","Haettenschweiler",sans-serif;
  --nt-font-ui:"NT Archivo","Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --nt-font-body:Arial,"Helvetica Neue",Helvetica,sans-serif;

  /* escala de espacio de la marca — no es 4/8 */
  --nt-s1:5px;  --nt-s2:8px;  --nt-s3:12px; --nt-s4:14px; --nt-s5:18px;
  --nt-s6:22px; --nt-s7:28px; --nt-s8:34px; --nt-s9:42px; --nt-s10:54px; --nt-s11:70px;

  --nt-r-btn:8px; --nt-r-mod:12px; --nt-r-card:20px; --nt-r-panel:24px; --nt-r-pill:99px;

  --nt-dur:180ms;
  --nt-dur-enter:600ms;
  --nt-dur-scene:1200ms;
  --nt-ease:cubic-bezier(.2,.7,.3,1);

  --nt-container:1180px;
  --nt-measure:760px;
  --nt-topbar:68px;
}

/* ── 02 · BASE ACOTADA ──────────────────────────────────────
   Reset SOLO dentro de .nt-web. Un reset global rompería Avada. */
.nt-web *,
.nt-web *::before,
.nt-web *::after{ box-sizing:border-box; }

.nt-web{
  background:var(--nt-paper);
  color:var(--nt-text);
  font-family:var(--nt-font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

.nt-web :focus-visible{
  outline:2px solid var(--nt-teal);
  outline-offset:2px;
}

/* ── 03 · TIPOGRAFÍA ────────────────────────────────────────
   Todos los selectores empiezan por .nt-web. Sin excepción. */
.nt-web .nt-display{
  font-family:var(--nt-font-display);
  font-weight:400;
  line-height:.98;
  letter-spacing:.3px;
  text-wrap:balance;
  margin:0;
}
.nt-web .nt-eyebrow{
  font-family:var(--nt-font-ui);
  font-size:13px; font-weight:800; letter-spacing:2px;
  text-transform:uppercase; color:var(--nt-teal-deep); margin:0;
}
.nt-web .nt-prosa{ max-width:var(--nt-measure); }

/* ── 04 · LAYOUT Y UTILIDADES ───────────────────────────────*/
.nt-web .nt-container{
  max-width:var(--nt-container);
  margin-inline:auto;
  padding-inline:var(--nt-s6);
}
.nt-web .nt-superficie-ink{
  background:var(--nt-ink-900);
  background-image:var(--nt-ink-grad);
  color:#e9e4ef;
}
.nt-web .nt-superficie-clara{ background:var(--nt-paper); color:var(--nt-text); }
.nt-web .nt-scroll-x{ overflow-x:auto; }

/* ── 05 · COMPONENTES Y SECCIONES DE LA HOME ────────────────*/

/* neutralizar contenedores de Avada, solo dentro de .nt-web */
/* Avada gana en especificidad con #main{padding:0 30px}; se fuerza solo aquí dentro */
.nt-web #wrapper,.nt-web #boxed-wrapper{max-width:none!important;width:100%!important;
  padding:0!important;margin:0!important;background:var(--nt-paper)!important;box-shadow:none!important;}
.nt-web #main{max-width:none!important;width:100%!important;padding:0!important;margin:0!important;}
.nt-web #main .fusion-row,.nt-web .fusion-row{max-width:none!important;width:100%!important;
  padding:0!important;margin:0!important;}
/* .fusion-row es contenedor flex: sus hijos heredan min-width:auto y la tira
   horizontal de la galería estiraba toda la cadena hasta 1180 px. */
.nt-web #boxed-wrapper,.nt-web #wrapper,.nt-web #main,.nt-web .fusion-row,
.nt-web #content,.nt-web .post-content{min-width:0!important;max-width:100vw!important;}
.nt-web .nt-galeria{min-width:0;max-width:100%;}
.nt-web section,.nt-web footer{max-width:100vw;}
.nt-web #main{background:var(--nt-paper);padding:0;}
/* La barra de título se desactiva por página con _fusion[_page_title_bar]=no,
   que evita que Avada la GENERE y deja un solo H1 semántico.
   Esta regla queda solo como red de seguridad si alguien olvida el ajuste. */
.nt-web .fusion-page-title-bar,.nt-web .fusion-page-title-wrapper{display:none;}
.nt-web #content{padding:0;margin:0;width:100%;}
.nt-web .post-content{margin:0;}
.nt-web .fusion-footer,.nt-web .fusion-tb-footer{display:none;}
.nt-web .to-top-container{display:none;}
.nt-web img{max-width:100%;height:auto;display:block;}
.nt-web a{color:inherit;text-decoration:none;}

/* --- marcador de material pendiente --- */
.nt-web .nt-ph{position:relative;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:var(--nt-s5);border-radius:var(--nt-r-card);
  background:repeating-linear-gradient(135deg,rgba(45,214,225,.07) 0 8px,transparent 8px 16px),
             linear-gradient(145deg,#0a2136,#123d55);
  border:1.5px dashed rgba(45,214,225,.45);color:var(--nt-teal-pale);
  font-family:var(--nt-font-ui);font-size:11px;font-weight:800;letter-spacing:1.2px;
  text-transform:uppercase;line-height:1.6;min-height:160px;}
.nt-web .nt-ph--bleed{border-radius:0;border-left:0;border-right:0;}
.nt-web .nt-ph--bloq{background:repeating-linear-gradient(135deg,rgba(181,116,20,.14) 0 8px,transparent 8px 16px),
  linear-gradient(145deg,#2a2013,#3d2f1a);border-color:rgba(232,178,92,.6);color:#e8b25c;}

/* --- botones --- */
.nt-web .nt-btn{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--nt-font-ui);font-size:15px;font-weight:700;letter-spacing:.2px;
  padding:15px 22px;border-radius:var(--nt-r-btn);border:2px solid transparent;
  background:var(--nt-teal);color:#03222a;cursor:pointer;
  transition:transform var(--nt-dur) var(--nt-ease),background var(--nt-dur) var(--nt-ease);}
.nt-web .nt-btn:hover{transform:translateY(-2px);background:var(--nt-teal-deep);color:#fff;}
.nt-web .nt-btn:active{transform:scale(.985);}
.nt-web .nt-btn--ghost{background:transparent;border-color:var(--nt-teal);color:var(--nt-teal-deep);}
.nt-web .nt-superficie-ink .nt-btn--ghost{color:var(--nt-teal-bright);}
.nt-web .nt-btn--ghost:hover{background:rgba(14,165,183,.12);color:var(--nt-teal-deep);}
.nt-web .nt-superficie-ink .nt-btn--ghost:hover{background:rgba(45,214,225,.14);color:#fff;}
.nt-web .nt-btn--block{display:flex;width:100%;}

/* --- secciones --- */
.nt-web .nt-sec{padding:var(--nt-s11) 0;}
.nt-web .nt-sec--ink{background:var(--nt-ink-900);background-image:var(--nt-ink-grad);color:#cfc8d8;}
.nt-web .nt-sec--deep{background:var(--nt-ink-950);
  background-image:linear-gradient(145deg,#050f1a,#0a2038);color:#cfc8d8;padding-top:96px;}
.nt-web .nt-sec--ink h2,.nt-web .nt-sec--deep h2,
.nt-web .nt-sec--ink h3,.nt-web .nt-sec--deep h3,
.nt-web .nt-sec--ink strong,.nt-web .nt-sec--deep strong{color:#fff;}
.nt-web .nt-h2{font-family:var(--nt-font-display);font-weight:400;
  font-size:clamp(28px,4.6vw,44px);line-height:1.04;letter-spacing:.3px;
  text-transform:uppercase;margin:0 0 var(--nt-s4);text-wrap:balance;}
.nt-web .nt-h2--baja{text-transform:none;}
.nt-web .nt-p{font-size:17px;line-height:1.65;margin:0 0 var(--nt-s4);max-width:var(--nt-measure);}
.nt-web .nt-sec--ink .nt-p,.nt-web .nt-sec--deep .nt-p{color:#bdc9d4;}
.nt-web .nt-acciones{display:flex;flex-wrap:wrap;gap:var(--nt-s3);margin-top:var(--nt-s6);}

/* --- barra --- */
.nt-web .nt-topbar{position:fixed;inset:0 0 auto 0;height:var(--nt-topbar);z-index:900;
  display:flex;align-items:center;gap:var(--nt-s5);padding:0 var(--nt-s6);
  background:transparent;transition:background var(--nt-dur) var(--nt-ease),
  backdrop-filter var(--nt-dur) var(--nt-ease),border-color var(--nt-dur) var(--nt-ease);
  border-bottom:1px solid transparent;}
.nt-web .nt-topbar.is-solid{background:rgba(7,24,39,.86);backdrop-filter:blur(12px);
  border-bottom-color:rgba(14,165,183,.5);}
.nt-web .nt-sello{width:34px;height:34px;border-radius:99px;border:2px solid var(--nt-teal-bright);
  display:grid;place-items:center;font-family:var(--nt-font-display);font-size:14px;color:#fff;flex:none;}
.nt-web .nt-nav{display:flex;gap:var(--nt-s5);margin-left:auto;font-family:var(--nt-font-ui);
  font-size:14px;font-weight:600;color:#e9e4ef;}
.nt-web .nt-nav a:hover{color:var(--nt-teal-bright);}
.nt-web .nt-topbar-cta{margin-left:var(--nt-s5);padding:10px 16px;font-size:13.5px;}
.nt-web .nt-menu-btn{display:none;margin-left:auto;background:none;border:0;color:#fff;
  font-family:var(--nt-font-ui);font-size:13px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;padding:10px;cursor:pointer;
  /* objetivo tactil minimo 44 px de alto */
  min-height:44px;}

/* --- 01 héroe --- */
.nt-web .nt-hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;
  background:var(--nt-ink-900);background-image:var(--nt-ink-grad);overflow:hidden;}
.nt-web .nt-hero .nt-ph{position:absolute;inset:0;min-height:0;border:0;border-radius:0;
  align-items:flex-start;justify-content:flex-end;padding:100px 30px;font-size:10px;opacity:.55;}
.nt-web .nt-hero-velo{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,24,39,.55) 0%,rgba(7,24,39,.25) 40%,rgba(7,24,39,.92) 100%);}
.nt-web .nt-hero-txt{position:relative;padding:0 0 var(--nt-s11);max-width:660px;}
.nt-web .nt-hero-txt h1{font-family:var(--nt-font-display);font-weight:400;color:#fff;
  font-size:clamp(38px,7vw,82px);line-height:.98;letter-spacing:.3px;margin:0 0 var(--nt-s4);
  text-transform:none;text-wrap:balance;}
.nt-web .nt-confianza{font-family:var(--nt-font-ui);font-size:13px;font-weight:600;
  letter-spacing:.6px;color:#9db1c2;margin:var(--nt-s5) 0 0;}

/* --- 02 tres caminos --- */
.nt-web .nt-puertas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--nt-s5);margin-top:var(--nt-s7);}
.nt-web .nt-puerta{border-radius:var(--nt-r-card);overflow:hidden;border:1px solid var(--nt-line);
  background:var(--nt-card);display:flex;flex-direction:column;
  transition:transform var(--nt-dur) var(--nt-ease),box-shadow var(--nt-dur) var(--nt-ease);}
.nt-web .nt-puerta:hover{transform:translateY(-2px);box-shadow:var(--nt-shadow);}
.nt-web .nt-puerta .nt-ph{border-radius:0;border-left:0;border-right:0;border-top:0;aspect-ratio:4/5;min-height:0;}
.nt-web .nt-puerta-txt{padding:var(--nt-s6);}
.nt-web .nt-glifo{font-size:20px;line-height:1;color:var(--nt-teal);display:block;margin-bottom:var(--nt-s2);}
.nt-web .nt-puerta h3{font-family:var(--nt-font-display);font-weight:400;font-size:26px;
  text-transform:uppercase;letter-spacing:.3px;margin:0 0 var(--nt-s1);}
.nt-web .nt-puerta p{font-size:15px;line-height:1.55;margin:0;color:var(--nt-muted);}
.nt-web .nt-puerta--media{background:linear-gradient(145deg,#0b2740,#11405c);border-color:#1d4763;color:#e9e4ef;}
.nt-web .nt-puerta--media h3{color:#fff;}
.nt-web .nt-puerta--media p{color:#a8bccc;}
.nt-web .nt-puerta--media .nt-glifo,.nt-web .nt-puerta--honda .nt-glifo{color:var(--nt-teal-bright);}
.nt-web .nt-puerta--honda{background:linear-gradient(145deg,#050f1a,#0a2038);border-color:#16324a;color:#e9e4ef;}
.nt-web .nt-puerta--honda h3{color:#fff;}
.nt-web .nt-puerta--honda p{color:#a8bccc;}

/* --- 03 método --- */
.nt-web .nt-metodo{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--nt-s10);align-items:start;}
.nt-web .nt-pilares{display:grid;gap:var(--nt-s3);margin-top:var(--nt-s6);}
.nt-web .nt-pilar{display:grid;grid-template-columns:auto 1fr;gap:var(--nt-s3);align-items:baseline;}
.nt-web .nt-pilar b{font-family:var(--nt-font-ui);font-size:15px;font-weight:700;color:#fff;}
.nt-web .nt-pilar span{font-size:15px;color:#a8bccc;}
.nt-web .nt-progresion{display:grid;gap:var(--nt-s2);}
.nt-web .nt-paso{display:grid;grid-template-columns:auto 1fr;gap:var(--nt-s3);align-items:center;
  padding:var(--nt-s4) var(--nt-s5);border-radius:var(--nt-r-mod);
  border:1px solid var(--nt-line-ink);background:rgba(255,255,255,.05);}
.nt-web .nt-paso i{font-style:normal;font-family:var(--nt-font-display);font-size:15px;
  color:var(--nt-teal-bright);font-variant-numeric:tabular-nums;}
.nt-web .nt-paso b{font-family:var(--nt-font-ui);font-size:14.5px;font-weight:700;color:#fff;}
.nt-web .nt-paso--fin{border-color:var(--nt-teal);background:rgba(45,214,225,.12);}
.nt-web .nt-cita{border-left:6px solid var(--nt-teal);border-radius:0 18px 18px 0;
  background:rgba(45,214,225,.07);padding:var(--nt-s6) var(--nt-s7);margin:var(--nt-s8) 0 0;
  font-size:19px;line-height:1.6;color:#e4edf3;max-width:900px;}
.nt-web .nt-escalera{display:none;flex-direction:column;gap:var(--nt-s2);margin-top:var(--nt-s6);}
.nt-web .nt-escalon{border-left:3px solid var(--nt-teal);border-radius:0 10px 10px 0;
  background:rgba(45,214,225,.07);padding:var(--nt-s3) var(--nt-s4);
  display:flex;align-items:center;gap:var(--nt-s3);}
.nt-web .nt-escalon i{font-style:normal;font-family:var(--nt-font-display);font-size:15px;
  color:var(--nt-teal-bright);font-variant-numeric:tabular-nums;}
.nt-web .nt-escalon b{font-family:var(--nt-font-ui);font-size:14px;font-weight:700;color:#fff;}
.nt-web .nt-escalon--2{margin-left:12px;}
.nt-web .nt-escalon--3{margin-left:24px;}
.nt-web .nt-escalon--4{margin-left:36px;border-left-color:var(--nt-teal-bright);background:rgba(45,214,225,.16);}

/* --- 04 entrenar --- */
.nt-web .nt-formas{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--nt-s5);margin-top:var(--nt-s7);}
.nt-web .nt-forma{border:1px solid var(--nt-line);border-radius:var(--nt-r-card);overflow:hidden;
  background:var(--nt-card);box-shadow:var(--nt-shadow);display:flex;flex-direction:column;
  transition:transform var(--nt-dur) var(--nt-ease);}
.nt-web .nt-forma:hover{transform:translateY(-2px);}
.nt-web .nt-forma .nt-ph{border-radius:0;border:0;border-bottom:1.5px dashed rgba(45,214,225,.45);
  aspect-ratio:1/1;min-height:0;}
.nt-web .nt-forma .nt-ph--bloq{border-bottom-color:rgba(232,178,92,.6);}
.nt-web .nt-forma-txt{padding:var(--nt-s5);}
.nt-web .nt-forma-txt b{display:block;font-family:var(--nt-font-ui);font-size:15px;font-weight:700;margin-bottom:4px;}
.nt-web .nt-forma-txt span{font-size:14px;color:var(--nt-muted);line-height:1.5;}
.nt-web .nt-corchete{display:block;width:50%;height:22px;border:2px solid var(--nt-teal);
  border-top:0;border-radius:0 0 10px 10px;margin:0;}
.nt-web .nt-tallo{width:2px;height:20px;background:var(--nt-teal);margin-left:calc(25% - 1px);}
.nt-web .nt-flecha-abajo{color:var(--nt-teal);font-size:14px;line-height:1;margin-left:calc(25% - 6px);}
.nt-web .nt-plus{border:2px solid var(--nt-teal);border-radius:var(--nt-r-panel);
  background:rgba(14,165,183,.06);padding:var(--nt-s8);display:grid;
  grid-template-columns:1.05fr .95fr;gap:var(--nt-s8);align-items:center;}
.nt-web .nt-plus h3{font-family:var(--nt-font-display);font-weight:400;font-size:clamp(24px,3.4vw,34px);
  line-height:1.04;text-transform:none;margin:0 0 var(--nt-s4);letter-spacing:.3px;}
.nt-web .nt-dur-fila{display:flex;gap:var(--nt-s5);flex-wrap:wrap;font-family:var(--nt-font-ui);
  font-size:13px;font-weight:700;color:var(--nt-text);background:#fff;border:1px solid var(--nt-line);
  border-radius:var(--nt-r-mod);padding:var(--nt-s3) var(--nt-s5);margin-bottom:var(--nt-s5);}
.nt-web .nt-dur-fila em{font-style:normal;color:var(--nt-muted);font-weight:500;}
.nt-web .nt-planes{display:grid;gap:0;}
.nt-web .nt-plan{display:grid;grid-template-columns:132px 1fr;gap:var(--nt-s4);align-items:center;
  padding:var(--nt-s3) 0;border-top:1px solid rgba(14,165,183,.25);}
.nt-web .nt-plan:first-child{border-top:0;}
.nt-web .nt-plan b{font-family:var(--nt-font-ui);font-size:14.5px;font-weight:700;}
.nt-web .nt-fichas{display:flex;gap:var(--nt-s2);flex-wrap:wrap;}
.nt-web .nt-ficha{font-family:var(--nt-font-ui);font-size:11.5px;font-weight:700;
  padding:6px 12px;border-radius:var(--nt-r-btn);background:var(--nt-teal);color:#03222a;
  border:1.5px solid var(--nt-teal);white-space:nowrap;}
.nt-web .nt-ficha--duo{background:transparent;color:var(--nt-teal-deep);border-style:dashed;}
.nt-web .nt-nota{font-family:var(--nt-font-ui);font-size:12.5px;color:var(--nt-muted);margin:var(--nt-s4) 0 0;}

/* --- 05 jugar --- */
.nt-web .nt-jugar{display:grid;grid-template-columns:1fr 1fr;gap:var(--nt-s10);align-items:center;}
.nt-web .nt-jugar .nt-ph{aspect-ratio:16/9;}
.nt-web .nt-app-caja{border:1px solid rgba(45,214,225,.35);border-radius:var(--nt-r-mod);
  background:rgba(45,214,225,.06);padding:var(--nt-s4);margin:var(--nt-s6) 0 var(--nt-s3);}
.nt-web .nt-app-caja>p{font-family:var(--nt-font-ui);font-size:11px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--nt-teal-bright);margin:0 0 var(--nt-s3);}
.nt-web .nt-fila{display:flex;align-items:center;gap:var(--nt-s3);padding:var(--nt-s3) var(--nt-s4);
  border-radius:var(--nt-r-mod);background:rgba(255,255,255,.05);border:1px solid var(--nt-line-ink);
  margin-bottom:var(--nt-s2);transition:transform var(--nt-dur) var(--nt-ease);}
.nt-web .nt-fila:last-child{margin-bottom:0;}
.nt-web .nt-fila:hover{transform:translateY(-2px);}
.nt-web .nt-fila b{font-family:var(--nt-font-ui);font-size:15px;font-weight:700;color:#fff;}
.nt-web .nt-fila span{font-size:14px;color:#a8bccc;}
.nt-web .nt-fila .nt-ar{margin-left:auto;color:var(--nt-teal-bright);font-size:16px;}

/* --- 06 academy --- */
.nt-web .nt-academy{display:grid;grid-template-columns:1fr 1fr;gap:var(--nt-s10);align-items:center;}
.nt-web .nt-academy .nt-ph{aspect-ratio:16/9;}

/* --- 07 nacho --- */
.nt-web .nt-nacho{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--nt-s10);align-items:center;}
.nt-web .nt-nacho .nt-ph{aspect-ratio:4/5;}
.nt-web .nt-nacho p{margin:0 0 var(--nt-s5);}

/* --- 08 prueba --- */
.nt-web .nt-testimonios{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--nt-s5);margin-top:var(--nt-s7);}
.nt-web .nt-testi{border:1px solid var(--nt-line);border-radius:var(--nt-r-card);
  background:var(--nt-card);padding:var(--nt-s6);}
.nt-web .nt-testi p{font-size:16px;line-height:1.6;font-style:italic;margin:0 0 var(--nt-s4);}
.nt-web .nt-testi cite{font-family:var(--nt-font-ui);font-size:12px;font-weight:700;
  letter-spacing:.8px;text-transform:uppercase;color:var(--nt-muted);font-style:normal;}
.nt-web .nt-galeria{display:flex;gap:var(--nt-s3);overflow-x:auto;margin-top:var(--nt-s7);
  padding-bottom:var(--nt-s2);scrollbar-width:thin;}
.nt-web .nt-galeria .nt-ph{flex:0 0 220px;aspect-ratio:4/5;min-height:0;}

/* --- 09 cierre --- */
.nt-web .nt-cierre{text-align:center;background:var(--nt-ink-900);background-image:var(--nt-ink-grad);
  color:#cfc8d8;padding:var(--nt-s11) var(--nt-s6);}
.nt-web .nt-cierre h2{font-family:var(--nt-font-display);font-weight:400;color:#fff;
  font-size:clamp(38px,6.4vw,72px);line-height:1;letter-spacing:.3px;margin:0 0 var(--nt-s5);text-transform:none;}
.nt-web .nt-cierre .nt-p{margin:0 auto var(--nt-s6);max-width:620px;color:#bdc9d4;}
.nt-web .nt-cierre .nt-acciones{justify-content:center;}
.nt-web .nt-dir{font-family:var(--nt-font-ui);font-size:13px;color:#8fa4b5;margin-top:var(--nt-s7);}

/* --- footer --- */
.nt-web .nt-footer{background:var(--nt-ink-900);color:#9db1c2;padding:var(--nt-s10) 0 0;}
.nt-web .nt-footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--nt-s7);}
.nt-web .nt-footer h4{font-family:var(--nt-font-ui);font-size:12px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--nt-teal-bright);margin:0 0 var(--nt-s4);}
.nt-web .nt-footer li{list-style:none;margin:0 0 var(--nt-s2);font-size:14.5px;}
.nt-web .nt-footer ul{margin:0;padding:0;}
.nt-web .nt-footer a:hover{color:var(--nt-teal-bright);}
.nt-web .nt-footer-bar{margin-top:var(--nt-s9);padding:var(--nt-s5) 0;border-top:1px solid var(--nt-line-ink);
  font-family:var(--nt-font-ui);font-size:12.5px;display:flex;gap:var(--nt-s5);flex-wrap:wrap;}

/* --- responsive --- */
@media (max-width:1179px){
  .nt-web .nt-plus{grid-template-columns:1fr;gap:var(--nt-s6);}
}
@media (max-width:899px){
  .nt-web .nt-metodo{grid-template-columns:1fr;gap:var(--nt-s6);}
  .nt-web .nt-progresion{display:none;}
  .nt-web .nt-escalera{display:flex;}
  .nt-web .nt-formas{grid-template-columns:1fr 1fr;}
  .nt-web .nt-corchete,.nt-web .nt-tallo,.nt-web .nt-flecha-abajo{display:none;}
  .nt-web .nt-conector-movil{display:flex;flex-direction:column;align-items:center;}
  .nt-web .nt-jugar,.nt-web .nt-academy,.nt-web .nt-nacho{grid-template-columns:1fr;gap:var(--nt-s6);}
  .nt-web .nt-academy .nt-orden1{order:2;}
  .nt-web .nt-academy .nt-orden2{order:1;}
  .nt-web .nt-testimonios{grid-template-columns:1fr;}
  .nt-web .nt-sec{padding:var(--nt-s10) 0;}
  .nt-web .nt-sec--deep{padding-top:64px;}
  .nt-web .nt-nav{display:none;}
  .nt-web .nt-menu-btn{display:inline-flex;align-items:center;justify-content:center;}
}
@media (max-width:679px){
  .nt-web .nt-puertas{grid-template-columns:1fr;}
  .nt-web .nt-puerta{flex-direction:row;align-items:stretch;}
  .nt-web .nt-puerta .nt-ph{flex:0 0 38%;aspect-ratio:auto;border-bottom:0;
    border-right:1.5px dashed rgba(45,214,225,.45);}
  .nt-web .nt-puerta-txt{flex:1;padding:var(--nt-s5);}
  .nt-web .nt-puerta h3{font-size:22px;}
}
/* 2×2 hasta 360 px: cuatro tarjetas apiladas rompían el ritmo de la home.
   Por debajo de 360 no caben dos columnas legibles y se pasa a una. */
@media (max-width:479px){
  .nt-web .nt-container{padding-inline:var(--nt-s4);}
  .nt-web .nt-formas{gap:var(--nt-s3);}
  .nt-web .nt-forma-txt{padding:var(--nt-s4);}
  .nt-web .nt-forma-txt b{font-size:14.5px;line-height:1.3;}
  .nt-web .nt-forma-txt span{font-size:13.5px;}
  .nt-web .nt-ph{font-size:9.5px;letter-spacing:.7px;padding:var(--nt-s2);}
  .nt-web .nt-plan{grid-template-columns:1fr;gap:var(--nt-s1);}
  .nt-web .nt-acciones .nt-btn{width:100%;}
  .nt-web .nt-hero-txt h1{font-size:clamp(34px,11vw,52px);}
}
@media (max-width:359px){
  .nt-web .nt-formas{grid-template-columns:1fr;}
}
.nt-web .nt-conector-movil{display:none;}
.nt-web .nt-conector-movil .nt-ln{width:2px;height:20px;background:var(--nt-teal);}
.nt-web .nt-conector-movil .nt-ar2{color:var(--nt-teal);font-size:14px;line-height:1;margin-top:-4px;}


/* ── 06 · COMPORTAMIENTOS GLOBALES ──────────────────────────
   Las clases las alterna nt-web.js. El CSS solo describe estados. */

/* B2 · botón de la barra: existe solo en el tramo medio */
.nt-web .nt-topbar-cta{
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
  transition:opacity var(--nt-dur) var(--nt-ease),
             transform var(--nt-dur) var(--nt-ease);
}
.nt-web .nt-topbar-cta.is-visible{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

/* B5 · widget de Joinchat: cede el sitio, no lo negocia.
   La clase se pone en <html> para poder alcanzar al widget,
   que Joinchat inserta fuera del contenedor de la página. */
html.nt-web-widget-retirado .joinchat{
  opacity:0 !important;                 /* Joinchat marca sus propias reglas */
  transform:translateY(120%) !important;
  pointer-events:none !important;
  transition:opacity var(--nt-b5-dur,180ms) cubic-bezier(.2,.7,.3,1),
             transform var(--nt-b5-dur,180ms) cubic-bezier(.2,.7,.3,1);
}
html.nt-web-widget-listo .joinchat{
  transition:opacity 180ms cubic-bezier(.2,.7,.3,1),
             transform 180ms cubic-bezier(.2,.7,.3,1);
}
/* Reserva de fondo de página: el widget vuelve tras §9 y no debe
   aterrizar sobre un enlace del footer. Es margen de página. */
.nt-web .nt-footer{ padding-bottom:calc(var(--nt-s11) + 56px); }

@media (max-width:399px){
  html.nt-web-widget-compacto .joinchat__button{ transform:scale(.86); transform-origin:bottom right; }
}

/* --- menú móvil (panel construido por JS desde la propia barra) --- */
.nt-web .nt-panel{position:fixed;inset:0;z-index:1000;
  background:var(--nt-ink-900);background-image:var(--nt-ink-grad);
  display:flex;flex-direction:column;justify-content:center;
  padding:var(--nt-s11) var(--nt-s6);
  opacity:0;transition:opacity var(--nt-dur) var(--nt-ease);}
.nt-web .nt-panel.is-open{opacity:1;}
.nt-web .nt-panel[hidden]{display:none;}
.nt-web .nt-panel-cerrar{position:absolute;top:var(--nt-s6);right:var(--nt-s6);
  background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;
  padding:var(--nt-s3);min-width:44px;min-height:44px;}
.nt-web .nt-panel-nav{display:flex;flex-direction:column;gap:var(--nt-s4);}
.nt-web .nt-panel-nav a{font-family:var(--nt-font-display);font-weight:400;
  font-size:clamp(28px,9vw,40px);line-height:1.05;letter-spacing:.3px;
  text-transform:uppercase;color:#fff;padding:var(--nt-s2) 0;
  opacity:0;transform:translateY(10px);
  transition:opacity var(--nt-dur-enter) var(--nt-ease),transform var(--nt-dur-enter) var(--nt-ease);}
.nt-web .nt-panel.is-open .nt-panel-nav a{opacity:1;transform:none;}
.nt-web .nt-panel-pie{font-family:var(--nt-font-ui);font-size:15px;
  color:var(--nt-teal-bright);margin:var(--nt-s8) 0 0;}
@media (min-width:900px){.nt-web .nt-panel{display:none!important;}}

/* --- carrusel de testimonios (puntos construidos por JS) --- */
.nt-web .nt-dots{display:none;justify-content:center;gap:var(--nt-s2);margin-top:var(--nt-s5);}
.nt-web .nt-dots button{width:9px;height:9px;border-radius:99px;border:0;padding:0;
  background:#c9c1d5;cursor:pointer;}
.nt-web .nt-dots button[aria-current="true"]{background:var(--nt-teal);}
@media (max-width:899px){
  .nt-web .nt-testimonios{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:var(--nt-s4);scrollbar-width:none;-ms-overflow-style:none;}
  .nt-web .nt-testimonios::-webkit-scrollbar{display:none;}
  .nt-web .nt-testi{flex:0 0 100%;scroll-snap-align:center;}
  .nt-web .nt-dots{display:flex;}
}

/* ── 07 · MOVIMIENTO REDUCIDO ───────────────────────────────*/
@media (prefers-reduced-motion:reduce){
  .nt-web *,
  .nt-web *::before,
  .nt-web *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  html.nt-web-widget-retirado .joinchat{ transition:none !important; }
}

/* --- H6 · correccion footer responsive (30/08/2026) --- */
.nt-web .nt-footer-cols > *{min-width:0;}
.nt-web .nt-footer li,.nt-web .nt-footer a{overflow-wrap:anywhere;}
@media (max-width:679px){
  .nt-web .nt-footer-cols{grid-template-columns:repeat(2,1fr);row-gap:var(--nt-s8);}
}


/* ───── 08 · PAGINAS INTERIORES ──────────────────────
   Componentes que solo usan las paginas interiores. Reutilizan los
   tokens y los patrones de la Home; no redefinen ninguno. */
.nt-web .nt-hero--int{padding:calc(var(--nt-topbar) + var(--nt-s9)) 0 var(--nt-s9);background:var(--nt-ink-grad);color:#fff;}
.nt-web .nt-hero--int h1{font-family:var(--nt-font-display);font-size:clamp(34px,7vw,64px);line-height:.95;text-transform:uppercase;margin:0 0 var(--nt-s4);}
.nt-web .nt-hero--int .nt-p{color:#dbe6ee;max-width:var(--nt-measure);}
.nt-web .nt-migas{font-family:var(--nt-font-ui);font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--nt-teal-bright);margin:0 0 var(--nt-s4);}
.nt-web .nt-migas a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;}
.nt-web .nt-migas a:hover{border-bottom-color:currentColor;}
.nt-web .nt-tarjetas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--nt-s5);}
.nt-web .nt-tarjetas--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.nt-web .nt-tarjeta{display:flex;flex-direction:column;background:var(--nt-card);border:1px solid var(--nt-line);border-radius:var(--nt-r-card);padding:var(--nt-s6);box-shadow:var(--nt-shadow);}
.nt-web .nt-tarjeta h3{font-family:var(--nt-font-display);font-size:26px;line-height:1.05;text-transform:uppercase;margin:0 0 var(--nt-s2);}
.nt-web .nt-lista{list-style:none;margin:var(--nt-s4) 0;padding:0;}
.nt-web .nt-lista li{position:relative;padding-left:18px;margin-bottom:6px;font-size:15px;color:var(--nt-text);}
.nt-web .nt-lista li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:2px;background:var(--nt-teal);}
.nt-web .nt-precio{font-family:var(--nt-font-display);font-size:34px;line-height:1;margin:var(--nt-s4) 0 var(--nt-s5);}
.nt-web .nt-precio small{display:block;font-family:var(--nt-font-ui);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--nt-muted);margin-top:6px;}
.nt-web .nt-tarjeta .nt-acciones{margin-top:auto;}
.nt-web .nt-niveles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--nt-s3);}
.nt-web .nt-nivel{border-top:2px solid var(--nt-teal);padding-top:var(--nt-s3);}
.nt-web .nt-nivel b{display:block;font-size:15px;margin-bottom:4px;}
.nt-web .nt-nivel span{display:block;font-size:14px;color:var(--nt-muted);line-height:1.35;}
.nt-web .nt-faq{border-top:1px solid var(--nt-line);}
.nt-web .nt-faq div{border-bottom:1px solid var(--nt-line);padding:var(--nt-s4) 0;}
.nt-web .nt-faq b{display:block;margin-bottom:6px;}
.nt-web .nt-faq span{color:var(--nt-muted);}
@media (max-width:899px){
  .nt-web .nt-tarjetas,.nt-web .nt-tarjetas--2{grid-template-columns:1fr;}
  .nt-web .nt-niveles{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:479px){
  .nt-web .nt-niveles{grid-template-columns:1fr;}
}

/* --- 09 · fotografia dentro del marcador ---------------------
   El marcador conserva su geometria (proporcion, flex, bordes) y solo
   cambia de relleno: de trama a fotografia. */
.nt-web .nt-ph--foto{padding:0;border:0;background:var(--nt-ink-900);overflow:hidden;}
.nt-web .nt-ph--foto img{width:100%;height:100%;object-fit:cover;display:block;}
.nt-web .nt-hero .nt-ph--foto img{position:absolute;inset:0;}

/* --- 10 · anclas heredadas del menu antiguo --------------------
   Solo son puntos de destino: no ocupan espacio ni pintan nada. */
.nt-web .nt-ancla{display:block;height:0;overflow:hidden;scroll-margin-top:calc(var(--nt-topbar) + 8px);}

/* --- H7 · formulario Avada dentro del sistema NT (30/08/2026) --- */
.nt-web .nt-formulario{max-width:var(--nt-measure);margin:var(--nt-s6) 0 0;}
.nt-web .nt-formulario .fusion-form-field{margin:0 0 var(--nt-s4);}
.nt-web .nt-formulario label{display:block;font-family:var(--nt-font-ui);font-size:12.5px;letter-spacing:1.1px;text-transform:uppercase;color:var(--nt-muted);margin:0 0 6px;font-weight:700;}
.nt-web .nt-formulario input.fusion-form-input,
.nt-web .nt-formulario select.fusion-form-input,
.nt-web .nt-formulario textarea.fusion-form-input{width:100%;box-sizing:border-box;font-family:var(--nt-font-ui);font-size:15px;color:var(--nt-text);background:#fff;border:1px solid var(--nt-line);border-radius:var(--nt-r-mod);padding:12px 14px;line-height:1.4;transition:border-color var(--nt-dur) var(--nt-ease);}
.nt-web .nt-formulario input.fusion-form-input:focus,
.nt-web .nt-formulario select.fusion-form-input:focus,
.nt-web .nt-formulario textarea.fusion-form-input:focus{outline:none;border-color:var(--nt-teal);box-shadow:0 0 0 3px rgba(14,165,183,.15);}
.nt-web .nt-formulario textarea.fusion-form-input{min-height:120px;resize:vertical;}
.nt-web .nt-formulario fieldset{border:0;margin:0;padding:0;}
.nt-web .nt-formulario fieldset label{display:inline-flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:15px;color:var(--nt-text);font-weight:400;margin:0 var(--nt-s4) 8px 0;}
.nt-web .nt-formulario .fusion-form-element-required{color:var(--nt-teal);text-decoration:none;border:0;}
.nt-web .nt-formulario button,
.nt-web .nt-formulario input[type=submit]{font-family:var(--nt-font-ui);font-size:13px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:#fff;background:var(--nt-teal);border:0;border-radius:var(--nt-r-pill);padding:14px 28px;cursor:pointer;transition:transform var(--nt-dur) var(--nt-ease);}
.nt-web .nt-formulario button:hover,
.nt-web .nt-formulario input[type=submit]:hover{transform:translateY(-2px);}
.nt-web .nt-formulario .fusion-select-wrapper{position:relative;}
.nt-web .nt-formulario .fusion-select-wrapper .select-arrow{pointer-events:none;}
@media (max-width:679px){
  .nt-web .nt-formulario button,
  .nt-web .nt-formulario input[type=submit]{width:100%;}
}

/* --- 11 · ENCUADRE POR IMAGEN --------------------------------
   Cada fotografia tiene su propio punto de anclaje. No hay un
   object-position global: el motivo de cada foto esta en un sitio. */
.nt-web .nt-hero .nt-ph--foto img{object-position:50% 26%;}
.nt-web .nt-jugar .nt-ph--foto img{object-position:50% 45%;}
.nt-web .nt-academy .nt-ph--foto img{object-position:50% 42%;}
@media (max-width:899px){
  .nt-web .nt-hero .nt-ph--foto img{object-position:56% 42%;}
  .nt-web .nt-jugar .nt-ph--foto img{object-position:50% 45%;}
  .nt-web .nt-academy .nt-ph--foto img{object-position:50% 42%;}
}

/* --- H7b · etiqueta de grupos radio/checkbox (Avada usa span.label) --- */
.nt-web .nt-formulario .fusion-form-label-wrapper .label{display:block;font-family:var(--nt-font-ui);font-size:12.5px;letter-spacing:1.1px;text-transform:uppercase;color:var(--nt-muted);margin:0 0 6px;font-weight:700;}
.nt-web .nt-formulario .fusion-form-label-wrapper{margin:0 0 6px;}
.nt-web .nt-formulario .fusion-form-radio,
.nt-web .nt-formulario .fusion-form-checkbox{display:inline-flex;align-items:center;gap:8px;margin:0 var(--nt-s4) 8px 0;}
.nt-web .nt-formulario .fusion-form-radio input,
.nt-web .nt-formulario .fusion-form-checkbox input{width:auto;margin:0;}

/* --- 12 · marcador liso, sin trama ni texto -------------------
   Panel ink neutro para las tarjetas cuya fotografia aun no existe.
   Conserva la geometria del marcador; solo cambia el relleno. */
.nt-web .nt-ph--liso{background:var(--nt-ink-grad);border:0;border-bottom:1.5px solid rgba(45,214,225,.28);}
.nt-web .nt-forma .nt-ph--liso{border-bottom:1.5px solid rgba(45,214,225,.28);}

/* --- 13 · icono dentro del marcador ---------------------------
   El asset ya trae su propio fondo navy y su circulo teal: ocupa
   el contenedor 1:1 entero, como una fotografia mas. */
.nt-web .nt-ph--icono{padding:0;border:0;overflow:hidden;background:var(--nt-ink-900);}
.nt-web .nt-forma .nt-ph--icono{border-bottom:1.5px solid rgba(45,214,225,.28);}
.nt-web .nt-ph--icono img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.12);}

/* --- H9 · encuadre movil de Jugar y Academy (30/08/2026) ---------
 * En movil las dos fotos pasan a una sola columna manteniendo 16/9.
 * La de Jugar (800x533) pierde los pies de los jugadores; la de
 * Academy es una vertical 9:16 y a 16/9 solo queda una franja del
 * torso. Se ajusta la proporcion del marco a cada fotografia y su
 * punto de anclaje. No se sustituye ninguna fotografia. */
@media (max-width:899px){
  .nt-web .nt-jugar .nt-ph{aspect-ratio:16/10;}
  .nt-web .nt-jugar .nt-ph--foto img{object-position:50% 50%;}
  .nt-web .nt-academy .nt-ph{aspect-ratio:4/3;}
  .nt-web .nt-academy .nt-ph--foto img{object-position:50% 38%;}
}

/* --- H10 · QA visual iPhone (30/08/2026) -------------------------
 * Solo COLOR. No cambia tipografia, tamano, interlineado,
 * espaciado ni estructura.
 * 1. Los titulares de los hero oscuros heredaban el color de
 *    encabezado del tema (#141313) y salian casi negros sobre navy.
 * 2. Los titulos de las tarjetas heredaban el color de enlace, y el
 *    :visited del navegador los pintaba de morado.
 * 3. En las secciones --deep, la tarjeta blanca de .nt-puertas
 *    heredaba el texto claro de la seccion y quedaba ilegible. */

/* 1 · titulares sobre fondo oscuro */
.nt-web .nt-hero h1,.nt-web .nt-hero h2,
.nt-web .nt-hero--int h1,.nt-web .nt-hero--int h2,.nt-web .nt-hero--int h3,
.nt-web .nt-sec--ink h1,.nt-web .nt-sec--ink h2,.nt-web .nt-sec--ink h3,.nt-web .nt-sec--ink h4,
.nt-web .nt-sec--deep h1,.nt-web .nt-sec--deep h2,.nt-web .nt-sec--deep h3,.nt-web .nt-sec--deep h4,
.nt-web .nt-cierre h1,.nt-web .nt-cierre h2,.nt-web .nt-cierre h3{color:#fff;}

/* 2 · tarjetas: mismo color en link / visited / hover / active */
.nt-web a.nt-forma,.nt-web a.nt-forma:link,.nt-web a.nt-forma:visited,
.nt-web a.nt-forma:hover,.nt-web a.nt-forma:focus,.nt-web a.nt-forma:active{color:var(--nt-text);}
.nt-web a.nt-forma .nt-forma-txt b,.nt-web a.nt-forma:link .nt-forma-txt b,
.nt-web a.nt-forma:visited .nt-forma-txt b,.nt-web a.nt-forma:hover .nt-forma-txt b,
.nt-web a.nt-forma:focus .nt-forma-txt b,.nt-web a.nt-forma:active .nt-forma-txt b{color:var(--nt-text);}
.nt-web a.nt-forma .nt-forma-txt span,.nt-web a.nt-forma:link .nt-forma-txt span,
.nt-web a.nt-forma:visited .nt-forma-txt span,.nt-web a.nt-forma:hover .nt-forma-txt span,
.nt-web a.nt-forma:focus .nt-forma-txt span,.nt-web a.nt-forma:active .nt-forma-txt span{color:var(--nt-muted);}

/* 3 · tarjeta blanca de .nt-puertas dentro de una seccion --deep */
.nt-web .nt-sec--deep .nt-puerta:not(.nt-puerta--media):not(.nt-puerta--honda) .nt-puerta-txt b{color:var(--nt-text);}
.nt-web .nt-sec--deep .nt-puerta:not(.nt-puerta--media):not(.nt-puerta--honda) .nt-puerta-txt span{color:var(--nt-muted);}

/* --- H11 · ficha real de menores embebida (30/08/2026) ------------
 * El alta de menores la hace ahora el WebApp de Cuadrante. Se embebe
 * dentro de la pagina para que el usuario no salga de torresnacho.com.
 * La altura es fija por tramo: la suficiente para que la ficha entre
 * entera y no aparezca un segundo scroll dentro del marco. El WebApp
 * pasa a dos columnas a partir de ~720px, por eso necesita menos. */
.nt-web .nt-ficha-web{margin:var(--nt-s6) 0 0;border:1px solid var(--nt-line);border-radius:var(--nt-r-mod);overflow:hidden;background:#0b1220;}
.nt-web .nt-ficha-marco{display:block;width:100%;border:0;height:1950px;}
@media (min-width:720px){ .nt-web .nt-ficha-marco{height:1400px;} }
@media (min-width:900px){ .nt-web .nt-ficha-web{max-width:900px;margin-left:auto;margin-right:auto;} }
.nt-web .nt-ficha-web + .nt-nota{margin-top:var(--nt-s3);}

/* --- H12 · legibilidad de tarjetas y encuadre de fotos (30/08/2026) ---
 * 1. Las tarjetas blancas dentro de secciones oscuras heredaban el
 *    texto claro de la seccion. En Entrena Plus el titulo del pack
 *    salia BLANCO SOBRE BLANCO (invisible) y el precio casi tampoco
 *    se leia. Se devuelven al color de texto NT.
 * 2. Las listas dentro de secciones oscuras salian en tinta oscura
 *    sobre navy (la disponibilidad de menores). Se aclaran, salvo
 *    dentro de una tarjeta blanca.
 * 3. Encuadre horizontal por fotografia en las tarjetas: varias fotos
 *    tienen el sujeto a la izquierda y al recortarlas a cuadrado o a
 *    4:5 quedaban descentradas. Solo afecta a tarjetas; no toca el
 *    hero ni los bloques Jugar y Academy, que ya tienen su anclaje. */

/* 1 · tarjeta blanca dentro de seccion oscura */
.nt-web .nt-sec--ink .nt-tarjeta,.nt-web .nt-sec--deep .nt-tarjeta,.nt-web .nt-cierre .nt-tarjeta{color:var(--nt-text);}
.nt-web .nt-sec--ink .nt-tarjeta h1,.nt-web .nt-sec--ink .nt-tarjeta h2,.nt-web .nt-sec--ink .nt-tarjeta h3,.nt-web .nt-sec--ink .nt-tarjeta h4,
.nt-web .nt-sec--deep .nt-tarjeta h1,.nt-web .nt-sec--deep .nt-tarjeta h2,.nt-web .nt-sec--deep .nt-tarjeta h3,.nt-web .nt-sec--deep .nt-tarjeta h4,
.nt-web .nt-cierre .nt-tarjeta h2,.nt-web .nt-cierre .nt-tarjeta h3{color:var(--nt-text);}
.nt-web .nt-sec--ink .nt-tarjeta .nt-p,.nt-web .nt-sec--deep .nt-tarjeta .nt-p{color:var(--nt-text);}
.nt-web .nt-sec--ink .nt-tarjeta .nt-precio,.nt-web .nt-sec--deep .nt-tarjeta .nt-precio{color:var(--nt-text);}
.nt-web .nt-sec--ink .nt-tarjeta .nt-precio small,.nt-web .nt-sec--deep .nt-tarjeta .nt-precio small{color:var(--nt-muted);}
.nt-web .nt-sec--ink .nt-tarjeta .nt-nota,.nt-web .nt-sec--deep .nt-tarjeta .nt-nota{color:var(--nt-muted);}

/* 1b · nota al pie sobre fondo oscuro (nt-nota sobre fondo oscuro) */
.nt-web .nt-sec--ink > .nt-container > .nt-nota,.nt-web .nt-sec--deep > .nt-container > .nt-nota,.nt-web .nt-hero--int > .nt-container > .nt-nota{color:#9db1c2;}

/* 2 · listas sobre fondo oscuro */
.nt-web .nt-sec--ink .nt-lista li,.nt-web .nt-sec--deep .nt-lista li,.nt-web .nt-hero--int .nt-lista li{color:#dbe6ee;}
.nt-web .nt-sec--ink .nt-tarjeta .nt-lista li,.nt-web .nt-sec--deep .nt-tarjeta .nt-lista li{color:var(--nt-text);}

/* 3 · encuadre horizontal por fotografia, solo en tarjetas */
.nt-web .nt-puerta .nt-ph--foto img[src*="gallery-2-min"],.nt-web .nt-forma .nt-ph--foto img[src*="gallery-2-min"],.nt-web .nt-galeria .nt-ph--foto img[src*="gallery-2-min"],
.nt-web .nt-puerta .nt-ph--foto img[src*="gallery-5-min"],.nt-web .nt-forma .nt-ph--foto img[src*="gallery-5-min"],.nt-web .nt-galeria .nt-ph--foto img[src*="gallery-5-min"],
.nt-web .nt-puerta .nt-ph--foto img[src*="gallery-7-min"],.nt-web .nt-forma .nt-ph--foto img[src*="gallery-7-min"],.nt-web .nt-galeria .nt-ph--foto img[src*="gallery-7-min"],
.nt-web .nt-puerta .nt-ph--foto img[src*="gallery-8-min"],.nt-web .nt-forma .nt-ph--foto img[src*="gallery-8-min"],.nt-web .nt-galeria .nt-ph--foto img[src*="gallery-8-min"],
.nt-web .nt-puerta .nt-ph--foto img[src*="nt-academy-cierre"],.nt-web .nt-forma .nt-ph--foto img[src*="nt-academy-cierre"],.nt-web .nt-galeria .nt-ph--foto img[src*="nt-academy-cierre"]{object-position:35% 45%;}

/* --- H13 · aire bajo el titular de los hero --ink (30/08/2026) ----
 * Cuatro paginas usan una seccion --ink como hero en vez de
 * .nt-hero--int: clases particulares, metodo NT, entrenar y nacho.
 * Ahi el h1.nt-display no tenia margen inferior y el parrafo de
 * entrada quedaba pegado al titular (hueco medido: 0 px, frente a
 * los 14 px de los hero --int). Se iguala. Solo espaciado: no
 * cambia tipografia, tamaño, color ni texto. */
.nt-web .nt-sec--ink > .nt-container > h1.nt-display{margin-bottom:var(--nt-s4);}


/* ===== H14 · legibilidad sobre fondo claro ===== */
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-pilar b{color:var(--nt-text);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-pilar span{color:var(--nt-muted);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-escalon b{color:var(--nt-text);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-escalon span{color:var(--nt-muted);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-escalon i{color:var(--nt-teal-deep);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-paso b{color:var(--nt-text);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-paso span{color:var(--nt-muted);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-paso i{color:var(--nt-teal-deep);}
.nt-web .nt-sec:not(.nt-sec--ink):not(.nt-sec--deep) .nt-fila span{color:var(--nt-muted);}

/* ===== H15 · el primer bloque nunca bajo la barra fija ===== */
.nt-web .nt-topbar + .nt-sec{padding-top:110px;}

/* ===== H16 · video dentro de los marcos de foto ===== */
.nt-web .nt-ph--foto video{width:100%;height:100%;object-fit:cover;display:block;background:var(--nt-ink-900);}
.nt-web .nt-jugar .nt-ph--foto video{object-position:50% 45%;}
.nt-web .nt-academy .nt-ph--foto video{object-position:50% 42%;}
@media (max-width:899px){
  .nt-web .nt-jugar .nt-ph--foto video{object-position:50% 50%;}
  .nt-web .nt-academy .nt-ph--foto video{object-position:50% 38%;}
}

/* ===== H17 · foto de clase en Escuela de Menores ===== */
.nt-web .nt-ph--menores{margin:var(--nt-s6) 0 0;aspect-ratio:16/9;max-width:820px;}
.nt-web .nt-ph--menores img{object-position:50% 35%;}
@media (max-width:899px){ .nt-web .nt-ph--menores{aspect-ratio:4/3;} .nt-web .nt-ph--menores img{object-position:55% 32%;} }

/* ===== H18 · los videos verticales se muestran completos ===== */
.nt-web .nt-ph--video{aspect-ratio:9/16;max-width:320px;margin-left:auto;margin-right:auto;background:var(--nt-ink-950);}
.nt-web .nt-ph--video video{object-fit:contain;object-position:50% 50%;}
@media (max-width:899px){
  .nt-web .nt-ph--video{aspect-ratio:9/16;max-width:300px;}
  .nt-web .nt-jugar .nt-ph--video video,
  .nt-web .nt-academy .nt-ph--video video{object-position:50% 50%;}
}

/* ===== H18b · especificidad para el marco vertical ===== */
.nt-web .nt-sec .nt-ph.nt-ph--video{aspect-ratio:9/16;max-width:320px;margin-left:auto;margin-right:auto;}
@media (max-width:899px){ .nt-web .nt-sec .nt-ph.nt-ph--video{aspect-ratio:9/16;max-width:300px;} }

/* ===== H19 · miniatura cuadrada de Escuela de Menores ===== */
.nt-web .nt-ph--menores-mini img{object-position:45% 50%;}

/* ===== H20 · marco de video robusto en Safari iOS =====
   Sin aspect-ratio, sin alturas en %, sin object-fit: el propio
   video define la altura del bloque con su relacion natural. */
.nt-web .nt-sec .nt-ph.nt-ph--video{
  display:block;
  aspect-ratio:auto;
  height:auto;
  min-height:0;
  padding:0;
  overflow:hidden;
  max-width:320px;
  margin-left:auto;
  margin-right:auto;
  background:var(--nt-ink-950);
}
.nt-web .nt-ph.nt-ph--video video{
  display:block;
  width:100%;
  height:auto;
  object-fit:fill;
  background:var(--nt-ink-950);
}
@media (max-width:899px){
  .nt-web .nt-sec .nt-ph.nt-ph--video{max-width:300px;}
}

/* ===== H20b · sin recorte ni esquinas en el contenedor del video =====
   Safari iOS tiene un fallo de repintado con overflow:hidden + radio
   + relacion de aspecto sobre elementos reemplazados. */
.nt-web .nt-sec .nt-ph.nt-ph--video{overflow:visible;border-radius:var(--nt-r-mod);}
.nt-web .nt-ph.nt-ph--video video{border-radius:var(--nt-r-mod);}

/* ===== H21 · la foto sostiene el hueco, el video se monta encima =====
   Asi el bloque nunca puede colapsar: la altura la da una imagen
   normal, y el video se superpone. Si Safari no pintara el video,
   se sigue viendo la foto en vez de un agujero. */
.nt-web .nt-ph.nt-ph--video{position:relative;}
.nt-web .nt-ph--video .nt-video-cartel{
  display:block;
  width:100%;
  height:auto;
  border-radius:var(--nt-r-mod);
}
.nt-web .nt-ph.nt-ph--video video{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:100%;
  border-radius:var(--nt-r-mod);
  background:transparent;
}
