/* ═══════════════════════════════════════════════════════════
   Mr Checkin Travel
   Tokens, medidas y sombras extraídos del sitio original.
   ═══════════════════════════════════════════════════════════ */

:root {
  --blue:   #0041e9;
  --blue-d: #0035c4;
  --navy:   #0A2A4E;
  --navy2:  #0B1B33;
  --muted:  #5B7088;
  --line:   #E6EDF5;
  --sky:    #EAF3FC;
  --sky2:   #DCEAFB;
  --cyan:   #66fff4;
  --wa:     #25D366;

  --display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --texto:   'Manrope', system-ui, sans-serif;
  --ancho: 1200px;
}

* { box-sizing: border-box; }
body { margin: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  font-family: var(--texto);
  font-size: 17px; line-height: 1.65;
  color: var(--navy); background: #fff;
  -webkit-font-smoothing: antialiased;
}

.envoltura { max-width: var(--ancho); margin: 0 auto; padding-inline: 24px; }
a { color: var(--blue); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }

/* ═══ HEADER ═══ */
.mct-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: saturate(180%) blur(12px);
  background: rgba(255,255,255,.86);
  border-bottom: 1px solid var(--line);
}
.mct-header-inner {
  max-width: var(--ancho); margin: 0 auto; padding: 14px 24px;
  display: flex; align-items: center; gap: 24px;
}
.mct-logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.mct-logo svg { height: 62px; width: auto; }
.mct-nav { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.mct-nav > a, .mct-drop > a {
  text-decoration: none; color: var(--navy);
  font-weight: 600; font-size: 14px; transition: color .2s;
}
.mct-nav > a:hover, .mct-drop > a:hover, .mct-nav a[aria-current="page"] { color: var(--blue); }

/* Menú desplegable */
.mct-drop { position: relative; }
.mct-drop > a { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.mct-drop > a::after { content: "▾"; font-size: 10px; opacity: .6; }
.mct-panel {
  position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(-8px);
  min-width: 280px; background: #fff;
  border: 1px solid var(--line); border-radius: 18px;
  box-shadow: 0 24px 50px -20px rgba(10,42,78,.35);
  padding: 10px; opacity: 0; visibility: hidden;
  transition: opacity .2s, transform .2s, visibility .2s; z-index: 60;
}
.mct-drop::before { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 18px; }
.mct-drop:hover .mct-panel, .mct-drop:focus-within .mct-panel {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.mct-panel a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 10px 14px; border-radius: 12px; text-decoration: none;
  color: var(--navy); font-size: 14px; font-weight: 600; transition: background .15s, color .15s;
}
.mct-panel a:hover { background: var(--sky); color: var(--blue); }
.mct-panel a small { font-family: var(--texto); font-weight: 400; font-size: 12px; color: var(--muted); white-space: nowrap; }
.mct-panel .grupo-titulo {
  font-family: var(--display); font-weight: 800; font-size: 11px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--blue); padding: 12px 14px 6px;
}
.mct-panel.ancho { min-width: 340px; }
@media (max-width: 980px) { .mct-drop { display: none; } }

.mct-cta {
  background: var(--cyan); color: var(--navy2) !important;
  font-weight: 700 !important; font-size: 15px !important;
  padding: 13px 28px; border-radius: 999px;
  box-shadow: 0 12px 28px -10px rgba(102,255,244,.55);
  transition: background .2s, transform .2s, box-shadow .2s;
  text-shadow: none !important;
}
.mct-cta:hover {
  background: #4ff0e4; color: var(--navy2) !important;
  transform: translateY(-1px); box-shadow: 0 16px 32px -10px rgba(102,255,244,.7);
}
/* en el home el header es transparente: el botón no hereda el blanco */
body.home .mct-nav > a.mct-cta { color: var(--navy2) !important; text-shadow: none }
@media (max-width: 900px) {
  .mct-nav a:not(.mct-cta) { display: none; }
  .mct-logo svg { height: 62px; width: auto; }
  .mct-cta { padding: 10px 18px; font-size: 13px !important; }
}

/* ═══ MIGAS ═══ */
.migas { font-size: 13px; padding-block: 20px 0; color: var(--muted); }
.migas ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.migas li:not(:last-child)::after { content: "›"; margin-left: 6px; color: #C2D2E2; }
.migas a { color: inherit; text-decoration: none; }
.migas a:hover { color: var(--blue); text-decoration: underline; }

/* ═══ SECCIONES ═══ */
section { padding-block: clamp(48px, 7vw, 90px); }
section.claro { background: var(--sky); }

.etiqueta {
  display: block;
  font-weight: 700; font-size: 13px;
  color: var(--blue); letter-spacing: .08em; text-transform: uppercase;
}
h1 {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.08; letter-spacing: -.02em;
  color: var(--navy); margin: 10px 0 16px; max-width: 17ch;
}
h2 {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -.02em; line-height: 1.12;
  color: var(--navy); margin: 10px 0 26px;
}
/* En encabezados de dos columnas el margen lo pone el contenedor */
.seccion-encabezado h2 { margin-bottom: 0; }
h3 { font-family: var(--display); font-weight: 800; font-size: 20px; letter-spacing: -.01em; color: var(--navy); margin: 0 0 8px; }
p { margin: 0; }
.bajada { font-size: 18px; color: var(--muted); max-width: 60ch; }

.seccion-encabezado {
  display: flex; flex-wrap: wrap;
  align-items: flex-end; justify-content: space-between;
  gap: 16px; margin-bottom: 28px;
}
.seccion-encabezado > p { max-width: 420px; color: var(--muted); font-size: 16px; }

/* ═══ MOSAICO DE DESTINOS ═══ */
.mosaico {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  grid-auto-rows: 218px; gap: 16px;
}
.mosaico .tarjeta {
  position: relative; display: block;
  border-radius: 24px; overflow: hidden;
  text-decoration: none; background: var(--sky);
  transition: transform .25s, box-shadow .25s;
}
.mosaico .tarjeta:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -26px rgba(10,42,78,.6); }
.mosaico .tarjeta img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mosaico .tarjeta::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(10,42,78,.82), rgba(10,42,78,.05) 58%);
}
.mosaico .num {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  font-family: var(--display); font-weight: 800; font-size: 12px;
  background: var(--blue); color: #fff;
  padding: 4px 9px; border-radius: 999px;
}
.mosaico .tarjeta-texto {
  position: absolute; left: 18px; right: 18px; bottom: 16px;
  color: #fff; z-index: 2;
}
.mosaico .duracion { font-size: 12px; opacity: .8; margin-bottom: 4px; display: block; }
.mosaico .tarjeta-texto h3 {
  font-family: var(--display); font-weight: 800;
  font-size: clamp(20px, 2.4vw, 28px); letter-spacing: -.02em;
  color: #fff; margin: 0;
}
.mosaico .lugar { font-size: 13px; opacity: .85; margin-top: 2px; }
.mosaico .desde {
  display: inline-block; margin-top: 10px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(4px);
  padding: 5px 11px; border-radius: 999px;
  font-weight: 700; font-size: 13px; color: #fff;
}
.g2x2 { grid-column: 1 / span 2; grid-row: 1 / span 2; }
.g2   { grid-column: span 2; }
@media (max-width: 860px) {
  .mosaico { grid-template-columns: 1fr !important; grid-auto-rows: auto !important; }
  .mosaico > * { grid-column: auto !important; grid-row: auto !important; min-height: 240px; }
}

