/*
 * CABINA NEW WEB — v4 (WEB-02 + sistema tipográfico)
 * Referencia: ninjaforms.com — valores medidos con Playwright
 * Fuente: Niveau Grotesk (local)
 * Header: #3d83db. Footer: #2e2e2e. Texto: #424242.
 * Sin dependencia de design-system.css
 */

/* ─── Font ─────────────────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Niveau Grotesk';
  src: url('../fonts/niveau/niveau-light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Niveau Grotesk';
  src: url('../fonts/niveau/niveau-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Niveau Grotesk';
  src: url('../fonts/niveau/niveau-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ─── Reset mínimo ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 18px;
  -webkit-font-smoothing: auto;
}

/* Body — NF medido: 20px / 400 / line-height 34px (1.7) / color #424242 */
body {
  background: #ffffff;
  color: #424242;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.7;
  min-height: 100vh;
}

img, svg { display: block; max-width: 100%; }
/* Links — color azul Cabina como base */
a { color: #3d83db; text-decoration: none; }
a:hover { text-decoration: underline; }
button { cursor: pointer; font: inherit; border: none; background: none; }

/* ─── Tipografía base — medida en NF, adaptada a Cabina ────────────────────── */

/* h1: NF 54px / 400 / line-height 59.4px (1.1) */
h1 {
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 54px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: normal;
  color: #424242;
  margin-bottom: 0;
}

/* h2: NF 38px / 300 / line-height 60px (1.25) */
h2 {
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 38px;
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: normal;
  color: #424242;
  margin-bottom: 10px;
}

/* h3: 24px / 500 / line-height 1.25 */
h3 {
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: normal;
  color: #424242;
  margin-bottom: 12px;
}

/* h4: interpolado entre h3 y body (NF no mide h4 directamente) */
h4 {
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: normal;
  color: #424242;
  margin-bottom: 8px;
}

/* p: usa defaults de body (20px/300/1.7) */
p {
  font-weight: 300;
  line-height: 1.7;
  margin-bottom: 1em;
}

@media (max-width: 768px) {
  h1 { font-size: 36px; }
  h2 { font-size: 30px; }
  h3 { font-size: 24px; }
  h4 { font-size: 20px; }
  body { font-size: 18px; }
}

/* ─── Variables — Ninja Forms → Cabina ─────────────────────────────────────── */
:root {
  /* Header: azul Cabina #3d83db */
  --nw-header-bg:        #1f3a66;
  --nw-header-border:     rgba(0,0,0,0.08);
  --nw-link:              rgba(255,255,255,0.90);
  --nw-link-hover:        #ffffff;
  --nw-link-active-bg:    rgba(0,0,0,0.12);

  /* CTA: amarillo lima vivo (NF: lima → CP: #f5e635 amarillo) */
  --nw-cta-bg:            #f5e635;
  --nw-cta-hover:         #e8d800;
  --nw-cta-text:          #1a1a1a;

  /* Footer: valores medidos en NinjaForms */
  --nw-footer-bg:         #2e3030;            /* NF: rgb(46,48,48) exacto */
  --nw-footer-label:      #eceff7;            /* NF: rgb(236,239,247) — títulos columna */
  --nw-footer-link:       #9ca3b7;            /* NF: rgb(156,163,183) — links nav */
  --nw-footer-link-hover: #eceff7;            /* NF: mismo color que títulos */
  --nw-footer-border:     rgba(255,255,255,0.10);
  --nw-footer-bottom:     rgba(255,255,255,0.35); /* NF: rgba(255,255,255,0.35) */

  --nw-container:         1200px;
  --nw-header-h:          72px;  /* NF nav bar visual ~72px */

  /* ── Tipografía: escala base (Fase 1A) ── */
  --nw-font-base: 20px;   /* body base */
  --nw-font-m:   18px;   /* secciones y cuerpo secundario */
  --nw-font-s:   16px;   /* meta, labels, tablas */
  --nw-font-xs:  15px;   /* nav, breadcrumb, badges, paginación */
}

/* ── Tipografía: clases utilitarias ── */
.nw-text-m {
    font-size: var(--nw-font-m);
}

.nw-text-s {
    font-size: var(--nw-font-s);
}

/* ─── Layout utility ────────────────────────────────────────────────────────── */
.nw-container {
  width: 100%;
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   HEADER — rojo vivo estilo Ninja Forms
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--nw-header-bg);
  color: #ffffff;
}

.nw-header__inner {
  display: flex;
  align-items: center;
  gap: 28px;
  height: var(--nw-header-h);
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
}

/* Brand / logo — wordmark estilo NF: parte bold + parte regular */
.nw-brand:hover,
.nw-brand:focus { text-decoration: none; }
.nw-brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  color: #ffffff;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  gap: 0;
}
.nw-brand__heavy {
  font-weight: 800;
  color: #ffffff;
}
.nw-brand__light {
  font-weight: 400;
  color: rgba(255,255,255,0.88);
}
/* Ocultar SVG del header anterior si queda; usar marca textual */
.nw-brand__svg { display: none; }

/* Mini-icono avión en header — aparece al salir visual hero del viewport */
.nw-brand__icon-wrap {
  display: inline-flex;
  align-items: center;
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  margin-right: 0;
  flex-shrink: 0;
  transition: max-width 0.35s ease, opacity 0.35s ease, margin-right 0.35s ease;
}
.nw-brand__mini-icon {
  width: 72px;
  height: 60px;
  flex-shrink: 0;
  fill: currentColor;
  color: #ffffff;
}
.nw-hero-visual-passed .nw-brand__icon-wrap {
  max-width: 72px;
  opacity: 1;
  margin-right: 8px;
  overflow: hidden;
}
@media (max-width: 768px) {
  /* Logo mobile: SVG siempre visible, sin depender del scroll trigger */
  .nw-brand__icon-wrap {
    max-width: 72px;
    opacity: 1;
    margin-right: 8px;
    overflow: hidden;
  }
}

/* Header height transition: compacta al hacer scroll (mismo trigger que mini-icon) */
.nw-header__inner {
  transition: height 0.3s ease;
}
.nw-hero-visual-passed .nw-header__inner {
  height: 60px;
}

/* Desktop nav — al extremo derecho */
.nw-nav {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: auto;
  list-style: none;
}

/* Nav links — blanco 400 15px, sin pill (= NF) */
.nw-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 14px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--nw-link);
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  border-radius: 0;
  transition: color .15s, background .15s;
}
.nw-nav__link.is-active {
  color: var(--nw-link-hover);
}

/* Dropdown trigger */
.nw-nav__dropdown { position: relative; }
.nw-nav__dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 2px);
  right: 0;
  min-width: 180px;
  background: #ffffff;
  border-top: 3px solid var(--nw-header-bg);
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  padding: 6px 0;
  z-index: 910;
}
.nw-nav__dropdown:hover .nw-nav__dropdown-menu,
.nw-nav__dropdown:focus-within .nw-nav__dropdown-menu,
.nw-nav__dropdown-menu.is-open { display: block; }

.nw-nav__dropdown-item {
  display: block;
  padding: 9px 16px;
  font-size: 15px;
  font-weight: 500;
  color: #222222;
  text-decoration: none;
  transition: background .12s, color .12s;
}
.nw-nav__dropdown-item:hover,
.nw-nav__dropdown-item:focus {
  background: #f5f5f5;
  color: var(--nw-header-bg);
}

/* Actions group */
.nw-nav__actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 8px;
}

/* CTA header — pill NF: radius 50px, py 10px px 28px, 15px/700 */
.nw-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 28px;
  background: #3d83db;
  color: #ffffff !important;
  border-radius: 50px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: normal;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .15s;
}
.nw-cta:hover, .nw-cta:focus { background: #2e6fc4; color: #ffffff !important; }

/* Login icon */
.nw-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: rgba(255,255,255,0.65);
  background: transparent;
  border-radius: 50%;
  transition: color .15s, background .15s;
}
.nw-login:hover, .nw-login:focus {
  color: #ffffff;
  background: rgba(0,0,0,0.15);
}

/* Hamburger (mobile) */
.nw-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #ffffff;
  background: transparent;
  margin-left: auto;
  transition: background .15s;
}
.nw-hamburger[aria-expanded="true"] { background: rgba(0,0,0,0.15); }

/* ─── Mobile drawer ─────────────────────────────────────────────────────────── */

.nw-mnav {
  display: none;
  position: fixed;
  inset: var(--nw-header-h) 0 0 0;
  background: var(--nw-header-bg);
  overflow-y: auto;
  z-index: 800;
  padding: 12px 20px 40px;
  flex-direction: column;
  gap: 2px;
}
.nw-mnav.is-open { display: flex; }

/* Section label */
.cp-mnav__label {
  display: block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.70);
  padding: 16px 4px 6px;
}

