/* VDV Viajes Mayorista — clon visual */
:root {
  --s-color-brand-primary: #cac3bc;
  --s-color-brand-dark: #020202;
  --s-color-header-bg: #ffffff;
  --s-color-header-text: #393939;
  --s-color-footer-bg: #000000;
  --s-color-footer-text: #ffffff;
  --s-color-lighter-gray: #f5f5f5;
  --s-color-middle-gray: #6c757d;
  --s-color-whatsapp: #25d366;
  --s-color-whatsapp-hover: #128c7e;
  --s-color-whatsapp-dark: #075e54;
  /* Breakpoints ecosistema Checkit (referencia para media queries):
     phone ≤767 · tablet ≤1024 · nav drawer ≤1199 */
  --checkit-bp-phone: 767px;
  --checkit-bp-tablet: 1024px;
  --checkit-bp-nav: 1199px;
  /* Botón flotante Checkit: logo WhatsApp + azul Facebook */
  --checkit-wa-float: #1877f2;
  --checkit-wa-float-hover: #0d65d9;
  --checkit-wa-float-glow: rgba(24, 119, 242, 0.4);
  --checkit-accent: #c9953a;
  --checkit-accent-hover: #b0822e;
  --checkit-accent-light: #e4bc5c;
  --checkit-sky: #4da8d4;
  --checkit-sky-deep: #2d8ab8;
  --checkit-accent-gradient: linear-gradient(135deg, var(--checkit-accent-light) 0%, var(--checkit-accent) 100%);
  --checkit-spectrum: linear-gradient(90deg, var(--checkit-sky) 0%, var(--checkit-accent-light) 50%, var(--checkit-accent) 100%);
  /* Botón X circular de modales: contraste alto fondo ↔ ícono */
  --checkit-close-bg: #0b1220;
  --checkit-close-fg: #ffffff;
  --checkit-close-border: #ffffff;
  --checkit-close-shadow: 0 2px 14px rgba(0, 0, 0, 0.5);
  --font-base: "Segoe UI", system-ui, -apple-system, sans-serif;
  --container-max: 1200px;
  --radius-big: 12px;
  --shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
}

*, *::before, *::after { box-sizing: border-box; }

/*
 * Scroll sin barras visibles (vertical/horizontal).
 * Sigue funcionando con rueda del mouse, trackpad y gesto táctil
 * en PC, laptop, tablet y celular.
 */
html {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

html::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

*,
*::before,
*::after {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

*::-webkit-scrollbar,
*::-webkit-scrollbar-button,
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-corner {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  max-width: 100%;
  overscroll-behavior-x: none;
  -webkit-overflow-scrolling: touch;
}

body {
  margin: 0;
  font-family: var(--font-base);
  font-size: 14px;
  color: var(--s-color-header-text);
  background: var(--s-color-lighter-gray);
  line-height: 1.5;
  overflow-x: hidden;
  max-width: 100%;
  overscroll-behavior-x: none;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

/* Smartphone / tablet: solo scroll vertical de página (sin pan lateral) */
@media (max-width: 1024px) {
  html,
  body {
    overflow-x: clip;
    overscroll-behavior-x: none;
    touch-action: manipulation;
    width: 100%;
    max-width: 100vw;
  }

  #wrapper,
  .page-dashboard,
  main {
    overflow-x: clip;
    max-width: 100%;
  }

  /* Evita zoom iOS al enfocar inputs (<16px) en formularios de diseño/búsqueda */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]),
  select,
  textarea,
  .c-text-input,
  .c-icon-escort .c-text-input,
  .c-search-form .c-text-input {
    font-size: 16px !important;
  }

  input,
  select,
  textarea,
  button,
  .c-button,
  .c-text-input,
  a {
    touch-action: manipulation;
  }

  /* Cintas horizontales intencionales (modos, carruseles, reseñas) */
  .c-travel-modes__panel,
  .c-carousel__track,
  .testimonials-viewport,
  .testimonials-grid,
  .c-footer-partners__grid--band {
    touch-action: pan-x pinch-zoom;
  }
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; cursor: pointer; }
ul { list-style: none; margin: 0; padding: 0; }

.o-container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 16px;
}

/* Header top bar */
.c-header-collective__bar {
  position: relative;
  background: var(--s-color-brand-dark);
  color: #fff;
  font-size: 12px;
  padding: 6px 0 7px;
  min-height: 0;
}

.c-header-collective__bar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--checkit-spectrum);
}

.c-header-collective__bar > .o-container {
  padding-left: 15px;
  padding-right: 15px;
  max-width: none;
  width: 100%;
}

.c-header-collective__bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 44px;
}

.c-collective-brand--bar {
  flex: 0 1 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 3px;
  line-height: 1.2;
  background: transparent;
  margin: 0;
  padding: 0;
  border: none;
  max-width: min(520px, 55vw);
  min-width: 0;
}

.c-collective-brand--bar a {
  display: block;
  line-height: 0;
  border: none;
  box-shadow: none;
  background: transparent;
  flex-shrink: 0;
}

.c-collective-brand__img--bar {
  display: block;
  max-height: 46px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  filter: none;
  background: transparent;
  border: none;
  box-shadow: none;
  outline: none;
  vertical-align: middle;
}

/* El bloque legal "minorista de VDV/Planisferio" ya vive único (sin duplicar)
   al pie de cada página (.c-footer-collective__minorista-bar). En el
   encabezado se retira para dejar solo el logo, más grande. */
.c-collective-brand__legal {
  display: none !important;
}

.c-collective-brand__legal-role {
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.78);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.c-collective-brand__legal-role::after {
  content: none;
}

.c-collective-brand__legal-line {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 4px;
  min-width: 0;
}

.c-collective-brand__legal-name {
  flex: 0 0 auto;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
}

.c-collective-brand__legal-name::after {
  content: none;
}

.c-collective-brand__legal-meta {
  flex: 0 1 auto;
  min-width: 0;
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--checkit-accent-light, #ffc107);
  letter-spacing: 0.01em;
}

.c-collective-brand__legal-sep {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.68rem;
}

.c-header-collective__bar-tools {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px 16px;
  margin-left: auto;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  padding: 0;
}

.c-header-collective__bar-tools .c-header__agency-data--top {
  margin-left: 0;
  gap: 12px;
  flex-shrink: 1;
  min-width: 0;
}

.c-header-collective__nav--bar {
  flex-shrink: 0;
}

/* Encabezado "completo" (index, dashboard, quienes-somos, travel-map, etc.
   -no el compacto de detalle/resultados-): el teléfono/WhatsApp/mail y el
   bloque "Cuenta y preferencias" (Ayuda, moneda, idioma, usuario) ya no se
   muestran sueltos ocupando la barra superior. Viven siempre -en pc,
   laptop, tablet y celular- dentro del panel que abre el botón hamburguesa,
   así el logo tiene más lugar y el encabezado queda liviano en cualquier
   resolución. Se excluye ".c-header-collective--compact" porque esas
   páginas (detalle, resultados, mis-ideas-viaje…) tienen su propio drawer
   compacto que no debe duplicarse. */
#btn-open-menu {
  display: inline-flex !important;
}

/* El contenido de ".bar-tools" (teléfono/cuenta/idioma…) ahora vive siempre
   dentro del panel del menú -oculto hasta abrirlo con la hamburguesa; ese
   panel (#header-nav) es "position:fixed", así que se ve igual sin importar
   cómo se acomode este contenedor-. A simple vista ".bar-tools" queda
   "vacío", pero seguía contando como ítem flex propio: con flex:1 1 auto
   crecía para llenar espacio y, aun achicado, el "gap" de la fila metía 12px
   extra entre el botón y él, corriendo la hamburguesa del borde derecho real.
   Con "display:contents" deja de generar caja/ítem flex -su hijo fijo se
   sigue viendo igual- y el margin-left:auto del botón lo empuja justo hasta
   el borde derecho, con la misma separación que tiene el logo del izquierdo. */
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__bar-tools {
  /* No usar display:contents: en Chrome/Safari el position:fixed del
     panel hamburguesa queda atrapado o recortado y solo se ve el overlay. */
  display: block;
  flex: 0 0 0;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  border: none;
  overflow: visible;
}

.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav {
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  width: min(360px, 88vw);
  max-width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: #fff;
  color: #0f172a;
  flex-direction: column;
  align-items: stretch;
  padding: max(16px, env(safe-area-inset-top, 0px))
    max(14px, env(safe-area-inset-right, 0px))
    max(28px, env(safe-area-inset-bottom, 0px))
    14px;
  z-index: 160;
  transform: translateX(100%);
  transition: transform 0.3s;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-x: none;
  -webkit-overflow-scrolling: touch;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
}

.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar.is-open,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav.is-open {
  transform: translateX(0);
  overflow-y: scroll;
  scrollbar-gutter: stable;
  touch-action: pan-y;
  overscroll-behavior-y: contain;
}

.c-header-collective:not(.c-header-collective--compact) .c-button--close-nav {
  display: inline-flex !important;
  align-self: flex-end;
}

/* Dentro del panel: teléfono/WhatsApp/mail en columna, con separador. */
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data--top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}

/* Contraste: panel blanco → texto e íconos oscuros (anula el blanco de la barra) */
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .nav-link,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .dropdown-toggle,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header-collective__user-header .nav-link,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header-collective__user-header .dropdown-toggle,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-user-menu .dropdown-toggle,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar #current-currency,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar #current-language,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar #user-name,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data--top,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data--top > div,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data span,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data--top a {
  color: #0f172a !important;
}

.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .nav-link:hover,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .dropdown-toggle:hover {
  color: #0f172a !important;
  background: #f1f5f9;
}

.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .nav-link i,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .dropdown-toggle > i:not(.fa-angle-down),
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .fa-angle-down,
.c-header-collective:not(.c-header-collective--compact) .c-header-collective__nav--bar .c-header__agency-data--top i {
  color: var(--checkit-accent, #c9953a) !important;
}

/* "position:fixed" (además de overflow:hidden) es lo que realmente evita
   que la página central se desplace detrás del panel en iOS Safari/Android
   al hacer swipe con el menú hamburguesa abierto: "overflow:hidden" solo no
   alcanza en varios navegadores móviles. El scroll exacto se guarda/restaura
   por JS (lockBodyScroll/unlockBodyScroll en app.js) vía "top" negativo. */
body.is-mobile-nav-open {
  overflow: hidden !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  touch-action: none !important;
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
}

/* El overlay vive en <body> (no dentro del header) para no quedar atrapado
   por position:static / overflow:clip de fichas y catálogo. El panel del
   menú siempre queda por encima del velo. */
body.is-mobile-nav-open .c-header-collective {
  overflow: visible;
}

body.is-mobile-nav-open .c-hidden-aside__bg,
body.is-mobile-nav-open #nav-overlay {
  z-index: 11900;
}

body.is-mobile-nav-open .c-header-collective__nav.is-open,
body.is-mobile-nav-open .c-header-collective__nav--bar.is-open,
body.is-mobile-nav-open .c-header-collective__compact-drawer.is-open {
  z-index: 12000;
}

html:has(body.is-mobile-nav-open) {
  overflow: visible !important;
}

.c-header__agency-data {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  justify-content: flex-end;
  margin-left: auto;
}

.c-header__agency-data--mobile {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  background: #f0f0f0;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 16px;
  gap: 10px;
}

.c-header__agency-data > div,
.c-header__agency-data > div a {
  display: flex;
  align-items: center;
  gap: 6px;
}

.c-header__agency-email a { text-transform: lowercase; }

.c-header__agency-social-networks {
  display: flex;
  gap: 10px;
}

.c-header__agency-social-networks a {
  font-size: 18px;
  opacity: 0.9;
  transition: opacity 0.2s;
}

.c-header__agency-social-networks a:hover { opacity: 1; }

/* Header sticky wrapper */
.c-header-collective {
  position: sticky;
  top: 0;
  z-index: 100;
}