/* ═══ TARJETAS DE ZONA ═══ */
.zonas { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.zona {
  display: flex; flex-direction: column; text-align: left;
  border-radius: 22px; overflow: hidden; background: #fff;
  box-shadow: 0 14px 30px -22px rgba(10,42,78,.5);
  text-decoration: none; color: var(--navy);
  transition: transform .25s, box-shadow .25s;
}
.zona:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -22px rgba(10,42,78,.6); }
.zona-img { position: relative; height: 200px; }
.zona-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zona-img::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(10,42,78,.82), rgba(10,42,78,.05) 60%);
}
.zona .num {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  font-family: var(--display); font-weight: 800; font-size: 11px;
  background: var(--blue); color: #fff; padding: 4px 9px; border-radius: 999px;
}
.zona-texto { position: absolute; left: 18px; right: 18px; bottom: 15px; color: #fff; z-index: 2; }
.zona-texto h3 { font-family: var(--display); font-weight: 800; font-size: 23px; letter-spacing: -.02em; color: #fff; margin: 0; }
.zona-texto p { font-size: 12px; opacity: .85; margin-top: 4px; }
.zona-pie {
  padding: 14px 18px; display: flex; align-items: center; justify-content: space-between;
  font-size: 14px; color: var(--blue); font-weight: 600;
}

/* ═══ BOTONES ═══ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--texto); font-weight: 700; font-size: 15px;
  padding: 14px 30px; border-radius: 999px;
  text-decoration: none; border: none; cursor: pointer;
  transition: transform .2s, box-shadow .2s, background .2s;
}
.btn-oscuro { background: var(--navy); color: #fff; box-shadow: 0 12px 26px -10px rgba(10,42,78,.5); }
.btn-oscuro:hover { transform: translateY(-2px); color: #fff; }
.btn-azul { background: var(--blue); color: #fff; box-shadow: 0 12px 26px -10px rgba(0,65,233,.6); }
.btn-azul:hover { background: var(--blue-d); transform: translateY(-2px); color: #fff; }
.btn-wa { background: var(--wa); color: #fff; box-shadow: 0 12px 26px -10px rgba(37,211,102,.7); }
.btn-wa:hover { transform: translateY(-2px); color: #fff; }
.centrado { text-align: center; margin-top: 34px; }

/* ═══ HERO ═══ */
.hero {
  position: relative; border-radius: 32px; overflow: hidden;
  min-height: 520px; display: flex; align-items: center;
}
.hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(10,42,78,.86) 0%, rgba(10,42,78,.48) 50%, rgba(10,42,78,.12) 100%);
}
.hero-texto { position: relative; z-index: 2; padding: clamp(32px,5vw,64px); max-width: 640px; }
.hero-texto h1 { color: #fff; max-width: 14ch; }
.hero-texto p { color: rgba(255,255,255,.9); font-size: 18px; max-width: 46ch; }
.pastilla {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(10,42,78,.55); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff; font-weight: 600; font-size: 14px;
  padding: 9px 18px; border-radius: 999px;
}
.hero-botones { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.hero-botones .btn { box-shadow: none; }

/* ═══ PORTADA DE PÁGINA INTERNA ═══ */
.portada { padding-block: 28px 8px; }
.datos-rapidos {
  display: flex; flex-wrap: wrap; margin-top: 30px;
  border: 1px solid var(--line); border-radius: 22px;
  overflow: hidden; background: #fff;
  box-shadow: 0 14px 30px -22px rgba(10,42,78,.5);
}
.dato { flex: 1 1 150px; padding: 18px 22px; border-right: 1px solid var(--line); }
.dato:last-child { border-right: 0; }
.dato dt { font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.dato dd { font-family: var(--display); font-weight: 800; font-size: 19px; color: var(--navy); margin: 0; }
.foto {
  width: 100%; aspect-ratio: 16/9; object-fit: cover;
  border-radius: 32px; margin-top: 32px; background: var(--sky);
  box-shadow: 0 30px 60px -28px rgba(10,42,78,.5);
}

/* ═══ SPLIT + STATS ═══ */
.split { display: flex; flex-wrap: wrap; gap: clamp(32px,5vw,64px); align-items: center; }
.split > * { flex: 1 1 360px; }
.split img { width: 100%; border-radius: 28px; box-shadow: 0 26px 50px -26px rgba(10,42,78,.55); object-fit: cover; }
.stats { display: flex; flex-wrap: wrap; gap: 28px 40px; margin-top: 28px; }
.stat .n { font-family: var(--display); font-weight: 800; font-size: 40px; color: var(--blue); line-height: 1; }
.stat .t { font-size: 14px; color: var(--muted); margin-top: 6px; }

/* ═══ PLANES ═══ */
.planes { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); margin-top: 30px; }
.plan {
  border: 1px solid #cfdcff; border-radius: 26px; padding: 26px 24px 24px;
  display: flex; flex-direction: column; background: #fff;
  box-shadow: 0 18px 40px -24px rgba(10,42,78,.30), 0 2px 6px -2px rgba(10,42,78,.08);
  transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s;
}
.plan:hover { transform: translateY(-6px); box-shadow: 0 34px 60px -28px rgba(10,42,78,.42), 0 3px 8px -2px rgba(10,42,78,.10); }
.plan.destacado { background: #fff; border: 1px solid #cfdcff; box-shadow: 0 18px 40px -24px rgba(10,42,78,.30), 0 2px 6px -2px rgba(10,42,78,.08); }

/* Pastilla de duración/programa (estilo tag ámbar del referente) */
.plan .duracion {
  display: inline-block; align-self: flex-start;
  font-family: var(--display); font-weight: 700; font-size: 10.5px;
  letter-spacing: .07em; text-transform: uppercase;
  color: #9A6A00; background: #FFF3D6;
  padding: 6px 12px; border-radius: 999px; margin-bottom: 14px;
}
.plan h3 { font-size: 19px; line-height: 1.25; margin-bottom: 10px; }
.plan p { font-size: 14.5px; color: var(--muted); line-height: 1.55; }

/* Panel interno tintado que agrupa el detalle */
.plan ul {
  list-style: none; font-size: 13.5px; color: var(--navy);
  margin: 16px 0 0; padding: 16px 18px;
  background: #F4F7FD; border-radius: 16px;
}
.plan ul li { padding-left: 18px; position: relative; padding-block: 4px; }
.plan ul li::before {
  content: ""; position: absolute; left: 2px; top: 12px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--blue);
}

/* Precio */
.precio { margin-top: auto; padding-top: 20px; }
.desde-rotulo {
  display: block;
  font-family: var(--display); font-weight: 700; font-size: 11px;
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 4px;
}
.precio .cifra { font-family: var(--display); font-weight: 800; font-size: 30px; color: var(--navy); display: block; line-height: 1.05; letter-spacing: -.02em; }
.precio .cifra span { font-family: var(--texto); font-weight: 400; font-size: 13px; color: var(--muted); letter-spacing: 0; }
.precio .condicion { font-size: 11.5px; color: var(--muted); line-height: 1.5; margin-top: 8px; display: block; }

/* Botón degradado al pie, como el "Apply Now" del referente */
.plan .btn-plan {
  display: block; margin-top: 18px; text-align: center;
  background: linear-gradient(135deg, #3B5BFF 0%, var(--blue) 100%);
  color: #fff; font-family: var(--display); font-weight: 700; font-size: 15px;
  padding: 14px 20px; border-radius: 999px; text-decoration: none;
  transition: filter .2s, transform .2s;
}
.plan .btn-plan:hover { filter: brightness(1.08); transform: translateY(-1px); color: #fff; }
.aviso-precio {
  background: var(--sky); border-left: 4px solid var(--blue);
  padding: 18px 22px; border-radius: 14px;
  font-size: 15px; color: var(--navy); margin-top: 30px; max-width: 68ch;
}

/* ═══ ITINERARIO ═══ */
.itinerario { list-style: none; max-width: 72ch; margin: 30px 0 0; padding: 0; }
.itinerario li { display: grid; grid-template-columns: 5.5rem 1fr; gap: 20px; padding-block: 18px; border-bottom: 1px solid var(--line); }
.itinerario li:last-child { border-bottom: 0; }
.hora { font-family: var(--display); font-weight: 800; color: var(--blue); font-variant-numeric: tabular-nums; }
.itinerario p { font-size: 15px; color: var(--muted); margin-top: 4px; }
@media (max-width: 520px) { .itinerario li { grid-template-columns: 1fr; gap: 4px; } }

/* ═══ BLOQUES Y LISTAS ═══ */
.pueblos { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); margin-top: 34px; }
.pueblo {
  background: #fff; border: none; border-radius: 22px; padding: 24px 22px;
  box-shadow: 0 16px 36px -26px rgba(10,42,78,.32), 0 2px 6px -2px rgba(10,42,78,.07);
  transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s;
}
.pueblo:hover { transform: translateY(-5px); box-shadow: 0 30px 54px -28px rgba(10,42,78,.44), 0 3px 8px -2px rgba(10,42,78,.09); }
.pueblo h3 { font-size: 18px; margin-bottom: 10px; }
.pueblo .apodo {
  display: inline-block;
  font-family: var(--display); font-weight: 700; font-size: 10px;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--blue); background: #EAF0FF;
  padding: 5px 11px; border-radius: 999px; margin-bottom: 12px;
}
.pueblo p { font-size: 14px; color: var(--muted); line-height: 1.6; }

.dos-columnas { display: grid; gap: 44px; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); }
.lista { list-style: none; margin: 0; padding: 0; }
.lista li { padding-block: 9px; padding-left: 28px; position: relative; border-bottom: 1px solid var(--line); font-size: 15px; }
.lista li::before { position: absolute; left: 0; font-weight: 800; }
.incluye li::before { content: "✓"; color: var(--blue); }
.no-incluye li::before { content: "✕"; color: #B9C6D6; }

/* ═══ PREGUNTAS ═══ */
details { border-bottom: 1px solid var(--line); padding-block: 16px; }
summary {
  font-family: var(--display); font-weight: 700; font-size: 17px;
  cursor: pointer; list-style: none; color: var(--navy);
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; color: var(--blue); font-size: 24px; font-weight: 400; flex-shrink: 0; }
details[open] summary::after { content: "−"; }
details p { margin-top: 12px; font-size: 15px; color: var(--muted); max-width: 68ch; }

/* ═══ CTA ═══ */
.cta-bloque {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy2) 100%);
  color: #fff; border-radius: 32px;
  padding: clamp(40px,6vw,64px) 32px; margin-block: clamp(48px,7vw,80px);
  text-align: center; box-shadow: 0 30px 60px -28px rgba(10,42,78,.6);
}
.cta-bloque h2 { color: #fff; margin: 0 0 14px; }
.cta-bloque p { color: #9FBAD4; max-width: 50ch; margin: 0 auto 30px; }
.cta-bloque .btn { box-shadow: none; }

/* ═══ CTA BANNER (con imagen de fondo) ═══ */
.cta-banner {
  position: relative; overflow: hidden;
  border-radius: 32px;
  min-height: 460px;
  display: flex; align-items: center; justify-content: center;
  margin-block: clamp(48px,7vw,80px);
  isolation: isolate;
}
.cta-banner > img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.cta-banner::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(10,42,78,.55) 0%, rgba(10,42,78,.78) 55%, rgba(11,32,51,.92) 100%);
}
.cta-banner-texto {
  text-align: center; color: #fff;
  padding: clamp(48px,7vw,80px) clamp(24px,5vw,48px);
  max-width: 640px;
}
.cta-banner .etiqueta { color: var(--cyan); }
.cta-banner h2 { color: #fff; margin: 12px 0 16px; }
.cta-banner p { color: rgba(255,255,255,.88); font-size: 17px; margin: 0 auto 32px; max-width: 46ch; }
.cta-banner .btn { box-shadow: none; }
@media (max-width: 600px) { .cta-banner { min-height: 400px; } }

/* ═══ REGIONES ═══ */
.regiones { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); list-style: none; margin: 30px 0 0; padding: 0; }
.region { border: 1px solid var(--line); border-radius: 22px; padding: 22px; background: #fff; box-shadow: 0 14px 30px -22px rgba(10,42,78,.5); }
.region h3 { font-size: 18px; margin-bottom: 6px; }
.region p { font-size: 13px; color: var(--muted); line-height: 1.55; }

/* ═══ OTROS DESTINOS ═══ */
.destinos { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); list-style: none; margin: 24px 0 0; padding: 0; }
.destinos a {
  display: block; border: 1px solid var(--line); border-radius: 18px;
  padding: 18px 20px; text-decoration: none; color: var(--navy);
  font-family: var(--display); font-weight: 800; font-size: 16px; background: #fff;
  transition: border-color .2s, color .2s, background .2s, transform .2s;
}
.destinos a:hover { border-color: var(--blue); color: var(--blue); background: var(--sky); transform: translateY(-2px); }
.destinos span { display: block; font-family: var(--texto); font-weight: 400; font-size: 12px; color: var(--muted); margin-top: 3px; }
.nota { margin-top: 24px; font-size: 14px; color: var(--muted); }

