/* =========================================================
   FLYWITHUS — Salient + Elementor parent theme overrides
   Carga DESPUÉS de toda otra hoja de estilos (priority deps).
   v2: forzando paddings de secciones + colores de headings.
   ========================================================= */

/* === BODY DARK MODE === */
body.fw-template,
body.fw-template-home,
body.fw-template-carrera,
body.fw-template-modulos {
  background: #0A0A0A !important;
  color: #FAFAF9 !important;
  font-family: 'Nunito Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* === SALIENT WRAPPERS — TODOS DARK === */
body.fw-template #ajax-content-wrap,
body.fw-template .container-wrap,
body.fw-template #page,
body.fw-template #wrap,
body.fw-template .body-border-top,
body.fw-template .body-border-bottom,
body.fw-template .body-border-left,
body.fw-template .body-border-right,
body.fw-template .nectar-fancy-border,
body.fw-template > div {
  background: #0A0A0A !important;
}

/* === OCULTAR HEADER/FOOTER NATIVOS DE SALIENT === */
body.fw-template #header-outer,
body.fw-template #header-secondary-outer,
body.fw-template #page-header-bg,
body.fw-template .page-header-no-bg,
body.fw-template #ajax-loading-screen,
body.fw-template #search-outer,
body.fw-template #footer-outer,
body.fw-template #footer-widgets,
body.fw-template .body-border-tag {
  display: none !important;
}

body.fw-template #ajax-content-wrap {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body.fw-template .nav { z-index: 1000 !important; }

/* === MODAL Z-INDEX FIX — debe estar SOBRE el nav (que está en 1000) === */
body.fw-template .fw-modal { z-index: 9999 !important; }
body.fw-template .fw-modal__close { z-index: 10000 !important; }
body.fw-template .mobile-menu { z-index: 9000 !important; }

/* === FONT FAMILY — fuerza Nunito Sans en form elements (Salient los pisa) === */
body.fw-template input,
body.fw-template textarea,
body.fw-template select,
body.fw-template button,
body.fw-template label,
body.fw-template option,
body.fw-template optgroup,
body.fw-template fieldset,
body.fw-template legend,
body.fw-template strong,
body.fw-template em,
body.fw-template b,
body.fw-template i,
body.fw-template a,
body.fw-template span,
body.fw-template p,
body.fw-template li,
body.fw-template table,
body.fw-template thead,
body.fw-template tbody,
body.fw-template tfoot,
body.fw-template tr,
body.fw-template th,
body.fw-template td,
body.fw-template dt,
body.fw-template dd,
body.fw-template dl,
body.fw-template figure,
body.fw-template figcaption,
body.fw-template blockquote,
body.fw-template .fw-form,
body.fw-template .fw-form *,
body.fw-template .fw-pay *,
body.fw-template .mobile-menu * {
  font-family: 'Nunito Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
}

/* Asegurar inputs hereden bien el font-family base */
body.fw-template .fw-field input,
body.fw-template .fw-field select,
body.fw-template .fw-field textarea {
  font-family: 'Nunito Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
  font-size: 14px !important;
}

/* === HEADINGS COLORS — Salient pone headings en navy por default === */
body.fw-template h1,
body.fw-template h2,
body.fw-template h3,
body.fw-template h4,
body.fw-template h5,
body.fw-template h6,
body.fw-template .t-display,
body.fw-template .t-h1,
body.fw-template .t-h2,
body.fw-template .t-h3 {
  color: #FAFAF9 !important;
  font-family: 'Nunito Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
}

/* Heading specifics que ya tenían su color en el kit */
body.fw-template .hero__title,
body.fw-template .cta-final__title,
body.fw-template .continuity__title,
body.fw-template .reel__title,
body.fw-template .spec__title,
body.fw-template .feat__title,
body.fw-template .plan__title,
body.fw-template .gloss__name,
body.fw-template .facility__title,
body.fw-template .fleet3-card__title,
body.fw-template .tnode__name,
body.fw-template .instr-card__name,
body.fw-template .intl-strip__title,
body.fw-template .exp-quote blockquote p,
body.fw-template .dossier__list dd,
body.fw-template .boarding__step,
body.fw-template .specs-nav__counter .now,
body.fw-template .fw-form__title {
  color: #FAFAF9 !important;
}

/* t-light: peso ligero, blanco */
body.fw-template .t-light {
  color: #FFFFFF !important;
  font-weight: 300 !important;
  display: inline !important;
  opacity: 0.78 !important;
}

/* t-accent: gradient navy */
body.fw-template .t-accent {
  display: inline !important;
  font-weight: 900 !important;
  background: linear-gradient(180deg, #4A78C9 0%, #1B3A6B 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* t-grad: white solid */
body.fw-template .t-grad {
  color: #FFFFFF !important;
  font-weight: 900 !important;
  display: inline !important;
}

/* === BODY COPY DEFAULTS === */
body.fw-template p,
body.fw-template li {
  color: var(--fg-2, rgba(250, 250, 249, 0.72)) !important;
}
body.fw-template strong { color: #FFFFFF !important; }

/* === LINKS === */
body.fw-template a {
  color: inherit;
  text-decoration: none;
}

/* === SECTION PADDINGS — Salient resetea section padding ===
   Sin !important para que inline-styles intencionales (ej. padding-top:64px en
   secciones bridge) puedan sobrescribir. Cargamos última así igual ganamos a Salient. */
body.fw-template .section {
  padding: clamp(80px, 12vw, 160px) 0;
  position: relative;
}
body.fw-template .section--tight { padding: clamp(56px, 8vw, 100px) 0; }
body.fw-template .section--light {
  background: var(--off-white, #FAFAF9) !important;
  color: var(--black, #0A0A0A) !important;
}

/* === HERO === */
body.fw-template .hero {
  min-height: 100vh !important;
  padding: 120px 0 64px !important;
  position: relative !important;
}
body.fw-template .hero--compact {
  min-height: auto !important;
  padding: 200px 0 80px !important;
}

/* === CONTINUIDAD === */
body.fw-template .continuity {
  padding: clamp(120px, 16vw, 200px) 0 !important;
  position: relative !important;
  isolation: isolate;
  overflow: hidden;
}

/* === CTA FINAL === */
body.fw-template .cta-final {
  padding: clamp(80px, 11vw, 140px) 0 !important;
  position: relative !important;
  isolation: isolate;
  overflow: hidden;
  background: var(--bg, #0A0A0A) !important;
  border-top: 1px solid var(--line, rgba(255,255,255,0.08));
}

/* === REEL === */
body.fw-template .reel {
  padding: clamp(56px, 8vw, 104px) 0 clamp(28px, 4vw, 56px) !important;
}

/* === SPECS SLIDER === */
body.fw-template .specs-slider { margin-top: 56px; }

/* === A320 CINE === */
body.fw-template .cine {
  padding: clamp(120px, 18vw, 220px) 0 !important;
  position: relative !important;
  isolation: isolate;
  overflow: hidden;
}

/* === TRUST === */
body.fw-template .trust {
  padding: 32px 0 !important;
  border-top: 1px solid var(--line, rgba(255,255,255,0.08));
  border-bottom: 1px solid var(--line, rgba(255,255,255,0.08));
}

/* === RESET MARGIN/PADDING DE SALIENT EN SECTION/ARTICLE === */
body.fw-template main,
body.fw-template article {
  margin: 0;
  padding: 0;
}
body.fw-template *,
body.fw-template *::before,
body.fw-template *::after {
  box-sizing: border-box;
}

/* === IMÁGENES === */
body.fw-template img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* === BREADCRUMBS DE YOAST OCULTOS === */
body.fw-template .breadcrumbs,
body.fw-template .yoast-breadcrumb { display: none !important; }

/* === ADMIN BAR FIX === */
body.fw-template.admin-bar .nav { top: 32px; }
@media screen and (max-width: 782px) {
  body.fw-template.admin-bar .nav { top: 46px; }
}

/* === PARRAFOS VACÍOS QUE ELEMENTOR INYECTA === */
body.fw-template p:empty { display: none; }

/* === CONTAINER (algunos themes lo redefinen) === */
body.fw-template .container {
  max-width: var(--container, 1280px) !important;
  margin: 0 auto !important;
  padding: 0 var(--pad, clamp(20px, 4vw, 40px)) !important;
  width: 100% !important;
}

/* === GLOSARIO (modulos) — Salient sobrescribe <article> defaults === */
body.fw-template .gloss-grid {
  display: grid !important;
  gap: 16px !important;
  margin-top: 56px !important;
  grid-template-columns: repeat(4, 1fr) !important;
}
@media (max-width: 959px) {
  body.fw-template .gloss-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 599px) {
  body.fw-template .gloss-grid { grid-template-columns: 1fr !important; }
}
body.fw-template .gloss {
  background: #171717 !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
  padding: 24px 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin: 0 !important;
  transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1), border-color 320ms cubic-bezier(0.16, 1, 0.3, 1);
}
body.fw-template .gloss:hover {
  border-color: rgba(255, 255, 255, 0.16) !important;
  transform: translateY(-4px);
}
body.fw-template .gloss__sigla {
  font-size: clamp(28px, 3vw, 38px) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
  color: #1B3A6B !important;
  display: block !important;
}
body.fw-template .gloss__name {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  margin: 4px 0 0 !important;
}
body.fw-template .gloss__desc {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: rgba(250, 250, 249, 0.72) !important;
  margin: 0 !important;
}

/* === Cards genéricos: feat, plan, fleet3-card, facility — refuerzo === */
body.fw-template .feat,
body.fw-template .plan,
body.fw-template .fleet3-card {
  background: #171717 !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
}
body.fw-template .feat-grid {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr);
  gap: 1px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}
body.fw-template .feat {
  background: #0A0A0A !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 36px 32px 40px !important;
  grid-column: span 6;
}
@media (max-width: 960px) {
  body.fw-template .feat { grid-column: span 12 !important; }
}
body.fw-template .plans {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
  margin-top: 56px !important;
}
@media (max-width: 859px) {
  body.fw-template .plans { grid-template-columns: 1fr !important; }
}
body.fw-template .fleet3 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  margin-top: 56px !important;
}
@media (max-width: 960px) {
  body.fw-template .fleet3 { grid-template-columns: 1fr !important; }
}
body.fw-template .fleet3-card {
  background: #0A0A0A !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* === PAY MODAL — Webpay/Transbank interstitial === */
.fw-modal[data-mode="pay"] {
  display: block;
  align-items: stretch;
  overflow-y: auto;
  padding: 0;
}
.fw-modal[data-mode="pay"] .fw-modal__body {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  padding: 48px 24px;
  box-sizing: border-box;
}
.fw-pay {
  text-align: left;
}
.fw-pay__head { margin-bottom: 24px; padding-right: 56px; }
.fw-pay__eyebrow {
  font-family: ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--brand, #1B3A6B);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.fw-pay__eyebrow .dot {
  width: 7px;
  height: 7px;
  background: var(--brand, #1B3A6B);
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 12px rgba(27, 58, 107, 0.7);
}
.fw-pay__title {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--white, #FFFFFF);
  margin: 0 0 10px;
  text-wrap: balance;
}
.fw-pay__desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--fg-2, rgba(250, 250, 249, 0.72));
  margin: 0;
}
.fw-pay__brands {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 16px 0;
  border-top: 1px dashed var(--line, rgba(255, 255, 255, 0.08));
  border-bottom: 1px dashed var(--line, rgba(255, 255, 255, 0.08));
  margin: 0 0 22px;
}
.fw-pay__brands span {
  font-family: ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-2, rgba(250, 250, 249, 0.72));
  font-weight: 600;
  padding: 6px 12px;
  border: 1px solid var(--line-strong, rgba(255, 255, 255, 0.16));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.02);
}
.fw-pay__trust {
  list-style: none;
  padding: 0;
  margin: 0 0 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fw-pay__trust li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 14px;
  align-items: center;
  font-size: 14px;
  line-height: 1.45;
  color: var(--fg, #FAFAF9);
}
.fw-pay__trust li svg {
  width: 18px;
  height: 18px;
  stroke: var(--brand, #1B3A6B);
  fill: none;
}
.fw-pay__foot {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 22px;
  border-top: 1px dashed var(--line, rgba(255, 255, 255, 0.08));
}
.fw-pay__cta {
  flex: 1 1 auto;
  justify-content: center;
}
.fw-pay__close-btn {
  flex: 0 0 auto;
}
.fw-pay__help {
  margin: 18px 0 0;
  font-family: ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--fg-3, rgba(250, 250, 249, 0.50));
  text-align: center;
}
.fw-pay__help a { color: var(--white, #FFFFFF); text-decoration: underline; }
@media (max-width: 599px) {
  .fw-pay__foot { flex-direction: column; align-items: stretch; }
  .fw-pay__close-btn { width: 100%; }
}

/* Botón Pagar en navbar — destacado pero secundario */
body.fw-template .nav__pay {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: var(--radius, 8px);
  font-size: 13px;
  font-weight: 600;
  background: transparent;
  border: 1px solid var(--brand, #1B3A6B);
  color: var(--white, #FFFFFF);
  cursor: pointer;
  transition: background 220ms, border-color 220ms;
  font-family: inherit;
}
body.fw-template .nav__pay:hover {
  background: rgba(27, 58, 107, 0.18);
  border-color: var(--brand-hover, #244B85);
  color: var(--white, #FFFFFF);
}
body.fw-template .nav__pay svg {
  width: 14px; height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
}
@media (max-width: 859px) {
  body.fw-template .nav__pay { display: none; }
}

/* Botón Pagar dentro del menú mobile */
.mobile-menu__pay {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  margin-top: 12px !important;
  padding: 16px 24px !important;
  background: transparent !important;
  border: 1px solid var(--brand, #1B3A6B) !important;
  color: var(--white, #FFFFFF) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  border-radius: var(--radius, 8px) !important;
  cursor: pointer;
  min-height: 56px !important;
}
.mobile-menu__pay::after { display: none !important; }
.mobile-menu__pay:hover {
  background: rgba(27, 58, 107, 0.18) !important;
  border-color: var(--brand-hover, #244B85) !important;
}
.mobile-menu__pay svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
}

/* === BUTTONS — restaurar estilos del kit === */
body.fw-template .btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 13px 22px !important;
  border-radius: var(--radius, 8px) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border: 1px solid transparent !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
body.fw-template .btn--primary {
  background: var(--brand, #1B3A6B) !important;
  color: #FFFFFF !important;
}
body.fw-template .btn--primary:hover {
  background: var(--brand-hover, #244B85) !important;
  color: #FFFFFF !important;
}
body.fw-template .btn--ghost {
  background: transparent !important;
  color: #FAFAF9 !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
}
body.fw-template .btn--lg { padding: 16px 28px !important; font-size: 15px !important; }
body.fw-template .btn--sm { padding: 9px 14px !important; font-size: 13px !important; }

/* =========================================================
   FW BLOG — Sección "Últimas publicaciones" en home
   ========================================================= */
body.fw-template .fw-blog { background: var(--bg-1); }
body.fw-template .fw-blog__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
body.fw-template .fw-blog__card {
  display: flex;
  flex-direction: column;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform 320ms var(--ease), border-color 320ms var(--ease), box-shadow 320ms var(--ease);
}
body.fw-template .fw-blog__card:hover {
  transform: translateY(-4px);
  border-color: var(--brand);
  box-shadow: 0 12px 40px rgba(27,58,107,0.18);
}
body.fw-template .fw-blog__media-link {
  display: block !important;
  width: 100% !important;
  text-decoration: none !important;
  border: 0 !important;
}
body.fw-template .fw-blog__media {
  position: relative !important;
  width: 100% !important;
  height: 0 !important;
  padding-top: 62.5% !important; /* 16:10 ratio */
  background-color: #0d0d0d !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  display: block !important;
  overflow: hidden !important;
}
body.fw-template .fw-blog__media-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  font-family: ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--white);
  text-transform: uppercase;
  background: rgba(0,0,0,0.55);
  padding: 4px 10px;
  border-radius: 4px;
  pointer-events: none;
  z-index: 2;
}
body.fw-template .fw-blog__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  flex: 1;
}
body.fw-template .fw-blog__meta {
  display: flex;
  gap: 14px;
  align-items: center;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
body.fw-template .fw-blog__cat {
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--fg-2);
}
body.fw-template .fw-blog__title {
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 22px;
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--white);
}
body.fw-template .fw-blog__title a {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(var(--brand), var(--brand));
  background-size: 0 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size 320ms var(--ease);
}
body.fw-template .fw-blog__card:hover .fw-blog__title a { background-size: 100% 1px; }
body.fw-template .fw-blog__excerpt {
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--fg-2);
  margin: 0;
}
body.fw-template .fw-blog__more {
  margin-top: auto;
  padding-top: 8px;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.fw-template .fw-blog__more .arrow { transition: transform 220ms var(--ease); }
body.fw-template .fw-blog__more:hover { color: var(--brand); }
body.fw-template .fw-blog__more:hover .arrow { transform: translateX(4px); }

/* Variantes adaptativas según cantidad de posts */
body.fw-template .fw-blog__grid--1 {
  grid-template-columns: 1fr !important;
  max-width: 1080px;
  margin: 0 auto;
}
body.fw-template .fw-blog__grid--2 {
  grid-template-columns: repeat(2, 1fr) !important;
}
/* FEATURED horizontal: imagen izq + texto der */
body.fw-template .fw-blog__card--featured {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr;
  align-items: stretch;
  flex-direction: row;
}
body.fw-template .fw-blog__card--featured .fw-blog__media-link {
  height: 100%;
}
body.fw-template .fw-blog__card--featured .fw-blog__media {
  height: 100% !important;
  min-height: 360px !important;
  padding-top: 0 !important;
}
body.fw-template .fw-blog__card--featured .fw-blog__body {
  padding: 40px 44px;
  gap: 16px;
  justify-content: center;
}
body.fw-template .fw-blog__card--featured .fw-blog__title {
  font-size: 32px;
  line-height: 1.18;
}
body.fw-template .fw-blog__card--featured .fw-blog__excerpt {
  font-size: 15.5px;
  line-height: 1.6;
}

@media (max-width: 1100px) {
  body.fw-template .fw-blog__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  body.fw-template .fw-blog__card--featured {
    grid-template-columns: 1fr !important;
  }
  body.fw-template .fw-blog__card--featured .fw-blog__media {
    min-height: 0 !important;
    padding-top: 62.5% !important;
  }
  body.fw-template .fw-blog__card--featured .fw-blog__body {
    padding: 28px 24px;
  }
  body.fw-template .fw-blog__card--featured .fw-blog__title {
    font-size: 24px;
  }
}
@media (max-width: 720px) {
  body.fw-template .fw-blog__grid,
  body.fw-template .fw-blog__grid--2 { grid-template-columns: 1fr !important; gap: 20px; }
  body.fw-template .fw-blog__title { font-size: 20px; }
}

/* =========================================================
   FW SINGLE POST — Hero + contenido + share + relacionados
   ========================================================= */
body.fw-template .fw-single { background: var(--bg-1); color: var(--fg-1); }
body.fw-template .fw-single__hero {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: flex-end;
  padding-top: 140px;
  padding-bottom: 80px;
  overflow: hidden;
}
body.fw-template .fw-single__hero-bg {
  position: absolute;
  inset: 0;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 0;
  filter: saturate(0.95);
}
body.fw-template .fw-single__hero-overlay {
  position: absolute;
  inset: 0;
  /* Fallback #0A0A0A para dark mode (--bg-1 solo está definida en .is-light = #F5F6F8). */
  background: linear-gradient(180deg, rgba(10,10,12,0.55) 0%, rgba(10,10,12,0.78) 60%, var(--bg-1, #0A0A0A) 100%);
  z-index: 1;
}
body.fw-template .fw-single__hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 980px;
}
body.fw-template .fw-single__crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 24px;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}
body.fw-template .fw-single__crumbs a {
  color: var(--fg-2);
  text-decoration: none;
  transition: color 220ms var(--ease);
}
body.fw-template .fw-single__crumbs a:hover { color: var(--brand); }
body.fw-template .fw-single__title {
  font-size: clamp(36px, 5.5vw, 78px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em;
  margin: 0 0 32px;
  text-wrap: balance;
  color: var(--white);
}
body.fw-template .fw-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 13px;
  color: var(--fg-2);
}
body.fw-template .fw-single__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.fw-template .fw-single__meta-item svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: var(--brand);
  stroke-width: 1.6;
  flex-shrink: 0;
}
body.fw-template .fw-single__body { padding-top: 80px; padding-bottom: 60px; }
body.fw-template .fw-single__content {
  max-width: 740px;
  margin: 0 auto;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.75;
  color: var(--fg-1);
}
body.fw-template .fw-single__content > * { margin-bottom: 28px; }
body.fw-template .fw-single__content > *:last-child { margin-bottom: 0; }
body.fw-template .fw-single__content p { color: var(--fg-1); }
body.fw-template .fw-single__content h2 {
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.015em;
  color: var(--white);
  margin-top: 56px;
  margin-bottom: 20px;
}
body.fw-template .fw-single__content h3 {
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.25;
  font-weight: 700;
  color: var(--white);
  margin-top: 40px;
  margin-bottom: 16px;
}
body.fw-template .fw-single__content h4 {
  font-size: 19px;
  font-weight: 700;
  color: var(--white);
  margin-top: 32px;
  margin-bottom: 12px;
}
body.fw-template .fw-single__content a {
  color: var(--white);
  border-bottom: 1px solid var(--brand);
  text-decoration: none;
  transition: color 220ms var(--ease), border-color 220ms var(--ease);
}
body.fw-template .fw-single__content a:hover {
  color: var(--brand);
  border-color: var(--white);
}
body.fw-template .fw-single__content strong { color: var(--white); font-weight: 700; }
body.fw-template .fw-single__content em { color: var(--fg-1); }
body.fw-template .fw-single__content ul,
body.fw-template .fw-single__content ol {
  padding-left: 22px;
  margin-bottom: 28px;
}
body.fw-template .fw-single__content li {
  margin-bottom: 10px;
  color: var(--fg-1);
}
body.fw-template .fw-single__content li::marker { color: var(--brand); }
body.fw-template .fw-single__content blockquote {
  border-left: 3px solid var(--brand);
  padding: 8px 0 8px 24px;
  margin: 36px 0;
  font-size: 22px;
  line-height: 1.5;
  font-style: italic;
  color: var(--white);
}
body.fw-template .fw-single__content blockquote p { margin: 0; }
body.fw-template .fw-single__content code {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 2px 8px;
  font-family: ui-monospace, monospace;
  font-size: 0.92em;
  color: var(--white);
}
body.fw-template .fw-single__content pre {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  overflow-x: auto;
  font-family: ui-monospace, monospace;
  font-size: 14px;
  line-height: 1.55;
  margin: 32px 0;
}
body.fw-template .fw-single__content pre code {
  background: transparent;
  border: 0;
  padding: 0;
}
body.fw-template .fw-single__content img,
body.fw-template .fw-single__content figure {
  max-width: 100%;
  height: auto;
  margin: 36px auto;
  display: block;
  border-radius: var(--radius);
}
body.fw-template .fw-single__content figure img { border-radius: var(--radius); margin: 0; }
body.fw-template .fw-single__content figcaption {
  font-size: 13px;
  color: var(--fg-3);
  text-align: center;
  margin-top: 12px;
  font-style: italic;
}
body.fw-template .fw-single__content hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 48px 0;
}
body.fw-template .fw-single__content table {
  width: 100%;
  border-collapse: collapse;
  margin: 28px 0;
  font-size: 15px;
}
body.fw-template .fw-single__content th,
body.fw-template .fw-single__content td {
  padding: 12px 16px;
  border: 1px solid var(--line);
  text-align: left;
}
body.fw-template .fw-single__content th {
  background: var(--bg-2);
  color: var(--white);
  font-weight: 700;
}
body.fw-template .fw-single__tags {
  max-width: 740px;
  margin: 48px auto 0;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
body.fw-template .fw-single__tags-label {
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-right: 6px;
}
body.fw-template .fw-single__tag {
  display: inline-flex;
  padding: 6px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  color: var(--fg-2);
  text-decoration: none;
  transition: all 220ms var(--ease);
}
body.fw-template .fw-single__tag:hover {
  border-color: var(--brand);
  color: var(--white);
  background: rgba(27,58,107,0.18);
}
body.fw-template .fw-single__share {
  max-width: 740px;
  margin: 32px auto 0;
  padding-top: 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
body.fw-template .fw-single__share-label {
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-right: 6px;
}
body.fw-template .fw-single__share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
  text-decoration: none;
  transition: all 220ms var(--ease);
}
body.fw-template .fw-single__share-btn svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
body.fw-template .fw-single__share-btn:hover {
  border-color: var(--brand);
  background: var(--brand);
}
body.fw-template .fw-single__pn { padding-top: 60px; padding-bottom: 60px; border-top: 1px solid var(--line); }
body.fw-template .fw-single__pn-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
body.fw-template .fw-single__pn-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 28px;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-decoration: none;
  transition: all 320ms var(--ease);
}
body.fw-template .fw-single__pn-card:hover {
  border-color: var(--brand);
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(27,58,107,0.18);
}
body.fw-template .fw-single__pn-card--next { text-align: right; }
body.fw-template .fw-single__pn-label {
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand);
}
body.fw-template .fw-single__pn-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--white);
  line-height: 1.3;
}
body.fw-template .fw-single__related { background: var(--bg-2); }

/* =========================================================
   FW BLOG ARCHIVE
   ========================================================= */
body.fw-template .fw-archive__hero {
  min-height: 0 !important;
  padding-top: 160px !important;
  padding-bottom: 80px !important;
}
body.fw-template .fw-archive__hero .hero__inner { max-width: 920px; }
body.fw-template .fw-archive__title {
  font-size: clamp(40px, 6vw, 88px) !important;
  line-height: 1.02 !important;
  margin: 24px 0 28px !important;
}
body.fw-template .fw-archive__meta-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 24px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--line);
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
body.fw-template .fw-archive__count strong {
  color: var(--white);
  font-weight: 700;
  font-size: 14px;
}
body.fw-template .fw-blog__grid--archive {
  grid-template-columns: repeat(3, 1fr) !important;
}
body.fw-template .fw-archive__pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 56px;
}
body.fw-template .fw-archive__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--fg-1);
  text-decoration: none;
  transition: all 220ms var(--ease);
}
body.fw-template .fw-archive__pagination .page-numbers.current {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--white);
}
body.fw-template .fw-archive__pagination a.page-numbers:hover {
  border-color: var(--brand);
  color: var(--white);
  background: rgba(27,58,107,0.18);
}
body.fw-template .fw-archive__empty {
  text-align: center;
  padding: 80px 20px;
  max-width: 640px;
  margin: 0 auto;
}

