/* ============================================================
   V203 — SALVAGUARDAS TIPOGRÁFICAS Y DE CONTRASTE
   1) Mantiene el tamaño aprobado de los títulos; corrige separación entre líneas.
   2) Refuerza legibilidad de la portada con contraste localizado, sin cambiar
      fotografía, composición, tamaños ni posiciones aprobadas.
   ============================================================ */

/* FECHAS Y RESERVA — conservar escala de V201; solo dar aire entre líneas. */
body.visual-safeguards-v203 #fechas .cm-booking-title-v200 {
  text-wrap: balance;
}
body.visual-safeguards-v203 #fechas .cm-booking-title-v200 .title-line {
  display: block;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}
body.visual-safeguards-v203 #fechas .cm-booking-title-v200 .title-line + .title-line {
  margin-top: .12em;
}

/* PORTADA — una protección de contraste localizada, no un velo global.
   Mantiene la claridad conseguida en V175 y protege las zonas de identidad
   (arriba/izquierda) y mensaje/acciones (abajo/izquierda). */
body.visual-safeguards-v203 .hero.cm-hero-final-locked-v195 .hero-shade {
  background:
    radial-gradient(ellipse 64% 50% at 12% 20%, rgba(13,9,7,.34) 0%, rgba(13,9,7,.16) 42%, transparent 72%),
    radial-gradient(ellipse 72% 58% at 13% 84%, rgba(13,9,7,.46) 0%, rgba(13,9,7,.20) 46%, transparent 76%),
    linear-gradient(90deg, rgba(12,9,7,.24) 0%, rgba(12,9,7,.08) 38%, transparent 66%),
    linear-gradient(180deg, rgba(10,8,6,.08) 0%, transparent 42%, rgba(10,8,6,.18) 100%) !important;
}

/* Misma lectura durante el último tramo de la intro y el handoff para que
   el contraste no cambie al entregar la portada real. */
body.visual-safeguards-v203 .cm-intro-hero-shade-v192,
body.visual-safeguards-v203 .cm-intro-handoff-shade-v195 {
  background:
    radial-gradient(ellipse 64% 50% at 12% 20%, rgba(13,9,7,.34) 0%, rgba(13,9,7,.16) 42%, transparent 72%),
    radial-gradient(ellipse 72% 58% at 13% 84%, rgba(13,9,7,.46) 0%, rgba(13,9,7,.20) 46%, transparent 76%),
    linear-gradient(90deg, rgba(12,9,7,.24) 0%, rgba(12,9,7,.08) 38%, transparent 66%),
    linear-gradient(180deg, rgba(10,8,6,.08) 0%, transparent 42%, rgba(10,8,6,.18) 100%) !important;
}

/* Sombra editorial mínima: evita que letras claras se pierdan sobre cielo,
   reflejos o muros claros sin convertirlas en texto contorneado. */
body.visual-safeguards-v203 .hero .hero-title,
body.visual-safeguards-v203 .hero .hero-copy h2,
body.visual-safeguards-v203 .hero .hero-copy p,
body.visual-safeguards-v203 .hero .eyebrow,
body.visual-safeguards-v203 .hero .scroll-cue,
body.visual-safeguards-v203 .cm-intro-hero-ui-v192 .hero-title,
body.visual-safeguards-v203 .cm-intro-hero-ui-v192 .hero-copy h2,
body.visual-safeguards-v203 .cm-intro-hero-ui-v192 .hero-copy p,
body.visual-safeguards-v203 .cm-intro-hero-ui-v192 .eyebrow,
body.visual-safeguards-v203 .cm-intro-handoff-ui-v195 .hero-title,
body.visual-safeguards-v203 .cm-intro-handoff-ui-v195 .hero-copy h2,
body.visual-safeguards-v203 .cm-intro-handoff-ui-v195 .hero-copy p,
body.visual-safeguards-v203 .cm-intro-handoff-ui-v195 .eyebrow {
  text-shadow: 0 2px 12px rgba(8,6,5,.34), 0 1px 2px rgba(8,6,5,.24);
}

/* El botón secundario mantiene el estilo de vidrio pero con contraste estable. */
body.visual-safeguards-v203 .hero .hero-actions .btn.glass,
body.visual-safeguards-v203 .cm-intro-hero-ui-v192 .hero-actions .btn.glass,
body.visual-safeguards-v203 .cm-intro-handoff-ui-v195 .hero-actions .btn.glass {
  background: rgba(24,17,12,.28) !important;
  border-color: rgba(255,255,255,.42) !important;
  text-shadow: 0 1px 5px rgba(8,6,5,.28);
}

/* Portrait: texto de identidad arriba y mensaje abajo; reforzar solo esos extremos. */
@media (max-width: 700px) and (orientation: portrait) {
  body.visual-safeguards-v203 #fechas .cm-booking-title-v200 .title-line + .title-line {
    margin-top: .14em;
  }
  body.visual-safeguards-v203 .hero.cm-hero-final-locked-v195 .hero-shade,
  body.visual-safeguards-v203 .cm-intro-hero-shade-v192,
  body.visual-safeguards-v203 .cm-intro-handoff-shade-v195 {
    background:
      radial-gradient(ellipse 95% 36% at 18% 13%, rgba(10,8,6,.42) 0%, rgba(10,8,6,.16) 50%, transparent 80%),
      radial-gradient(ellipse 105% 45% at 20% 88%, rgba(10,8,6,.56) 0%, rgba(10,8,6,.24) 52%, transparent 82%),
      linear-gradient(180deg, rgba(9,7,5,.13) 0%, transparent 35%, transparent 55%, rgba(9,7,5,.22) 100%) !important;
  }
}

/* Landscape corto: las dos zonas de texto quedan a la izquierda; proteger ese
   lateral sin oscurecer el centro de la fotografía. */
@media (orientation: landscape) and (max-width: 1100px) and (max-height: 650px) {
  body.visual-safeguards-v203 #fechas .cm-booking-title-v200 .title-line + .title-line {
    margin-top: .11em;
  }
  body.visual-safeguards-v203 .hero.cm-hero-final-locked-v195 .hero-shade,
  body.visual-safeguards-v203 .cm-intro-hero-shade-v192,
  body.visual-safeguards-v203 .cm-intro-handoff-shade-v195 {
    background:
      linear-gradient(90deg, rgba(9,7,5,.50) 0%, rgba(9,7,5,.28) 32%, rgba(9,7,5,.08) 58%, transparent 78%),
      radial-gradient(ellipse 58% 52% at 14% 82%, rgba(9,7,5,.30), transparent 75%) !important;
  }
}

/* ============================================================
   V206 — LEGIBILIDAD DEL MENÚ SOBRE LA PORTADA
   Solo en escritorio y únicamente mientras el header está sobre el Hero.
   No cambia color, tamaño, posición ni el estado del menú después de scroll.
   ============================================================ */
@media (min-width: 1101px) {
  body.visual-safeguards-v203:not(.has-scrolled) .site-header .nav-links > a,
  body.visual-safeguards-v203:not(.has-scrolled) .site-header .language-switch button,
  body.visual-safeguards-v203:not(.has-scrolled) .site-header .language-switch span {
    text-shadow: 0 1px 3px rgba(8, 6, 5, .58), 0 3px 12px rgba(8, 6, 5, .30);
  }

  body.visual-safeguards-v203.has-scrolled .site-header .nav-links > a,
  body.visual-safeguards-v203.has-scrolled .site-header .language-switch button,
  body.visual-safeguards-v203.has-scrolled .site-header .language-switch span {
    text-shadow: none;
  }
}