/* ═══ FOOTER ═══ */
.mct-footer { background: var(--navy2); color: #fff; padding-block: 60px 26px; }
.mct-footer-inner {
  max-width: var(--ancho); margin: 0 auto; padding-inline: 24px;
  display: grid; gap: 40px; grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
}
@media (max-width: 900px) { .mct-footer-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mct-footer-inner { grid-template-columns: 1fr; } }
.mct-footer .marca svg { height: 64px; width: auto; display: block; }
.mct-footer .marca p { color: #8FA8C4; font-size: 14px; margin-top: 16px; max-width: 32ch; }
.mct-footer h4 { font-family: var(--display); font-weight: 800; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); margin: 0 0 16px; }
.mct-footer ul { list-style: none; margin: 0; padding: 0; }
.mct-footer ul li { margin-bottom: 10px; color: #A9C0D8; font-size: 15px; }
.mct-footer a { color: #C8D8E8; text-decoration: none; font-size: 15px; transition: color .2s; }
.mct-footer a:hover { color: #fff; }
.mct-footer .redes { display: flex; gap: 10px; margin-top: 18px; }
.mct-footer .redes a {
  width: 38px; height: 38px; min-width: 38px; max-width: 38px; flex: 0 0 38px;
  padding: 0; border: 0; box-sizing: border-box;
  border-radius: 50%; aspect-ratio: 1 / 1;
  background: none; color: #C8D8E8;
  display: inline-flex; align-items: center; justify-content: center;
  transition: color .2s, transform .2s;
}
.mct-footer .redes a:hover { color: #fff; transform: translateY(-2px); background: none; }
.mct-footer .redes a svg { width: 38px; height: 38px; display: block }

.mct-legal {
  max-width: var(--ancho); margin: 40px auto 0; padding: 24px 24px 0;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between;
  font-size: 13px; color: #7A93B0;
}

/* ═══ WHATSAPP FLOTANTE ═══ */
.wa-flotante {
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  width: 58px; height: 58px; border-radius: 50%;
  background: var(--wa);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 30px -8px rgba(37,211,102,.65);
  transition: transform .2s;
}
.wa-flotante:hover { transform: scale(1.08); }
.wa-flotante svg { width: 30px; height: 30px; fill: #fff; }


/* ═══ FRASE MANIFIESTO ═══ */
.manifiesto {
  background: var(--sky);
  margin-top: 0;                        /* pegado al banner */
  padding-block: clamp(56px, 8vw, 96px);
}
.manifiesto p {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1.25; letter-spacing: -.025em;
  color: var(--navy); text-align: center;
  max-width: 46ch;                       /* fuerza el quiebre en dos líneas */
  margin-inline: auto; text-wrap: balance;
}
.manifiesto br { display: inline; }
@media (max-width: 700px) { .manifiesto br { display: none; } }

/* ═══ SPLIT: imagen rectangular vertical ═══ */
.split-nosotros { display: grid; grid-template-columns: minmax(280px, 400px) 1fr; gap: clamp(40px, 6vw, 88px); align-items: center; }
@media (max-width: 900px) { .split-nosotros { grid-template-columns: 1fr; } }
.split-nosotros .imagen {
  width: 100%; max-height: 500px; aspect-ratio: 3 / 4; object-fit: cover;
  border-radius: 28px; border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--line);
}
@media (max-width: 900px) { .split-nosotros .imagen { max-width: 400px; } }

/* ═══ ZONAS (Colombia e Internacional) ═══ */
.zonas { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; list-style: none; margin: 0; padding: 0; }
.zonas.cuatro { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 1000px) { .zonas, .zonas.cuatro { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px)  { .zonas, .zonas.cuatro { grid-template-columns: 1fr; } }

.zona {
  display: flex; flex-direction: column;
  border-radius: 22px; overflow: hidden; background: #fff;
  box-shadow: 0 14px 30px -22px rgba(10,42,78,.5);
  text-decoration: none; color: var(--navy);
  transition: transform .25s, box-shadow .25s;
}
.zona:hover { transform: translateY(-3px); box-shadow: 0 24px 46px -22px rgba(10,42,78,.6); }
.zona-img { position: relative; height: 210px; flex-shrink: 0; }
.zona-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zona-img::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(10,42,78,.86), rgba(10,42,78,.05) 62%);
}
.zona .num {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  font-family: var(--display); font-weight: 800; font-size: 11px;
  background: var(--blue); color: #fff; padding: 5px 10px; border-radius: 999px;
}
.zona-texto { position: absolute; left: 18px; right: 18px; bottom: 15px; color: #fff; z-index: 2; }
.zona-texto h3 {
  font-family: var(--display); font-weight: 800; font-size: 23px;
  letter-spacing: -.02em; color: #fff; margin: 0;
}
.zona-texto p { font-size: 12px; opacity: .88; margin-top: 5px; line-height: 1.45; }
.zona-pie {
  padding: 15px 18px; display: flex; align-items: center; justify-content: space-between;
  font-size: 14px; color: var(--muted); font-weight: 500;
}
.zona-pie .flecha { color: var(--blue); font-weight: 700; font-size: 16px; }
.zona:hover .zona-pie { color: var(--navy); }


/* ═══ CTA BANNER v2 — foto visible, texto abajo (estilo tarjeta de zona) ═══ */
.cta-tarjeta {
  display: block; border-radius: 32px; overflow: hidden;
  background: #fff; box-shadow: 0 20px 44px -26px rgba(10,42,78,.5);
  margin-block: clamp(48px,7vw,80px);
  text-decoration: none; color: var(--navy);
}
.cta-tarjeta-img { position: relative; height: clamp(300px, 34vw, 440px); }
.cta-tarjeta-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cta-tarjeta-img::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(10,42,78,.9) 0%, rgba(10,42,78,.55) 26%, rgba(10,42,78,0) 58%);
}
.cta-tarjeta-texto {
  position: absolute; left: clamp(24px,4vw,44px); right: clamp(24px,4vw,44px);
  bottom: clamp(24px,3vw,34px); z-index: 2; color: #fff;
}
.cta-tarjeta-texto .etiqueta { color: var(--cyan); margin-bottom: 8px; }
.cta-tarjeta-texto h2 { color: #fff; margin: 0 0 10px; }
.cta-tarjeta-texto p { color: #fff; font-size: 16px; max-width: 52ch; }
.cta-tarjeta-pie {
  padding: clamp(20px,2.4vw,26px) clamp(24px,4vw,44px);
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}
.cta-tarjeta-pie span {
  font-family: var(--display); font-weight: 800; font-size: 18px; color: var(--navy);
}
.cta-tarjeta-pie small { display: block; font-family: var(--texto); font-weight: 400; font-size: 14px; color: var(--muted); margin-top: 2px; }
.cta-tarjeta-pie .btn { box-shadow: none; }


/* ═══ CTA BANNER v3 — todo sobre la foto, sin franja blanca ═══ */
.cta-full {
  position: relative; display: block; overflow: hidden;
  border-radius: 32px;
  min-height: clamp(420px, 42vw, 560px);
  margin-block: clamp(48px,7vw,80px);
  box-shadow: 0 20px 44px -26px rgba(10,42,78,.5);
}
.cta-full > img { width: 100%; height: 100%; object-fit: cover; display: block;
  position: absolute; inset: 0; }
.cta-full::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top,
    rgba(8,26,44,.96) 0%,
    rgba(8,26,44,.90) 22%,
    rgba(8,26,44,.62) 45%,
    rgba(8,26,44,.18) 68%,
    rgba(8,26,44,0) 88%);
}
.cta-full-texto {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: clamp(28px,4vw,44px);
  color: #fff;
}
.cta-full-texto .etiqueta { color: var(--cyan); margin-bottom: 10px; }
.cta-full-texto h2 { color: #fff; margin: 0 0 10px; }
.cta-full-texto p { color: #fff; font-size: 16px; max-width: 50ch; }
.cta-full-texto .btn { box-shadow: none; margin-top: 26px; }
@media (max-width: 820px) { .cta-full { min-height: 500px; } }

/* ═══════════════════════════════════════════════════════════
   PÁGINA NOSOTROS
   ═══════════════════════════════════════════════════════════ */
.perfil { display: grid; grid-template-columns: minmax(240px, 380px) 1fr; gap: clamp(36px,5vw,72px); align-items: start; margin-top: 32px; }
@media (max-width: 800px) { .perfil { grid-template-columns: 1fr; } }
.retrato {
  width: 100%; max-height: 500px; aspect-ratio: 3/4; object-fit: cover;
  border-radius: 28px; background: var(--sky);
}
@media (max-width: 800px) { .retrato { max-width: 380px; } }
.cargo {
  font-family: var(--display); font-weight: 700; font-size: 13px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--blue);
  margin-bottom: 14px;
}
.historia p { max-width: 62ch; color: var(--muted); font-size: 17px; }
.historia p + p { margin-top: 20px; }
.cita {
  font-family: var(--display); font-weight: 800;
  font-size: clamp(20px, 2.4vw, 26px); line-height: 1.35;
  letter-spacing: -.02em; color: var(--navy) !important;
  border-left: 4px solid var(--blue); padding-left: 22px;
  margin-block: 28px !important; max-width: 46ch;
}
.cifras {
  display: flex; flex-wrap: wrap; margin-top: 40px;
  border: 1px solid var(--line); border-radius: 22px; overflow: hidden;
  background: #fff; box-shadow: 0 14px 30px -22px rgba(10,42,78,.5);
}
.cifra-item { flex: 1 1 150px; padding: 24px; border-right: 1px solid var(--line); }
.cifra-item:last-child { border-right: 0; }
.cifra-item .n { font-family: var(--display); font-weight: 800; font-size: 38px; color: var(--blue); line-height: 1; letter-spacing: -.02em; }
.cifra-item .t { font-size: 14px; color: var(--muted); margin-top: 8px; }

.garantias { display: grid; gap: 32px; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); margin-top: 32px; }
.garantia { border-top: 3px solid var(--blue); padding-top: 18px; }
.garantia p { font-size: 15px; color: var(--muted); }

/* ═══════════════════════════════════════════════════════════
   PÁGINA CONTACTO
   ═══════════════════════════════════════════════════════════ */
.contacto-rejilla { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); margin-top: 32px; }
.canal {
  border: 1px solid var(--line); border-radius: 22px; padding: 26px;
  background: #fff; box-shadow: 0 14px 30px -22px rgba(10,42,78,.5);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.canal:hover { transform: translateY(-3px); box-shadow: 0 24px 46px -22px rgba(10,42,78,.6); border-color: var(--blue); }
.canal .valor {
  font-family: var(--display); font-weight: 800; font-size: 22px;
  color: var(--blue); display: block; margin-bottom: 8px;
  letter-spacing: -.02em; word-break: break-word;
}
.canal .valor a { color: inherit; text-decoration: none; }
.canal .valor a:hover { text-decoration: underline; }
.canal p { font-size: 15px; color: var(--muted); }

.mapa {
  width: 100%; aspect-ratio: 16/9; border: 0;
  border-radius: 28px; margin-top: 32px; background: var(--sky);
  box-shadow: 0 20px 44px -26px rgba(10,42,78,.5);
}
/* Enlaces de redes en la página de contacto (pastillas, no círculos) */
.redes-contacto { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; list-style: none; padding: 0; }
.redes-contacto a {
  display: inline-block; border: 1px solid var(--line); border-radius: 999px;
  padding: 11px 24px; text-decoration: none; color: var(--navy);
  font-family: var(--display); font-weight: 700; font-size: 15px; background: #fff;
  transition: border-color .2s, color .2s, background .2s;
}
.redes-contacto a:hover { border-color: var(--blue); color: var(--blue); background: var(--sky); }

/* ═══ MINI-TARJETAS "Otros destinos" ═══ */
.mini-rejilla { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); margin-top: 8px; }
.mini {
  display: block; border-radius: 18px; overflow: hidden;
  text-decoration: none; color: var(--navy); background: #fff;
  border: 1px solid var(--line); box-shadow: 0 12px 26px -20px rgba(10,42,78,.5);
  transition: transform .22s, box-shadow .22s, border-color .22s;
}
.mini:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -22px rgba(10,42,78,.6); border-color: var(--blue); }
.mini img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; background: var(--sky); }
.mini-texto { padding: 14px 16px; display: flex; flex-direction: column; gap: 3px; }
.mini-texto strong { font-family: var(--display); font-weight: 800; font-size: 15px; letter-spacing: -.01em; }
.mini-texto span { font-size: 12px; color: var(--muted); }