/* Cards */
.cp-mnav__card {
  display: block;
  padding: 12px 14px;
  text-decoration: none;
  color: rgba(255,255,255,0.85);
  background: rgba(0,0,0,0.10);
  margin-bottom: 3px;
  border-radius: 2px;
  transition: background .15s;
}
.cp-mnav__card:hover, .cp-mnav__card:focus { background: rgba(0,0,0,0.18); color: #ffffff; }
.cp-mnav__card-title { display: block; font-size: 16px; font-weight: 600; color: #ffffff; }
.cp-mnav__card-desc { display: block; font-size: 16px; color: rgba(255,255,255,0.60); margin-top: 2px; line-height: 1.4; }

.cp-mnav__card--has-sub { padding: 0; }
.cp-mnav__card-trigger {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 12px 14px; background: rgba(0,0,0,0.10); color: rgba(255,255,255,0.85);
  text-align: left; border-radius: 2px; transition: background .15s;
}
.cp-mnav__card-trigger:hover { background: rgba(0,0,0,0.18); }
.cp-mnav__card-body { flex: 1; }
.cp-mnav__card-arrow { flex-shrink: 0; color: rgba(255,255,255,0.45); }
.cp-mnav__card-seeall {
  display: block; padding: 7px 14px 10px;
  font-size: 16px; font-weight: 500;
  color: var(--nw-cta-bg); text-decoration: none;
  border-top: 1px solid rgba(255,255,255,0.12);
}

/* Subpanel ciudades */
.cp-mnav__subpanel {
  display: none; position: fixed;
  inset: var(--nw-header-h) 0 0 0;
  background: #2f6bb8;
  overflow-y: auto; z-index: 810;
  padding: 12px 20px 40px;
  flex-direction: column; gap: 3px;
}
.cp-mnav__subpanel.is-open { display: flex; }
.cp-mnav__back {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 0; color: rgba(255,255,255,0.65); font-size: 16px; transition: color .15s;
}
.cp-mnav__back:hover { color: #ffffff; }
.cp-mnav__sub-title {
  display: block; font-size: 16px; font-weight: 700;
  color: #ffffff; padding: 8px 0 12px;
}
.cp-mnav__link {
  display: block; padding: 11px 14px; border-radius: 2px;
  text-decoration: none; font-size: 16px;
  color: rgba(255,255,255,0.80); background: rgba(0,0,0,0.10);
  margin-bottom: 3px; transition: background .15s, color .15s;
}
.cp-mnav__link:hover, .cp-mnav__link:focus { background: rgba(0,0,0,0.18); color: #ffffff; }

/* ═══════════════════════════════════════════════════════════════════════════════
   FOOTER — charcoal estilo Ninja Forms
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-footer {
  background: var(--nw-footer-bg);
  color: var(--nw-footer-link);
  padding-top: 56px;
}

.nw-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--nw-footer-border);
}

/* Marca */
.nw-footer__brand-name {
  display: block;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #ffffff;
  line-height: 1.1;
  margin-bottom: 6px;
}
.nw-footer__brand-tagline {
  display: block;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nw-footer-label);
  margin-bottom: 14px;
}
.nw-footer__brand-desc {
  font-size: 18px;
  line-height: 27.2px;
  font-weight: 400;
  color: rgba(255,255,255,0.65);
}

/* Etiquetas de sección — valores NF medidos: 20px/800/#eceff7/line-height 34px */
.nw-footer__col-label {
  font-weight: 800;
  line-height: 34px;
  letter-spacing: normal;
  text-transform: none;
  color: var(--nw-footer-label);
  margin-bottom: 16px;
}

/* Links columna — valores NF medidos: 16px/400/#9ca3b7/line-height 27.2px */
.nw-footer__col nav {
  display: grid;
  gap: 10px;
}
.nw-footer__col nav a {
  color: var(--nw-footer-link);
  text-decoration: none;
  font-size: 18px;
  font-weight: 400;
  line-height: 27.2px;
  letter-spacing: normal;
  transition: color .15s;
}
.nw-footer__col nav a:hover,
.nw-footer__col nav a:focus { color: var(--nw-footer-link-hover); text-decoration: none; }


/* Bottom bar — NF: 15px/400/rgba(255,255,255,0.35) */
.nw-footer__bottom {
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
  padding-top: 18px;
  padding-bottom: 22px;
}
.nw-footer__legal {
  font-size: var(--nw-font-s);
  font-weight: 400;
  color: var(--nw-footer-bottom);
}
.nw-footer__legal a {
  color: var(--nw-footer-bottom);
  text-decoration: none;
  transition: color .15s;
}
.nw-footer__legal a:hover { color: #eceff7; }

/* ═══════════════════════════════════════════════════════════════════════════════
   BOTONES — sistema NF: pill 50px, py 12px px 44px, 18px/700
   NF medido: yellow py12/px50/22px/700, blue py20/px44/24px/400 — adaptado a escala Cabina
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-btn {
  display: inline-block;
  padding: 12px 44px;
  background: #3d83db;
  color: #ffffff;
  font-family: 'Niveau Grotesk', Arial, Helvetica, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: normal;
  text-decoration: none;
  border: none;
  border-radius: 15px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.nw-btn:hover,
.nw-btn:focus {
  background: #2e6fc4;
  color: #ffffff;
  text-decoration: none;
}

/* Origen visual: ninjaforms.com/ home "View all add-ons" — medido con Playwright
   display:inline-block | font-size:20px | font-weight:400 | line-height:25px
   color:rgb(46,48,48) | border-bottom:3px solid → Cabina azul #3d83db (NF usa #ef4748)
   text-decoration:none | no pill | no fondo | no borde lateral */
.nw-inline-link {
  display: inline-block;
  font-weight: 400;
  line-height: 25px;
  color: #2e3030;
  text-decoration: none;
  border-bottom: 3px solid #3d83db;
  padding-bottom: 2px;
  transition: opacity .15s;
}
.nw-inline-link:hover,
.nw-inline-link:focus {
  opacity: 0.75;
  text-decoration: none;
}

/* NF "Download Ninja Forms": 24px/400 | py20 px44 | h73px desktop | h64px mobile
   Desktop: line-height:33px → 20+33+20+2=75px (≈NF 73px, delta 2px imperceptible)
   Mobile: override a 20px/lh1.3/py18px-px24px → 18+26+18+2=64px = NF exacto */
.nw-btn--blue {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 20px 44px;
  background: #3d83db;
  color: #ffffff;
  border: 1px solid #3177cf;
  border-radius: 15px;
  font-size: 24px;
  font-weight: 400;
  line-height: 33px;
  letter-spacing: -0.0125em;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.nw-btn--blue:hover,
.nw-btn--blue:focus {
  background: #2e6fc4;
  color: #ffffff;
  text-decoration: none;
}


/* ─── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 960px) {
  .nw-nav { display: none; }
  .nw-hamburger { display: inline-flex; }
}

@media (min-width: 961px) { .nw-nav.is-open { display: flex; } }

@media (max-width: 900px) {
  .nw-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 24px;
    padding-bottom: 36px;
  }
}
@media (max-width: 560px) {
  .nw-footer { padding-top: 40px; }
  .nw-footer__grid { grid-template-columns: 1fr; gap: 24px; }
}

body { scroll-padding-top: var(--nw-header-h); }

/* ═══════════════════════════════════════════════════════════════════════════════
   SECCIONES — patrón reutilizable NF
   NF medido: gap hero→H2 = 70px · sectionWrapPT = 100px · bg soft #eceff7 · bg white #fff
   H2: 48px/300/center/#424242 · lineH 60px · marginB 10px
   intro p: 20px/300/#6c6d6f · centrado
   Aplicable a cualquier URL — sin selectores específicos de página
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-section {
  padding: 20px 0 72px;
}
.nw-section--soft          { background: #eceff7; }
.nw-section--white         { background: #ffffff; }
.nw-section--soft-gradient { background-image: linear-gradient(155deg, #eceff7 0%, #ffffff 100%); }

.nw-section__inner {
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
}

.nw-section__head {
  text-align: center;
  max-width: 800px;
  margin-inline: auto;
  margin-bottom: 40px;
}

.nw-section__title {
  font-size: 48px;
  font-weight: 300;
  line-height: 1.25;
  color: #424242;
  margin-bottom: 10px;
}

.nw-section__intro {
  font-size: 24px;
  font-weight: 300;
  color: #6f7072;
  line-height: 1.5;
  max-width: 640px;
  margin-inline: auto;
  margin-bottom: 0;
}

/* ── Sección Directorio — patrón NF Add-ons (sidebar intro + 2×2 grid) ─────
   Ref: ninjaforms.com/add-ons/ — left 396px reviews | right 842px 2×2 cards
   Hover medido: bg→#fff + box-shadow rgba(0,0,0,0.22) 0px 2px 16px 0px ───── */
.nw-addon-layout {
  display: flex;
  gap: 0 56px;
  align-items: flex-start;
}
.nw-addon-aside {
  flex: 0 0 30%;
  max-width: 340px;
}
.nw-addon-aside__title {
  font-size: 24px;
  font-weight: 700;
  color: rgb(46, 48, 48);
  line-height: 1.3;
  margin: 0 0 16px;
}
.nw-addon-aside__text {
  font-size: var(--nw-font-m);
  font-weight: 400;
  color: rgb(108, 109, 111);
  line-height: 1.6;
  margin: 0 0 24px;
}
.nw-addon-aside__list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nw-addon-aside__list li {
  font-size: 18px;
  font-weight: 600;
  color: rgb(46, 48, 48);
  padding-left: 22px;
  position: relative;
  line-height: 1.4;
}
.nw-addon-aside__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #3d83db;
  font-weight: 700;
}
.nw-addon-grid {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.nw-addon-card {
  display: block;
  background: rgba(236, 239, 247, 0.5);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: background 0.18s ease, box-shadow 0.18s ease;
}
.nw-addon-card:hover {
  background: rgb(255, 255, 255);
  box-shadow: rgba(0, 0, 0, 0.22) 0px 2px 16px 0px;
  text-decoration: none;
}
.nw-addon-card:hover .nw-addon-card__title,
.nw-addon-card:hover .nw-addon-card__text,
.nw-addon-card:hover .nw-addon-card__city {
  text-decoration: none;
  color: inherit;
}
.nw-addon-card__banner {
  height: 100px;
  display: flex;
  align-items: center;
  padding: 0 20px;
}
.nw-addon-card__banner--1 { background: #1a2f50; }
.nw-addon-card__banner--2 { background: #3d83db; }
.nw-addon-card__banner--3 { background: #c85a1a; }
.nw-addon-card__banner--4 { background: #1e7a5a; }
.nw-addon-card__city {
  font-size: 28px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
}
.nw-addon-card__body {
  padding: 16px 20px 20px;
}
.nw-addon-card__title {
  font-size: 28px;
  font-weight: 800;
  color: rgb(46, 48, 48);
  line-height: 1.2;
  margin: 0 0 6px;
}
.nw-addon-card__text {
  font-size: var(--nw-font-m);
  color: rgb(66, 66, 66);
  line-height: 1.7;
  margin: 0;
}
/* Separador horizontal reutilizable; actualmente usado en Home entre bloques */
.nw-section-divider {
  border: none;
  border-top: 1px solid rgb(226, 230, 240);
  margin: 0;
}

/* ── Academia destacada del mes — patrón NF "Get Started for Free" ─────────────
   NF medido 1440px: H2 48px/300/lh60px/center/rgb(66,66,66) · subtitle 24px/300/lh36px/center
   2-col: left 580px / right 709px en contenedor 1288px (≈45%/55%) · PT:100px · bg:soft-gradient */
.nw-highlight-section {
  padding-top: 100px;
}
.nw-highlight__head {
  text-align: center;
  max-width: 880px;
  margin: 0 auto 64px;
}
.nw-highlight__h2 {
  font-size: 48px;
  font-weight: 300;
  line-height: 60px;
  color: rgb(66, 66, 66);
  margin: 0 0 10px;
}
.nw-highlight__intro {
  font-size: 24px;
  font-weight: 300;
  color: rgb(108, 109, 111);
  line-height: 36px;
  margin: 0 auto;
}
.nw-highlight__grid {
  display: flex;
  align-items: center;
  gap: 56px;
}
.nw-highlight__content {
  flex: 0 0 40%;
}
.nw-highlight__visual {
  flex: 1;
  min-width: 0;
  padding-left: 24px;
}
.nw-highlight__visual svg {
  width: 100%;
  height: auto;
  display: block;
}
.nw-highlight__kicker {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #3d83db;
  margin: 0 0 12px;
}
.nw-highlight__title {
  font-size: 34px;
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 1.25;
  margin: 0 0 28px;
}
.nw-highlight__modules {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0 0 32px;
}
.nw-highlight__module-title {
  font-weight: 700;
  color: rgb(46, 48, 48);
  margin: 0 0 4px;
  line-height: 1.3;
}
.nw-highlight__module-text {
  font-weight: 400;
  color: rgb(108, 109, 111);
  line-height: 1.6;
  margin: 0;
}

/* Split section — patrón NF "Grow On Your Terms" (ninjaforms.com/ home)
   Medido con Playwright: left 580px / right 709px en 1288px | wrapPT:100px | bg:white
   H2: 40px/300/lh:50px/left | lead:22px/300/lh:33px/rgb(108,109,111)
   sep: 3px×193px | body:18px/400/lh:27px/rgb(66,66,66)
   link:20px/400/rgb(46,48,48) | módulos:2×3, 354px cada uno, iconos FA-solid #ef4748 ~56px
   H3:22px/400/lh:27.5px/mb:8px | P:18px/400/lh:25.2px/rgb(113,113,113) */
.nw-split-section {
  display: flex;
  align-items: flex-start;
  gap: 0;
}
.nw-split-section__copy {
  flex: 0 0 45%;
  padding-right: 40px;
}
.nw-split-section__h2 {
  font-size: 40px;
  font-weight: 300;
  line-height: 50px;
  color: #424242;
  text-align: left;
  margin: 0 0 10px;
}
.nw-split-section__lead {
  font-size: 22px;
  font-weight: 300;
  line-height: 33px;
  color: rgb(108, 109, 111);
  margin: 0 0 24px;
}
.nw-split-section__sep {
  width: 193px;
  height: 3px;
  background: #3d83db;
  margin: 0 0 24px;
}
.nw-split-section__body {
  font-weight: 400;
  line-height: 27px;
  color: #424242;
  margin: 0 0 21px;
}
.nw-split-section__link {
  font-weight: 400;
  color: rgb(46, 48, 48);
  text-decoration: none;
  display: inline-block;
}
.nw-split-section__link:hover { text-decoration: underline; }
.nw-split-section__modules {
  flex: 1;
}
/* Feature modules: iconos de criterio dentro de bloques tipo cta/criterios; distinto de .nw-feature-grid */
.nw-feature-module-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.nw-feature-module {
  padding: 0 24px 40px;
}
.nw-feature-module-grid .nw-feature-module:nth-last-child(-n+2) {
  padding-bottom: 0;
}
.nw-feature-module__icon {
  margin-bottom: 12px;
}
.nw-feature-module__icon svg {
  width: 56px;
  height: 56px;
  display: block;
  fill: #3d83db;
}
.nw-feature-module__title {
  font-size: 22px;
  font-weight: 400;
  color: #424242;
  line-height: 27.5px;
  margin: 4px 0 8px;
}
.nw-feature-module__text {
  font-size: var(--nw-font-m);
  font-weight: 400;
  color: rgb(113, 113, 113);
  line-height: 25.2px;
  margin: 0;
}

/* Feature grid — patrón NF "Own Your Future with Ninja Forms" (ninjaforms.com/ home)
   Medido con Playwright: bg:#eceff7 | icono izquierda 48px, margin-right:16px
   H3:28px/400/rgb(46,48,48)/lh:35px/mb:8px | p:20px/300/rgb(66,66,66)/lh:28px
   layout: flex row, icon izquierda fijo, content flex-1, gap 48px×60px entre módulos */
/* Feature grid: cards de guías/recursos con icono + título + texto; distinto de .nw-feature-module */
.nw-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px 60px;
}
.nw-feature-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.nw-feature-icon {
  flex-shrink: 0;
  margin-right: 0;
  margin-bottom: 12px;
}
.nw-feature-icon svg {
  width: 48px;
  height: 48px;
  display: block;
  fill: #3d83db;
}
.nw-feature-content {
  flex: 1;
}
.nw-feature-title {
  font-size: 22px;
  font-weight: 400;
  color: rgb(46, 48, 48);
  line-height: 28px;
  margin: 0 0 8px;
}
.nw-feature-text {
  font-weight: 300;
  color: rgb(66, 66, 66);
  line-height: 28px;
  margin: 0 0 14px;
}

/* CTA band — patrón NF "Download Ninja Forms" (ninjaforms.com/ home)
   Medido con Playwright: bg:#eceff7 | PT:48px | PB:56px | flex row | gap implícito left:837/right:451 en 1288px
   H4:40px/300/rgb(66,66,66)/lh:50px/mb:10px | sub:22px/300/rgb(108,109,111)/lh:33px
   botón derecha: exacto a .nw-btn--blue (ya definido) */
.nw-cta-band {
  background: rgb(236, 239, 247);
  padding: 48px 0 56px;
}
.nw-cta-band__inner {
  display: flex;
  align-items: center;
  gap: 48px;
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
}
.nw-cta-band__content {
  flex: 1;
}
.nw-cta-band__title {
  font-size: 40px;
  font-weight: 300;
  color: rgb(66, 66, 66);
  line-height: 50px;
  margin: 0 0 10px;
}
.nw-cta-band__text {
  font-size: 22px;
  font-weight: 300;
  color: rgb(108, 109, 111);
  line-height: 33px;
  margin: 0;
}
.nw-cta-band__action {
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   FAQ — patrón NF Pricing "Frequently Asked Questions"
   NF medido: bg:#fff | H2:40px/800 centrado | intro:20px/400 | separador:3px solid #eceff7
   pregunta:24px/400/lh:40.8px | respuesta:18px/400/lh:28.8px | padding btn:16px 16px 16px 8px
   item abierto: bg gris claro ~#eceff7 | chevron ▼ → ▲ rotación CSS
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-faq {
  background: #ffffff;
  padding: 72px 0 80px;
}

.nw-faq__inner {
  max-width: 860px;
  margin-inline: auto;
  padding-inline: 24px;
}

.nw-faq__head {
  text-align: center;
  margin-bottom: 48px;
}

.nw-faq__title {
  font-size: 40px;
  font-weight: 700;
  color: rgb(66, 66, 66);
  line-height: 44px;
  margin: 0 0 16px;
}

.nw-faq__intro {
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 34px;
  margin: 0 0 21px;
  text-align: left;
}

.nw-faq__list {
  list-style: none;
  margin: 0 0 15px;
  padding: 0;
}

.nw-faq__item {
  border-bottom: 3px solid #eceff7;
}

.nw-faq__item:first-child {
  border-top: 3px solid #eceff7;
}

.nw-faq__item[open] > .nw-faq__question {
  background: #eceff7;
}

.nw-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 16px 16px 8px;
  cursor: pointer;
  list-style: none;
  font-size: 22px;
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 40.8px;
  user-select: none;
}

.nw-faq__question::-webkit-details-marker { display: none; }
.nw-faq__question::marker { display: none; }

.nw-faq__chevron {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  fill: rgb(66, 66, 66);
  transition: transform 0.2s ease;
}

.nw-faq__item[open] .nw-faq__chevron {
  transform: rotate(180deg);
}

.nw-faq__answer {
  padding: 0 24px 24px;
  font-size: var(--nw-font-m);
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 28.8px;
}

/* ── Bloque Trust / Referencias del sector — patrón NF "Trusted by" ─────────*/
.nw-trust {
  background: #eceff7;
  padding: 64px 0 72px;
}
.nw-trust__inner {
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
  text-align: center;
}
.nw-trust__title {
  font-size: 28px;
  font-weight: 300;
  color: rgb(66, 66, 66);
  line-height: 1.25;
  margin: 0 0 16px;
}
.nw-trust__sub {
  font-size: 18px;
  font-weight: 400;
  color: rgb(108, 109, 111);
  line-height: 28px;
  max-width: 680px;
  margin: 0 auto 48px;
}
.nw-trust__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 40px;
  margin-bottom: 32px;
}
.nw-trust__item {
  font-size: 22px;
  font-weight: 700;
  color: rgb(150, 152, 160);
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
}

/* Trust wordmarks — tira de logos tipográficos estilo NF "Trusted by" */
.nw-trust__wordmarks {
  display: flex;
  flex-direction: column;
  gap: 48px;
  opacity: 0.5;
  color: rgb(46, 48, 48);
  margin-top: 40px;
}
.nw-trust__wrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 48px;
}
.nw-trust__wm {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  color: inherit;
  line-height: 1;
}
.nw-trust__wm--aesa {
  font-size: 48px;
  font-weight: 800;
  letter-spacing: 0.1em;
  border-bottom: 2.5px solid currentColor;
  padding-bottom: 5px;
}
.nw-trust__wm--easa {
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 0.07em;
  border-bottom: 2px solid currentColor;
  padding-bottom: 4px;
  opacity: 0.82;
}
.nw-trust__wm--partcc {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.22em;
  padding: 8px 20px 8px 22px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  opacity: 0.75;
}
.nw-trust__wm--rgto {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  opacity: 0.82;
}
.nw-trust__wm--boe {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.04em;
  gap: 8px;
}
.nw-trust__wm-div {
  font-weight: 300;
  opacity: 0.4;
  letter-spacing: 0;
}
.nw-trust__wm--aero {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.03em;
  font-style: italic;
  opacity: 0.82;
}
@media (max-width: 768px) {
  .nw-trust { padding: 48px 0 56px; }
  .nw-trust__title { font-size: 22px; line-height: 30px; }
  .nw-trust__wordmarks { gap: 24px; margin-top: 28px; }
  .nw-trust__wrow { justify-content: center; gap: 16px 32px; }
  .nw-trust__wm--aesa { font-size: 32px; }
  .nw-trust__wm--easa { font-size: 27px; }
  .nw-trust__wm--partcc { font-size: 16px; letter-spacing: 0.16em; padding: 7px 14px 7px 16px; }
  .nw-trust__wm--rgto { font-size: 17px; }
  .nw-trust__wm--boe { font-size: 22px; }
  .nw-trust__wm--aero { font-size: 17px; }
}

/* Responsive secciones */
@media (max-width: 768px) {
  /* Header mobile — NF ref 75px; fijamos 72px y anulamos compactado (NF no compacta) */
  .nw-header__inner,
  .nw-hero-visual-passed .nw-header__inner { height: 72px; }
  .nw-section { padding: 48px 0 40px; }
  .nw-section__title { font-size: 32px; }
  .nw-section__intro { font-size: var(--nw-font-m); }
  .nw-section__head { margin-bottom: 28px; }
  .nw-addon-layout { flex-direction: column; gap: 36px 0; }
  .nw-addon-aside { flex: none; width: 100%; max-width: none; }
  .nw-addon-grid { grid-template-columns: 1fr; gap: 16px; }
  .nw-split-section { flex-direction: column; }
  .nw-split-section__copy { flex: none; width: 100%; padding-right: 0; margin-bottom: 32px; }
  .nw-split-section__modules { width: 100%; }
  .nw-feature-module-grid { grid-template-columns: 1fr; }
  /* En mobile (1 col) el nth-last-child(-n+2) desktop elimina pb en penúltimo → sin separación.
     Restaurar pb en todos salvo el último. */
  .nw-feature-module-grid .nw-feature-module:nth-last-child(-n+2) { padding-bottom: 40px; }
  .nw-feature-module-grid .nw-feature-module:last-child { padding-bottom: 0; }
  .nw-feature-grid { grid-template-columns: 1fr; gap: 36px; }
  /* Academia destacada del mes mobile */
  .nw-highlight-section { padding-top: 60px; }
  .nw-highlight__head { margin-bottom: 36px; }
  .nw-highlight__h2 { font-size: 38px; line-height: 47.5px; }
  .nw-highlight__intro { font-size: 18px; line-height: 28px; }
  .nw-highlight__grid { flex-direction: column; gap: 40px; }
  .nw-highlight__content { flex: none; width: 100%; }
  .nw-highlight__visual { width: 100%; padding-left: 0; }
  .nw-highlight__module-title { font-size: 65px; }
  /* Split section mobile — patrón NF "Grow On Your Terms" */
  /* FIX A: NF ref 38px/300/lh47.5px (medido Playwright 390/430) */
  .nw-split-section__h2 { font-size: 38px; line-height: 47.5px; }
  /* FIX B: NF módulos sin padding lateral en mobile — icono arranca en x=25px igual que NF */
  .nw-feature-module { padding-left: 0; padding-right: 0; }
  .nw-split-section__lead { font-size: 18px; line-height: 28px; }
  .nw-split-section__body { font-size: var(--nw-font-s); line-height: 26px; }
  /* FAQ mobile — question row más compacto */
  .nw-faq__question { font-size: 20px; line-height: 30px; }
  /* CTA band mobile */
  .nw-cta-band__inner { flex-direction: column; gap: 32px; text-align: center; }
  .nw-cta-band__title { font-size: 30px; line-height: 38px; }
  .nw-cta-band__text { font-size: 18px; }
  /* Botón blue mobile — NF medido 390px: 20px/400/lh18px/py18px-px22px/64px
     line-height: 1.3 → 26px → 18+26+18+2border = 64px (iguala NF) */
  .nw-btn--blue { font-size: 20px; line-height: 1.3; padding: 18px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   HOME HERO — patrón NF: bg header, 2 columnas flex, h1 blanco 54px, p blanco 24px/300
   NF medido: bg #ef4748, contenedor fluido px 76px, altura contenido ~440px, gap header=0
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Hero Home: sistema híbrido temporal.
   cp-home-* controla la estructura principal/desktop; nw-hero añade overrides mobile.
   No migrar ni eliminar cp-home-* sin QA visual completa del hero en todos los viewports. */

.cp-home-hero {
  background: #f4f6ff;
  padding: 80px 0;
}

.cp-home-hero__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 48px;
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
}

.cp-home-hero__copy {
  flex: 0 1 58%;
}

.cp-home-hero__visual {
  flex: 0 1 42%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cp-hero-avion {
  width: 100%;
  height: auto;
  max-width: 480px;
  display: block;
}
.cp-hero-avion--mobile { display: none; }

.cp-hero-tcp {
  height: min(52vh, 420px);
  width: auto;
  max-width: 100%;
  display: block;
}

.cp-home-hero h1 {
  margin-bottom: 24px;
}

.cp-home-hero p {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
  max-width: 560px;
  margin-bottom: 36px;
}

/* Botón hero: NF exacto — display:inline-block, 22px/700, line-height:37.4px, padding:12px 50px
   h real medido: 60px (12+37.4+12=61.4px); shadow rgba(0,0,0,0.38) 0px 5px 10px 0px
   Origen visual: ninjaforms.com/ hero "Get Ninja Forms Now!" */
.cp-home-hero .nw-btn {
  display: inline-block;
  background: #f2f061;
  color: #2e3030;
  font-size: 22px;
  line-height: 37.4px;
  padding: 12px 50px;
  box-shadow: rgba(0, 0, 0, 0.38) 0px 5px 10px 0px;
}
.cp-home-hero .nw-btn:hover,
.cp-home-hero .nw-btn:focus {
  background: #e8d800;
  color: #2e3030;
  box-shadow: rgba(0, 0, 0, 0.45) 0px 7px 14px 0px;
}

.cp-home-hero .cp-home-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}


/* Hero responsive LEGACY (.cp-home-hero) — pendiente migración completa a .nw-hero */
@media (max-width: 960px) {
  .cp-home-hero { padding: 60px 40px; }
  .cp-home-hero__inner { flex-direction: column; }
  .cp-home-hero__copy { text-align: center; }
  .cp-home-hero h1 { font-size: 40px; line-height: 1.1; }
  .cp-home-hero p { font-size: 20px; max-width: none; }
  .cp-home-hero .cp-home-actions { justify-content: center; }
  /* Visual bajo CTA en mobile — compact horizontal SVG, oculta versión desktop */
  .cp-home-hero__visual { display: flex; flex: none; width: 100%; justify-content: center; margin-top: 40px; }
  .cp-hero-avion--desktop { display: none; }
  .cp-hero-avion--mobile  { display: block; max-width: 320px; }
  .cp-hero-tcp { height: min(36vh, 280px); }
}
@media (max-width: 560px) {
  .cp-home-hero { padding: 48px 20px; }
  .cp-home-hero h1 { font-size: 40px; line-height: 44px; }
  .cp-home-hero p { font-size: 18px; line-height: 28px; }
  .cp-home-hero .nw-btn { width: 100%; box-sizing: border-box; text-align: center; }
}

/* ── .nw-hero — patrón reutilizable para heroes (override legacy .cp-home-hero en cascade) ── */
@media (max-width: 960px) {
  .nw-hero p { font-size: 22px; line-height: 1.25; max-width: none; }
}
@media (max-width: 560px) {
  .nw-hero { padding: 40px 20px; }
  .nw-hero p { font-size: 22px; line-height: 1.25; }
  /* Btn hero mobile: 18px/36px padding evita wrap en 302px contenedor */
  .nw-hero .nw-btn { font-size: 18px; line-height: 1.7; padding: 12px 36px; width: 100%; box-sizing: border-box; text-align: center; }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   EDITORIAL HERO — hero compacto para landings informativas
   Ref: NF Pricing (ninjaforms.com/pricing/) — medido: 381px alto / PT20/PB48
   H1 hereda global (54px/400 desktop · 36px mobile) — color override #ffffff
   Reusable: /como-ser-tcp/ /formacion-tcp/ /cuanto-dura-curso-tcp/ /precio-curso-tcp/
   ═══════════════════════════════════════════════════════════════════════════════ */

.nw-editorial-hero {
  background:#f4f6ff;
  padding: 48px 0;
}
.nw-editorial-hero__inner {
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
  display: flex;
  align-items: center;
  gap: 48px;
}
.nw-editorial-hero__copy {
  flex: 0 1 54%;
}
.nw-editorial-hero__visual {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.nw-editorial-hero__visual svg {
  width: 100%;
  height: auto;
  max-width: 460px;
  display: block;
}
.nw-editorial-hero__breadcrumb {
  font-size: var(--nw-font-xs);
  font-weight: 400;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 20px;
  line-height: 1.5;
}
.nw-editorial-hero__breadcrumb a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
}
.nw-editorial-hero__breadcrumb a:hover { color: #ffffff; }
.nw-editorial-hero h1 {
  margin-bottom: 0;
}
.nw-editorial-hero__lead {
  font-size: 22px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.5;
  max-width: 720px;
  margin-top: 16px;
  margin-bottom: 0;
}

/* ── TOC — barra navegación interna para páginas informativas largas ─────── */
.nw-toc {
  background: #eceff7;
  padding: 14px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.nw-toc__inner {
  max-width: var(--nw-container);
  margin-inline: auto;
  padding-inline: 24px;
  display: flex;
  align-items: center;
  gap: 8px 24px;
  flex-wrap: wrap;
}
.nw-toc__label {
  font-weight: 700;
  color: rgb(46, 48, 48);
  white-space: nowrap;
  margin-right: 8px;
}
.nw-toc__link {
  font-weight: 400;
  color: #3d83db;
  text-decoration: none;
  white-space: nowrap;
}
.nw-toc__link:hover { text-decoration: underline; }

/* ── Reading — área de lectura editorial larga ──────────────────────────── */
.nw-reading {
  max-width: 860px;
  margin-inline: auto;
  padding: 64px 24px 72px;
}
.nw-reading h2 {
  font-size: 32px;
  font-weight: 600;
  color: #424242;
  margin-top: 56px;
  margin-bottom: 16px;
  line-height: 1.25;
}
.nw-reading h2:first-child {
  margin-top: 0;
}
.nw-reading p {
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 1.7;
  margin-bottom: 1em;
}
.nw-reading ol,
.nw-reading ul {
  padding-left: 1.6em;
  margin-bottom: 1.2em;
}
.nw-reading li {
  font-weight: 400;
  color: rgb(66, 66, 66);
  line-height: 1.7;
  margin-bottom: 0.6em;
}
.nw-reading a { color: #3d83db; }
.nw-reading a:hover { text-decoration: underline; }
.nw-reading--wide { max-width: 860px; }
.nw-reading--tight-top { padding-top: 24px; }

/* ── Link nav — row centrado de links para navegación contextual ──────────── */
.nw-link-nav {
  display: flex;
  gap: 16px 40px;
  flex-wrap: wrap;
  justify-content: center;
}

/* Responsive — editorial patterns */
@media (max-width: 768px) {
  .nw-editorial-hero { padding: 36px 0 28px; }
  .nw-editorial-hero__inner { flex-direction: column; gap: 28px; }
  .nw-editorial-hero__copy { flex: none; width: 100%; }
  .nw-editorial-hero__visual { width: 100%; justify-content: center; }
  .nw-editorial-hero__visual svg { max-width: 260px; }
  .nw-editorial-hero__lead { font-size: 18px; }
  .nw-toc__inner { gap: 8px 16px; }
  .nw-reading { padding: 48px 24px 56px; }
  .nw-reading h2 { font-size: 26px; margin-top: 40px; }
  .nw-reading h2:first-child { margin-top: 0; }
  .nw-link-nav { flex-direction: column; align-items: center; gap: 16px; }
}

/* ── Page head — H1 centrado sin hero visual (referencia NinjaForms user-reviews) */
.nw-page-head { padding: 42px 24px 72px; text-align: center; }
.nw-page-head__inner { max-width: 840px; margin-inline: auto; }
.nw-page-head__breadcrumb { font-size: var(--nw-font-xs); font-weight: 400; color: rgba(66,66,66,0.50); margin: 0 0 20px; text-align: left; line-height: 1.5; }
.nw-page-head__breadcrumb a { color: rgba(66,66,66,0.50); text-decoration: none; }
.nw-page-head__breadcrumb a:hover { color: rgb(66,66,66); }
.nw-page-head__title { font-size: 52px; font-weight: 800; color: rgb(66,66,66); line-height: 1.1; margin: 0 0 24px; text-align: center; }
.nw-page-head__intro { font-size: var(--nw-font-base); font-weight: 400; color: rgba(66,66,66,0.72); line-height: 1.6; max-width: 680px; margin-inline: auto; text-align: center; }
/* Archive page-head — subtitle display size matching NF Blog (40px/300w desktop, 24px mobile) */
.nw-page-head--archive .nw-page-head__intro { font-size: 40px; font-weight: 300; line-height: 1.2; color: rgb(66,66,66); max-width: none; }
.nw-page-head__intro--lg { max-width: 760px; margin: 0 auto; color: #424242; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.35; font-weight: 400; }

@media (max-width: 768px) {
  .nw-page-head { padding: 48px 24px 24px; }
  .nw-page-head h1 { font-size: 38px; }
  .nw-page-head__intro { font-size: var(--nw-font-m); }
  .nw-page-head--archive .nw-page-head__intro { font-size: 24px; }
}

/* ── Calls list — lista de oportunidades reutilizable ────────────────────── */
.nw-calls-item { border: 1px solid rgba(0,0,0,0.09); border-radius: 8px; padding: 20px 24px; margin-bottom: 16px; }
.nw-calls-item__type { font-size: var(--nw-font-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #3d83db; display: block; margin-bottom: 6px; }
.nw-calls-item h3 {font-weight: 600;line-height: 1.3; margin: 0 0 8px; }
.nw-calls-item p {color: rgb(66,66,66); line-height: 1.6; margin: 0 0 10px; }
.nw-calls-item__meta {color: rgba(66,66,66,0.65); display: flex; flex-wrap: wrap; gap: 4px 16px; margin-bottom: 12px; }
.nw-calls-item__link { font-size: var(--nw-font-s); font-weight: 600; color: #3d83db; text-decoration: none; }
.nw-calls-item__link:hover { text-decoration: underline; }

/* ── Table — tabla editorial reusable con scroll controlado en mobile ─────── */
.nw-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nw-table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; color: rgb(66, 66, 66); }
.nw-table caption { font-size: 16px; font-weight: 600; text-align: left; color: rgba(66, 66, 66, 0.60); padding-bottom: 10px; caption-side: top; }
.nw-table th { font-size: 16px; font-weight: 700; color: rgb(46, 48, 48); text-align: left; padding: 10px 16px; border-bottom: 2px solid rgba(0, 0, 0, 0.12); white-space: nowrap; }
.nw-table td { font-size: 16px; padding: 12px 16px; border-bottom: 1px solid rgba(0, 0, 0, 0.07); vertical-align: top; }
.nw-table tr:last-child td { border-bottom: none; }
.nw-table tbody tr:hover td { background: rgba(61, 131, 219, 0.04); }
@media (max-width: 768px) {
  .nw-table th { padding: 8px 12px; }
  .nw-table td { padding: 10px 12px; }
}

/* ── Blog grid — cuadrícula uniforme de posts, sin destacado separado ─────── */
.nw-section--archive .nw-section__inner { max-width: 1288px; }
.nw-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* ── Post card — tarjeta plana sin borde ni sombra, imagen 3:2 arriba ──────── */
.nw-post-card { border: 4px solid rgba(0,0,0,0.09); overflow: hidden; }
.nw-post-card__media { aspect-ratio: 16 / 11; overflow: hidden; background: #eef1f8; }
.nw-post-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nw-post-card__fallback-svg { width: 100%; height: 100%; display: block; }
.nw-post-card__body { padding: 16px; }
.nw-post-card__meta { font-size: var(--nw-font-s); color: rgba(66,66,66,0.60); margin: 0 0 8px; }
.nw-post-card__title { font-size: 24px; font-weight: 600; color: #424242; line-height: 1.3; margin: 0 0 10px; }
.nw-post-card__title a { color: inherit; text-decoration: none; }
.nw-post-card__title a:hover { color: #3d83db; text-decoration: underline; }
.nw-post-card__excerpt { font-size: var(--nw-font-s); font-weight: 400; color: rgb(66,66,66); line-height: 1.7; margin: 0; }
.nw-post-card__link { font-weight: 700; color: #3d83db; text-decoration: none; display: inline-block; margin-top: 8px; }
.nw-post-card__link:hover { text-decoration: underline; }

/* ── Pagination — numerada centrada ──────────────────────────────────────── */
.nw-pagination { display: flex; justify-content: center; padding: 48px 24px; gap: 8px; flex-wrap: wrap; }
.nw-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid rgba(0,0,0,0.12); border-radius: 4px; font-size: var(--nw-font-xs); font-weight: 500; color: #424242; text-decoration: none; }
.nw-pagination .page-numbers.current { background: #3d83db; border-color: #3d83db; color: #ffffff; }
.nw-pagination .page-numbers:hover:not(.current) { border-color: #3d83db; color: #3d83db; }
.nw-pagination .page-numbers.dots { border: none; }

@media (max-width: 768px) {
  .nw-blog-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* ── Contact choices — opciones alargadas tipo NF Contact ───────────────── */
.cp-contact-choice-list { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.cp-contact-choice .cp-contact-choice__link { display: block; width: 100%; background: #3d83db; color: #fff; font-size: 20px; font-weight: 600; line-height: 1.3; padding: 18px 24px; border-radius: 4px; text-decoration: none; box-sizing: border-box; text-align: center; }
.cp-contact-choice .cp-contact-choice__link:hover,
.cp-contact-choice .cp-contact-choice__link:focus-visible,
.cp-contact-choice .cp-contact-choice__link:visited { background: #2a6abf; color: #fff; }

/* === ACADEMIAS TCP START === */

/* Variables scoped — no contaminan :root global */
.cp-academies-hub {
  --cp-blue-950: #102033;
  --cp-blue-900: #132a44;
  --cp-blue-800: #183c5c;
  --cp-blue-700: #225174;
  --cp-blue-100: #eaf3f8;
  --cp-muted:    #5d6b78;
  --cp-line:     #dbe3e8;
  --cp-radius:   22px;
  --cp-shadow-soft: 0 10px 30px rgba(16,32,51,.07);
  --cp-sort-line:   #deded8;
  --cp-sort-soft-2: #f8f7f3;
}

/* ── Hero azul scoped ────────────────────────────────────────────────────── */
.cp-academies-hub .nw-page-head {
  background:#f4f6ff;
}

.cp-academies-hub .nw-page-head__inner {
  max-width: 1180px;
  padding-inline: 24px;
  box-sizing: border-box;
}



/* ── Filtros sobre bloque gradiente ─────────────────────────────────────── */

/* cp-academy-search__cities a y labels: heredan color oscuro del sistema */

/* Contenedor scoped */
.cp-academies-hub .cp-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ── Sección filtros ─────────────────────────────────────────────────────── */
.cp-academies-hub .cp-academy-search {
  background: #fff;
  border: 1px solid #eceff7;
  box-shadow: 0 12px 30px rgba(16,32,51,.07);
  padding: 20px;
}

.cp-academies-hub .cp-academy-search__bar {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(150px,auto);
  gap: 12px;
  align-items: end;
}

.cp-academies-hub .cp-academy-search__field {
  display: flex;
  align-items: center;
  border: 1px solid #c8d3db;
  background: #fff;
  min-height: 46px;
  padding: 0 0 0 12px;
  overflow: hidden;
}

.cp-academies-hub .cp-academy-search__field:focus-within {
  border-color: #305ef3;
  outline: 2px solid rgba(48,94,243,.24);
}

.cp-academies-hub .cp-academy-search__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #6f6f6f;
  font-size: 18px;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  padding-right: 8px;
  pointer-events: none;
}

.cp-academies-hub .cp-academy-search__icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: #305ef3;
  flex-shrink: 0;
}

.cp-academies-hub .cp-academy-search__icon svg {
  display: block;
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.cp-academies-hub .cp-academy-search__select {
  flex: 1;
  min-height: 46px;
  border: none;
  background: transparent;
  padding: 0 4px 0 0;
  font: inherit;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.cp-academies-hub .cp-academy-search__arrow {
  display: inline-flex;
  align-items: center;
  padding: 0 10px 0 4px;
  color: #6f6f6f;
  pointer-events: none;
  flex-shrink: 0;
}

.cp-academies-hub .cp-academy-search__arrow svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.cp-academies-hub .cp-academy-search__button {
  min-height: 46px;
  white-space: nowrap;
  padding: 0 20px;
  font-size: 18px;
  font-weight: 700;
  border-radius: 12px;
  background: #f0f2f5;
  color: #102033;
  border: 1px solid #c8d3db;
}

.cp-academies-hub .cp-academy-search__button:hover,
.cp-academies-hub .cp-academy-search__button:focus {
  background: #e5e8ed;
  border-color: #9baab8;
}

/* Quicklinks ciudades */
.cp-academies-hub .cp-academy-search__cities {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
  align-items: center;
}

.cp-cities-label {
  color: #7b8794;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .06em;
  margin-right: 4px;
}

.cp-cities-sep {
  color: #c2cad4;
  font-weight: 400;
  margin: 0 3px;
}

.cp-academies-hub .cp-academy-search__cities a {
  font-size: 16px;
  font-weight: 700;
}

/* ── Sección resultados ──────────────────────────────────────────────────── */

/* ── Grid ────────────────────────────────────────────────────────────────── */
.cp-academies-hub .cp-academy-grid,
.cp-academies-hub .cp-directory-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  margin-top: 24px;
}

/* ── Cards ───────────────────────────────────────────────────────────────── */
.cp-academies-hub .cp-academy-card {
  background: #fff;
  border: 4px solid #eceff7;
  padding: 24px;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
}

.cp-academies-hub .cp-directory-list .cp-academy-card {
  position: relative;
}

/* Top: badge + trust */
.cp-directory-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}

/* Body */
.cp-directory-card__body h3 {
  margin: 0 0 8px;
  color: #102033;
  font-size: 18px;
  line-height: 1.2;
}

.cp-directory-card__rating {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #102033;
  font-size: 16px;
  margin: 0 0 10px;
}

.cp-directory-card__rating strong {
  font-size: 18px;
  letter-spacing: -.02em;
}

.cp-directory-card__rating span {
  color: #f2a600;
  letter-spacing: .02em;
}

.cp-directory-card__rating span:last-child {
  color: #6b7785;
  font-weight: 700;
}

.cp-directory-card__rating--empty span {
  color: #c7ced8;
}

.cp-directory-card__summary {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  margin: 0 0 12px;
}

.cp-directory-card__location {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
}

.cp-directory-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 2px;
}

.cp-directory-card__meta span {
  font-size: 18px;
  font-weight: 600;
}

/* SVG iconos de ubicación */
.cp-directory-location__icon {
  display: inline-flex;
  width: 15px;
  height: 15px;
  color: #305ef3;
  opacity: .78;
  flex-shrink: 0;
}

.cp-directory-location__icon svg {
  display: block;
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ── Badges ──────────────────────────────────────────────────────────────── */
.cp-directory-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: var(--nw-font-xs);
  font-weight: 850;
  line-height: 1;
}

.cp-directory-badge--info {
  background: #f3f5f8;
}

.cp-directory-badge--member {
  gap: 6px;
  background: #eef3ff;
  color: #244bd0;
}

.cp-member-badge__icon {
  display: inline-flex;
  width: 15px;
  height: 15px;
  color: #305ef3;
  flex-shrink: 0;
}

.cp-member-badge__icon svg {
  display: block;
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ── Trust ───────────────────────────────────────────────────────────────── */
.cp-directory-trust {
  display: inline-flex;
  align-items: center;
  width: max-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: var(--nw-font-xs);
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.cp-directory-trust--verified {
  background: #e8f7ef;
  color: #167348;
}

.cp-directory-trust--pending {
  background: #fff4d8;
  color: #8a5a00;
}

/* ── Card actions / botones ──────────────────────────────────────────────── */
.cp-academies-hub .cp-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #dbe3e8;
}

.cp-academies-hub .cp-btn--academy-standard {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 12px;
  min-height: 46px;
  padding: 0 18px;
  font: inherit;
  font-size: 18px;
  font-weight: 850;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  background: #EEEAFD;
  border: 1px solid #EEEAFD;
  color: #477ffc;
  box-shadow: none;
}

.cp-academies-hub .cp-btn--academy-standard:hover,
.cp-academies-hub .cp-btn--academy-standard:focus {
  background: #e3def8;
  border-color: #d8d0f5;
  color: #244bd0;
}

.cp-academies-hub .cp-btn--academy-premium {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 12px;
  min-height: 46px;
  padding: 0 18px;
  font: inherit;
  font-size: 18px;
  font-weight: 850;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  background: #305ef3;
  border: 1px solid #305ef3;
  color: #fff;
  box-shadow: none;
}

.cp-academies-hub .cp-btn--academy-premium:hover,
.cp-academies-hub .cp-btn--academy-premium:focus {
  background: #244bd0;
  border-color: #244bd0;
  color: #fff;
}

/* ── Paginación ──────────────────────────────────────────────────────────── */
.cp-academies-hub .cp-directory-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin: 44px 0 26px;
}

.cp-academies-hub .cp-directory-pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #eef2f7;
  color: #5d6b78;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
}

.cp-academies-hub .cp-directory-pagination__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.cp-academies-hub .cp-directory-pagination__item--active {
  background: #102033;
  color: #fff;
}

/* ── Secciones de contenedor ─────────────────────────────────────────────── */
.cp-academies-hub .cp-section {
  padding: 48px 0;
}

.cp-academies-hub .cp-section--tight {
  padding: 28px 0;
}

/* ── Responsive tablet ───────────────────────────────────────────────────── */
@media (max-width: 960px) {
  .cp-academies-hub .cp-academy-grid,
  .cp-academies-hub .cp-directory-list {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* ── Responsive mobile ───────────────────────────────────────────────────── */
@media (max-width: 620px) {
  .cp-academies-hub .cp-academy-grid,
  .cp-academies-hub .cp-directory-list {
    grid-template-columns: 1fr;
  }

  .cp-academies-hub .cp-academy-search {
    padding: 16px;
    border-radius: 14px;
  }

  .cp-academies-hub .cp-academy-search__bar {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .cp-academies-hub .cp-academy-search__button {
    width: 100%;
  }

  .cp-academies-hub .cp-directory-pagination {
    gap: 8px;
    margin: 36px 0 22px;
  }

  .cp-academies-hub .cp-directory-pagination__item {
    width: 38px;
    height: 38px;
  }

  .cp-cities-sep {
    display: none;
  }

  .cp-cities-label {
    width: 100%;
    margin-bottom: 4px;
  }

  .cp-card-actions {
    display: grid;
  }

  .cp-academies-hub .cp-btn--academy-standard,
  .cp-academies-hub .cp-btn--academy-premium {
    width: 100%;
  }
}

/* === ACADEMIAS TCP END === */

/* === FICHA ACADEMIA START === */

/* Microfase A+B — Estructura base + topline/sidebar/datos desde producción (M10J). Solo lectura producción.
   Variables scoped (no :root): hardcodeadas desde valores reales de production :root.
   !important en cp-context-nav: replicado de producción.
   Regla muerta eliminada: .cp-profile-v3-hero .cp-lead (no existe en HTML local dentro del hero). */

/* Variables scoped — NO en :root */
.cp-academies-profile{--cp-max:1180px;--cp-muted:#5d6b78;--cp-line:#dbe3e8;--cp-v4-sort-soft-2:#f8f7f3;--cp-radius-sm:14px;--cp-mist:#f5f7f8;--cp-blue-950:#102033;--cp-blue-900:#132a44;--cp-blue-800:#183c5c}

/* ─── Microfase A — Contenedor / base ─── */
.cp-academies-profile .cp-main{background:#f8f7f3;color:#171412}
.cp-academies-profile .cp-context-nav{display:none!important}
.cp-academies-profile .cp-container{max-width:1180px;margin:0 auto;padding:0 24px}
/* Breadcrumb: usa clase del patrón padre /academias-tcp/ (nw-page-head__breadcrumb).
   Override de posicionamiento + color sin opacidad (global usa rgba(66,66,66,.50) → aquí rgb(66,66,66)). */
.cp-academies-profile .nw-page-head__breadcrumb{max-width:1180px;margin-left:auto;margin-right:auto;padding:18px 24px 0;color:rgb(66,66,66)}
.cp-academies-profile .nw-page-head__breadcrumb a{color:rgb(66,66,66)}

/* Sheet */
.cp-academies-profile .cp-profile-v3-body{padding:0}
.cp-academies-profile .cp-profile-v3-sheet{background:#fff;border:1px solid rgba(70,63,57,.15);box-shadow:0 12px 28px -18px rgba(15,13,10,.28);overflow:hidden;margin:24px 0}

/* Hero */
.cp-academies-profile .cp-profile-v3-hero{background:#3d83db;color:#fff;overflow:hidden}
.cp-academies-profile .cp-profile-v3-hero__inner{padding:60px 36px}
.cp-academies-profile .cp-profile-v3-hero__copy{max-width:920px;margin-inline:auto;text-align:center}
.cp-academies-profile .cp-profile-v3-hero h1{max-width:880px;margin:0 0 14px;color:#fff;line-height:1.04;letter-spacing:-.065em}

/* Anchor nav */
.cp-academies-profile .cp-profile-v3-anchor-nav{display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0 36px;background:#f8f7f3;color:#5f5750;line-height:1.35;border-bottom:1px solid rgba(70,63,57,.09);position:relative;justify-content:center}
.cp-academies-profile .cp-profile-v3-anchor-nav a{display:inline-flex;align-items:center;gap:6px;padding:12px 0;color:#171412;text-decoration:none;font-weight:700}
.cp-academies-profile .cp-profile-v3-anchor-nav a+a{margin-left:30px;padding-left:30px;border-left:1px solid rgba(70,63,57,.18)}
.cp-academies-profile .cp-profile-v3-anchor-nav svg{width:15px;height:15px;display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.72}
.cp-academies-profile .cp-profile-v3-logo-placeholder{display:flex;align-items:center;justify-content:center;width:60px;height:60px;flex-shrink:0;background:#fff;border:1.5px dashed rgba(70,63,57,.28);border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.14);position:absolute;left:36px;top:-20px}

/* ─── Microfase B — Topline / sidebar / datos ─── */

/* Topline grid */
.cp-academies-profile .cp-profile-v3-topline{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0;align-items:stretch;border-bottom:1px solid rgba(70,63,57,.12)}
.cp-academies-profile .cp-profile-v3-topline .cp-profile-v3-section{border-bottom:0}

/* Sections base */
.cp-academies-profile .cp-profile-v3-section{padding:30px 25px;border-bottom:1px solid rgba(70,63,57,.12)}
.cp-academies-profile .cp-profile-v3-section:last-child{border-bottom:0}
.cp-academies-profile .cp-profile-v3-section>h2{margin:0 0 18px;color:#171412;line-height:1.2;letter-spacing:-.025em;font-weight:760}
.cp-academies-profile .cp-profile-v3-section h3{margin:20px 0 8px;color:#171412;line-height:1.25}
.cp-academies-profile .cp-profile-v3-section p,.cp-academies-profile .cp-profile-v3-section li{color:#554e48;line-height:1.66}
.cp-academies-profile .cp-profile-v3-section ul{padding-left:20px;margin:8px 0 0}
.cp-academies-profile .cp-profile-v3-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px}
.cp-academies-profile .cp-profile-v3-section-head>h2{margin:0;font-weight:760}

/* Badges / estado membresía */
.cp-academies-profile .cp-profile-v3-member-badges{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.cp-academies-profile .cp-profile-v3-member-badges .cp-premium-member{display:inline-flex;align-items:center;gap:7px;margin:0;padding:4px 0;border:0;background:transparent;color:#244bd0;font-size:16px;font-weight:820;letter-spacing:.02em;box-shadow:none;line-height:1}
.cp-academies-profile .cp-profile-v3-member-badges .cp-premium-member__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#eef3ff;color:#244bd0;flex:0 0 auto}
.cp-academies-profile .cp-profile-v3-member-badges .cp-member-badge{display:inline-flex;align-items:center;gap:5px;border:0;background:#e8f7ef;color:#167348;padding:5px 9px;border-radius:999px;font-size:16px;font-weight:820;letter-spacing:.02em;line-height:1;white-space:nowrap}
.cp-academies-profile .cp-profile-v3-member-badges .cp-premium-member svg,.cp-academies-profile .cp-profile-v3-member-badges .cp-member-badge svg{width:13px;height:13px;display:block;flex:0 0 auto;margin:0;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.cp-academies-profile .cp-profile-v3-member-badges .cp-profile-status-wrap{display:flex;align-items:center;gap:6px}
.cp-academies-profile .cp-profile-v3-member-badges .cp-profile-info-note{font-weight:600;letter-spacing:.03em}

/* Data list — scoped, vars hardcodeadas desde producción */
.cp-academies-profile .cp-data-list{display:grid;grid-template-columns:170px 1fr;gap:0;border:1px solid #dbe3e8;overflow:hidden;background:#fff}
.cp-academies-profile .cp-data-list dt,.cp-academies-profile .cp-data-list dd{margin:0;padding:13px 16px;border-bottom:1px solid #dbe3e8}
.cp-academies-profile .cp-data-list dt{background:#f5f7f8;font-weight:800;color:#102033}
.cp-academies-profile .cp-data-list dd{background:#fff}
.cp-academies-profile .cp-data-list dt:last-of-type,.cp-academies-profile .cp-data-list dd:last-of-type{border-bottom:0}

/* Action card — base flex + v3 override que elimina bordes/bg (producción ll.668-678 + 5251-5253) */
.cp-academies-profile .cp-profile-action-card{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid #c8d3db;border-top:5px solid #132a44;border-radius:18px;padding:24px;box-shadow:0 18px 40px rgba(16,32,51,.12)}
.cp-academies-profile .cp-profile-action-card h2{margin:0;color:#102033;font-size:24px;line-height:1.15}
.cp-academies-profile .cp-profile-action-card p{margin:0;color:#5d6b78}
.cp-academies-profile .cp-profile-v3-body .cp-profile-action-card,.cp-academies-profile .cp-profile-v3-topline .cp-profile-action-card{position:static;top:auto;align-self:stretch;background:transparent;color:#102033;border:0;border-radius:0;box-shadow:none;padding:30px}
.cp-academies-profile .cp-profile-v3-body .cp-profile-action-card h2,.cp-academies-profile .cp-profile-v3-topline .cp-profile-action-card h2{color:#102033;margin-bottom:8px}
.cp-academies-profile .cp-profile-v3-body .cp-profile-action-card p,.cp-academies-profile .cp-profile-v3-topline .cp-profile-action-card p{color:#5d6b78;font-size:16px}

/* Actions stacked */
.cp-academies-profile .cp-actions--stacked{display:grid;gap:10px;margin-top:4px}

/* Botones — base cp-btn (producción l.118; sin variables, valores planos) */
.cp-academies-profile .cp-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:12px 18px;font-weight:750;text-decoration:none;border:1px solid transparent}
/* Botones — directory variants (scoped, vars hardcodeadas) */
.cp-academies-profile .cp-btn--directory-primary,.cp-academies-profile .cp-btn--directory-secondary{border-radius:12px;min-height:46px;font-weight:850;letter-spacing:.01em}
.cp-academies-profile .cp-btn--directory-primary{background:#305ef3;color:#fff;border-color:#305ef3;box-shadow:0 12px 24px rgba(48,94,243,.22)}
.cp-academies-profile .cp-btn--directory-primary:hover,.cp-academies-profile .cp-btn--directory-primary:focus{background:#244bd0;border-color:#244bd0;color:#fff}
.cp-academies-profile .cp-btn--directory-secondary{background:#fff;color:#102033;border-color:#bfcbd4}
.cp-academies-profile .cp-btn--directory-secondary:hover{border-color:#183c5c;color:#183c5c}
.cp-academies-profile .cp-btn--contact-primary{text-align:center;justify-content:center}

/* Reviews score button */
.cp-academies-profile .cp-btn--reviews-score{display:grid;grid-template-columns:1fr;align-items:center;justify-content:center;gap:7px;min-height:86px;padding:22px 16px;background:#fff;border:1px solid #dbe3ef;border-radius:12px;color:#102033;text-align:center;box-shadow:0 14px 30px rgba(16,32,51,.09)}
.cp-academies-profile .cp-btn--reviews-score:hover,.cp-academies-profile .cp-btn--reviews-score:focus{background:#f8fafc;border-color:#c9d4e2;color:#102033}
.cp-academies-profile .cp-review-cta-score{color:#102033;font-size:30px;font-weight:950;line-height:.95;letter-spacing:-.045em}
.cp-academies-profile .cp-review-cta-score span{margin-left:2px;color:#425466;font-size:17px;font-weight:850;letter-spacing:-.02em}
.cp-academies-profile .cp-review-cta-detail{display:grid;gap:4px;min-width:0;text-align:center}
.cp-academies-profile .cp-review-cta-detail strong{color:#f2a600;font-size:17px;letter-spacing:.08em;line-height:1;text-shadow:0 1px 0 rgba(16,32,51,.08)}
.cp-academies-profile .cp-review-cta-detail small{color:#305ef3;font-size:16px;font-weight:850;line-height:1.2;text-decoration:underline;text-underline-offset:2px}

/* ─── Microfase C — Lead-zone / Mapa / Formación+Precios ─── */

/* Lead-zone — M15-FIX-12; padding-right 356px de producción reserva espacio para sidebar en su layout */
.cp-academies-profile .cp-profile-v3-lead-zone{padding:24px 356px 0 36px}
.cp-academies-profile .cp-profile-v3-lead-zone .cp-lead{line-height:1.6;margin:0}
/* Lead expandable "Ver más" — M15-FIX-14 */
.cp-academies-profile .cp-profile-v3-lead-zone .cp-lead--clamped{max-height:7.5em;overflow:hidden;position:relative}
.cp-academies-profile .cp-profile-v3-lead-zone .cp-lead--clamped::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2.5em;background:linear-gradient(transparent,#fff);pointer-events:none}
.cp-lead-toggle{display:inline-block;background:none;border:none;padding:0;margin:6px 0 0;color:#305ef3;text-decoration:underline;font-size:15px;line-height:1.5;cursor:pointer;font-family:inherit}
.cp-lead-toggle:hover{color:#244bd0}

/* Mapa / Localización */
.cp-academies-profile .cp-profile-v3-map{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);gap:26px;align-items:start}
.cp-academies-profile .cp-profile-v3-map iframe{width:100%;height:285px;border:0;border-radius:10px}
.cp-academies-profile .cp-profile-v3-map address{font-style:normal;color:#554e48;line-height:1.58;display:block;margin:6px 0 14px}
.cp-academies-profile .cp-profile-v3-map h3{margin:0 0 4px;color:#171412;font-weight:760}

/* Training block — accordion; JS controla clase .cp-training-open */
.cp-academies-profile .cp-profile-v3-training-block{display:block;margin-top:18px}
.cp-academies-profile .cp-profile-v3-training-item{display:block;padding:0;border-bottom:15px solid rgba(70,63,57,.02);gap:0}
.cp-academies-profile .cp-profile-v3-training-item:last-child{border-bottom:0}
.cp-academies-profile .cp-profile-v3-training-item h3{display:flex;width:100%;align-items:center;gap:10px;padding:16px 20px;line-height:1.25;font-weight:700;color:#171412;cursor:pointer;user-select:none;margin:0;box-sizing:border-box}
.cp-academies-profile .cp-profile-v3-training-item h3 .cp-v3-icon-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;background:#f0ede9;border-radius:50%;flex-shrink:0}
.cp-academies-profile .cp-profile-v3-training-item h3 .cp-v3-icon-badge svg{width:16px;height:16px;fill:none;stroke:#1b1917;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:1}
.cp-academies-profile .cp-profile-v3-training-item h3::after{content:'';display:block;width:20px;height:20px;min-width:20px;margin-left:auto;flex-shrink:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23463f39' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;transition:transform .2s ease}
.cp-academies-profile .cp-profile-v3-training-item.cp-training-open h3::after{transform:rotate(180deg)}
.cp-academies-profile .cp-profile-v3-training-item>p,.cp-academies-profile .cp-profile-v3-training-item>div p{max-width:760px;margin:0;color:#3f3832}
.cp-academies-profile .cp-profile-v3-training-item>p,.cp-academies-profile .cp-profile-v3-training-item>div{display:none;padding:4px 20px 20px}
.cp-academies-profile .cp-profile-v3-training-item.cp-training-open>p,.cp-academies-profile .cp-profile-v3-training-item.cp-training-open>div{display:block}
.cp-academies-profile .cp-profile-v3-training-value{display:inline-flex;width:max-content;max-width:100%;padding:4px 0;color:#171412;font-weight:760}
.cp-academies-profile .cp-profile-v3-training-item--price{background:transparent;align-items:flex-start}

/* Price rows */
.cp-academies-profile .cp-profile-v3-price-row{display:grid;grid-template-columns:minmax(0,260px) auto;column-gap:40px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(70,63,57,.08)}
.cp-academies-profile .cp-profile-v3-price-row:last-child{border-bottom:0}
.cp-academies-profile .cp-profile-v3-price-row strong{color:#3f3832;font-weight:680}
.cp-academies-profile .cp-profile-v3-price-row span{white-space:nowrap}

/* ─── Microfase D1 — Reviews/Opiniones ─── */

/* Directory reviews wrapper (producción l.790) */
.cp-academies-profile .cp-directory-reviews{background:#fff;padding:56px 0}

/* Stars — color producción l.904; scoped para no contaminar listado */
.cp-academies-profile .cp-stars{color:#c28a15;letter-spacing:.06em;white-space:nowrap}

/* Reviews head — grid 2 col (producción l.912) */
.cp-academies-profile .cp-reviews-head{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:stretch;margin-bottom:24px}
.cp-academies-profile .cp-reviews-head h2{margin:0 0 10px;color:var(--cp-blue-950);line-height:1.12;letter-spacing:-.025em;font-weight:760}
.cp-academies-profile .cp-reviews-head p{max-width:760px;margin:0}

/* Reviews summary base (producción l.930) */
.cp-academies-profile .cp-reviews-summary{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:20px;border:1px solid #d1dbe2;border-radius:16px;background:#fff;box-shadow:0 14px 30px rgba(16,32,51,.08)}
.cp-academies-profile .cp-reviews-summary strong{color:var(--cp-blue-950);font-size:28px;line-height:1}
/* Reviews summary score variant (producción ll.4674-4722) */
.cp-academies-profile .cp-reviews-summary--score{padding:0;background:transparent;border:0;box-shadow:none;text-align:left}
.cp-academies-profile .cp-reviews-summary--score strong{display:block;color:#102033;font-size:48px;font-weight:950;line-height:.92;letter-spacing:-.055em}
.cp-academies-profile .cp-reviews-summary--score strong span{margin-left:3px;color:#425466;font-size:24px;font-weight:850;letter-spacing:-.02em}
.cp-academies-profile .cp-reviews-summary--score .cp-stars{display:inline-flex;margin-top:10px;color:#f2a600;font-size:20px;letter-spacing:.09em;line-height:1}
.cp-academies-profile .cp-reviews-summary--score a{display:inline-flex;margin-left:10px;color:#305ef3;font-weight:850;text-decoration:underline;text-underline-offset:2px}
.cp-academies-profile .cp-reviews-summary--score small{display:block;margin-top:9px;font-weight:750}

/* Contribute CTA (producción l.1110) */
.cp-academies-profile .cp-review-contribute{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:24px;border-radius:18px;background:linear-gradient(135deg,#fff,#eef3f6)}
.cp-academies-profile .cp-review-contribute h3{margin:0 0 6px;color:var(--cp-blue-950);line-height:1.15}
.cp-academies-profile .cp-review-contribute p{margin:0;color:var(--cp-muted)}

/* Review cards detailed — producción design-system.css */
.cp-academies-profile .cp-review-cards--detailed{display:grid;gap:16px;margin-top:26px}
.cp-academies-profile .cp-review-card--detailed{display:grid;grid-template-columns:minmax(180px,.34fr) minmax(0,1fr) minmax(150px,.24fr);gap:24px;align-items:start;padding:22px;background:#fff;border:1px solid #dbe3ef;border-radius:22px;box-shadow:none}
.cp-academies-profile .cp-review-card__person{display:flex;gap:12px;align-items:center}
.cp-academies-profile .cp-review-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#102033;color:#fff;font-size:13px;font-weight:900}
.cp-academies-profile .cp-review-card__person strong{display:block;color:#102033;font-size:16px;line-height:1.2}
.cp-academies-profile .cp-review-card__person small{display:block;margin-top:3px;color:#7b8794;font-size:16px;line-height:1.35}
.cp-academies-profile .cp-review-card__body{min-width:0}
.cp-academies-profile .cp-review-verified{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;color:#102033;font-size:16px;font-weight:850}
.cp-academies-profile .cp-review-verified::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#edf3ff;color:#305ef3;font-size:12px}
.cp-academies-profile .cp-review-card__body p{margin:0;color:#425466;font-size:15px;line-height:1.65}
.cp-academies-profile .cp-review-card__rating{display:grid;gap:8px;justify-items:center;padding:16px 14px;border-left:1px solid #e2e8f0;color:#102033;text-align:center}
.cp-academies-profile .cp-review-card__rating strong{color:#102033;font-size:18px;font-weight:850;line-height:1;letter-spacing:-.02em}
.cp-academies-profile .cp-review-card__rating .cp-stars{color:#f2a600;font-size:15px;letter-spacing:.08em}
@media(max-width:900px){
  .cp-academies-profile .cp-review-card--detailed{grid-template-columns:1fr;gap:16px}
  .cp-academies-profile .cp-review-card__rating{justify-items:start;border-left:0;border-top:1px solid #e2e8f0;padding:16px 0 0;text-align:left}
}
@media(max-width:560px){
  .cp-academies-profile .cp-review-card--detailed{padding:18px;border-radius:18px}
}

/* Responsive — Microfase A+B+C */
@media(max-width:980px){
  .cp-academies-profile .cp-profile-v3-topline{grid-template-columns:1fr}
  .cp-academies-profile .cp-profile-v3-topline .cp-profile-action-card{border-left:0;border-top:1px solid rgba(70,63,57,.12)}
  .cp-academies-profile .cp-data-list{grid-template-columns:1fr}
  .cp-academies-profile .cp-data-list dt{border-bottom:0}
  .cp-academies-profile .cp-data-list dd{border-bottom:1px solid #dbe3e8}
  .cp-academies-profile .cp-profile-v3-map{grid-template-columns:1fr}
  .cp-academies-profile .cp-reviews-head{grid-template-columns:1fr}
  .cp-academies-profile .cp-review-contribute{display:grid}
}
@media(max-width:640px){
  .cp-academies-profile .cp-container{padding:0 18px}
  .cp-academies-profile .cp-profile-v3-hero__inner{padding:28px 20px}
  .cp-academies-profile .cp-profile-v3-hero{background:#fff;color:#102033}
  .cp-academies-profile .cp-profile-v3-hero h1{color:#102033;margin-bottom:8px}
  .cp-academies-profile .cp-profile-v3-anchor-nav{display:none}
  .cp-academies-profile .cp-profile-v3-sheet{margin:0 -24px;border-radius:0}
  .cp-academies-profile .cp-profile-v3-topline .cp-profile-action-card{padding:22px 20px}
  .cp-academies-profile .cp-actions--stacked{gap:16px}
  .cp-academies-profile .cp-btn--reviews-score{margin-bottom:8px;min-height:78px}
  .cp-academies-profile .cp-profile-v3-section-head{align-items:flex-start;flex-direction:column;gap:10px}
  .cp-academies-profile .cp-profile-v3-member-badges{justify-content:flex-start}
  .cp-academies-profile .cp-profile-v3-lead-zone{padding:16px 20px 0}
  .cp-academies-profile .cp-profile-v3-price-row{grid-template-columns:1fr;row-gap:2px;column-gap:0}
  .cp-academies-profile .cp-profile-v3-map iframe{height:220px}
  .cp-academies-profile .cp-profile-v3-training-item h3{padding:14px 16px}
  .cp-academies-profile .cp-profile-v3-training-item>p,.cp-academies-profile .cp-profile-v3-training-item>div{padding:4px 16px 16px}
}
@media(max-width:560px){
  .cp-academies-profile .cp-profile-v3-sheet{margin:0 -18px}
  .cp-academies-profile .cp-reviews-summary{border-radius:14px}
  .cp-academies-profile .cp-reviews-summary--score strong{font-size:42px}
  .cp-academies-profile .cp-review-contribute{border-radius:14px}
  .cp-academies-profile .cp-review-contribute .cp-btn{width:100%}
}
@media(max-width:420px){
  .cp-academies-profile .cp-profile-v3-sheet{margin:0 -16px}
}

/* ─── Sticky CTA footer (producción ll.5338-5353; M15-FIX-22) ─── */
.cp-academies-profile .cp-sticky-cta{position:fixed;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -2px 16px rgba(16,32,51,.10);z-index:999;padding:12px 24px;padding-bottom:calc(12px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease}
.cp-academies-profile .cp-sticky-cta.cp-sticky-cta--visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.cp-academies-profile .cp-sticky-cta__inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:20px;justify-content:space-between}
.cp-academies-profile .cp-sticky-cta__text{display:flex;flex-direction:column;gap:2px}
.cp-academies-profile .cp-sticky-cta__text strong{font-size:16px;font-weight:700;color:#102033;line-height:1.3}
.cp-academies-profile .cp-sticky-cta__text span{font-size:16px;line-height:1.4}
.cp-academies-profile .cp-sticky-cta__btn{white-space:nowrap;flex-shrink:0;padding:8px 20px;font-weight:650;min-height:0}
@media(max-width:640px){
  .cp-academies-profile .cp-sticky-cta{padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .cp-academies-profile .cp-sticky-cta__text{display:none}
  .cp-academies-profile .cp-sticky-cta__btn{width:auto;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;justify-content:center}
}
/* Footer clearance — evita que contenido quede bajo el sticky */
body.cp-academies-profile:has(.cp-sticky-cta) .cp-footer{padding-bottom:80px}
@media(max-width:640px){
  body.cp-academies-profile:has(.cp-sticky-cta) .cp-footer{padding-bottom:72px}
}

/* --- Popup contacto academia START --- */

/* Scroll lock al abrir modal (producción l.4842; aplicado en html, fuera de body scope) */
html.cp-modal-open{overflow:hidden}

/* Modal base (producción ll.4843-4855) */
.cp-academies-profile .cp-academy-contact-modal[hidden]{display:none}
.cp-academies-profile .cp-academy-contact-modal{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:24px}
.cp-academies-profile .cp-academy-contact-modal__overlay{position:absolute;inset:0;background:rgba(16,32,51,.58);backdrop-filter:blur(5px)}
.cp-academies-profile .cp-academy-contact-modal__dialog{position:relative;width:min(960px,100%);max-height:min(86vh,820px);overflow:auto;background:#fff;border:1px solid #dbe3ef;border-radius:30px;box-shadow:0 28px 90px rgba(16,32,51,.32);outline:none}
.cp-academies-profile .cp-academy-contact-modal__close{position:absolute;top:16px;right:16px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #dbe3ef;border-radius:50%;background:#f8fafc;color:#102033;font-size:25px;line-height:1;cursor:pointer}
.cp-academies-profile .cp-academy-contact-modal__close:hover,.cp-academies-profile .cp-academy-contact-modal__close:focus{border-color:#305ef3;color:#305ef3}
.cp-academies-profile .cp-academy-contact-modal__content{display:grid;grid-template-columns:minmax(260px,.42fr) minmax(0,1fr);gap:0}
.cp-academies-profile .cp-academy-contact-modal__intro{padding:34px 30px;background:#f8fafc;border-right:1px solid #dbe3ef}
.cp-academies-profile .cp-academy-contact-modal__intro h2{margin:8px 0 12px;color:#102033;line-height:1.02;letter-spacing:-.045em}
.cp-academies-profile .cp-academy-contact-modal__intro p{margin:0;color:#425466;line-height:1.65}
.cp-academies-profile .cp-academy-contact-modal__intro ul{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.cp-academies-profile .cp-academy-contact-modal__intro li{position:relative;padding-left:20px;color:#5d6b78;line-height:1.5}
.cp-academies-profile .cp-academy-contact-modal__intro li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:#305ef3}

/* Formulario contacto (producción l.4856; !important en __check replicados de producción) */
.cp-academies-profile .cp-academy-contact-form{padding:34px 30px 28px}
.cp-academies-profile .cp-academy-contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.cp-academies-profile .cp-academy-contact-form label{display:grid;gap:7px;color:#102033;font-size:16px;font-weight:800}
.cp-academies-profile .cp-academy-contact-form__wide{grid-column:1/-1}
.cp-academies-profile .cp-academy-contact-form input,.cp-academies-profile .cp-academy-contact-form select,.cp-academies-profile .cp-academy-contact-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;color:#102033;font:inherit}
.cp-academies-profile .cp-academy-contact-form textarea{min-height:112px;resize:vertical}
.cp-academies-profile .cp-academy-contact-form input:focus,.cp-academies-profile .cp-academy-contact-form select:focus,.cp-academies-profile .cp-academy-contact-form textarea:focus{outline:2px solid rgba(48,94,243,.2);border-color:#305ef3}
.cp-academies-profile .cp-academy-contact-form__check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;margin-top:16px;color:#425466!important;font-size:16px!important;font-weight:650!important;line-height:1.45}
.cp-academies-profile .cp-academy-contact-form__check input{width:18px;min-width:18px;height:18px;min-height:18px;margin-top:1px;accent-color:#305ef3}
.cp-academies-profile .cp-academy-contact-form__footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}
.cp-academies-profile .cp-academy-contact-form__footer .cp-btn{min-width:170px}
.cp-academies-profile .cp-academy-contact-form__footer small{max-width:360px;color:#7b8794;font-size:12px;line-height:1.45}

/* Responsive popup (producción ll.4857-4858) */
@media(max-width:820px){
  .cp-academies-profile .cp-academy-contact-modal{align-items:end;padding:14px}
  .cp-academies-profile .cp-academy-contact-modal__dialog{width:100%;max-height:92vh;border-radius:24px}
  .cp-academies-profile .cp-academy-contact-modal__content{grid-template-columns:1fr}
  .cp-academies-profile .cp-academy-contact-modal__intro{padding:28px 22px 22px;border-right:0;border-bottom:1px solid #dbe3ef}
  .cp-academies-profile .cp-academy-contact-form{padding:24px 22px}
  .cp-academies-profile .cp-academy-contact-form__footer{align-items:stretch;flex-direction:column}
  .cp-academies-profile .cp-academy-contact-form__footer .cp-btn{width:100%}
}
@media(max-width:560px){
  .cp-academies-profile .cp-academy-contact-modal{padding:0}
  .cp-academies-profile .cp-academy-contact-modal__dialog{max-height:100vh;max-height:100dvh;border-radius:22px 22px 0 0}
  .cp-academies-profile .cp-academy-contact-modal__close{top:12px;right:12px}
  .cp-academies-profile .cp-academy-contact-form__grid{grid-template-columns:1fr}
  .cp-academies-profile .cp-academy-contact-modal__intro{padding-top:30px}
}

/* --- Popup contacto academia END --- */

/* === FICHA ACADEMIA END === */

/* === CONTACTO MODAL START === */

/* Justificación: mismo HTML que modal de ficha academia pero body scope es cp-contact-page, no cp-academies-profile. html.cp-modal-open ya es global arriba. */

/* Modal base */
.cp-contact-page .cp-academy-contact-modal[hidden]{display:none}
.cp-contact-page .cp-academy-contact-modal{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:24px}
.cp-contact-page .cp-academy-contact-modal__overlay{position:absolute;inset:0;background:rgba(16,32,51,.58);backdrop-filter:blur(5px)}
.cp-contact-page .cp-academy-contact-modal__dialog{position:relative;width:min(960px,100%);max-height:min(86vh,820px);overflow:auto;background:#fff;border:1px solid #dbe3ef;border-radius:30px;box-shadow:0 28px 90px rgba(16,32,51,.32);outline:none}
.cp-contact-page .cp-academy-contact-modal__close{position:absolute;top:16px;right:16px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #dbe3ef;border-radius:50%;background:#f8fafc;color:#102033;font-size:25px;line-height:1;cursor:pointer}
.cp-contact-page .cp-academy-contact-modal__close:hover,.cp-contact-page .cp-academy-contact-modal__close:focus{border-color:#305ef3;color:#305ef3}
.cp-contact-page .cp-academy-contact-modal__content{display:grid;grid-template-columns:minmax(260px,.42fr) minmax(0,1fr);gap:0}
.cp-contact-page .cp-academy-contact-modal__intro{padding:34px 30px;background:#f8fafc;border-right:1px solid #dbe3ef}
.cp-contact-page .cp-academy-contact-modal__intro h2{margin:8px 0 12px;color:#102033;line-height:1.02;letter-spacing:-.045em}
.cp-contact-page .cp-academy-contact-modal__intro p{margin:0;color:#425466;line-height:1.65}
.cp-contact-page .cp-academy-contact-modal__intro ul{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.cp-contact-page .cp-academy-contact-modal__intro li{position:relative;padding-left:20px;color:#5d6b78;line-height:1.5}
.cp-contact-page .cp-academy-contact-modal__intro li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:#305ef3}

/* Formulario */
.cp-contact-page .cp-academy-contact-form{padding:34px 30px 28px}
.cp-contact-page .cp-academy-contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.cp-contact-page .cp-academy-contact-form label{display:grid;gap:7px;color:#102033;font-size:16px;font-weight:800}
.cp-contact-page .cp-academy-contact-form__wide{grid-column:1/-1}
.cp-contact-page .cp-academy-contact-form input,.cp-contact-page .cp-academy-contact-form select,.cp-contact-page .cp-academy-contact-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;color:#102033;font:inherit}
.cp-contact-page .cp-academy-contact-form textarea{min-height:112px;resize:vertical}
.cp-contact-page .cp-academy-contact-form input:focus,.cp-contact-page .cp-academy-contact-form select:focus,.cp-contact-page .cp-academy-contact-form textarea:focus{outline:2px solid rgba(48,94,243,.2);border-color:#305ef3}
.cp-contact-page .cp-academy-contact-form__check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;margin-top:16px;color:#425466!important;font-size:16px!important;font-weight:650!important;line-height:1.45}
.cp-contact-page .cp-academy-contact-form__check input{width:18px;min-width:18px;height:18px;min-height:18px;margin-top:1px;accent-color:#305ef3}
.cp-contact-page .cp-academy-contact-form__footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}
.cp-contact-page .cp-academy-contact-form__footer .cp-btn{min-width:170px}
.cp-contact-page .cp-academy-contact-form__footer small{max-width:360px;color:#7b8794;font-size:12px;line-height:1.45}

/* Responsive */
@media(max-width:820px){
  .cp-contact-page .cp-academy-contact-modal{align-items:end;padding:14px}
  .cp-contact-page .cp-academy-contact-modal__dialog{width:100%;max-height:92vh;border-radius:24px}
  .cp-contact-page .cp-academy-contact-modal__content{grid-template-columns:1fr}
  .cp-contact-page .cp-academy-contact-modal__intro{padding:28px 22px 22px;border-right:0;border-bottom:1px solid #dbe3ef}
  .cp-contact-page .cp-academy-contact-form{padding:24px 22px}
  .cp-contact-page .cp-academy-contact-form__footer{align-items:stretch;flex-direction:column}
  .cp-contact-page .cp-academy-contact-form__footer .cp-btn{width:100%}
}
@media(max-width:560px){
  .cp-contact-page .cp-academy-contact-modal{padding:0}
  .cp-contact-page .cp-academy-contact-modal__dialog{max-height:100vh;max-height:100dvh;border-radius:22px 22px 0 0}
  .cp-contact-page .cp-academy-contact-modal__close{top:12px;right:12px}
  .cp-contact-page .cp-academy-contact-form__grid{grid-template-columns:1fr}
  .cp-contact-page .cp-academy-contact-modal__intro{padding-top:30px}
}

/* === CONTACTO MODAL END === */