.c-header-collective__nav--bar .c-header-collective__user-header {
  gap: 2px;
}

.c-button--menu--bar {
  display: none;
  color: #fff;
  margin-left: auto;
}

/* Botón hamburguesa: fondo blanco + borde dorado de marca. Las rayitas
   quedan blancas con un leve contorno oscuro para que se lean igual de
   nítidas sobre el fondo blanco (ver .c-button--menu i más abajo). */
.c-button--menu,
.c-button--menu--bar,
#btn-open-menu {
  color: #fff !important;
  background: #fff !important;
  border: 2px solid var(--checkit-accent, #c9953a) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.18);
}

.c-button--menu i,
.c-button--menu--bar i,
#btn-open-menu i {
  color: #fff !important;
  opacity: 1 !important;
  font-size: 1.15rem;
  text-shadow:
    -1px -1px 0 #0f172a,
    1px -1px 0 #0f172a,
    -1px 1px 0 #0f172a,
    1px 1px 0 #0f172a,
    0 0 3px rgba(15, 23, 42, 0.55);
}

.c-button--menu:hover,
.c-button--menu--bar:hover,
#btn-open-menu:hover {
  background: #fff !important;
  border-color: var(--checkit-accent-hover, #b0822e) !important;
  color: #fff !important;
}

.c-header-collective__nav--bar .nav-link,
.c-header-collective__nav--bar .dropdown-toggle {
  color: #fff;
  border-radius: 4px;
  transition: background 0.2s, color 0.2s;
}

.c-header-collective__nav--bar .nav-link:hover,
.c-header-collective__nav--bar .dropdown-toggle:hover {
  color: var(--checkit-accent-light);
  background: rgba(255, 255, 255, 0.1);
}

.c-header-collective__nav--bar .c-header-collective__user-header .nav-link {
  padding: 6px 8px;
  font-size: 12px;
}

.c-header-collective__bar a,
.c-header-collective__bar .c-header__agency-data span {
  color: #fff;
}

/* Excepción al blanco de arriba: los botones "outline" que viven sueltos
   en la barra de headers compactos (p. ej. "Volver al buscador" en Checkit
   Assistance) tienen fondo blanco propio -texto blanco sobre fondo blanco
   quedaba invisible-. */