/* ═══════════ BUSCADOR DEL HERO ═══════════ */
.hero { align-items: stretch; }

.buscador {
  background: rgba(255,255,255,.97); backdrop-filter: blur(6px);
  border-radius: 24px; padding: 24px;
  box-shadow: 0 30px 60px -24px rgba(10,42,78,.5);
}
.buscador-tabs { display: flex; gap: 6px; background: var(--sky); border-radius: 999px; padding: 5px; margin-bottom: 20px; }
.buscador-tab {
  flex: 1; border: none; background: transparent; cursor: pointer;
  font-family: var(--display); font-weight: 700; font-size: 13px; color: var(--muted);
  padding: 10px 8px; border-radius: 999px; transition: background .2s, color .2s;
}
.buscador-tab.activo { background: var(--blue); color: #fff; }
.buscador label { display: block; font-family: var(--display); font-weight: 700; font-size: 13px; color: var(--navy); margin: 14px 0 7px; }
.buscador select, .buscador input {
  width: 100%; border: 1px solid var(--line); border-radius: 12px;
  padding: 13px 14px; font-family: var(--texto); font-size: 15px; color: var(--navy);
  background: #fff; -webkit-appearance: none; appearance: none;
}
.buscador select:focus, .buscador input:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.buscador-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.buscador-btn {
  width: 100%; margin-top: 18px; border: none; cursor: pointer;
  background: var(--blue); color: #fff;
  font-family: var(--display); font-weight: 700; font-size: 16px;
  padding: 15px; border-radius: 12px; transition: background .2s, transform .2s;
}
.buscador-btn:hover { background: var(--blue-d); transform: translateY(-1px); }

/* Resultados */
.buscador-resultados { margin-top: 16px; display: none; }
.buscador-resultados.visible { display: block; }
.res-titulo { font-family: var(--display); font-weight: 700; font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.res-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px; border-radius: 14px; text-decoration: none;
  color: var(--navy); transition: background .15s; margin-bottom: 4px;
}
.res-item:hover { background: var(--sky); }
.res-item img { width: 54px; height: 54px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.res-item .info { flex: 1; min-width: 0; }
.res-item .info strong { display: block; font-family: var(--display); font-weight: 700; font-size: 14px; }
.res-item .info span { font-size: 12px; color: var(--muted); }
.res-item .precio-mini { font-family: var(--display); font-weight: 800; font-size: 14px; color: var(--blue); white-space: nowrap; }
.res-vacio { padding: 16px; text-align: center; font-size: 14px; color: var(--muted); background: var(--sky); border-radius: 14px; }




/* ═══ Bajadas de sección internas: hasta la mitad ═══ */
section > .envoltura > p.intro-seccion,
.envoltura > h2 + p { max-width: 60ch; }

/* ═══ Separación extra antes de ciertos títulos de sección ═══ */
.con-aire { margin-top: clamp(24px, 4vw, 48px); }

/* ═══ Párrafo introductorio bajo un título de sección: hasta la mitad ═══ */
.intro-media { max-width: 58ch !important; }


/* ═══ Aire entre el contenido y los títulos de sección internos ═══ */
section > .envoltura > h2:first-child,
.envoltura > h2.con-espacio { margin-top: clamp(20px, 3vw, 40px); }
section { padding-block: clamp(56px, 7.5vw, 96px); }
.foto + section, .split + section { margin-top: 12px; }


/* ═══ Separación entre título de sección y su contenido ═══ */
h2 + .dos-columnas,
h2 + .mini-rejilla,
h2 + .lista,
h2 + .planes,
h2 + .pueblos { margin-top: 34px; }
h2 + p.intro-media { margin-top: 0; }
.dos-columnas h3 { margin-bottom: 14px; }


/* ═══ Enlace con flecha ═══ */
.link-flecha {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--display); font-weight: 700; font-size: 15px;
  color: var(--blue); text-decoration: none;
  padding: 0; background: none; margin-top: 44px;
  transition: gap .22s, color .2s;
}
.mini-rejilla + .link-flecha { margin-top: 44px }
.link-flecha:hover { gap: 14px; color: var(--blue-d); }
.link-flecha svg { flex-shrink: 0 }

/* ═══ LOGOS DE ALIADOS ═══ */
.aliados { display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: clamp(28px, 5vw, 64px); margin-top: 38px; }
.aliado {
  height: 60px; display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
}
.aliado img {
  max-height: 60px; width: auto; max-width: 190px; object-fit: contain;
  filter: grayscale(1); opacity: .62;
  transition: filter .3s, opacity .3s;
}
.aliado:hover img { filter: grayscale(0); opacity: 1; }
@media (max-width: 620px) { .aliado, .aliado img { height: 46px; max-height: 46px; } }

/* ═══ MEDIOS DE PAGO ═══ */
.pagos { text-align: center; margin-top: 34px; }
.pagos img { max-width: 620px; width: 100%; height: auto; }
.pagos-nota { font-size: 13.5px; color: var(--muted); margin-top: 16px; }

.mct-footer .redes a svg { display: block }
.credito { display: inline-block; margin-left: 6px; }
.credito a { color: #A9C0D8; text-decoration: none; border-bottom: 1px solid rgba(169,192,216,.35); }
.credito a:hover { color: #fff; border-color: #fff; }
@media (max-width: 620px) { .credito { display: block; margin: 6px 0 0; } }

/* ═══ STATS de la página Nosotros ═══ */
.stats-nosotros {
  display: grid; gap: 18px; margin-top: 40px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.stat-n {
  background: #fff; border-radius: 20px; padding: 26px 22px;
  box-shadow: 0 16px 36px -26px rgba(10,42,78,.32), 0 2px 6px -2px rgba(10,42,78,.07);
}
.stat-n .n {
  font-family: var(--display); font-weight: 800; font-size: 40px;
  line-height: 1; letter-spacing: -.03em; color: var(--blue); margin-bottom: 10px;
}
.stat-n .t { font-size: 13.5px; color: var(--muted); line-height: 1.5; }


/* ═══════════ MENÚ MÓVIL ═══════════ */
.mct-burger {
  display: none; margin-left: auto;
  width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 13px;
  background: #fff; cursor: pointer; padding: 0;
  flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  transition: border-color .2s, background .2s;
}
.mct-burger span {
  display: block; width: 20px; height: 2px; border-radius: 2px;
  background: var(--navy); transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .2s;
}
.mct-burger.activo { border-color: var(--blue); background: var(--sky); }
.mct-burger.activo span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mct-burger.activo span:nth-child(2) { opacity: 0; }
.mct-burger.activo span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mct-movil {
  position: fixed; inset: 0; top: var(--alto-header, 84px);
  background: #fff; z-index: 90; overflow-y: auto;
  animation: mmEntra .22s ease-out;
}
@keyframes mmEntra { from { opacity: 0; transform: translateY(-8px) } to { opacity: 1; transform: none } }
.mm-inner { padding: 22px 22px 60px; max-width: 560px; margin: 0 auto; }

.mm-grupo { border-bottom: 1px solid var(--line); }
.mm-grupo summary {
  list-style: none; cursor: pointer; padding: 18px 4px;
  font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--navy);
  display: flex; align-items: center; justify-content: space-between;
}
.mm-grupo summary::-webkit-details-marker { display: none }
.mm-grupo summary::after {
  content: ""; width: 9px; height: 9px; flex-shrink: 0;
  border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg) translate(-2px,-2px); transition: transform .25s;
}
.mm-grupo[open] summary { color: var(--blue); }
.mm-grupo[open] summary::after { transform: rotate(-135deg) translate(-3px,-3px); border-color: var(--blue); }
.mm-lista { display: flex; flex-direction: column; padding: 2px 0 16px; }
.mm-lista a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 12px 14px; border-radius: 12px; text-decoration: none;
  color: var(--navy); font-size: 15px; font-weight: 600;
}
.mm-lista a:active { background: var(--sky); }
.mm-lista a small { font-family: var(--texto); font-weight: 400; font-size: 12.5px; color: var(--muted); white-space: nowrap; }

.mm-directo {
  display: block; padding: 18px 4px; border-bottom: 1px solid var(--line);
  text-decoration: none; font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--navy);
}
.mm-cta {
  display: block; margin-top: 26px; text-align: center;
  background: var(--blue); color: #fff; text-decoration: none;
  font-family: var(--display); font-weight: 700; font-size: 16px;
  padding: 17px 24px; border-radius: 999px;
  box-shadow: 0 14px 28px -12px rgba(0,65,233,.6);
}