@media (max-width: 1100px) {
  body.fw-template .fw-blog__grid--archive { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 860px) {
  body.fw-template .fw-single__hero { min-height: 420px; padding-top: 110px; padding-bottom: 60px; }
  body.fw-template .fw-single__body { padding-top: 56px; }
  body.fw-template .fw-single__content { font-size: 16.5px; }
  body.fw-template .fw-single__pn-grid { grid-template-columns: 1fr; }
  body.fw-template .fw-single__pn-card--next { text-align: left; }
  body.fw-template .fw-archive__hero { padding-top: 130px !important; padding-bottom: 56px !important; }
}
@media (max-width: 720px) {
  body.fw-template .fw-blog__grid--archive { grid-template-columns: 1fr !important; }
  body.fw-template .fw-archive__meta-bar { flex-direction: column; gap: 8px; align-items: flex-start; }
  body.fw-template .fw-single__share { gap: 8px; }
  body.fw-template .fw-single__share-btn { padding: 8px 12px; font-size: 12px; }
}

/* =========================================================
   FW THEME TOGGLE — Botón nav (sun/moon)
   ========================================================= */
body.fw-template .nav__theme {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  cursor: pointer;
  color: var(--white, #FAFAF9);
  transition: background 220ms var(--ease, ease), border-color 220ms var(--ease, ease), color 220ms var(--ease, ease);
}
body.fw-template .nav__theme:hover {
  background: rgba(255,255,255,0.06);
  border-color: var(--brand, #1B3A6B);
}
body.fw-template .nav__theme:focus-visible {
  outline: none;
  border-color: var(--brand, #1B3A6B);
  box-shadow: 0 0 0 3px rgba(27,58,107,0.4);
}
body.fw-template .nav__theme-icon {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}
body.fw-template .nav__theme-icon--sun { display: none; }
body.fw-template.is-light .nav__theme-icon--moon { display: none; }
body.fw-template.is-light .nav__theme-icon--sun { display: block; }

/* =========================================================
   FW LIGHT MODE — overrides quirúrgicos cuando body.is-light
   Diseño: fondo off-white, texto navy oscuro, brand navy se mantiene
   ========================================================= */
body.fw-template.is-light {
  background: #F5F6F8 !important;  /* fw-ink-050 */
  color: #2A2D33 !important;        /* fw-ink-700 */
  /* Paleta corporativa Navy + Ink */
  --fw-navy-900: #0E1F3A;
  --fw-navy-800: #142A4D;
  --fw-navy-700: #1B3A6B;
  --fw-navy-600: #234A85;
  --fw-navy-500: #2E5BA0;
  --fw-navy-100: #E8EDF5;
  --fw-navy-050: #F4F6FB;
  --fw-ink-900:  #141416;
  --fw-ink-700:  #2A2D33;
  --fw-ink-500:  #5A6072;
  --fw-ink-400:  #8A8F9C;
  --fw-ink-200:  #DDE0E6;
  --fw-ink-100:  #ECEEF2;
  --fw-ink-050:  #F5F6F8;
  /* Mapping sobre las variables del kit */
  --brand: #1B3A6B;
  --brand-hover: #234A85;
  --bg: #F5F6F8;
  --bg-1: #F5F6F8;
  --bg-2: #FFFFFF;
  --line: #ECEEF2;
  --line-strong: #DDE0E6;
  --white: #0E1F3A;     /* "white" semántico → navy oscuro para titulares */
  --black: #FFFFFF;
  --fg-1: #2A2D33;
  --fg-2: #5A6072;
  --fg-3: #8A8F9C;
  --border-on-dark: rgba(255,255,255,0.18);
  --border-on-dark-strong: rgba(255,255,255,0.40);
  --bg-card: #FFFFFF;
  --bg-elev: #FFFFFF;
  --bg-elev-2: #F4F6FB;
  --radius: 14px;
  --radius-lg: 18px;
}

/* Cards con bg-card inline (Programas destacados de Carrera, etc.) */
body.fw-template.is-light [style*="var(--bg-card)"] {
  background: #FFFFFF !important;
  border-color: #ECEEF2 !important;
}
/* Títulos h2/h3 con color:var(--white) inline → forzar navy oscuro fw-navy-900 */
body.fw-template.is-light [style*="color:var(--white)"],
body.fw-template.is-light [style*="color: var(--white)"] {
  color: #0E1F3A !important;
}
/* Texto secundario inline color:var(--fg-2) → fw-ink-700 */
body.fw-template.is-light [style*="color:var(--fg-2)"],
body.fw-template.is-light [style*="color: var(--fg-2)"] {
  color: #2A2D33 !important;
}
/* color:var(--fg-3) → fw-ink-500 */
body.fw-template.is-light [style*="color:var(--fg-3)"],
body.fw-template.is-light [style*="color: var(--fg-3)"] {
  color: #5A6072 !important;
}
/* color:var(--brand) inline (eyebrow t-mono, arrows) → mantener navy #1B3A6B */
body.fw-template.is-light [style*="color:var(--brand)"],
body.fw-template.is-light [style*="color: var(--brand)"] {
  color: #1B3A6B !important;
}

/* Salient wrappers */
body.fw-template.is-light #ajax-content-wrap,
body.fw-template.is-light .container-wrap,
body.fw-template.is-light #page,
body.fw-template.is-light #wrap,
body.fw-template.is-light .body-border-top,
body.fw-template.is-light .body-border-bottom,
body.fw-template.is-light .body-border-left,
body.fw-template.is-light .body-border-right,
body.fw-template.is-light > div {
  background: #F5F6F8 !important;
}

/* Text base — fw-ink-700 */
body.fw-template.is-light p,
body.fw-template.is-light li {
  color: #2A2D33 !important;
}
body.fw-template.is-light strong { color: #0E1F3A !important; }

/* Headings — fw-navy-900 (no negro) */
body.fw-template.is-light h1,
body.fw-template.is-light h2,
body.fw-template.is-light h3,
body.fw-template.is-light h4,
body.fw-template.is-light h5,
body.fw-template.is-light h6,
body.fw-template.is-light .t-display,
body.fw-template.is-light .t-h1,
body.fw-template.is-light .t-h2,
body.fw-template.is-light .t-h3,
body.fw-template.is-light .hero__title,
body.fw-template.is-light .reel__title,
body.fw-template.is-light .spec__title,
body.fw-template.is-light .feat__title,
body.fw-template.is-light .plan__title,
body.fw-template.is-light .gloss__name,
body.fw-template.is-light .facility__title,
body.fw-template.is-light .fleet3-card__title,
body.fw-template.is-light .tnode__name,
body.fw-template.is-light .instr-card__name,
body.fw-template.is-light .intl-strip__title,
body.fw-template.is-light .fw-blog__title,
body.fw-template.is-light .fw-blog__title a,
body.fw-template.is-light .fw-single__title,
body.fw-template.is-light .fw-archive__title,
body.fw-template.is-light .fw-form__title {
  color: #1B3A6B !important;     /* fw-brand navy — visiblemente azul */
}
/* t-light = peso ligero del título → navy ink medio (no opacidad) */
body.fw-template.is-light .t-light {
  color: #5A6072 !important;     /* fw-ink-500 */
  opacity: 1 !important;
}
body.fw-template.is-light .t-grad { color: #1B3A6B !important; }

/* Eyebrows / labels monospace */
body.fw-template.is-light .t-eyebrow,
body.fw-template.is-light .trust__label,
body.fw-template.is-light .reel-meta,
body.fw-template.is-light .fw-blog__meta,
body.fw-template.is-light .fw-blog__more,
body.fw-template.is-light .fw-single__crumbs,
body.fw-template.is-light .fw-archive__meta-bar,
body.fw-template.is-light .footer__bottom {
  color: rgba(10,10,10,0.6) !important;
}

/* NAV en light mode */
body.fw-template.is-light .nav {
  background: rgba(245,244,240,0.85) !important;
  border-bottom: 1px solid rgba(10,10,10,0.08);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
body.fw-template.is-light .nav__links a { color: #0A0A0A !important; }
body.fw-template.is-light .nav__links a.is-active { color: var(--brand, #1B3A6B) !important; }
/* Underline indicator del nav (hover + página actual). En light mode, el background
   por defecto es var(--fg) = blanco → era invisible sobre el nav claro. */
body.fw-template.is-light .nav__links a::after { background: var(--brand, #1B3A6B) !important; }
body.fw-template.is-light .nav__theme {
  border-color: rgba(10,10,10,0.18);
  color: #0A0A0A;
}
body.fw-template.is-light .nav__theme:hover { background: rgba(10,10,10,0.05); }
body.fw-template.is-light .nav__pay {
  border-color: rgba(10,10,10,0.18) !important;
  color: #0A0A0A !important;
}
/* =========================================================
   NAV LAYOUT — Desktop: Logo izq · Menu centro · Botones der
   Mobile (<860px): layout simple flex (logo izq + botón burger der)
   ========================================================= */

/* Logo grande siempre */
body.fw-template .nav__logo {
  width: auto !important;
  height: 44px !important;
  max-height: 44px;
  display: block;
}

/* DESKTOP (≥860px) — grid 3 columnas */
@media (min-width: 860px) {
  body.fw-template .nav__inner {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 32px !important;
    padding-left: clamp(24px, 4vw, 56px) !important;
    padding-right: clamp(24px, 4vw, 56px) !important;
    max-width: 1600px !important;
    margin: 0 auto !important;
  }
  body.fw-template .nav__left {
    display: contents !important;
  }
  body.fw-template .nav__left > a:first-child {
    grid-column: 1;
    justify-self: start;
    align-self: center;
    display: inline-flex;
    align-items: center;
  }
  body.fw-template .nav__links {
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    display: flex !important;
    align-items: center;
    gap: clamp(18px, 2.2vw, 30px) !important;
    margin: 0 !important;
  }
  body.fw-template .nav__right {
    grid-column: 3 !important;
    justify-self: end !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center;
    gap: 10px !important;
  }
}
@media (min-width: 860px) and (max-width: 1100px) {
  body.fw-template .nav__inner { gap: 20px !important; padding-left: 24px !important; padding-right: 24px !important; }
  body.fw-template .nav__logo { height: 38px !important; max-height: 38px; }
  body.fw-template .nav__links { gap: 16px !important; }
}

/* MOBILE (<860px) — flex simple, no grid */
@media (max-width: 859px) {
  body.fw-template .nav__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 20px !important;
    max-width: 100% !important;
    min-height: 64px;
  }
  body.fw-template .nav__left {
    display: inline-flex !important;
    align-items: center !important;
  }
  body.fw-template .nav__right {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
  }
  /* Mobile: menu desktop se oculta (lo gestiona responsive-patch — pero forzamos por seguridad) */
  body.fw-template .nav__links {
    display: none !important;
  }
  body.fw-template .nav__logo {
    height: 32px !important;
    max-height: 32px;
  }
}

/* Logo footer */
body.fw-template .footer__brand img {
  width: auto !important;
  height: 36px !important;
  max-height: 36px;
}

/* Logo navy en light mode (no negro) — convierte el PNG blanco a #1B3A6B fw-navy-700 */
body.fw-template.is-light .nav__logo {
  filter: brightness(0) saturate(100%) invert(17%) sepia(46%) saturate(2400%) hue-rotate(199deg) brightness(94%) contrast(91%);
}
body.fw-template.is-light .nav__burger {
  border-color: rgba(10,10,10,0.18);
  color: #0A0A0A;
}
body.fw-template.is-light .nav__burger span { background: #0A0A0A; }
body.fw-template.is-light .btn--ghost {
  border-color: rgba(10,10,10,0.22) !important;
  color: #0A0A0A !important;
  background: transparent !important;
}
body.fw-template.is-light .btn--ghost:hover {
  background: rgba(10,10,10,0.05) !important;
  border-color: var(--brand, #1B3A6B) !important;
}

/* Hero — IDÉNTICO en dark/light, solo cambia el overlay color via ::after.
   No tocar: min-height, padding, position, hero__media (sizing/opacity).
   Esto evita saltos de layout al alternar el tema. */

/* Overlay navy en BOTH modes — applied always, just opacity adjusted */
body.fw-template .hero { isolation: isolate; }
body.fw-template .hero::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(180deg, rgba(10,10,12,0.30) 0%, rgba(10,10,12,0.55) 100%);
}
body.fw-template.is-light .hero::after {
  background: linear-gradient(180deg, rgba(14,31,58,0.45) 0%, rgba(14,31,58,0.62) 100%);
}
body.fw-template .hero--compact::after {
  background: linear-gradient(180deg, rgba(10,10,12,0.45) 0%, rgba(10,10,12,0.65) 100%);
}
body.fw-template.is-light .hero--compact::after {
  background: linear-gradient(180deg, rgba(14,31,58,0.55) 0%, rgba(14,31,58,0.7) 100%);
}
body.fw-template .hero__inner,
body.fw-template .hero__regmark,
body.fw-template .scroll-cue {
  position: relative;
  z-index: 2;
}
/* Sin transition en hero ni descendientes (evita reflows visuales) */
body.fw-template .hero,
body.fw-template .hero *,
body.fw-template .hero::after { transition: none !important; }
body.fw-template.is-light .hero__inner,
body.fw-template.is-light .scroll-cue {
  position: relative;
  z-index: 2;
}
/* Regmark — ocultado (no aporta) */
body.fw-template .hero__regmark { display: none !important; }

/* Hero text → BLANCO en light mode (sobre imagen con overlay navy) */
body.fw-template.is-light .hero .t-eyebrow,
body.fw-template.is-light .hero .hero__title,
body.fw-template.is-light .hero .t-display,
body.fw-template.is-light .hero .t-h1,
body.fw-template.is-light .hero__sub,
body.fw-template.is-light .hero__sub a,
body.fw-template.is-light .hero .scroll-cue {
  color: #FFFFFF !important;
}
body.fw-template.is-light .hero .t-light {
  color: #FFFFFF !important;
  opacity: 0.78 !important;
}
/* DGAC/CAE en hero subhead → underline blanco editorial
   Scope EXPLÍCITAMENTE a .hero__sub a (NO toca .btn--ghost ni otros) */
body.fw-template.is-light .hero__sub a,
body.fw-template.is-light .hero__sub a:link,
body.fw-template.is-light .hero__sub a:visited,
body.fw-template.is-light .hero__sub a:active,
body.fw-template.is-light .hero__sub a:focus,
body.fw-template.is-light .hero__sub a[style],
body.fw-template.is-light .hero__sub a *,
body.fw-template.is-light .hero__sub a span {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  background: transparent !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  border: 0 !important;
  border-bottom: 2px solid rgba(255,255,255,0.55) !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700;
  display: inline;
  padding: 0;
  margin: 0;
  transition: border-bottom-color 220ms ease;
}
body.fw-template.is-light .hero__sub a:hover {
  border-bottom-color: #FFFFFF !important;
}
body.fw-template.is-light .hero .t-accent {
  background: linear-gradient(180deg, #6B95D6 0%, #4A78C9 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
/* Hero CTA ghost — blanco sobre dark */
body.fw-template.is-light .hero .btn--ghost {
  border-color: rgba(255,255,255,0.4) !important;
  color: #FFFFFF !important;
  background: transparent !important;
}
body.fw-template.is-light .hero .btn--ghost:hover {
  background: rgba(255,255,255,0.10) !important;
  border-color: #FFFFFF !important;
}
body.fw-template.is-light .scroll-cue__line { background: rgba(255,255,255,0.4); }

/* Hero compact (carrera/modulos/blog) — mismo tratamiento */
body.fw-template.is-light .hero--compact {
  background: linear-gradient(180deg, #F4F6FB 0%, #E8EDF5 100%) !important;
}

/* t-accent gradient ya navy → se mantiene */
body.fw-template.is-light .t-accent {
  background: linear-gradient(180deg, #2E5BA0 0%, #1B3A6B 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* Section backgrounds alternados con tint navy */
body.fw-template.is-light .section--light {
  background: #F4F6FB !important;  /* fw-navy-050 */
}

/* Backgrounds bg-2 → ligero gris cálido */
body.fw-template.is-light .feat,
body.fw-template.is-light .plan,
body.fw-template.is-light .gloss,
body.fw-template.is-light .fleet3-card,
body.fw-template.is-light .spec,
body.fw-template.is-light .instr-card,
body.fw-template.is-light .intl-strip,
body.fw-template.is-light .dossier,
body.fw-template.is-light .fw-blog__card,
body.fw-template.is-light .fw-single__pn-card {
  background: #FFFFFF !important;
  border-color: rgba(10,10,10,0.10) !important;
  color: #141416 !important;
}

/* Contenedores de sección (NO cards) → sin bg, heredan fondo de página */
body.fw-template.is-light .reel,
body.fw-template.is-light .facility,
body.fw-template.is-light .timeline,
body.fw-template.is-light .tnode,
body.fw-template.is-light .fw-single__related {
  background: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
}
body.fw-template.is-light .facility__body {
  background: transparent !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.fw-template.is-light .fw-single__related { background: #EEEDEA !important; }

/* Lines / borders */
body.fw-template.is-light hr,
body.fw-template.is-light .footer,
body.fw-template.is-light .footer__top,
body.fw-template.is-light .footer__bottom,
body.fw-template.is-light .trust,
body.fw-template.is-light .reel-meta,
body.fw-template.is-light .fw-archive__meta-bar,
body.fw-template.is-light .fw-single__pn,
body.fw-template.is-light .fw-single__tags {
  border-color: rgba(10,10,10,0.10) !important;
}

/* Trust pills */
body.fw-template.is-light .trust { background: #FFFFFF !important; }
body.fw-template.is-light .trust__pill {
  border-color: rgba(10,10,10,0.16) !important;
  color: #0A0A0A !important;
  background: transparent !important;
}

/* Cards/feat secondary text */
body.fw-template.is-light .feat__desc,
body.fw-template.is-light .plan__lede,
body.fw-template.is-light .fleet3-card__lede,
body.fw-template.is-light .facility__overlay p,
body.fw-template.is-light .tnode__desc,
body.fw-template.is-light .reel__lede,
body.fw-template.is-light .intl-strip__copy,
body.fw-template.is-light .continuity__lede,
body.fw-template.is-light .cta-final__sub,
body.fw-template.is-light .cine__lede,
body.fw-template.is-light .fw-blog__excerpt,
body.fw-template.is-light .fw-single__content p,
body.fw-template.is-light .fw-single__content li {
  color: rgba(10,10,10,0.74) !important;
}

/* CTA final / continuity / cine — secciones oscuras intencionales: las dejo dark también en light mode */
body.fw-template.is-light .cta-final,
body.fw-template.is-light .continuity,
body.fw-template.is-light .cine {
  background: #0A0A0A !important;
  color: #FAFAF9 !important;
  border-color: transparent !important;
}
body.fw-template.is-light .cta-final h2,
body.fw-template.is-light .cta-final p,
body.fw-template.is-light .cta-final .t-eyebrow,
body.fw-template.is-light .cta-final__sub,
body.fw-template.is-light .continuity h2,
body.fw-template.is-light .continuity p,
body.fw-template.is-light .continuity__lede,
body.fw-template.is-light .cine,
body.fw-template.is-light .cine *,
body.fw-template.is-light .cine h2,
body.fw-template.is-light .cine p,
body.fw-template.is-light .cine__lede,
body.fw-template.is-light .cine__stat,
body.fw-template.is-light .cine__stat .v,
body.fw-template.is-light .cine__stat .l,
body.fw-template.is-light .cine__title {
  color: #FAFAF9 !important;
}
body.fw-template.is-light .cine .t-eyebrow {
  color: #4A78C9 !important;
}
body.fw-template.is-light .cta-final .t-light,
body.fw-template.is-light .continuity .t-light,
body.fw-template.is-light .cine .t-light {
  color: #FFFFFF !important;
  opacity: 0.78 !important;
}
body.fw-template.is-light .cta-final .btn--ghost,
body.fw-template.is-light .continuity .btn--ghost,
body.fw-template.is-light .cine .btn--ghost {
  border-color: rgba(255,255,255,0.3) !important;
  color: #FFFFFF !important;
}
body.fw-template.is-light .cta-final .btn--ghost:hover,
body.fw-template.is-light .continuity .btn--ghost:hover,
body.fw-template.is-light .cine .btn--ghost:hover {
  background: rgba(255,255,255,0.08) !important;
}
body.fw-template.is-light .boarding {
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: #FAFAF9 !important;
}
body.fw-template.is-light .boarding * { color: #FAFAF9 !important; }
body.fw-template.is-light .boarding__step { color: #FAFAF9 !important; }

/* Footer navy corporativo en light mode */
body.fw-template.is-light .footer {
  background: #1B3A6B !important;     /* fw-navy-700 */
  color: #FFFFFF !important;
  border-top: 1px solid rgba(255,255,255,0.10) !important;
}
body.fw-template.is-light .footer * { color: #FFFFFF !important; }
body.fw-template.is-light .footer h5 { color: #FFFFFF !important; }
body.fw-template.is-light .footer a { color: rgba(255,255,255,0.78) !important; }
body.fw-template.is-light .footer a:hover { color: #FFFFFF !important; }
body.fw-template.is-light .footer__brand p { color: rgba(255,255,255,0.72) !important; }
body.fw-template.is-light .footer__bottom { border-top-color: rgba(255,255,255,0.12) !important; color: rgba(255,255,255,0.6) !important; }
body.fw-template.is-light .footer__bottom span { color: rgba(255,255,255,0.6) !important; }
body.fw-template.is-light .footer__col a { border-color: rgba(255,255,255,0.10) !important; }
/* Logo footer en navy bg → mantenerlo blanco (NO invertir) */
body.fw-template.is-light .footer__brand img { filter: none !important; }

/* Modal */
body.fw-template.is-light .fw-modal__panel,
body.fw-template.is-light .fw-form,
body.fw-template.is-light .fw-pay {
  background: #FFFFFF !important;
  color: #0A0A0A !important;
  border-color: rgba(10,10,10,0.10) !important;
}
body.fw-template.is-light .fw-form *,
body.fw-template.is-light .fw-pay * { color: #0A0A0A; }
body.fw-template.is-light .fw-field input,
body.fw-template.is-light .fw-field select,
body.fw-template.is-light .fw-field textarea {
  background: #F5F4F0 !important;
  border-color: rgba(10,10,10,0.18) !important;
  color: #0A0A0A !important;
}

/* Mobile menu — siempre dark (overlay), independiente del tema. Se gestiona más abajo. */

/* Forms / inputs en light por defecto */
body.fw-template.is-light input,
body.fw-template.is-light textarea,
body.fw-template.is-light select {
  background: #FFFFFF;
  color: #0A0A0A;
  border-color: rgba(10,10,10,0.18);
}

/* WhatsApp floating */
body.fw-template.is-light .fw-whatsapp {
  background: #25D366 !important;
  color: #FFFFFF !important;
}

/* Single content prose */
body.fw-template.is-light .fw-single__content code {
  background: #EEEDEA;
  border-color: rgba(10,10,10,0.10);
  color: #0A0A0A;
}
body.fw-template.is-light .fw-single__content pre {
  background: #EEEDEA;
  border-color: rgba(10,10,10,0.10);
}
body.fw-template.is-light .fw-single__content blockquote { color: #0A0A0A; }
body.fw-template.is-light .fw-single__content a {
  color: #0A0A0A;
  border-bottom-color: var(--brand, #1B3A6B);
}
body.fw-template.is-light .fw-single__content th { background: #EEEDEA; color: #0A0A0A; }
body.fw-template.is-light .fw-single__hero-overlay {
  background: linear-gradient(180deg, rgba(245,244,240,0.55) 0%, rgba(245,244,240,0.78) 60%, #F5F4F0 100%) !important;
}
body.fw-template.is-light .fw-single__title { color: #0A0A0A !important; }
body.fw-template.is-light .fw-single__crumbs a { color: rgba(10,10,10,0.65); }
body.fw-template.is-light .fw-single__tag {
  border-color: rgba(10,10,10,0.18);
  color: rgba(10,10,10,0.7);
}
body.fw-template.is-light .fw-single__share-btn {
  border-color: rgba(10,10,10,0.18);
  color: #0A0A0A;
}
body.fw-template.is-light .fw-single__pn-title { color: #0A0A0A !important; }

/* Archive pagination */
body.fw-template.is-light .fw-archive__pagination .page-numbers {
  border-color: rgba(10,10,10,0.18);
  color: #0A0A0A;
}
body.fw-template.is-light .fw-archive__pagination .page-numbers.current {
  background: var(--brand, #1B3A6B) !important;
  color: #FFFFFF !important;
}

/* fw-blog__cat pill */
body.fw-template.is-light .fw-blog__cat {
  border-color: rgba(10,10,10,0.18) !important;
  color: rgba(10,10,10,0.7) !important;
}

/* Stats / numbers */
body.fw-template.is-light .stats-bar { border-color: rgba(10,10,10,0.10) !important; }
body.fw-template.is-light .stats-bar dt { color: rgba(10,10,10,0.6) !important; }
body.fw-template.is-light .stats-bar dd { color: #1B3A6B !important; }

/* Mobile responsive light tweaks */
@media (max-width: 859px) {
  body.fw-template .nav__theme { width: 38px; height: 38px; }
  body.fw-template .nav__theme-icon { width: 14px; height: 14px; }
}

/* Transición suave de tema — solo a body y wrappers principales (no descendientes) */
body.fw-template {
  transition: background-color 240ms ease, color 240ms ease;
}

/* =========================================================
   FW LIGHT MODE — DEFENSIVE OVERRIDES
   Cualquier sección con bg-2/brand/dark hardcodeado por inline style
   o clases que se nos hayan colado.
   ========================================================= */

/* Sections con inline style="background:var(--bg-2)" → ahora var(--bg-2) = blanco
   pero queremos un tinte navy claro para diferenciar bandas */
body.fw-template.is-light section[style*="background:var(--bg-2)"],
body.fw-template.is-light section[style*="background: var(--bg-2)"] {
  background: #F4F6FB !important;  /* fw-navy-050 */
}

/* Sections con inline style="background:var(--brand)" — se mantienen navy */
body.fw-template.is-light section[style*="background:var(--brand)"],
body.fw-template.is-light section[style*="background: var(--brand)"] {
  background: #1B3A6B !important;  /* fw-navy-700 */
  color: #FFFFFF !important;
}
body.fw-template.is-light section[style*="background:var(--brand)"] *,
body.fw-template.is-light section[style*="background: var(--brand)"] * {
  color: #FFFFFF !important;
}
body.fw-template.is-light section[style*="background:var(--brand)"] .t-eyebrow,
body.fw-template.is-light section[style*="background: var(--brand)"] .t-eyebrow {
  color: rgba(255,255,255,0.7) !important;
}

/* Hardcoded #0A0A0A bg → mantener dark (decisión cinemática) */
body.fw-template.is-light [style*="background:#0A0A0A"],
body.fw-template.is-light [style*="background: #0A0A0A"],
body.fw-template.is-light [style*="background:var(--bg-1)"],
body.fw-template.is-light [style*="background:var(--bg, #0A0A0A)"] {
  /* Estos los mantenemos oscuros y forzamos texto blanco dentro */
}

/* Cards con bg-2 inline (genérico) */
body.fw-template.is-light article[style*="var(--bg-2)"],
body.fw-template.is-light div[style*="var(--bg-2)"] {
  background: #FFFFFF !important;
  border-color: #ECEEF2 !important;
}

/* Plan featured (recomendado) — fondo navy tint con border navy */
body.fw-template.is-light .plan--featured {
  background: #F4F6FB !important;
  border-color: #1B3A6B !important;
  border-width: 2px !important;
}
body.fw-template.is-light .plan--featured .plan__title { color: #0E1F3A !important; }
body.fw-template.is-light .plan--featured .plan__lede { color: #2A2D33 !important; }
body.fw-template.is-light .plan--featured .plan__list li { color: #2A2D33 !important; }
body.fw-template.is-light .plan--featured .plan__list li.is-out { color: #8A8F9C !important; }
body.fw-template.is-light .plan--featured .plan__chip {
  border-color: #1B3A6B !important;
  color: #1B3A6B !important;
  background: transparent !important;
}

/* "Recomendado" eyebrow del plan featured → BADGE blanco sobre la franja navy decorativa del top */
body.fw-template.is-light .plan--featured .plan__eyebrow,
body.fw-template.is-light .plan--featured > .plan__eyebrow {
  color: #FFFFFF !important;
  background: #1B3A6B !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  display: inline-block !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Postular del featured → mantener navy bg con texto BLANCO (no heredar override) */
body.fw-template.is-light .plan--featured .btn--primary,
body.fw-template.is-light .plan--featured .btn--primary span,
body.fw-template.is-light .plan--featured .btn--primary .arrow {
  background: #1B3A6B !important;
  color: #FFFFFF !important;
  border-color: #1B3A6B !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
body.fw-template.is-light .plan--featured .btn--primary:hover {
  background: #234A85 !important;
  border-color: #234A85 !important;
}

/* Plan chips, badges, pills */
body.fw-template.is-light .plan__chip,
body.fw-template.is-light .spec__badge,
body.fw-template.is-light .hero-pill {
  border-color: #DDE0E6 !important;
  color: #1B3A6B !important;
  background: transparent !important;
}
body.fw-template.is-light .hero-pill--accent {
  border-color: #1B3A6B !important;
  background: #1B3A6B !important;
  color: #FFFFFF !important;
}

/* Hero pills DENTRO del hero (sobre overlay navy oscuro) → versión blanca */
body.fw-template.is-light .hero .hero-pill,
body.fw-template.is-light .hero-pills .hero-pill {
  border-color: rgba(255,255,255,0.45) !important;
  color: #FFFFFF !important;
  background: transparent !important;
}
body.fw-template.is-light .hero .hero-pill--accent,
body.fw-template.is-light .hero-pills .hero-pill--accent {
  border-color: #FFFFFF !important;
  background: #FFFFFF !important;
  color: #0E1F3A !important;
}

/* ============================================================
   FWU CTA Block — widget de "Postulación abierta" para insertar
   en posts del blog vía Custom HTML block.
   Respeta theme dark/light automáticamente.
   ============================================================ */
@keyframes fwu-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.6; transform: scale(1.15); }
}
body.fw-template .fwu-cta-block {
  background: var(--bg-2, #0F0F10);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  padding: 36px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
  margin: 32px 0;
  font-family: 'Nunito Sans', system-ui, sans-serif;
}
body.fw-template .fwu-cta-block__head { display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; }
body.fw-template .fwu-cta-block__eyebrow {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand);
  font-weight: 600;
  display: flex; align-items: center; gap: 7px;
}
body.fw-template .fwu-cta-block__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #25D366;
  display: inline-block;
  animation: fwu-pulse 2s ease-in-out infinite;
}
body.fw-template .fwu-cta-block__title {
  font-size: 20px; font-weight: 700;
  color: var(--fg);
  line-height: 1.25; margin: 0;
}
body.fw-template .fwu-cta-block__lede {
  font-size: 13px;
  color: var(--fg-3);
  margin: 0; line-height: 1.5;
}
body.fw-template .fwu-cta-block__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
body.fw-template .fwu-cta-block__cta {
  display: inline-flex; align-items: center; gap: 10px;
  background: #1C3566; color: #FFFFFF !important;
  text-decoration: none !important;
  font-size: 14px; font-weight: 600;
  padding: 13px 24px;
  border-radius: 8px;
  border: 1px solid rgba(59,157,198,0.25);
  white-space: nowrap;
  transition: background 200ms;
}
body.fw-template .fwu-cta-block__cta:hover { background: #234080; }
body.fw-template .fwu-cta-block__meta {
  font-size: 10px;
  color: var(--fg-4);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
body.fw-template .fwu-cta-block__divider {
  width: 100%; height: 1px;
  background: rgba(255,255,255,0.05);
  margin-top: 20px;
}
body.fw-template .fwu-cta-block__foot {
  width: 100%;
  display: flex; justify-content: space-between; flex-wrap: wrap;
  gap: 6px; padding-top: 14px;
  font-size: 11px;
  color: var(--fg-4);
  letter-spacing: 0.8px;
}
body.fw-template .fwu-cta-block__foot a { color: var(--brand); text-decoration: none; }

/* LIGHT mode — bg claro, texto oscuro, border tenue */
body.fw-template.is-light .fwu-cta-block {
  background: #FFFFFF;
  border-color: #ECEEF2;
}
body.fw-template.is-light .fwu-cta-block__title { color: #1B3A6B; }
body.fw-template.is-light .fwu-cta-block__lede { color: #5A6072; }
body.fw-template.is-light .fwu-cta-block__meta { color: rgba(10,10,10,0.4); }
body.fw-template.is-light .fwu-cta-block__divider { background: rgba(10,10,10,0.06); }
body.fw-template.is-light .fwu-cta-block__foot { color: rgba(10,10,10,0.45); }

/* Responsive — stack en mobile */
@media (max-width: 720px) {
  body.fw-template .fwu-cta-block { padding: 24px 22px; }
  body.fw-template .fwu-cta-block__actions { align-items: stretch; width: 100%; }
  body.fw-template .fwu-cta-block__cta { justify-content: center; }
}

/* Compare table — modulos */
body.fw-template.is-light .compare {
  background: #FFFFFF !important;
  border: 1px solid #ECEEF2 !important;
  border-radius: 14px !important;
  overflow: hidden;
}
/* En mobile (≤860px) la tabla excede el viewport — habilitar scroll horizontal.
   Más específica que el @media de page-modulos.css para vencer el override de arriba. */
@media (max-width: 860px) {
  body.fw-template.is-light .compare {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }
}
body.fw-template.is-light .compare table {
  color: #2A2D33 !important;
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  border-collapse: collapse;
  width: 100%;
}
body.fw-template.is-light .compare th,
body.fw-template.is-light .compare td {
  border-color: #ECEEF2 !important;
  border-style: solid !important;
  border-width: 0 0 1px 0 !important;
  padding: 16px 20px !important;
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  color: #2A2D33 !important;
  background: transparent !important;
}
body.fw-template.is-light .compare thead th {
  background: #F4F6FB !important;        /* fw-navy-050 */
  color: #1B3A6B !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px !important;
  border-bottom: 1px solid #DDE0E6 !important;
}
body.fw-template.is-light .compare tbody td:first-child {
  color: #0E1F3A !important;
  font-weight: 600 !important;
}
/* Section row separators (Licencias DGAC / Operación / Habilitación) */
body.fw-template.is-light .compare tbody tr.section-row td,
body.fw-template.is-light .compare tbody td[colspan] {
  background: #F4F6FB !important;
  color: #1B3A6B !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px !important;
}
/* Featured column (Plan B) — sutil navy tint, no oscuro */
body.fw-template.is-light .compare th[data-feat],
body.fw-template.is-light .compare td[data-feat] {
  background: #E8EDF5 !important;          /* fw-navy-100 — sutil tint */
  color: #1B3A6B !important;               /* fw-navy-700 */
  -webkit-text-fill-color: #1B3A6B !important;
  font-weight: 700 !important;
  border-left: 1px solid #DDE0E6 !important;
  border-right: 1px solid #DDE0E6 !important;
}
/* Header de la columna featured — navy lleno (mantiene jerarquía) */
body.fw-template.is-light .compare th[data-feat] {
  background: #1B3A6B !important;          /* fw-navy-700 */
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-left: 1px solid #1B3A6B !important;
  border-right: 1px solid #1B3A6B !important;
  border-bottom: 1px solid #1B3A6B !important;
}
/* Check marks */
body.fw-template.is-light .compare td {
  text-align: left;
}
body.fw-template.is-light .compare td:not(:first-child) {
  color: #1B3A6B !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  text-align: center !important;
}
/* Featured column cells — navy más oscuro para mejor contraste sobre fondo navy claro */
body.fw-template.is-light .compare td[data-feat]:not(:first-child) {
  color: #0E1F3A !important;                /* fw-navy-900 — máximo contraste */
  -webkit-text-fill-color: #0E1F3A !important;
  font-size: 18px !important;
  font-weight: 800 !important;
}
/* Texto especial dentro del featured (ej. "Acceso", "Completo") */
body.fw-template.is-light .compare td[data-feat] {
  color: #0E1F3A !important;
}
body.fw-template.is-light .compare .dash {
  color: #C2C6CF !important;
  font-weight: 400 !important;
}
body.fw-template.is-light .compare td[data-feat] .dash {
  color: #8A8F9C !important;
}
/* Cuando la sección row cae sobre la columna featured, mantener tint navy */
body.fw-template.is-light .compare tbody tr.section-row td[data-feat],
body.fw-template.is-light .compare tbody td[colspan][data-feat] {
  background: #E8EDF5 !important;
  color: #1B3A6B !important;
}
body.fw-template.is-light .compare tbody tr:last-child td { border-bottom: 0 !important; }
body.fw-template.is-light .compare tbody tr:hover td:not([data-feat]) {
  background: #F5F6F8 !important;
}

/* Stats bar */
body.fw-template.is-light .stats-bar { border-color: #ECEEF2 !important; }
body.fw-template.is-light .stats-bar > div { border-color: #ECEEF2 !important; }
body.fw-template.is-light .stats-bar dt { color: #5A6072 !important; }
body.fw-template.is-light .stats-bar dd { color: #1B3A6B !important; }

/* Timeline */
body.fw-template.is-light .timeline__bar,
body.fw-template.is-light .timeline::before { background: #DDE0E6 !important; }
body.fw-template.is-light .tnode__dot {
  background: #1B3A6B !important;
  border-color: #FFFFFF !important;
}
body.fw-template.is-light .tnode__code {
  color: #1B3A6B !important;
  background: #E8EDF5 !important;
}

/* Boarding (en CTA dark) — mantener dark interno */
body.fw-template.is-light .boarding__step .est {
  border-color: rgba(255,255,255,0.18) !important;
  color: rgba(255,255,255,0.72) !important;
  background: transparent !important;
}

/* Specs slider nav */
body.fw-template.is-light .specs-nav__btn {
  border-color: #DDE0E6 !important;
  color: #1B3A6B !important;
  background: #FFFFFF !important;
}
body.fw-template.is-light .specs-nav__counter { color: #5A6072 !important; }
body.fw-template.is-light .specs-nav__counter .now { color: #0E1F3A !important; }

/* Eyebrows en cards y secciones — navy mid */
body.fw-template.is-light .feat__num,
body.fw-template.is-light .fleet3-card__stage,
body.fw-template.is-light .facility__eyebrow,
body.fw-template.is-light .plan__eyebrow,
body.fw-template.is-light .intl-strip__eyebrow,
body.fw-template.is-light .reel__corner,
body.fw-template.is-light .fw-blog__meta time,
body.fw-template.is-light .fw-archive__count,
body.fw-template.is-light .fw-archive__pageinfo {
  color: #1B3A6B !important;
}

/* Trust pills */
body.fw-template.is-light .trust { background: #FFFFFF !important; border-color: #ECEEF2 !important; }
body.fw-template.is-light .trust__pill {
  border-color: #DDE0E6 !important;
  color: #2A2D33 !important;
}
body.fw-template.is-light .trust__label { color: #5A6072 !important; }

/* Card spec-grid en flota cards */
body.fw-template.is-light .fleet3-card__specs > div { border-color: #ECEEF2 !important; }
body.fw-template.is-light .fleet3-card__specs .l { color: #5A6072 !important; }
body.fw-template.is-light .fleet3-card__specs .v { color: #0E1F3A !important; }

/* Plan list */
body.fw-template.is-light .plan__list li { color: #2A2D33 !important; }
body.fw-template.is-light .plan__list li.is-out { color: #8A8F9C !important; }
body.fw-template.is-light .plan__check { stroke: #1B3A6B !important; }
body.fw-template.is-light .plan__list li.is-out .plan__check { stroke: #C2C6CF !important; }

/* DGAC links inline en hero subhead */
body.fw-template.is-light .hero__sub a {
  color: #1B3A6B !important;
  border-bottom-color: #1B3A6B !important;
}

/* Border-on-dark vars en light: en secciones dark (cta-final/continuity/cine) son las correctas;
   pero en links hero__sub que ya están en light, redefinimos: */
body.fw-template.is-light .hero__sub a[style*="border-on-dark"] {
  border-bottom: 1px solid #1B3A6B !important;
  color: #1B3A6B !important;
}

/* Footer brand p — texto suave */
body.fw-template.is-light .footer__brand p { color: rgba(255,255,255,0.65) !important; }

/* Card titles dentro de sections con bg-brand (programas destacados Carrera) */
body.fw-template.is-light section[style*="var(--brand)"] article,
body.fw-template.is-light section[style*="var(--brand)"] .card,
body.fw-template.is-light section[style*="var(--brand)"] [style*="border:1px solid"] {
  border-color: rgba(255,255,255,0.18) !important;
  background: rgba(255,255,255,0.05) !important;
}

/* Color-bg generic fallbacks */
body.fw-template.is-light [style*="color:var(--white)"][style*="background"] {
  /* Si el inline tiene white text + algún bg, asegurarse que el bg pueda forzar dark */
}

/* Reveal animation: en mobile y tablet cualquier hover dark se reset */
@media (max-width: 859px) {
  body.fw-template.is-light .nav { background: rgba(245,246,248,0.95) !important; }
}

/* Border-on-dark token (para links inline en heroes/secciones light) */
body.fw-template.is-light .hero__sub a {
  border-bottom-color: rgba(27,58,107,0.5) !important;
}

/* =========================================================
   FW LIGHT MODE — Carrera "Experiencia / Cuerpo docente"
   ========================================================= */
body.fw-template.is-light .exp-quote blockquote p {
  color: #1B3A6B !important;        /* fw-brand navy */
  -webkit-text-fill-color: #1B3A6B !important;
}
body.fw-template.is-light .exp-quote blockquote {
  border-left-color: #1B3A6B !important;
}
body.fw-template.is-light .exp-quote figcaption {
  color: #2A2D33 !important;
}
body.fw-template.is-light .exp-quote figcaption strong {
  color: #1B3A6B !important;
}
body.fw-template.is-light .exp-quote figcaption .sep {
  color: #5A6072 !important;
}
body.fw-template.is-light .exp-quote a {
  color: #1B3A6B !important;
  border-bottom-color: #1B3A6B !important;
}

/* Dossier card */
body.fw-template.is-light .dossier {
  background: #FFFFFF !important;
  border-color: #ECEEF2 !important;
}
body.fw-template.is-light .dossier__head,
body.fw-template.is-light .dossier__head span,
body.fw-template.is-light .dossier__label {
  color: #1B3A6B !important;
}
body.fw-template.is-light .dossier__list dt {
  color: #5A6072 !important;        /* fw-ink-500 */
}
body.fw-template.is-light .dossier__list dd {
  color: #1B3A6B !important;        /* fw-brand navy */
}
body.fw-template.is-light .dossier__list > div {
  border-color: #ECEEF2 !important;
}
body.fw-template.is-light .dossier__foot {
  border-color: #ECEEF2 !important;
}
body.fw-template.is-light .dossier .btn--ghost {
  border-color: #DDE0E6 !important;
  color: #0E1F3A !important;
}
body.fw-template.is-light .dossier .btn--ghost:hover {
  background: #F4F6FB !important;
  border-color: #1B3A6B !important;
}

/* =========================================================
   FW LIGHT MODE — Modulos Spec Slider (Habilitación IFR, etc.)
   ========================================================= */
body.fw-template.is-light .spec {
  background: #FFFFFF !important;
  border-color: #ECEEF2 !important;
}
body.fw-template.is-light .spec__code,
body.fw-template.is-light .spec__cat,
body.fw-template.is-light .spec__table-label {
  color: #1B3A6B !important;             /* fw-navy-700 */
}
body.fw-template.is-light .spec__title {
  color: #0E1F3A !important;             /* fw-navy-900 */
}
body.fw-template.is-light .spec__subtitle {
  color: #5A6072 !important;             /* fw-ink-500 */
}
body.fw-template.is-light .spec__head { border-color: #ECEEF2 !important; }
body.fw-template.is-light .spec__badge {
  background: transparent !important;
  border-color: #DDE0E6 !important;
  color: #1B3A6B !important;
}
body.fw-template.is-light .spec__badge--brand {
  background: #1B3A6B !important;
  border-color: #1B3A6B !important;
  color: #FFFFFF !important;
}

/* Table de contenido del programa */
body.fw-template.is-light .spec__table {
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
}
body.fw-template.is-light .spec__table th,
body.fw-template.is-light .spec__table td {
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  border-color: #ECEEF2 !important;
  background: transparent !important;
}
body.fw-template.is-light .spec__row-name {
  color: #2A2D33 !important;             /* fw-ink-700 — visible */
  -webkit-text-fill-color: #2A2D33 !important;
  font-weight: 500 !important;
  text-align: left !important;
}
body.fw-template.is-light .spec__row-hours {
  color: #0E1F3A !important;             /* fw-navy-900 — bold */
  -webkit-text-fill-color: #0E1F3A !important;
  font-weight: 700 !important;
}

/* Total programa */
body.fw-template.is-light .spec__total {
  border-top: 1px solid #DDE0E6 !important;
  margin-top: 24px;
}
body.fw-template.is-light .spec__total-label {
  color: #1B3A6B !important;
}
body.fw-template.is-light .spec__total-value {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
}
body.fw-template.is-light .spec__total-value .unit {
  color: #5A6072 !important;
  -webkit-text-fill-color: #5A6072 !important;
}

/* Slider nav (prev/next + counter + dots) */
body.fw-template.is-light .specs-nav {
  border-top: 1px solid #ECEEF2 !important;
  border-bottom: 1px solid #ECEEF2 !important;
}
body.fw-template.is-light .specs-nav__btn {
  background: #FFFFFF !important;
  border-color: #DDE0E6 !important;
  color: #1B3A6B !important;
}
body.fw-template.is-light .specs-nav__btn:hover {
  background: #F4F6FB !important;
  border-color: #1B3A6B !important;
}
body.fw-template.is-light .specs-nav__counter {
  color: #5A6072 !important;
}
body.fw-template.is-light .specs-nav__counter .now {
  color: #0E1F3A !important;
}
body.fw-template.is-light .specs-nav__progress { background: #ECEEF2 !important; }
body.fw-template.is-light .specs-nav__progress-bar { background: #1B3A6B !important; }
body.fw-template.is-light .specs-nav__dots .dot { background: #DDE0E6 !important; }
body.fw-template.is-light .specs-nav__dots .dot.is-active { background: #1B3A6B !important; }

/* Footer del slider (FW · DOC · 2026, etc.) */
body.fw-template.is-light .specs-foot,
body.fw-template.is-light .specs-foot * {
  color: #1B3A6B !important;
}
body.fw-template.is-light .specs-foot { border-color: #ECEEF2 !important; }

/* =========================================================
   MOBILE MENU OVERLAY — Fixes light/dark mode + burger close
   ========================================================= */

/* Botón Agendar entrevista (CTA principal del menu mobile) — siempre blanco sobre navy */
body.fw-template .mobile-menu__cta,
body.fw-template .mobile-menu__cta:link,
body.fw-template .mobile-menu__cta:visited,
body.fw-template.is-light .mobile-menu__cta {
  background: #1B3A6B !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-color: #1B3A6B !important;
}
body.fw-template .mobile-menu__cta:hover {
  background: #234A85 !important;
  border-color: #234A85 !important;
  color: #FFFFFF !important;
}

/* Mobile menu — DARK MODE (default): bg negro, texto blanco */
html body.fw-template .mobile-menu,
body.fw-template #mobile-menu.mobile-menu {
  background: #0A0A0A !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
body.fw-template .mobile-menu a,
body.fw-template .mobile-menu .menu-item {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-bottom-color: rgba(255,255,255,0.10) !important;
}
body.fw-template .mobile-menu a::after,
body.fw-template .mobile-menu .menu-item::after {
  color: rgba(255,255,255,0.55) !important;
}
body.fw-template .mobile-menu__head,
body.fw-template .mobile-menu__contact {
  color: rgba(255,255,255,0.55) !important;
  border-color: rgba(255,255,255,0.15) !important;
}
body.fw-template .mobile-menu__contact a {
  color: rgba(255,255,255,0.7) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.7) !important;
}

/* Mobile menu — LIGHT MODE: bg blanco/cream, texto navy */
html body.fw-template.is-light .mobile-menu,
body.fw-template.is-light #mobile-menu.mobile-menu {
  background: #F5F6F8 !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
body.fw-template.is-light .mobile-menu a,
body.fw-template.is-light .mobile-menu .menu-item {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
  border-bottom-color: rgba(14,31,58,0.10) !important;
}
body.fw-template.is-light .mobile-menu a::after,
body.fw-template.is-light .mobile-menu .menu-item::after {
  color: rgba(14,31,58,0.55) !important;
}
body.fw-template.is-light .mobile-menu__head,
body.fw-template.is-light .mobile-menu__contact {
  color: rgba(14,31,58,0.55) !important;
  border-color: rgba(14,31,58,0.12) !important;
}
body.fw-template.is-light .mobile-menu__contact a {
  color: rgba(14,31,58,0.7) !important;
  -webkit-text-fill-color: rgba(14,31,58,0.7) !important;
}
/* CTA "Pagar con Webpay" en light → outline navy con texto navy */
body.fw-template.is-light .mobile-menu__pay {
  background: transparent !important;
  border-color: rgba(14,31,58,0.20) !important;
  color: #1B3A6B !important;
  -webkit-text-fill-color: #1B3A6B !important;
}
body.fw-template.is-light .mobile-menu__pay svg { stroke: #1B3A6B !important; }
body.fw-template.is-light .mobile-menu__pay:hover {
  background: rgba(27,58,107,0.06) !important;
  border-color: #1B3A6B !important;
}

/* Burger button cuando menu está abierto — fondo y spans blancos para ser visible (X close) */
body.fw-template body.is-menu-open .nav__burger,
body.is-menu-open body.fw-template .nav__burger,
body.is-menu-open .nav__burger {
  border-color: rgba(255,255,255,0.4) !important;
  background: rgba(255,255,255,0.08) !important;
  z-index: 100 !important;
  position: relative;
}
body.fw-template body.is-menu-open .nav__burger span,
body.is-menu-open body.fw-template .nav__burger span,
body.is-menu-open .nav__burger span {
  background: #FFFFFF !important;
}

/* Burger spans en light mode (cerrado) — navy oscuro */
body.fw-template.is-light .nav__burger span {
  background: #0E1F3A !important;
}
body.fw-template.is-light .nav__burger {
  border-color: rgba(14,31,58,0.18) !important;
  color: #0E1F3A;
}

/* Mobile pagar/postular hide en mobile (lo gestiona responsive-patch) — refuerzo */
@media (max-width: 859px) {
  body.fw-template .nav__right .nav__pay,
  body.fw-template .nav__right > button.btn:not(.nav__burger):not(.nav__theme) {
    display: none !important;
  }
}

/* =========================================================
   FW FORM MODAL — Submit button + Success state fixes
   ========================================================= */

/* Botón "Comenzar →" del form (.btn--primary) — siempre blanco sobre navy */
body.fw-template .fw-form__submit,
body.fw-template .fw-form__submit:link,
body.fw-template .fw-form__submit:visited,
body.fw-template.is-light .fw-form__submit,
body.fw-template .fw-form .btn--primary,
body.fw-template.is-light .fw-form .btn--primary {
  background: #1B3A6B !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-color: #1B3A6B !important;
}
body.fw-template .fw-form__submit:hover,
body.fw-template.is-light .fw-form__submit:hover {
  background: #234A85 !important;
  border-color: #234A85 !important;
}
body.fw-template .fw-form__submit *,
body.fw-template.is-light .fw-form__submit * {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Success "Despegue autorizado" en modal — copy y meta */
body.fw-template.is-light .fw-success {
  background: transparent !important;
}
body.fw-template.is-light .fw-success__icon {
  background: #E8EDF5 !important;
  color: #1B3A6B !important;
  border-color: #1B3A6B !important;
}
body.fw-template.is-light .fw-success__icon svg { stroke: #1B3A6B !important; }
body.fw-template.is-light .fw-success .t-eyebrow,
body.fw-template.is-light .fw-success__eyebrow { color: #1B3A6B !important; }
body.fw-template.is-light .fw-success .fw-form__title,
body.fw-template.is-light h2.fw-form__title,
body.fw-template.is-light #fw-success-title {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
}
body.fw-template.is-light .fw-success__copy {
  color: #2A2D33 !important;
  -webkit-text-fill-color: #2A2D33 !important;
}
body.fw-template.is-light .fw-success__copy strong {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
}

/* Success meta (Acuse / FW · ACK / Recibido / Origen) */
body.fw-template.is-light .fw-success__meta,
body.fw-template.is-light .fw-success__meta dl,
body.fw-template.is-light .fw-success__meta div {
  border-color: #DDE0E6 !important;
}
body.fw-template.is-light .fw-success__meta dt {
  color: #5A6072 !important;
  -webkit-text-fill-color: #5A6072 !important;
}
body.fw-template.is-light .fw-success__meta dd {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
  font-weight: 700;
}

/* Success actions */
body.fw-template.is-light .fw-success__actions .btn--primary,
body.fw-template.is-light .fw-success__close {
  background: #1B3A6B !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-color: #1B3A6B !important;
}
body.fw-template.is-light .fw-success__actions .btn--ghost {
  background: #FFFFFF !important;
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
  border-color: #DDE0E6 !important;
}
body.fw-template.is-light .fw-success__actions .btn--ghost:hover {
  border-color: #1B3A6B !important;
  background: #F4F6FB !important;
}

/* Form modal labels y headings */
body.fw-template.is-light .fw-form__title,
body.fw-template.is-light .fw-form label {
  color: #0E1F3A !important;
  -webkit-text-fill-color: #0E1F3A !important;
}
body.fw-template.is-light .fw-form .fw-form__lede,
body.fw-template.is-light .fw-form p {
  color: #2A2D33 !important;
}
body.fw-template.is-light .fw-form .t-eyebrow {
  color: #1B3A6B !important;
}

/* ============================================================================
 * Reveal animation — fallback defensivo (2026-04-29)
 *
 * Las clases .reveal y .timeline aplican opacity:0 por default y necesitan
 * que el IntersectionObserver dispare para mostrarse (.is-in). Si el IO no
 * dispara por algún motivo (extension de browser, error JS previo, etc.),
 * los textos quedan invisibles permanentemente.
 *
 * Este fallback fuerza opacity:1 después de 1.2s automáticamente. Mantiene
 * la animación reveal cuando funciona, garantiza visibilidad cuando no.
 * ============================================================================ */
.reveal:not(.is-in),
.timeline:not(.is-in) {
  animation: fw-reveal-fallback 0.01s linear 1.2s forwards;
}
@keyframes fw-reveal-fallback {
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .timeline {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* ============================================================================
 * Footer legal links — global (todos los templates)
 * Aparece debajo del footer__bottom con un border-top sutil.
 * ============================================================================ */
.footer__legal {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  font-size: 12px;
  color: rgba(255,255,255,.6);
}
.footer__legal a {
  color: rgba(255,255,255,.75);
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.25);
  text-underline-offset: 3px;
  transition: color .15s ease, text-decoration-color .15s ease;
}
.footer__legal a:hover {
  color: #fff;
  text-decoration-color: rgba(255,255,255,.7);
}
.footer__legal span {
  opacity: .4;
}
/* En body.is-light el footer también tiene fondo oscuro, no requiere override de color */