.c-header-collective__bar a.c-button--outline {
  color: var(--s-color-header-text, #1f2937) !important;
}

.c-header__agency-data--top > div {
  color: #fff;
}

.c-header__agency-data--top i {
  width: 16px;
  text-align: center;
  flex-shrink: 0;
  color: #fff;
  font-size: 14px;
  opacity: 1;
}

.c-header__agency-whatsapp i {
  color: var(--s-color-whatsapp);
}

.c-header__agency-email a {
  color: #fff;
}

.c-header__agency-email a:hover {
  color: var(--s-color-brand-primary);
}

.c-header__agency-social-networks a {
  color: #fff;
  opacity: 0.92;
}

.c-header-collective__nav--bar .nav-link i,
.c-header-collective__nav--bar .dropdown-toggle > i:not(.fa-angle-down) {
  color: #fff;
  opacity: 0.95;
}

.c-header-collective__nav--bar .fa-angle-down {
  font-size: 10px;
  opacity: 0.8;
}

/* Header main */
.c-header-collective__main {
  background: var(--s-color-header-bg);
  border-bottom: 1px solid #e8e8e8;
}

.c-header-collective__main--subnav-only {
  padding: 0;
}

/* Subnav estándar — siempre visible en todo el sitio */
.c-header-collective__main--subnav-only,
.c-header-collective--site-standard .c-header-collective__main--subnav-only,
body.has-checkit-site-nav .c-header-collective__main--subnav-only {
  display: block !important;
  visibility: visible !important;
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
}

.c-header-subnav {
  border-top: none;
  padding: 8px 0;
  overflow-x: auto;
  overflow-y: hidden;
}

.c-header-collective__main--subnav-only .c-header-subnav {
  border-top: none;
}

.c-header-subnav__links {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px 14px;
  justify-content: flex-start;
  align-items: center;
  font-size: 12px;
  line-height: 1.2;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  /* Evita que el último ítem (Comunidad Checkit) quede cortado al borde */
  padding-inline-end: 28px;
  scroll-padding-inline-end: 28px;
}

/* Espaciador final: el último botón/link se ve completo al scrollear */
.c-header-subnav__links::after {
  content: '';
  flex: 0 0 20px;
  width: 20px;
  height: 1px;
  pointer-events: none;
}

.c-header-subnav__links::-webkit-scrollbar {
  display: none;
}

/* Siempre una sola línea: scroll horizontal si no entra todo */
@media (min-width: 1360px) {
  .c-header-subnav__links {
    flex-wrap: nowrap;
    overflow-x: auto;
    row-gap: 0;
    gap: 8px 16px;
    padding-inline-end: 28px;
  }

  .c-header-subnav__links::after {
    display: block;
  }
}

.c-header-subnav__links a,
.c-header-subnav__links .c-header-subnav__trigger,
.c-header-subnav__links button.c-header-subnav__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 6px 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  color: var(--s-color-header-text, #1f2937);
  opacity: 0.9;
  transition: color 0.2s ease, opacity 0.2s ease;
  white-space: nowrap;
  flex: 0 0 auto;
}

.c-header-subnav__links a i,
.c-header-subnav__links .c-header-subnav__trigger i {
  font-size: 0.95em;
  opacity: 0.9;
}

.c-header-subnav__links a:hover,
.c-header-subnav__links .c-header-subnav__trigger:hover,
.c-header-subnav__links button.c-header-subnav__trigger:hover {
  color: var(--checkit-sky-deep, #0c4a6e);
  opacity: 1;
}

.c-header-subnav__links a:hover i,
.c-header-subnav__links .c-header-subnav__trigger:hover i {
  color: var(--checkit-accent, #ffc107);
}

.c-header-subnav__links a.is-active,
.c-header-subnav__links .c-header-subnav__trigger.is-active {
  color: var(--checkit-sky-deep, #0c4a6e);
  opacity: 1;
  font-weight: 700;
}

.c-header-subnav__links a.is-active i,
.c-header-subnav__links .c-header-subnav__trigger.is-active i {
  color: var(--checkit-accent, #e85d04);
}

.c-header-collective__display {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  gap: 16px;
}

.c-collective-brand__img {
  max-height: 56px;
  width: auto;
  object-fit: contain;
}

.c-collective-brand__img--footer {
  max-height: 44px;
  width: auto;
  object-fit: contain;
  display: block;
  background: transparent;
  border: none;
  box-shadow: none;
  filter: none;
}

.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  background: transparent;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.c-button--square {
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  font-size: 20px;
}

.c-button--menu { display: none; }

/* Tras .c-button--square: el hamburguesa no hereda border:none ni color oscuro */
.c-button.c-button--menu,
.c-button.c-button--menu--bar,
button#btn-open-menu {
  color: #fff !important;
  background: #fff !important;
  border: 2px solid var(--checkit-accent, #c9953a) !important;
}

.c-button.c-button--menu i,
.c-button.c-button--menu--bar i,
button#btn-open-menu i {
  color: #fff !important;
  text-shadow:
    -1px -1px 0 #0f172a,
    1px -1px 0 #0f172a,
    -1px 1px 0 #0f172a,
    1px 1px 0 #0f172a,
    0 0 3px rgba(15, 23, 42, 0.55);
}

.c-header-collective__compact-drawer-close {
  display: none;
}

.c-button--brand,
.bg-clr--brand {
  background: var(--checkit-accent-gradient);
  color: #1a1408;
  border-color: var(--checkit-accent);
  font-weight: 600;
}

.c-button--brand:hover {
  background: linear-gradient(135deg, var(--checkit-accent) 0%, var(--checkit-accent-hover) 100%);
  color: #1a1408;
}

.c-button--whatsapp {
  background: var(--s-color-whatsapp) !important;
  border-color: var(--s-color-whatsapp) !important;
  color: #fff !important;
  font-weight: 700;
}

.c-button--whatsapp:hover,
.c-button--whatsapp:focus-visible {
  background: var(--s-color-whatsapp-hover) !important;
  border-color: var(--s-color-whatsapp-hover) !important;
  color: #fff !important;
}

.c-button--outline {
  border-color: var(--s-color-brand-primary);
  color: var(--s-color-header-text);
  background: #fff;
}

.c-button--line--white {
  border: 1px solid #fff;
  color: #fff;
  background: transparent;
  padding: 8px 24px;
  margin-top: 8px;
}

.c-button--line--white:hover {
  background: rgba(255, 255, 255, 0.15);
}

.c-button--full { width: 100%; }

.c-button--close-nav {
  display: none;
  margin-left: auto;
  margin-bottom: 8px;
}

/* Nav */
.c-header-collective__nav {
  display: flex;
  align-items: center;
}

.c-header-collective__user-header {
  display: flex;
  align-items: center;
  gap: 4px;
}

.c-header-collective__user-header .nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 13px;
  border: none;
  background: none;
  color: var(--s-color-header-text);
  white-space: nowrap;
}

.c-header-collective__user-header .nav-link:hover {
  color: var(--s-color-brand-primary);
}

/* Barra negra: forzar contraste blanco (sobre reglas generales del nav) */
.c-header-collective__nav--bar .c-header-collective__user-header .nav-link,
.c-header-collective__nav--bar .c-header-collective__user-header .dropdown-toggle,
.c-header-collective__nav--bar .c-user-menu .dropdown-toggle {
  color: #fff;
}

.c-header-collective__nav--bar .c-header-collective__user-header .nav-link:hover,
.c-header-collective__nav--bar .c-header-collective__user-header .dropdown-toggle:hover,
.c-header-collective__nav--bar .c-user-menu .dropdown-toggle:hover {
  color: var(--checkit-accent-light);
  background: rgba(255, 255, 255, 0.1);
}

.c-header-collective__nav--bar #current-currency,
.c-header-collective__nav--bar #current-language,
.c-header-collective__nav--bar #user-name {
  color: #fff;
}

/* Dropdowns */
.dropdown { position: relative; }

.dropdown-toggle {
  color: var(--s-color-header-text);
}

.dropdown-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 220px;
  max-height: 360px;
  overflow-y: auto;
  background: #fff;
  color: #393939;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 8px 0;
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
}

.dropdown.is-open .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Menús flotantes con flip arriba/abajo (fuera del overflow del header) */
.dropdown-menu.is-fixed,
.dropdown-menu.c-floating-menu {
  position: fixed !important;
  right: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.dropdown-menu button,
.dropdown-menu a {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: none;
  text-align: left;
  font-size: 13px;
  color: #393939;
}

.dropdown-menu button:hover,
.dropdown-menu a:hover {
  background: #f0f0f0;
  color: #111;
}

.dropdown-title {
  padding: 8px 16px 4px;
  font-size: 11px;
  color: #555;
  background: #f5f5f5;
  border-top: 1px solid #eee;
}

.dropdown-title:first-child {
  border-top: none;
}

.dropdown-title strong {
  color: #333;
  font-weight: 600;
}

.dropdown-menu-currencies { min-width: 240px; }

/* Flags */
.flag {
  display: inline-block;
  width: 20px;
  height: 14px;
  border-radius: 2px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}

.flag-es { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect fill='%23c60b1e' width='3' height='2'/%3E%3Crect fill='%23ffc400' y='.5' width='3' height='1'/%3E%3C/svg%3E"); }
.flag-gb { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3Crect fill='%23012169' width='60' height='30'/%3E%3C/svg%3E"); }
.flag-us { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect fill='%23b22234' width='3' height='2'/%3E%3C/svg%3E"); }
.flag-it { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect fill='%23009246' width='1' height='2'/%3E%3Crect fill='%23fff' x='1' width='1' height='2'/%3E%3Crect fill='%23ce2b37' x='2' width='1' height='2'/%3E%3C/svg%3E"); }
.flag-pt { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect fill='%23006000' width='3' height='2'/%3E%3C/svg%3E"); }
.flag-br { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect fill='%23009739' width='3' height='2'/%3E%3C/svg%3E"); }

.c-hidden-aside__bg {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 150;
  pointer-events: none;
}

.c-hidden-aside__bg:not([hidden]) {
  pointer-events: auto;
}

/* Login */
.login-form-modal {
  padding: 48px 16px 64px;
  min-height: calc(100vh - 200px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.login-form-modal-layout { width: 100%; max-width: 950px; }

.login-card {
  background: #fff;
  border-radius: var(--radius-big);
  overflow: hidden;
  box-shadow: var(--shadow);
}

.c-login-content {
  display: flex;
  flex-direction: column;
  min-height: 450px;
}

.c-login-content__item--first {
  position: relative;
  flex: 3;
  min-height: clamp(300px, 46vh, 460px);
  color: #fff;
  display: flex;
  flex-direction: column;
}

.c-login-content__img-wrapper {
  position: absolute;
  inset: 0;
}

.c-login-content__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-login-content__overlay {
  position: absolute;
  inset: 0;
  background: rgba(57, 57, 57, 0.45);
}

.c-login-content__text {
  position: relative;
  z-index: 1;
  padding: 32px;
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.c-login-content__text h2 {
  margin: 0;
  font-size: 28px;
  font-weight: 600;
}

.c-login-content__text p {
  margin: 0;
  font-size: 16px;
  opacity: 0.95;
}

.c-login-content__register {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.c-login-content__guest {
  margin-top: 14px;
}

.c-button--guest {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--checkit-accent, #ffc107);
  color: #1a1408 !important;
  border: none;
  font-weight: 700;
  padding: 11px 18px;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}

.c-button--guest:hover {
  background: var(--checkit-accent-hover, #ffd54f);
  color: #1a1408 !important;
}

.c-login-guest-cta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin: 0 0 20px;
  padding: 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 193, 7, 0.16), rgba(232, 93, 4, 0.1));
  border: 1px solid rgba(255, 193, 7, 0.45);
}

.c-login-guest-cta__label {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1408;
}

.c-login-guest-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 1rem;
  font-weight: 800;
  padding: 13px 18px;
  text-decoration: none;
}

.c-login-guest-cta__hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: #4b5563;
}

.c-login-content__item--form {
  flex: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  padding: 32px 24px;
}

.c-login-form-title {
  margin: 0 0 4px;
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a1408;
  display: flex;
  align-items: center;
  gap: 8px;
}

.c-login-form-title i {
  color: var(--checkit-accent, #c9953a);
  font-size: 1.1rem;
}

.c-login-form-subtitle {
  margin: 0 0 18px;
  font-size: 0.88rem;
  color: #64748b;
}

.login-form { width: 100%; }

.form-group {
  margin-bottom: 16px;
}

.form-group label {
  display: block;
  font-size: 12px;
  margin-bottom: 6px;
  color: var(--s-color-header-text);
}

.c-icon-escort {
  position: relative;
}

.c-icon-escort .c-text-input {
  width: 100%;
  padding: 12px 40px 12px 14px;
  border: 1px solid #ced4da;
  border-radius: 6px;
  font-size: 16px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.c-icon-escort .c-text-input:focus {
  border-color: var(--s-color-brand-primary);
  box-shadow: 0 0 0 3px rgba(202, 195, 188, 0.35);
}

.c-icon-escort > i:not(.fa-eye):not(.fa-eye-slash) {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--s-color-middle-gray);
  pointer-events: none;
}

.c-password-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: none;
  color: var(--s-color-middle-gray);
  padding: 4px 8px;
}

.form-group--checkbox { margin-bottom: 20px; }

.c-point-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
}

.c-point-checkbox__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.c-point-checkbox__container {
  width: 18px;
  height: 18px;
  border: 2px solid #ced4da;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color 0.2s;
}

.c-point-checkbox__input:checked + .c-point-checkbox__container {
  border-color: var(--s-color-brand-primary);
}

.c-point-checkbox__point {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--s-color-brand-primary);
  transform: scale(0);
  transition: transform 0.2s;
}

.c-point-checkbox__input:checked + .c-point-checkbox__container .c-point-checkbox__point {
  transform: scale(1);
}

.login-help {
  margin-top: 16px;
  text-align: center;
  font-size: 13px;
}

.login-help a:hover { color: var(--s-color-brand-primary); }

.login-error {
  background: #fde8e8;
  color: #9b1c1c;
  border: 1px solid #f8b4b4;
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 16px;
  font-size: 13px;
}

/* Footer — aliados estratégicos (sobre negro premium) */
.c-footer-partners {
  background: #000000;
  color: #ffffff;
  padding: 48px 0 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.c-footer-partners--inline {
  border-top: none;
  border-radius: 0;
  margin: 0;
  max-width: none;
  width: 100%;
  box-shadow: none;
  border: none;
  background: #000000;
}

.page-grand-tour .c-footer-partners--inline {
  border-radius: 0;
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
}

.page-about .c-footer-partners--inline {
  border-radius: 0;
  max-width: none;
  margin: 0;
}

.gt-allies-mount {
  display: none;
}

.gt-reviews-mount {
  display: none;
}

.c-footer-partners__head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 28px;
}

.c-footer-partners__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.58);
}

.c-footer-partners__eyebrow i {
  color: var(--checkit-accent-light, #e4bc5c);
}

.c-footer-partners__title {
  margin: 0 0 10px;
  font-size: clamp(1.05rem, 2.4vw, 1.35rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.95);
}

.c-footer-partners__subtitle {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
}

.c-footer-partners__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 10px;
  list-style: none;
  width: 100%;
  margin: 0 0 24px;
  padding: 0;
}

.c-footer-partners__grid--band {
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 10px;
  width: max-content;
  max-width: none;
  overflow: visible;
  will-change: transform;
  cursor: grab;
  touch-action: pan-y;
}

.c-footer-partners__grid--band.is-dragging {
  cursor: grabbing;
}

.c-footer-partners__grid--band .c-footer-partners__item {
  flex: 0 0 176px;
  width: 176px;
  min-width: 0;
  max-width: none;
}

.c-footer-partners__card {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-height: 0;
  height: 100%;
  padding: 11px 36px 11px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: none;
  transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.c-footer-partners__item:hover .c-footer-partners__card {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow: none;
}

.c-footer-partners__seal {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.35);
  font-size: 9px;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.c-footer-partners__item:hover .c-footer-partners__seal {
  background: rgba(201, 149, 58, 0.18);
  color: var(--checkit-accent-light, #e4bc5c);
  transform: scale(1.05);
}

.c-footer-partners__media {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 42px;
  min-height: 42px;
}

.c-footer-partners__monogram {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #fff;
  filter: none;
  opacity: 0.88;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.c-footer-partners__card.is-text-mode .c-footer-partners__monogram {
  display: inline-flex;
}

.c-footer-partners__item:hover .c-footer-partners__monogram {
  opacity: 1;
  transform: scale(1.04);
}

.c-footer-partners__item--teal .c-footer-partners__monogram { background: linear-gradient(135deg, #0d9488, #115e59); }
.c-footer-partners__item--amber .c-footer-partners__monogram { background: linear-gradient(135deg, #f59e0b, #b45309); }
.c-footer-partners__item--slate .c-footer-partners__monogram { background: linear-gradient(135deg, #475569, #1e293b); }
.c-footer-partners__item--green .c-footer-partners__monogram { background: linear-gradient(135deg, #16a34a, #14532d); }
.c-footer-partners__item--coral .c-footer-partners__monogram { background: linear-gradient(135deg, #f97316, #c2410c); }
.c-footer-partners__item--indigo .c-footer-partners__monogram { background: linear-gradient(135deg, #6366f1, #3730a3); }
.c-footer-partners__item--rose .c-footer-partners__monogram { background: linear-gradient(135deg, #e11d48, #881337); }
.c-footer-partners__item--bronze .c-footer-partners__monogram { background: linear-gradient(135deg, #a16207, #713f12); }

.c-footer-partners__logo {
  display: block;
  max-width: 72px;
  max-height: 34px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.62;
  transition: opacity 0.25s ease;
}

.c-footer-partners__card.has-logo .c-footer-partners__media {
  width: auto;
  min-width: 42px;
  max-width: 80px;
}

.c-footer-partners__card.has-logo .c-footer-partners__monogram {
  display: none;
}

.c-footer-partners__item:hover .c-footer-partners__logo {
  opacity: 1;
}

.c-footer-partners__name {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.01em;
  text-align: left;
  text-transform: none;
  color: rgba(255, 255, 255, 0.62);
  transition: color 0.25s ease;
  overflow-wrap: anywhere;
}

.c-footer-partners__item:hover .c-footer-partners__name {
  color: rgba(255, 255, 255, 0.95);
}

.c-footer-partners__legal {
  display: grid;
  gap: 12px;
  max-width: 860px;
  margin: 0 auto;
}

.c-footer-partners__legal-block {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  text-align: left;
}

.c-footer-partners__legal-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  font-size: 15px;
}

.c-footer-partners__legal-block--lead {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.c-footer-partners__legal-block--commitment {
  background: rgba(201, 149, 58, 0.08);
  border: 1px solid rgba(201, 149, 58, 0.22);
}

.c-footer-partners__legal-block--lead .c-footer-partners__legal-icon {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.55);
}

.c-footer-partners__legal-block--commitment .c-footer-partners__legal-icon {
  background: rgba(201, 149, 58, 0.15);
  color: var(--checkit-accent-light, #e4bc5c);
}

.c-footer-partners__legal-block p {
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
}

.c-footer-partners__legal-block--commitment p {
  color: rgba(255, 255, 255, 0.62);
}

.c-footer-partners__legal-block--commitment strong {
  color: var(--checkit-accent-light, #e4bc5c);
}

.c-footer-contact-line strong {
  font-weight: 600;
  color: inherit;
}

/* Footer — testimonios compactos (estilo internacional) */
.testimonials-section {
  scroll-margin-top: 120px;
  width: 100%;
  background: #000;
  color: #fff;
  padding: 40px 20px 36px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.testimonials-container {
  max-width: 1100px;
  margin: 0 auto;
}

.testimonials-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.testimonials-bar__copy h2 {
  margin: 0 0 4px;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.testimonials-bar__copy p {
  margin: 0;
  font-size: 0.85rem;
  color: #9ca3af;
}

.testimonials-bar__score {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.testimonials-bar__number {
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1;
  color: #ffc107;
}

.testimonials-bar__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.testimonials-bar__count {
  font-size: 0.72rem;
  color: #9ca3af;
  letter-spacing: 0.02em;
}

.testimonials-track-wrap {
  position: relative;
  padding: 0 30px;
}

.testimonials-viewport {
  overflow: hidden;
  width: 100%;
}

.testimonials-track-wrap::before,
.testimonials-track-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 8px;
  width: 56px;
  z-index: 1;
  pointer-events: none;
}

.testimonials-track-wrap::before {
  left: 0;
  background: linear-gradient(to right, #000 35%, rgba(0, 0, 0, 0.65) 65%, transparent);
}

.testimonials-track-wrap::after {
  right: 0;
  background: linear-gradient(to left, #000 35%, rgba(0, 0, 0, 0.65) 65%, transparent);
}

.testimonials-grid {
  display: flex;
  gap: 16px;
  overflow: visible;
  padding: 2px 2px 8px;
  width: max-content;
  max-width: none;
  will-change: transform;
  touch-action: pan-y;
  cursor: grab;
}

.testimonials-grid.is-dragging {
  cursor: grabbing;
}

.testimonials-grid.is-marquee {
  /* movimiento vía JS transform */
  animation: none;
}

.testimonials-track-wrap.is-marquee .testimonial-card,
.testimonials-grid .testimonial-card {
  flex: 0 0 320px;
  width: 320px;
  max-width: 85vw;
  scroll-snap-align: none;
}

@media (max-width: 480px) {
  .testimonials-track-wrap.is-marquee .testimonial-card,
  .testimonials-grid .testimonial-card {
    flex-basis: min(300px, 85vw);
    width: min(300px, 85vw);
  }
}

.testimonial-card {
  flex: 0 0 320px;
  width: 320px;
  max-width: 85vw;
  display: flex;
  gap: 14px;
  padding: 16px;
  border-radius: 10px;
  background: #0a0a0a;
  border: 1px solid #222;
  min-height: 0;
}

.testimonial-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 4px;
}

.testimonial-card__ref {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffc107;
  padding: 3px 7px;
  border-radius: 4px;
  background: rgba(255, 193, 7, 0.1);
  border: 1px solid rgba(255, 193, 7, 0.25);
}

.testimonial-card__date {
  font-size: 0.72rem;
  color: #6b7280;
}

.testimonials-track-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.55);
  background: linear-gradient(180deg, #ffffff 0%, #e5e7eb 100%);
  color: #111827;
  font-size: 1rem;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.testimonials-track-nav--prev { left: -4px; }
.testimonials-track-nav--next { right: -4px; }

.testimonials-track-nav:hover {
  border-color: #ffc107;
  background: linear-gradient(180deg, #ffd54f 0%, #ffc107 100%);
  color: #111827;
  box-shadow:
    0 6px 22px rgba(255, 193, 7, 0.45),
    0 0 0 1px rgba(255, 193, 7, 0.35);
  transform: translateY(-50%) scale(1.07);
}

.testimonials-track-nav:focus-visible {
  outline: 2px solid #ffc107;
  outline-offset: 3px;
}

.testimonials-track-nav.is-disabled {
  opacity: 0.28;
  pointer-events: none;
  filter: grayscale(0.4);
}

.testimonial-card__photo {
  flex: 0 0 72px;
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #222;
}

.testimonial-card__photo img {
  display: block;
  width: 72px;
  height: 72px;
  object-fit: cover;
}

.testimonial-card__main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.testimonial-stars {
  color: #ffc107;
  font-size: 0.72rem;
  line-height: 1;
}

.testimonial-stars i {
  margin-right: 1px;
}

.testimonial-stars i.is-dim {
  opacity: 0.25;
}

.testimonial-text {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.5;
  color: #d1d5db;
  font-style: italic;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.testimonial-author {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
}

.author-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: #fff;
}

.author-platform {
  font-size: 0.72rem;
  color: #1877f2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.btn-verify {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 2px;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px solid #333;
  color: #e5e7eb;
  font-size: 0.72rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.btn-verify:hover {
  background: #1877f2;
  border-color: #1877f2;
  color: #fff;
}

.testimonials-foot {
  margin: 18px 0 0;
  text-align: center;
}

.testimonials-foot a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #9ca3af;
  text-decoration: none;
}

.testimonials-foot a:hover {
  color: #1877f2;
}

.testimonials-empty {
  margin: 0;
  padding: 12px 4px 4px;
  color: #d1d5db;
  font-size: 0.92rem;
}

@media (max-width: 768px) {
  .testimonials-section {
    scroll-margin-top: 96px;
    padding: 32px 16px 28px;
  }

  .testimonials-bar__score {
    width: 100%;
    justify-content: center;
  }

  .testimonials-track-wrap {
    padding: 0 24px;
  }

  .testimonials-track-wrap::before,
  .testimonials-track-wrap::after {
    width: 40px;
  }

  .testimonials-track-nav {
    width: 40px;
    height: 40px;
    font-size: 0.88rem;
  }

  .testimonials-track-nav--prev { left: -2px; }
  .testimonials-track-nav--next { right: -2px; }

  .testimonial-card {
    flex-basis: min(100%, 300px);
  }

  .testimonial-card__photo {
    flex-basis: 64px;
  }

  .testimonial-card__photo img {
    width: 64px;
    height: 64px;
  }
}

@media (min-width: 769px) {
  .testimonial-card {
    flex-basis: calc(50% - 8px);
    max-width: 520px;
  }
}

/* Footer premium — negro puro, 3 columnas */
.c-footer-collective--premium .c-footer-collective__top {
  position: relative;
  background: #000000;
  color: #ffffff;
  padding: 64px 0 40px;
  font-size: 13px;
  letter-spacing: 0.01em;
}

.c-footer-collective--premium .c-footer-collective__top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.14) 20%,
    rgba(201, 149, 58, 0.35) 50%,
    rgba(255, 255, 255, 0.14) 80%,
    transparent 100%
  );
  pointer-events: none;
}

.c-footer-collective__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}

.c-footer-collective__col {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.c-footer-collective__label {
  margin: 0 0 18px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
}

.c-footer-collective__brand {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 16px;
  padding: 0;
  line-height: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.c-footer-collective__brand:hover {
  opacity: 0.88;
}

.c-footer-collective__brand img {
  max-height: 44px;
  width: auto;
  height: auto;
  display: block;
  background: transparent;
}

.c-footer-collective__tagline {
  margin: 0;
  max-width: 280px;
  font-size: 13px;
  line-height: 1.65;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.52);
}

.c-footer-collective__minorista {
  margin: 12px 0 0;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 11px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.55);
}

.c-footer-collective__minorista-bar {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.c-footer-collective__minorista-bar .c-footer-collective__minorista {
  margin: 0;
  max-width: none;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
}

.c-footer-collective__col--legal .c-footer-collective__minorista {
  margin: 16px 0 0;
  max-width: none;
}

.c-footer-collective__minorista-role {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.48);
}

.c-footer-collective__minorista-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0 6px;
  align-items: baseline;
}

.c-footer-collective__minorista-name {
  font-weight: 700;
  color: rgba(255, 255, 255, 0.88);
}

.c-footer-collective__minorista-meta {
  font-weight: 600;
  color: var(--checkit-accent-light, #ffc107);
}

.c-footer-collective__minorista-sep {
  display: none;
}

.c-footer-collective__minorista-bar .c-footer-collective__minorista-sep {
  display: inline;
  color: rgba(255, 255, 255, 0.35);
}

.c-footer-collective__group {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 22px;
}

.c-footer-collective__row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.c-footer-collective__copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.c-footer-collective__row-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.48);
}

.c-footer-collective__row-value {
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
}

.c-footer-collective__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.46);
  font-size: 14px;
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.c-footer-collective__row:hover .c-footer-collective__icon {
  color: rgba(255, 255, 255, 0.95);
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.16);
}

.c-footer-collective__channels-label {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.48);
}

.c-footer-collective__channels {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.c-footer-collective__channel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
  font-size: 13px;
  line-height: 1.5;
  transition: color 0.3s ease;
}

.c-footer-collective__channel:hover {
  color: #ffffff;
}

.c-footer-collective__channel:hover .c-footer-collective__icon {
  color: var(--checkit-accent-light, #e4bc5c);
  background: rgba(201, 149, 58, 0.1);
  border-color: rgba(201, 149, 58, 0.28);
  transform: translateY(-1px);
}

.c-footer-collective__nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
}

.c-footer-collective__nav-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: rgba(255, 255, 255, 0.62);
  text-decoration: none;
  font-size: 13px;
  line-height: 1.5;
  transition: color 0.3s ease, transform 0.3s ease;
}

.c-footer-collective__nav-link:hover {
  color: #ffffff;
  transform: translateX(3px);
}

.c-footer-collective__copyright {
  margin: auto 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.38);
}

.c-footer-collective__col--legal {
  justify-content: flex-start;
}

/* Compatibilidad footer legacy (páginas sin upgrade JS) */
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__top {
  background: var(--s-color-footer-bg);
  color: var(--s-color-footer-text);
  padding: 48px 0 32px;
  font-size: 13px;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col strong {
  font-size: 15px;
  margin-bottom: 4px;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col p,
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a,
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col span {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  opacity: 0.9;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a:hover {
  opacity: 1;
  color: var(--checkit-accent-light);
  text-decoration: underline;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col i,
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col .fa-location-dot {
  color: var(--s-color-brand-primary);
  margin-top: 3px;
  flex-shrink: 0;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__box-brand img {
  max-height: 48px;
  width: auto;
  margin: 8px 0;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a[href^="tel:"],
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a[href*="wa.me"] {
  color: inherit;
  text-decoration: none;
}

.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a[href^="tel:"]:hover,
.c-footer-collective:not(.c-footer-collective--premium) .c-footer-collective__col a[href*="wa.me"]:hover {
  color: var(--checkit-accent-light);
  text-decoration: underline;
}

/* Columna flotante derecha: WhatsApp (abajo) + Chat IA (arriba) + holgura.
   Cualquier otro control (p. ej. flecha “subir”) debe usar --checkit-float-clear-stack. */
:root {
  --checkit-float-wa-size: 58px;
  --checkit-float-ai-size: 58px;
  --checkit-float-gap: 22px; /* aire WA ↔ IA (igual al de Subir) */
  --checkit-float-scroll-gap: 22px; /* aire IA ↔ flecha subir (equidistante) */
  --checkit-float-safe-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  --checkit-float-safe-right: max(16px, env(safe-area-inset-right, 0px));
  --checkit-float-clear-wa: calc(
    var(--checkit-float-safe-bottom) + var(--checkit-float-wa-size) + 16px
  );
  --checkit-float-clear-stack: calc(
    var(--checkit-float-safe-bottom)
    + var(--checkit-float-wa-size)
    + var(--checkit-float-gap)
    + var(--checkit-float-ai-size)
    + var(--checkit-float-scroll-gap)
  );
}

@media (max-width: 1024px) {
  :root {
    --checkit-float-wa-size: 56px;
    --checkit-float-ai-size: 56px;
    --checkit-float-safe-bottom: max(18px, env(safe-area-inset-bottom, 0px));
    --checkit-float-safe-right: max(14px, env(safe-area-inset-right, 0px));
  }
}

@media (max-width: 768px) {
  :root {
    --checkit-float-wa-size: 54px;
    --checkit-float-ai-size: 54px;
    --checkit-float-gap: 18px;
    --checkit-float-scroll-gap: 18px;
    --checkit-float-safe-bottom: max(20px, env(safe-area-inset-bottom, 0px));
    --checkit-float-safe-right: max(20px, env(safe-area-inset-right, 0px));
    --checkit-float-safe-left: max(20px, env(safe-area-inset-left, 0px));
  }

  /* Móvil: flecha subir oculta; IA a la izquierda; WA libre a la derecha */
  .c-detalle-scroll-top,
  .c-checkit-scroll-top {
    display: none !important;
  }

  .c-whatsapp-button__tag,
  .c-ai-agent__fab-tag {
    display: none !important;
  }

  .c-ai-agent {
    right: auto !important;
    left: var(--checkit-float-safe-left, 20px) !important;
    bottom: var(--checkit-float-safe-bottom, 20px) !important;
  }

  .c-ai-agent__fab-wrap {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  :root {
    --checkit-float-wa-size: 52px;
    --checkit-float-ai-size: 52px;
    --checkit-float-gap: 16px;
    --checkit-float-scroll-gap: 16px;
    --checkit-float-safe-bottom: max(20px, env(safe-area-inset-bottom, 0px));
    --checkit-float-safe-right: max(20px, env(safe-area-inset-right, 0px));
    --checkit-float-safe-left: max(20px, env(safe-area-inset-left, 0px));
  }
}

/* WhatsApp flotante — logo WA + azul Facebook (estándar Checkit) */
.c-whatsapp-button {
  position: fixed;
  right: var(--checkit-float-safe-right);
  bottom: var(--checkit-float-safe-bottom);
  z-index: 90;
  /* Siempre visible al cliente: no lo oculta el chat IA ni overlays ligeros. */
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.c-whatsapp-button a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.c-whatsapp-button__tag {
  background: #fff;
  color: var(--checkit-wa-float, #1877f2);
  padding: 8px 14px;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  font-size: 13px;
  font-weight: 650;
  opacity: 0;
  transform: translateX(10px);
  transition: opacity 0.3s, transform 0.3s;
  pointer-events: none;
  white-space: nowrap;
  animation: waTagNudge 9s ease-in-out infinite;
}

.c-whatsapp-button:hover .c-whatsapp-button__tag,
.c-whatsapp-button:focus-within .c-whatsapp-button__tag {
  opacity: 1;
  transform: translateX(0);
  animation: none;
}

.c-whatsapp-button__element {
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  /* Estándar Checkit: círculo azul Facebook + logo WhatsApp (nunca verde WA) */
  background: var(--checkit-wa-float, #1877f2) !important;
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-shadow: 0 10px 24px var(--checkit-wa-float-glow, rgba(24, 119, 242, 0.4));
  transform-origin: 50% 100%;
  animation: waGravityBounce 2.8s cubic-bezier(0.22, 0.9, 0.3, 1.15) infinite;
  will-change: transform;
}

.c-whatsapp-button__icon {
  display: block;
  width: 30px;
  height: 30px;
  position: relative;
  z-index: 1;
  pointer-events: none;
  color: #fff;
  fill: currentColor;
}

.c-whatsapp-button__element i {
  position: relative;
  z-index: 1;
  font-size: 30px;
  line-height: 1;
  color: #fff !important;
}

.c-whatsapp-button__element::before {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(24, 119, 242, 0.55);
  animation: waPulseRing 2.8s ease-out infinite;
  pointer-events: none;
}

.c-whatsapp-button a:hover .c-whatsapp-button__element,
.c-whatsapp-button a:focus-visible .c-whatsapp-button__element {
  background: var(--checkit-wa-float-hover, #0d65d9) !important;
  animation: none;
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 14px 28px rgba(13, 101, 217, 0.45);
  color: #fff !important;
}

.c-whatsapp-button a:hover .c-whatsapp-button__element::before,
.c-whatsapp-button a:focus-visible .c-whatsapp-button__element::before {
  animation: none;
  opacity: 0;
}

@keyframes waGravityBounce {
  0%,
  62%,
  100% {
    transform: translateY(0) scale(1, 1);
  }
  68% {
    transform: translateY(-16px) scale(0.98, 1.04);
  }
  76% {
    transform: translateY(0) scale(1.08, 0.9);
  }
  82% {
    transform: translateY(-7px) scale(0.99, 1.02);
  }
  88% {
    transform: translateY(0) scale(1.04, 0.95);
  }
  93% {
    transform: translateY(-2px) scale(1, 1);
  }
}

@keyframes waPulseRing {
  0%,
  62% {
    transform: scale(0.92);
    opacity: 0;
  }
  68% {
    opacity: 0.7;
  }
  100% {
    transform: scale(1.55);
    opacity: 0;
  }
}

/* Visible ~3s por ciclo (antes ~0.5s) para poder leer la etiqueta. */
@keyframes waTagNudge {
  0%,
  45%,
  90%,
  100% {
    opacity: 0;
    transform: translateX(10px);
  }
  52%,
  83% {
    opacity: 1;
    transform: translateX(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-whatsapp-button__element,
  .c-whatsapp-button__element::before,
  .c-whatsapp-button__tag {
    animation: none !important;
  }
}

@media (max-width: 1024px) {
  .c-whatsapp-button {
    right: max(14px, env(safe-area-inset-right, 0px));
    bottom: max(18px, env(safe-area-inset-bottom, 0px));
  }

  .c-whatsapp-button__element {
    width: 56px;
    height: 56px;
  }

  .c-whatsapp-button__icon {
    width: 28px;
    height: 28px;
  }
}

@media (max-width: 768px) {
  .c-whatsapp-button {
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(14px, env(safe-area-inset-bottom, 0px));
  }

  .c-whatsapp-button__tag {
    display: none;
  }

  .c-whatsapp-button__element {
    width: 54px;
    height: 54px;
    box-shadow: 0 8px 20px var(--checkit-wa-float-glow, rgba(24, 119, 242, 0.45));
  }

  .c-whatsapp-button__icon {
    width: 27px;
    height: 27px;
  }
}

@media (max-width: 480px) {
  .c-whatsapp-button {
    right: max(10px, env(safe-area-inset-right, 0px));
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
  }

  .c-whatsapp-button__element {
    width: 52px;
    height: 52px;
  }

  .c-whatsapp-button__icon {
    width: 26px;
    height: 26px;
  }
}

/* Modals */
.c-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s, visibility 0.25s;
}

.c-modal.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.c-modal__backmask {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.c-modal__wrapper {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  z-index: 1;
}

.c-modal--large .c-modal__wrapper { max-width: 800px; }

.c-modal__container {
  background: #fff;
  border-radius: var(--radius-big);
  box-shadow: var(--shadow);
  overflow: hidden;
}

/* Cierre circular unificado: X blanca sobre círculo oscuro sólido */
.c-bank-modal__close,
.c-office-modal__close,
.c-comunidad-modal__close,
.c-ofertas-modal__close,
.c-oferta-detail__close,
.c-support-modal__close,
.c-lead-funnel__close,
.c-capture-success-modal__close,
.c-video-lightbox__close,
.c-map-destination-panel__close,
.c-modal__close-btn--circle {
  background: var(--checkit-close-bg) !important;
  color: var(--checkit-close-fg) !important;
  border: 2px solid var(--checkit-close-border) !important;
  box-shadow: var(--checkit-close-shadow);
  opacity: 1;
}

.c-bank-modal__close i,
.c-office-modal__close i,
.c-comunidad-modal__close i,
.c-ofertas-modal__close i,
.c-oferta-detail__close i,
.c-support-modal__close i,
.c-lead-funnel__close i,
.c-capture-success-modal__close i,
.c-video-lightbox__close i,
.c-map-destination-panel__close i,
.c-modal__close-btn--circle i {
  color: var(--checkit-close-fg) !important;
  opacity: 1;
}

.c-bank-modal__close:hover,
.c-office-modal__close:hover,
.c-comunidad-modal__close:hover,
.c-ofertas-modal__close:hover,
.c-oferta-detail__close:hover,
.c-support-modal__close:hover,
.c-lead-funnel__close:hover,
.c-capture-success-modal__close:hover,
.c-video-lightbox__close:hover,
.c-map-destination-panel__close:hover,
.c-modal__close-btn--circle:hover {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

.c-modal__close-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 2px solid var(--checkit-close-border);
  border-radius: 999px;
  background: var(--checkit-close-bg);
  box-shadow: var(--checkit-close-shadow);
  font-size: 1rem;
  color: var(--checkit-close-fg);
  cursor: pointer;
}

.c-modal__close-btn i {
  color: var(--checkit-close-fg);
  opacity: 1;
}

.c-modal__close-btn:hover {
  background: #000;
  color: #fff;
  border-color: #fff;
}

.c-modal__close-btn span {
  display: none;
  align-items: center;
  gap: 4px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--checkit-close-fg);
  font-size: 12px;
  font-weight: 600;
}

.c-modal__close-btn:hover span { display: inline-flex; }

.c-modal__body {
  padding: 32px 24px 24px;
}

.c-modal__body--scroll {
  max-height: 70vh;
  overflow-y: auto;
}

.c-modal__body h2 {
  margin: 0 0 16px;
  font-size: 20px;
  font-weight: 600;
}

.c-modal__body p { margin: 0 0 12px; color: var(--s-color-middle-gray); }

.c-modal__body a { color: var(--s-color-brand-primary); font-weight: 600; }

.c-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 20px;
}

.c-modal--cookies .c-modal__wrapper { max-width: 560px; }

.privacy-content h3,
.privacy-content p { margin: 0 0 12px; font-size: 13px; }

.privacy-content strong { font-weight: 600; }

/* Dashboard page */
.page-dashboard .c-search-box {
  background: #000;
  color: #fff;
  padding: 24px 0;
}

.c-search-tabs:not(.c-travel-modes__panel) {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.c-search-tabs:not(.c-travel-modes__panel) button {
  padding: 10px 18px;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-radius: 6px 6px 0 0;
  font-size: 13px;
}

.c-search-tabs:not(.c-travel-modes__panel) button.is-active {
  background: var(--s-color-brand-primary);
  color: #fff;
}

.c-search-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
}

.c-search-form .c-text-input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #444;
  border-radius: 6px;
  background: #1a1a1a;
  color: #fff;
}

.c-dashboard-hero {
  padding: 32px 0;
}

.c-dashboard-hero h1 {
  margin: 0 0 8px;
  font-size: 24px;
}

.c-offers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  padding-bottom: 48px;
}

.c-offer-card {
  background: #fff;
  border-radius: var(--radius-big);
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  transition: transform 0.2s, box-shadow 0.2s;
}

.c-offer-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.c-offer-card__img {
  height: 160px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  object-fit: cover;
}

.c-offer-card__body { padding: 16px; }

.c-offer-card__body h3 {
  margin: 0 0 8px;
  font-size: 16px;
}

.c-offer-card__price {
  color: var(--s-color-brand-primary);
  font-weight: 700;
  font-size: 18px;
}

.c-user-menu {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.c-user-menu span { font-size: 13px; }

.c-user-menu > button:not(.dropdown-toggle) {
  padding: 6px 14px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fff;
  font-size: 12px;
}

.c-user-menu .dropdown-menu.c-user-menu__dropdown,
.c-user-menu .c-user-menu__dropdown {
  min-width: 268px;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
}

.c-user-menu .dropdown-menu > li {
  list-style: none;
  margin: 0;
}

.c-user-menu .dropdown-menu .c-user-menu__action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  text-align: left;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  color: #334155;
  text-decoration: none;
  cursor: pointer;
}

.c-user-menu .dropdown-menu .c-user-menu__action span {
  flex: 1;
  font-size: 13px;
}

.c-user-menu .dropdown-menu .c-user-menu__action i {
  width: 18px;
  flex-shrink: 0;
  text-align: center;
  font-size: 14px;
  color: #64748b;
}

.c-user-menu .dropdown-menu .c-user-menu__action:hover,
.c-user-menu .dropdown-menu .c-user-menu__action:focus-visible {
  background: #f1f5f9;
  color: #0f172a;
}

.c-user-menu .dropdown-menu .c-user-menu__action--admin i {
  color: var(--s-color-brand-primary, #e85d04);
}

.c-user-menu .dropdown-menu .c-user-menu__action--logout i {
  color: #dc2626;
}

.c-user-menu .dropdown-menu .c-user-menu__item--admin {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid #e2e8f0;
}

.c-user-menu .dropdown-menu .c-user-menu__item:has(#btn-logout) {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid #e2e8f0;
}

.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu {
  z-index: 500;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
}

.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action,
.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action span,
.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu button.c-user-menu__action {
  color: #334155;
}

.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action:hover,
.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action:focus-visible,
.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action:hover span {
  color: #0f172a;
  background: #f1f5f9;
}

.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action i {
  color: #64748b;
}

.c-header-collective__bar .dropdown.c-user-menu .dropdown-menu .c-user-menu__action--admin i {
  color: var(--s-color-brand-primary, #e85d04);
}

/* Responsive */
@media (min-width: 768px) {
  .c-header__agency-data--top { display: flex; }

  .c-login-content { flex-direction: row; }

  .c-login-content__item--first { min-height: 450px; }

  .c-footer-collective__grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.25fr) minmax(0, 0.95fr);
    gap: 48px 56px;
    align-items: start;
  }

  .c-footer-collective__col--legal {
    min-height: 100%;
  }
}

@media (min-width: 960px) {
  .c-footer-partners__grid--band {
    gap: 12px;
  }

  .c-footer-partners__grid--band .c-footer-partners__item {
    flex: 0 0 208px;
    width: 208px;
    min-width: 0;
  }

  .c-footer-partners__grid--band .c-footer-partners__card {
    padding: 10px 28px 10px 12px;
    gap: 10px;
  }

  .c-footer-partners__grid--band .c-footer-partners__name {
    font-size: 10.5px;
    line-height: 1.3;
  }

  .c-footer-partners__grid--band .c-footer-partners__monogram {
    width: 38px;
    height: 38px;
    font-size: 12px;
  }

  .c-footer-partners__grid--band .c-footer-partners__media {
    width: 38px;
    min-height: 38px;
  }
}

@media (max-width: 767px) {
  .c-footer-collective--premium .c-footer-collective__top {
    padding: 48px 0 36px;
  }

  .c-footer-collective__tagline {
    max-width: none;
  }

  .c-footer-collective__copyright {
    margin-top: 4px;
  }

  .c-footer-partners {
    padding: 36px 0 32px;
  }

  .c-footer-partners__head {
    padding: 0 12px;
    margin-bottom: 20px;
  }

  .c-footer-partners__title {
    font-size: clamp(1rem, 4.5vw, 1.2rem);
    overflow-wrap: anywhere;
  }

  .c-footer-partners__subtitle {
    font-size: 12px;
  }

  .c-footer-partners__grid--band {
    gap: 8px;
  }

  .c-footer-partners__grid--band .c-footer-partners__item {
    flex: 0 0 156px;
    width: 156px;
    min-width: 0;
    max-width: none;
  }

  .c-footer-partners__grid--band .c-footer-partners__card {
    padding: 10px 30px 10px 12px;
    gap: 8px;
  }

  .c-footer-partners__grid--band .c-footer-partners__media {
    width: 34px;
    min-height: 34px;
  }

  .c-footer-partners__grid--band .c-footer-partners__monogram {
    width: 34px;
    height: 34px;
    font-size: 11px;
  }

  .c-footer-partners__grid--band .c-footer-partners__name {
    font-size: 10.5px;
    line-height: 1.3;
  }

  .c-footer-partners__legal {
    padding: 0 12px;
  }
}

/* Listado del sitio (Mi viaje / Explorar / Servicios / Comunidad) dentro del
   menú hamburguesa: mismo diseño por secciones con título destacado e
   íconos en TODOS los tamaños de pantalla (antes solo aplicaba en
   celular/tablet vía el media query de abajo; ahora también en pc/laptop,
   ya que el listado seccionado vive siempre dentro del desplegable). */
.c-header-collective__user-header--mobile-site {
  display: flex;
  flex-direction: column;
  margin: 0 0 12px;
  padding: 0 0 8px;
  border-bottom: 1px solid #e2e8f0;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  /* IMPORTANTE: "overflow-x: hidden" sin "overflow-y" explícito hace que el
     navegador calcule "overflow-y: auto" automáticamente (spec de CSS
     Overflow). Como este <ul> es hijo flex de ".compact-drawer"
     (display:flex; flex-direction:column), ese "auto" implícito activaba
     "min-height: 0" y comprimía toda la lista (Explorar/Servicios/
     Comunidad, ~10 links) a una cajita con SU PROPIO scroll interno de
     apenas ~180px, quedando prácticamente invisible/vacía a simple vista.
     Forzamos "overflow-y: visible" para que crezca con su contenido real y
     el ÚNICO scroll sea el del drawer completo. */
  overflow-y: visible;
  flex-shrink: 0;
}

/* Acceso a "Operaciones" (staff/admin) inyectado por app.js en headers
   compactos (resultados, checkit-assistance, detalle, travel-map...), donde
   el usuario vive en una barra simple ".c-user-menu--bar" y no en un
   dropdown. Sin estilos propios y sin escapar del "@media (min-width:1200px)"
   quedaba invisible (texto blanco sobre fondo transparente) en celular/
   tablet. Regla global -sin media query- para que se vea igual en todos los
   tamaños de pantalla. */
.c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu__item--admin-bar {
  display: block;
  list-style: none;
  width: 100%;
  flex-shrink: 0;
  margin: 0 0 4px;
}

.c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu__item--admin-bar > a {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--checkit-accent, #c9953a);
  background: #fff7ed;
  color: #0f172a !important;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}

.c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu__item--admin-bar > a:hover {
  background: var(--checkit-accent, #c9953a);
  color: #fff !important;
}

.c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu__item--admin-bar > a i {
  color: var(--checkit-accent, #c9953a) !important;
}

.c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu__item--admin-bar > a:hover i {
  color: #fff !important;
}

.c-header-collective__user-header--mobile-site > li {
  width: 100%;
  max-width: 100%;
  list-style: none;
}

.c-header-collective__user-header--mobile-site .nav-link {
  display: flex !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-weight: 600;
  padding: 12px 12px !important;
  border-radius: 12px;
  border-bottom: none !important;
  white-space: normal;
  overflow-wrap: anywhere;
  transform: none !important;
  margin: 0;
  color: #0f172a;
}

.c-header-collective__user-header--mobile-site .nav-link:hover {
  color: #0f172a;
  background: #f1f5f9;
}

.c-header-collective__user-header--mobile-site .nav-link i {
  flex: 0 0 22px;
  width: 22px;
  text-align: center;
  font-size: 1.05rem;
  color: #e85d04 !important;
}

.c-header-collective__user-header--mobile-site .nav-link span {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

.c-mobile-nav__section-title {
  display: block;
  width: 100%;
  margin: 14px 0 8px;
  padding: 10px 12px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0c4a6e;
  background: linear-gradient(90deg, #fff7ed 0%, #f8fafc 100%);
  border-left: 3px solid #e85d04;
  border-radius: 0 10px 10px 0;
  list-style: none;
}

.c-mobile-nav__section-title:first-child {
  margin-top: 0;
}

.c-header-collective__user-header--mobile-site .nav-link.c-mobile-nav__logout {
  color: #b91c1c !important;
  background: #fff1f2;
  margin-top: 6px;
}

.c-header-collective__user-header--mobile-site .nav-link.c-mobile-nav__logout i {
  color: #b91c1c !important;
}

/* Portada del menú desplegable: banner visual arriba de todo, antes del
   teléfono/contacto y de las secciones. Se inyecta por JS (checkit-site-nav.js)
   tanto en el drawer estándar como en el compacto, así no hace falta tocar
   el HTML de cada página. El drawer tiene padding propio (para que el resto
   de las opciones respiren), pero la portada debe cubrir el 100% del ancho
   y llegar hasta el borde superior real del drawer, sin dejar franjas del
   fondo del drawer visibles a los costados ni arriba: se "sangra" con
   márgenes negativos que cancelan exactamente ese padding. */
.c-mobile-nav__cover {
  position: relative;
  flex: 0 0 auto;
  order: -20;
  align-self: stretch;
  height: 168px;
  width: calc(100% + 14px + max(14px, env(safe-area-inset-right, 0px)));
  max-width: none;
  margin: calc(-1 * max(16px, env(safe-area-inset-top, 0px)))
    calc(-1 * max(14px, env(safe-area-inset-right, 0px)))
    12px
    -14px;
  border-radius: 0;
  overflow: hidden;
  isolation: isolate;
  background: #0f172a;
}

/* Con la portada ya "sangrada" hasta el borde superior real del drawer, el
   botón cerrar (que antes ocupaba su propia fila arriba de todo, dejando un
   hueco) pasa a flotar por encima de la imagen, en la esquina superior
   derecha, para que la portada sea lo primero que se vea sin espacios. */
.c-header-collective__nav--bar:has(.c-mobile-nav__cover) .c-button--close-nav,
.c-header-collective__compact-drawer:has(.c-mobile-nav__cover) .c-button--close-nav {
  position: absolute;
  top: max(10px, env(safe-area-inset-top, 0px));
  right: max(10px, env(safe-area-inset-right, 0px));
  /* Por encima de ".c-guest-cta" (z-index:90), que se inyecta justo después
     y si no le gana en apilamiento tapa el botón cerrar y le roba los clics. */
  z-index: 100;
  margin: 0;
}

.c-mobile-nav__cover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  /* Conservar brillo/contraste de la foto original */
  filter: brightness(1.06) contrast(1.08) saturate(1.05);
}

.c-mobile-nav__cover-overlay {
  position: absolute;
  inset: 0;
  /* Overlay liviano: la imagen se aprecia; el degradé solo ancla el logo abajo */
  background: linear-gradient(
    180deg,
    rgba(15, 23, 42, 0.05) 0%,
    rgba(15, 23, 42, 0.18) 48%,
    rgba(15, 23, 42, 0.62) 100%
  );
  pointer-events: none;
}

.c-mobile-nav__cover-content {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.c-mobile-nav__cover-logo {
  height: 26px;
  width: auto;
  object-fit: contain;
}

.c-mobile-nav__cover-tag {
  margin: 0;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

/* Sección "Cuenta y preferencias" (Ayuda / Moneda / Idioma / Usuario): en
   pc-laptop y en celular-tablet queda como filas de ancho completo, igual
   que el resto de los ítems del menú, ordenadas debajo de su título de
   sección. */
.c-header-collective__user-header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
}

.c-header-collective__user-header > li {
  width: 100%;
}

.c-header-collective__user-header .nav-link,
.c-header-collective__user-header .dropdown-toggle {
  width: 100%;
  justify-content: flex-start;
  gap: 10px;
  padding: 12px 8px;
  border-bottom: 1px solid #e2e8f0;
  color: #0f172a;
  border-radius: 8px;
  text-align: left;
}

.c-header-collective__user-header .dropdown-toggle .fa-angle-down {
  margin-left: auto;
  transition: transform 0.2s ease;
}

.c-header-collective__user-header .dropdown.is-open > .dropdown-toggle .fa-angle-down {
  transform: rotate(180deg);
}

/* Los desplegables anidados (moneda/idioma/usuario) dentro del menú
   hamburguesa -en el drawer estándar y en el compacto de páginas como
   resultados/checkit-assistance- NO se abren como paneles flotantes aparte
   -eso generaba un segundo scroll independiente adentro del drawer-. Se
   muestran en línea, tipo acordeón, empujando el resto de la lista hacia
   abajo, para que exista un único scroll en todo el menú desplegable, tanto
   en pc/laptop (rueda del mouse) como en celular/tablet (gesto táctil). El
   JS (app.js/checkit-site-nav.js) evita portarlos a <body> cuando están
   dentro de estos contenedores. */
/* ".c-user-menu { display:flex; }" está pensado para la barra horizontal
   de escritorio, pero esa MISMA clase también decora el <li class="dropdown
   c-user-menu"> del desplegable (drawer). Sin este reseteo, el botón
   "Usuario/Admin" y su <ul> de opciones (Mis ideas, Operaciones, Cerrar
   sesión) quedaban lado a lado en una fila flex en vez de apilados: el menú
   se angostaba a ~125px, su texto se partía en muchas líneas y el bloque
   terminaba fuera de la pantalla, sin acompañar el scroll único del drawer. */
.c-header-collective__nav--bar li.dropdown.c-user-menu,
.c-header-collective--compact .c-header-collective__compact-drawer li.dropdown.c-user-menu {
  display: block;
}

.c-header-collective__nav--bar .dropdown-menu,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu {
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  box-shadow: none !important;
  border: none !important;
  max-height: 0;
  overflow: hidden;
  padding: 0;
  margin: 0 0 4px;
  background: #f1f5f9;
  color: #0f172a;
  border-radius: 10px;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  z-index: auto !important;
  transition: max-height 0.28s ease;
}

.c-header-collective__nav--bar .dropdown.is-open > .dropdown-menu,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown.is-open > .dropdown-menu {
  max-height: none;
  overflow: visible;
  padding: 6px 0;
  border: 1px solid #e2e8f0 !important;
}

.c-header-collective__nav--bar .dropdown-menu button,
.c-header-collective__nav--bar .dropdown-menu a,
.c-header-collective__nav--bar .dropdown-menu .c-user-menu__action,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu button,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu a,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu .c-user-menu__action {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 28px;
  color: #0f172a;
  background: transparent;
  border: 0;
  text-align: left;
  font-size: 0.92rem;
}

.c-header-collective__nav--bar .dropdown-menu .dropdown-title,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu .dropdown-title {
  padding: 8px 14px 4px 28px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}

.c-header-collective__nav--bar .dropdown-menu button:hover,
.c-header-collective__nav--bar .dropdown-menu a:hover,
.c-header-collective__nav--bar .dropdown-menu .c-user-menu__action:hover,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu button:hover,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu a:hover,
.c-header-collective--compact .c-header-collective__compact-drawer .dropdown-menu .c-user-menu__action:hover {
  background: #e2e8f0;
}

/* Desktop amplio: la navegación del sitio (Explorar, Servicios, Comunidad…)
   vive únicamente dentro del menú hamburguesa, igual que en celular/tablet,
   organizada por secciones con título destacado e íconos. Antes esos accesos
   se mostraban en una franja de subnav suelta debajo del header (duplicando
   lo mismo que ya está en el desplegable) y la lista seccionada se ocultaba
   en desktop; ahora la franja se oculta siempre y la lista seccionada se
   muestra siempre, para tener un único punto de navegación estandarizado en
   todos los tamaños de pantalla. El teléfono/WhatsApp/mail y el bloque
   "Cuenta y preferencias" (Ayuda, moneda, idioma, usuario) también viven
   siempre dentro del menú hamburguesa -ver reglas "always-on" del header más
   abajo- para no ocupar espacio del encabezado ni en pc/laptop ni en
   celular/tablet. */
@media (min-width: 1200px) {
  /* La franja de subnav debajo del header queda oculta: sus accesos ya están
     dentro del menú hamburguesa, organizados por secciones. */
  .c-header-collective__main--subnav-only,
  .c-header-collective--site-standard .c-header-collective__main--subnav-only,
  body.has-checkit-site-nav .c-header-collective__main--subnav-only,
  .c-header-subnav {
    display: none !important;
  }

  /* Páginas de header compacto (resultados, detalle, mis-ideas-viaje,
     checkit-assistance, programa-viaje, alojamiento-*, ano-nuevo-caribe-2027,
     tour-grupal-rd-octubre-2026…): antes el teléfono/WhatsApp y el bloque
     "Hola Usuario / Nueva búsqueda / Salir" solo se escondían dentro del
     drawer de la hamburguesa en celular/tablet; en pc/laptop quedaban
     sueltos e inline en la barra, distinto del resto del sitio (donde ya
     viven siempre dentro del menú desplegable). Se estandariza para que,
     sin importar el rol logueado (cliente, freelancer, socio vendedor),
     esas opciones vivan siempre dentro del menú hamburguesa también en
     pc/laptop. Se excluye admin.html (body.page-admin): ahí Operaciones
     mantiene Dashboard/Salir siempre visibles a propósito, sin drawer. */
  body:not(.page-admin) #btn-open-compact-tools {
    display: inline-flex !important;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer {
    display: none;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer.is-open {
    display: flex !important;
    position: fixed;
    top: 0;
    right: 0;
    width: min(360px, 88vw);
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 160;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin: 0;
    padding: max(16px, env(safe-area-inset-top, 0px))
      max(14px, env(safe-area-inset-right, 0px))
      max(28px, env(safe-area-inset-bottom, 0px))
      14px;
    background: #fff;
    color: #0f172a;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior-y: contain;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    color: #0f172a;
  }

  /* ".c-header-collective__bar a/span" e ".agency-data--top > div/i" fuerzan
     blanco (pensado para la barra oscura); dentro del panel blanco del
     drawer hay que anularlos, igual que ya se hace para "span"/"strong" del
     usuario. El ícono de WhatsApp se excluye para que conserve su verde de
     marca (ya tiene su propio color, no necesita el navy del resto). */
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top > div,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top span,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top a,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top i:not(.fa-whatsapp) {
    color: #0f172a !important;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    width: 100%;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar > span,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar strong,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar #user-name {
    color: #0f172a !important;
    font-size: 14px;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-button--bar-light,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-button--outline,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-detalle-header-admin {
    width: 100%;
    justify-content: center;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
    background: #f8fafc !important;
    font-size: 14px;
    padding: 12px 14px;
  }

  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-button--bar-light:hover,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-button--outline:hover,
  body:not(.page-admin) .c-header-collective--compact .c-header-collective__compact-drawer .c-detalle-header-admin:hover {
    color: #0f172a !important;
    border-color: var(--checkit-accent, #c9953a) !important;
    background: #fff7ed !important;
  }

  body:not(.page-admin) .c-header-collective__compact-drawer-close {
    display: inline-flex !important;
    align-self: flex-end;
    color: #0f172a !important;
    margin-bottom: 4px;
  }
}

@media (max-width: 1199px) {
  /* En celular/tablet las opciones viven solo en el menú hamburguesa */
  .c-header-collective__main--subnav-only,
  .c-header-collective--site-standard .c-header-collective__main--subnav-only,
  body.has-checkit-site-nav .c-header-collective__main--subnav-only,
  .c-header-subnav {
    display: none !important;
  }

  .c-header__agency-data--top { display: none; }

  .c-header-collective__bar {
    padding: 6px 0 7px;
    min-height: 0;
  }

  .c-collective-brand--bar {
    flex: 1 1 auto;
    align-items: center;
    max-width: calc(100% - 52px);
  }

  /* Sin el texto legal en el encabezado, el logo ocupa el espacio liberado */
  .c-collective-brand__img--bar { max-height: 46px; }

  .c-header-collective__bar-tools {
    flex: 0;
    margin-left: 0;
    border-left: none;
    padding-left: 0;
  }

  /* Compact pages (resultados/programa): drawer de acciones */
  .c-header-collective--compact .c-header-collective__compact-drawer {
    display: none;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer.is-open {
    display: flex !important;
    position: fixed;
    top: 0;
    right: 0;
    width: min(360px, 88vw);
    height: 100vh;
    height: 100dvh;
    z-index: 160;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin: 0;
    padding: max(16px, env(safe-area-inset-top, 0px))
      max(14px, env(safe-area-inset-right, 0px))
      max(28px, env(safe-area-inset-bottom, 0px))
      14px;
    background: #fff;
    color: #0f172a;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior-y: contain;
  }

  /* Operaciones: Dashboard / Salir siempre visibles (sin drawer) */
  body.page-admin .c-header-collective--compact .c-header-collective__bar-tools,
  body.page-admin .c-header-collective--compact .c-header-collective__compact-drawer,
  body.page-admin .c-header-collective--compact .c-header-collective__compact-drawer.is-open {
    display: flex !important;
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    flex-direction: row !important;
    align-items: center !important;
    color: inherit !important;
  }

  body.page-admin #btn-open-compact-tools,
  body.page-admin .c-header-collective__compact-drawer-close {
    display: none !important;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    color: #0f172a;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top > div,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top span,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top a,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-header__agency-data--top i:not(.fa-whatsapp) {
    color: #0f172a !important;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    width: 100%;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar > span,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar strong,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-user-menu--bar #user-name {
    color: #0f172a !important;
    font-size: 14px;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-button--bar-light {
    width: 100%;
    justify-content: center;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
    background: #f8fafc !important;
    font-size: 14px;
    padding: 12px 14px;
  }

  /* Páginas de detalle: los links del header (pensados para el bar oscuro)
     quedan dentro del drawer blanco, así que necesitan el mismo contraste
     oscuro que el resto de las acciones del menú. */
  .c-header-collective--compact .c-header-collective__compact-drawer .c-button--outline,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-detalle-header-admin {
    width: 100%;
    justify-content: center;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
    background: #f8fafc !important;
    font-size: 14px;
    padding: 12px 14px;
  }

  .c-header-collective--compact .c-header-collective__compact-drawer .c-button--outline:hover,
  .c-header-collective--compact .c-header-collective__compact-drawer .c-detalle-header-admin:hover {
    color: #0f172a !important;
    border-color: var(--checkit-accent, #c9953a) !important;
    background: #fff7ed !important;
  }

  .c-header-collective__compact-drawer-close {
    display: inline-flex !important;
    align-self: flex-end;
    color: #0f172a !important;
    margin-bottom: 4px;
  }

  .c-button--menu,
  .c-button--menu--bar,
  #btn-open-menu {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    width: 42px;
    height: 42px;
    min-width: 42px;
    color: #fff !important;
    background: #fff !important;
    border: 2px solid var(--checkit-accent, #c9953a) !important;
  }

  .c-button--menu i,
  .c-button--menu--bar i,
  #btn-open-menu i {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow:
      -1px -1px 0 #0f172a,
      1px -1px 0 #0f172a,
      -1px 1px 0 #0f172a,
      1px 1px 0 #0f172a,
      0 0 3px rgba(15, 23, 42, 0.55);
  }

  .c-header-collective__nav--bar,
  .c-header-collective__nav {
    display: flex !important;
    position: fixed;
    top: 0;
    right: 0;
    width: min(360px, 88vw);
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: #fff;
    color: #0f172a;
    flex-direction: column;
    align-items: stretch;
    padding: max(16px, env(safe-area-inset-top, 0px))
      max(14px, env(safe-area-inset-right, 0px))
      max(28px, env(safe-area-inset-bottom, 0px))
      14px;
    z-index: 160;
    transform: translateX(100%);
    transition: transform 0.3s;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-x: none;
    -webkit-overflow-scrolling: touch;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
  }

  .c-header-collective__nav.is-open {
    transform: translateX(0);
    overflow-y: scroll;
    scrollbar-gutter: stable;
    touch-action: pan-y;
    overscroll-behavior-y: contain;
  }

  body.is-mobile-nav-open {
    overflow: hidden;
    touch-action: none;
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
  }

  /* Una vez abierto: sin empujones laterales en ítems ni scroll horizontal */
  .c-header-collective__nav.is-open .nav-link,
  .c-header-collective__nav.is-open .dropdown-toggle,
  .c-header-collective__nav.is-open .c-header-collective__user-header--mobile-site > li {
    transform: none !important;
    translate: none !important;
  }

  /* Contraste: drawer blanco → texto oscuro (anula color blanco de la barra) */
  .c-header-collective__nav--bar .nav-link,
  .c-header-collective__nav--bar .dropdown-toggle,
  .c-header-collective__nav--bar .c-header-collective__user-header .nav-link,
  .c-header-collective__nav--bar .c-header-collective__user-header .dropdown-toggle,
  .c-header-collective__nav--bar .c-user-menu .dropdown-toggle,
  .c-header-collective__nav .nav-link,
  .c-header-collective__nav .dropdown-toggle,
  .c-header-collective__nav--bar #current-currency,
  .c-header-collective__nav--bar #current-language,
  .c-header-collective__nav--bar #user-name {
    color: #0f172a !important;
  }

  .c-header-collective__nav--bar .nav-link:hover,
  .c-header-collective__nav--bar .dropdown-toggle:hover,
  .c-header-collective__nav--bar .c-header-collective__user-header .nav-link:hover,
  .c-header-collective__nav--bar .c-header-collective__user-header .dropdown-toggle:hover,
  .c-header-collective__nav--bar .c-user-menu .dropdown-toggle:hover {
    color: #0f172a !important;
    background: #f1f5f9;
  }

  .c-header-collective__nav--bar .nav-link i,
  .c-header-collective__nav--bar .dropdown-toggle > i:not(.fa-angle-down),
  .c-header-collective__nav--bar .fa-angle-down {
    color: #e85d04 !important;
  }

  .c-header-collective__user-header--mobile-site {
    display: flex;
    flex-direction: column;
    margin: 0 0 12px;
    padding: 0 0 8px;
    border-bottom: 1px solid #e2e8f0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
    flex-shrink: 0;
  }

  .c-header-collective__user-header--mobile-site > li {
    width: 100%;
    max-width: 100%;
    list-style: none;
  }

  .c-header-collective__user-header--mobile-site .nav-link {
    display: flex !important;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-weight: 600;
    padding: 12px 12px !important;
    border-radius: 12px;
    border-bottom: none !important;
    white-space: normal;
    overflow-wrap: anywhere;
    transform: none !important;
    margin: 0;
  }

  .c-header-collective__user-header--mobile-site .nav-link i {
    flex: 0 0 22px;
    width: 22px;
    text-align: center;
    font-size: 1.05rem;
    color: #e85d04 !important;
  }

  .c-header-collective__user-header--mobile-site .nav-link span {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
  }

  .c-mobile-nav__section-title {
    display: block;
    width: 100%;
    margin: 14px 0 8px;
    padding: 10px 12px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #0c4a6e;
    background: linear-gradient(90deg, #fff7ed 0%, #f8fafc 100%);
    border-left: 3px solid #e85d04;
    border-radius: 0 10px 10px 0;
    list-style: none;
  }

  .c-mobile-nav__section-title:first-child {
    margin-top: 0;
  }

  .c-header-collective__user-header--mobile-site .nav-link.c-mobile-nav__logout {
    color: #b91c1c !important;
    background: #fff1f2;
    margin-top: 6px;
  }

  .c-header-collective__user-header--mobile-site .nav-link.c-mobile-nav__logout i {
    color: #b91c1c !important;
  }

  .c-header__agency-data--mobile { display: flex; }

  .c-button--close-nav {
    display: inline-flex;
    align-self: flex-end;
    color: #0f172a !important;
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    margin-bottom: 4px;
  }

  .c-button--close-nav i {
    color: #0f172a !important;
  }

  .c-header-collective__user-header {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .c-header-collective__user-header > li {
    width: 100%;
  }

  .c-header-collective__user-header .nav-link,
  .c-header-collective__user-header .dropdown-toggle {
    width: 100%;
    justify-content: flex-start;
    gap: 10px;
    padding: 12px 8px;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a;
    border-radius: 8px;
    text-align: left;
  }

  .c-header-collective__user-header .dropdown-toggle .fa-angle-down {
    margin-left: auto;
    transition: transform 0.2s ease;
  }

  .c-header-collective__user-header .dropdown.is-open > .dropdown-toggle .fa-angle-down {
    transform: rotate(180deg);
  }

  .c-header-collective__nav .dropdown-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    max-height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0 0 4px;
    background: #f1f5f9;
    color: #0f172a;
    border-radius: 10px;
    transition: max-height 0.28s ease;
  }

  .c-header-collective__nav .dropdown.is-open > .dropdown-menu {
    /* Sin límite de alto ni scroll propio: el acordeón empuja el resto del
       menú hacia abajo y el ÚNICO scroll de todo el drawer se encarga de
       mostrarlo completo (rueda del mouse en pc/laptop, gesto táctil en
       celular/tablet). */
    max-height: none;
    overflow: visible;
    padding: 6px 0;
    border: 1px solid #e2e8f0;
  }

  .c-header-collective__nav .dropdown-menu button,
  .c-header-collective__nav .dropdown-menu a,
  .c-header-collective__nav .dropdown-menu .c-user-menu__action {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
    padding: 10px 14px 10px 28px;
    color: #0f172a;
    background: transparent;
    border: 0;
    text-align: left;
    font-size: 0.92rem;
  }

  .c-header-collective__nav .dropdown-menu .dropdown-title {
    padding: 8px 14px 4px 28px;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
  }

  .c-header-collective__nav .dropdown-menu button:hover,
  .c-header-collective__nav .dropdown-menu a:hover,
  .c-header-collective__nav .dropdown-menu .c-user-menu__action:hover {
    background: #e2e8f0;
  }
}

@media (max-width: 767px) {
  .c-login-content__text h2 { font-size: 22px; }

  .c-whatsapp-button__tag { display: none; }

  .login-form-modal { padding: 24px 12px 48px; }
}

/* CTA visitante — franja fina bajo el header (no tapa ni empuja el menú) */
.c-guest-cta {
  position: relative;
  z-index: 90;
  background: linear-gradient(90deg, #0f172a 0%, #1e293b 55%, #0f172a 100%);
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
  color: #e2e8f0;
}

.c-guest-cta__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 8px max(16px, env(safe-area-inset-right, 0px)) 8px max(16px, env(safe-area-inset-left, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
}

.c-guest-cta__text {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.35;
  color: #e2e8f0;
  letter-spacing: 0.01em;
}

.c-guest-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.c-guest-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 14px;
  border-radius: 999px;
  background: #e85d04;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease;
}

.c-guest-cta__btn:hover {
  background: #c2410c;
  color: #fff;
}

.c-guest-cta__dismiss {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.c-guest-cta__dismiss:hover {
  background: rgba(248, 250, 252, 0.08);
  color: #fff;
}

@media (max-width: 720px) {
  .c-guest-cta__inner {
    padding: 8px 12px;
    gap: 8px;
  }

  .c-guest-cta__text {
    font-size: 0.78rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .c-guest-cta__btn {
    min-height: 30px;
    padding: 0 12px;
    font-size: 0.74rem;
  }
}

/* Variante "dentro del panel hamburguesa": ya no es una franja oscura de
   ancho completo debajo del header -eso le quitaba lugar al encabezado en
   pc/laptop y en celular/tablet-. Es una tarjeta clara con acento dorado,
   arriba de todo dentro del menú desplegable, visible solo cuando el
   visitante abre el menú. */
.c-guest-cta--drawer {
  order: -10;
  background: #fff7ed;
  border: 1px solid rgba(201, 149, 58, 0.35);
  border-radius: 12px;
  margin: 0 0 14px;
  box-shadow: none;
}

.c-guest-cta--drawer .c-guest-cta__inner {
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  padding: 14px;
  min-height: 0;
}

.c-guest-cta--drawer .c-guest-cta__text {
  color: #7c4a11;
  font-size: 0.85rem;
}

.c-guest-cta--drawer .c-guest-cta__actions {
  width: 100%;
  justify-content: space-between;
}

.c-guest-cta--drawer .c-guest-cta__btn {
  flex: 1 1 auto;
  background: var(--checkit-accent-gradient, #c9953a);
  color: #1a1408;
  font-weight: 700;
}

.c-guest-cta--drawer .c-guest-cta__btn:hover {
  background: var(--checkit-accent-hover, #b0822e);
  color: #1a1408;
}

.c-guest-cta--drawer .c-guest-cta__dismiss {
  color: #b45309;
}

.c-guest-cta--drawer .c-guest-cta__dismiss:hover {
  background: rgba(180, 83, 9, 0.1);
  color: #7c4a11;
}

.c-preview-role-banner {
  position: sticky;
  top: 0;
  z-index: 1200;
  background: linear-gradient(90deg, #0f172a 0%, #1e3a5f 100%);
  color: #f8fafc;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.c-preview-role-banner__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 10px 20px;
  font-size: 13px;
}

.c-preview-role-banner__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}

.c-preview-role-banner__hint {
  color: rgba(248, 250, 252, 0.78);
}

.c-preview-role-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.c-preview-role-banner__link,
.c-preview-role-banner__exit {
  border: 0;
  border-radius: 999px;
  padding: 7px 14px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}

.c-preview-role-banner__link {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.c-preview-role-banner__exit {
  background: #f59e0b;
  color: #111827;
}

.c-preview-role-banner__link:hover {
  background: rgba(255, 255, 255, 0.2);
}

.c-preview-role-banner__exit:hover {
  background: #fbbf24;
}

@media (max-width: 720px) {
  .c-preview-role-banner__actions {
    width: 100%;
    margin-left: 0;
  }
}

body.is-checkit-preview-active #link-admin-panel,
body.is-checkit-preview-active #link-admin-panel-bar,
body.is-checkit-preview-active #mis-ideas-admin-link,
body.is-checkit-preview-active .c-detalle-header-admin,
body.is-checkit-preview-active .c-user-menu__item--admin,
body.is-checkit-preview-active .c-pkg-ops-strip,
body.is-checkit-preview-active .c-pkg-cms-bar,
body.is-checkit-preview-active a[href*="admin.html"]:not(.c-preview-role-banner__link) {
  display: none !important;
}

/* Vista exclusiva para interesados (link ops: ?share=&solo=1) */
body.is-checkit-share-view #detalle-header-actions,
body.is-checkit-share-view .c-pkg-ops-strip,
body.is-checkit-share-view .c-pkg-cms-bar,
body.is-checkit-share-view .c-pkg-share-strip,
body.is-checkit-share-view .c-footer-partners,
body.is-checkit-share-view .testimonials-section,
body.is-checkit-share-view .c-pkg-proveedores,
body.is-checkit-share-view .c-pkg-section--institucional,
body.is-checkit-share-view .c-pkg-respaldo-autor__legal,
body.is-checkit-share-view .c-pkg-familia__footer,
body.is-checkit-share-view .c-collective-brand__legal,
body.is-checkit-share-view .c-footer-collective__nav,
body.is-checkit-share-view .c-vdv-preview-banner,
body.is-checkit-share-view .c-preview-role-banner {
  display: none !important;
}

body.is-checkit-share-view .c-collective-brand a {
  pointer-events: none;
  cursor: default;
}

/* Canal agentes: solo Checkit Travel, sin mayoristas ni aliados */
body.is-checkit-agent-share-view .c-footer-partners,
body.is-checkit-agent-share-view .c-footer-collective__minorista,
body.is-checkit-agent-share-view .c-footer-collective__minorista-bar,
body.is-checkit-agent-share-view .c-pkg-proveedores,
body.is-checkit-agent-share-view .c-pkg-section--institucional,
body.is-checkit-agent-share-view .c-pkg-respaldo-autor__legal,
body.is-checkit-agent-share-view .c-ally-monogram,
body.is-checkit-agent-share-view .c-pkg-familia__footer {
  display: none !important;
}

body.is-checkit-agent-share-view .c-collective-brand__legal-line,
body.is-checkit-agent-share-view .c-collective-brand__legal-sep,
body.is-checkit-agent-share-view .c-collective-brand__legal-meta,
body.is-checkit-agent-share-view .c-collective-brand__legal-role {
  display: none !important;
}

.c-pkg-ops-strip__actions,
.c-pkg-share-strip__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

/* Portada estándar ".c-about-hero" (fondo + degradé + eyebrow/título/
   subtítulo). Nace en quienes-somos.css y se fue duplicando por página
   (resultados.css, checkit-assistance.css…); se define acá también, en el
   global, para que cualquier página nueva (ofertas-cupos.html,
   datos-bancarios.html, oficinas-pago.html, comunidad-checkit.html…) tenga
   la misma portada sin repetir el bloque en cada hoja de estilos. */
.c-about-hero {
  position: relative;
  min-height: 240px;
  display: flex;
  align-items: flex-end;
  color: #fff;
  overflow: hidden;
}

.c-about-hero--portada {
  min-height: clamp(220px, 26vw, 300px);
  align-items: flex-end;
}

.c-about-hero__bg {
  position: absolute;
  inset: 0;
  background: #1e3a5f;
}

.c-about-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
}

.c-about-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(8, 20, 40, 0.15) 0%,
    rgba(8, 20, 40, 0.35) 45%,
    rgba(8, 20, 40, 0.86) 100%
  );
}

.c-about-hero__content {
  position: relative;
  z-index: 1;
  padding: 28px 0 32px;
  max-width: 760px;
}

.c-about-hero__eyebrow {
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.9;
  margin: 0 0 10px;
}

.c-about-hero__title {
  font-weight: 700;
  font-size: clamp(1.5rem, 3.6vw, 2.2rem);
  line-height: 1.1;
  margin: 0 0 10px;
}

.c-about-hero__subtitle {
  font-size: 1rem;
  opacity: 0.92;
  margin: 0;
}