@media (max-width: 980px) {
  .mct-burger { display: flex; }
  .mct-nav { display: none; }
  .mct-logo svg { height: 62px; width: auto; }
}
@media (min-width: 981px) { .mct-movil { display: none !important; } }

@media (max-width: 620px) { .mct-logo svg { height: 46px } }


/* ═══════════ MENÚ MÓVIL ═══════════ */
.mct-burger {
  display: none; width: 46px; height: 46px; margin-left: auto;
  border: 1px solid var(--line); border-radius: 13px; background: #fff;
  cursor: pointer; padding: 0; align-items: center; justify-content: center;
  transition: border-color .2s;
}
.mct-burger:hover { border-color: var(--blue) }
.mct-burger span {
  display: block; position: relative; width: 20px; height: 2px;
  background: var(--navy); border-radius: 2px; transition: background .2s;
}
.mct-burger span::before, .mct-burger span::after {
  content: ""; position: absolute; left: 0; width: 20px; height: 2px;
  background: var(--navy); border-radius: 2px; transition: transform .28s, top .22s;
}
.mct-burger span::before { top: -6px }
.mct-burger span::after  { top: 6px }
body.menu-abierto .mct-burger span { background: transparent }
body.menu-abierto .mct-burger span::before { top: 0; transform: rotate(45deg) }
body.menu-abierto .mct-burger span::after  { top: 0; transform: rotate(-45deg) }

.mct-movil {
  position: fixed; inset: 0; z-index: 90; background: #fff;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 96px 20px 44px;
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .26s, transform .26s, visibility .26s;
}
body.menu-abierto .mct-movil { opacity: 1; visibility: visible; transform: translateY(0) }
body.menu-abierto { overflow: hidden }
.mm-inner { max-width: 560px; margin: 0 auto }

.mm-grupo { border-bottom: 1px solid var(--line) }
.mm-tit {
  width: 100%; background: none; border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--navy);
  padding: 19px 2px; text-align: left;
}
.mm-tit::after {
  content: ""; width: 9px; height: 9px; flex-shrink: 0; margin-right: 4px;
  border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg) translateY(-3px); transition: transform .25s;
}
.mm-grupo.abierto .mm-tit::after { transform: rotate(-135deg) translateY(0) }
.mm-lista { max-height: 0; overflow: hidden; transition: max-height .34s ease }
.mm-grupo.abierto .mm-lista { max-height: 1200px; padding-bottom: 10px }
.mm-lista a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 12px 2px 12px 15px; text-decoration: none;
  color: var(--muted); font-size: 15px; font-weight: 500;
  border-left: 2px solid var(--line);
}
.mm-lista a:active, .mm-lista a:hover { color: var(--blue); border-left-color: var(--blue) }
.mm-lista a small { font-family: var(--texto); font-size: 12px; color: #94A9C0; white-space: nowrap }
.mm-cat {
  font-family: var(--display); font-weight: 800; font-size: 10.5px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--blue); padding: 15px 2px 6px 15px;
}
.mm-directo {
  display: block; font-family: var(--display); font-weight: 700; font-size: 17px;
  color: var(--navy); text-decoration: none; padding: 19px 2px;
  border-bottom: 1px solid var(--line);
}
.mm-directo:active, .mm-directo:hover { color: var(--blue) }
.mm-cta {
  display: block; text-align: center; margin-top: 28px;
  background: var(--blue); color: #fff; text-decoration: none;
  font-family: var(--display); font-weight: 700; font-size: 16px;
  padding: 17px; border-radius: 999px;
  box-shadow: 0 16px 30px -14px rgba(0,65,233,.65);
}
.mm-cta:active, .mm-cta:hover { background: var(--blue-d); color: #fff }

@media (max-width: 980px) {
  .mct-burger { display: flex }
  .mct-nav { display: none }
  .mct-header { position: relative; z-index: 100 }
}


/* ═══════════════ BANNER PRINCIPAL (pantalla completa) ═══════════════ */
.banner {
  position: relative;
  width: 100vw; margin-left: calc(50% - 50vw);
  height: clamp(560px, 84vh, 860px);
  overflow: hidden; background: var(--navy2);
  display: flex; align-items: center;
}

/* Fotos */
.banner-fotos { position: absolute; inset: 0; z-index: 0 }
.banner-foto {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity 1.2s ease-in-out;
}
.banner-foto.activa { opacity: 1 }
.banner-foto img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1.06); transition: transform 7s ease-out;
}
.banner-foto.activa img { transform: scale(1) }

/* Velo oscuro para que el texto se lea */
.banner::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(100deg, rgba(4,16,34,.86) 0%, rgba(4,16,34,.62) 38%, rgba(4,16,34,.18) 68%, rgba(4,16,34,.30) 100%),
    linear-gradient(to top, rgba(4,16,34,.55) 0%, transparent 32%);
}

/* Contenido */
.banner-contenido {
  position: relative; z-index: 2;
  width: 100%; max-width: 1200px; margin: 0 auto;
  padding: 0 clamp(22px, 5vw, 48px);
}
.banner-texto { max-width: 720px }
.banner-pastilla {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.14); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.26);
  color: #fff; font-family: var(--display); font-weight: 600;
  font-size: 12px; letter-spacing: .09em; text-transform: uppercase;
  padding: 9px 18px; border-radius: 999px; margin-bottom: 22px;
}
.banner h1 {
  color: #fff; max-width: 16ch;
  font-size: clamp(40px, 6.2vw, 82px);
  line-height: 1.02; letter-spacing: -.035em; font-weight: 500;
  margin: 0 0 20px;
  text-shadow: 0 2px 30px rgba(4,16,34,.4);
}
.banner-bajada {
  color: rgba(255,255,255,.94); max-width: 46ch;
  font-size: clamp(16px, 1.35vw, 19px); line-height: 1.6; margin: 0 0 34px;
  text-shadow: 0 1px 16px rgba(4,16,34,.45);
}
.banner-botones { display: flex; flex-wrap: wrap; gap: 13px }
.banner-botones .btn { padding: 16px 32px; font-size: 15.5px }
.btn-claro {
  background: rgba(255,255,255,.12); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.42); color: #fff;
}
.btn-claro:hover { background: rgba(255,255,255,.22); color: #fff }

/* Puntos de navegación */
.banner-puntos {
  position: absolute; z-index: 3; left: 50%; transform: translateX(-50%);
  bottom: clamp(26px, 4vh, 46px);
  display: flex; gap: 10px; align-items: center;
}
.banner-punto {
  width: 34px; height: 4px; border-radius: 999px; padding: 0; border: 0;
  background: rgba(255,255,255,.34); cursor: pointer;
  transition: background .3s, width .3s;
  position: relative; overflow: hidden;
}
.banner-punto:hover { background: rgba(255,255,255,.6) }
.banner-punto.activo { background: rgba(255,255,255,.35); width: 56px }
.banner-punto.activo::after {
  content: ""; position: absolute; inset: 0;
  background: #fff; transform-origin: left;
  animation: avance 5s linear forwards;
}
@keyframes avance { from { transform: scaleX(0) } to { transform: scaleX(1) } }

@media (max-width: 780px) {
  .banner { height: clamp(520px, 78vh, 680px); align-items: flex-end }
  .banner-contenido { padding-bottom: clamp(78px, 13vh, 110px) }
  .banner h1 { max-width: 13ch; letter-spacing: -.03em }
  .banner-bajada { font-size: 16px; margin-bottom: 26px }
  .banner-botones { flex-direction: column; align-items: stretch }
  .banner-botones .btn { width: 100%; text-align: center }
  .banner::after {
    background:
      linear-gradient(to top, rgba(4,16,34,.9) 0%, rgba(4,16,34,.55) 42%, rgba(4,16,34,.22) 72%, rgba(4,16,34,.38) 100%);
  }
  .banner-puntos { left: clamp(22px,5vw,48px); transform: none }
}

/* ═══════ HOME: header transparente sobre el banner ═══════ */
body.home .mct-header {
  position: absolute; top: 0; left: 0; right: 0; z-index: 60;
  background: transparent; backdrop-filter: none; border-bottom: 0;
}
body.home .mct-nav > a,
body.home .mct-drop > a { color: #fff; text-shadow: 0 1px 12px rgba(4,16,34,.5) }
body.home .mct-nav > a:hover,
body.home .mct-drop > a:hover { color: #fff; opacity: .78 }
body.home .mct-drop > a::after { opacity: .8 }
body.home .mct-burger { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.4) }
body.home .mct-burger span,
body.home .mct-burger span::before,
body.home .mct-burger span::after { background: #fff }
/* el panel desplegable sigue blanco por dentro */
body.home .mct-panel a { color: var(--navy); text-shadow: none }
/* al abrir el menú móvil, el header vuelve a fondo claro */
body.home.menu-abierto .mct-burger { background: #fff; border-color: var(--line) }
body.home.menu-abierto .mct-burger span,
body.home.menu-abierto .mct-burger span::before,
body.home.menu-abierto .mct-burger span::after { background: var(--navy) }
body.home.menu-abierto .logo-blanco { display: none }
body.home.menu-abierto .logo-color  { display: block }

.logo-blanco { display: none }
body.home .logo-blanco { display: block }
body.home .logo-color  { display: none }

/* El banner arranca pegado arriba y el manifiesto pegado al banner */
body.home .banner { margin-top: 0 }
body.home .manifiesto { margin-top: 0 }
.banner + .manifiesto,
.banner + section.manifiesto { margin-top: 0 !important }


/* ═══ Velo oscuro superior: hace legible el menú sobre la foto ═══ */
.banner::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; z-index: 1;
  height: clamp(150px, 26vh, 300px); pointer-events: none;
  mix-blend-mode: multiply;
  background: linear-gradient(to bottom,
    rgba(4,16,34,.92) 0%,
    rgba(4,16,34,.62) 34%,
    rgba(4,16,34,.28) 66%,
    rgba(4,16,34,0) 100%);
}


