/* =========================
   NAV.CSS — ESTILOS DE PÁGINAS PRINCIPALES DEL MENÚ DE NAVEGACIÓN
   ========================= */

/* =========================
   HERO (BANNER) HOME — full bleed video
   ========================= */
.hero-video {
  position: relative;
  overflow: hidden;
  background: #000;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  height: 100svh;
  min-height: 40vh;
}

.hero-video .video-wrapper {
  position: absolute;
  inset: 0;
  z-index: 0;
  height: 100%; /* ocupa todo el alto del contenedor */
}

.hero-video iframe,
.hero-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
  object-fit: cover;
}


@media (max-aspect-ratio: 16/9) {
  .hero-video iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Optimización completa del banner video para móviles */
@media (max-width: 768px) {
  .hero-video {
    height: 100vh;
    min-height: 100vh;
    width: 100vw;
  }
  
  .hero-video iframe,
  .hero-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  /* Para pantallas muy anchas (móvil horizontal) */
  @media (min-aspect-ratio: 16/9) {
    .hero-video iframe,
    .hero-video video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  
  /* Para pantallas muy altas (móvil vertical) */
  @media (max-aspect-ratio: 9/16) {
    .hero-video {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: center;
      height: 100vh;       /* SIEMPRE ocupa viewport */
      min-height: 100vh;
    }

    .hero-video iframe,
    .hero-video video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .hero-video .hero-content {
      order: -1; /* subir texto arriba */
      margin-bottom: 1rem;
      text-align: center;
      position: relative;
      background: transparent;
      z-index: 2;
    }

    .hero-video .video-wrapper {
      height: 100vh; /* asegura espacio para el video */
    }
  }
}

.hero-video .hero-content {
  position: relative;
  z-index: 1;
  padding: 3rem 1rem;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,.6);
}

.hero-content h1 {
  font-size: clamp(28px,4vw,44px);
  font-weight: 800;
  text-shadow: 0 4px 18px rgba(0,0,0,.35);
}

.hero-content p {
  margin-top: 10px;
  font-size: clamp(16px,2vw,20px);
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}


/* =========================
   EXCURSIONES POPULARES (mejorado visualmente)
   ========================= */
.excursiones-populares {
  padding: 80px 0;
  background: linear-gradient(135deg, #F3E5F5 0%, #E1F5FE 100%);
  position: relative;
  overflow: hidden;
}

/* Sistema de grid personalizado para excursiones populares */
.excursiones-populares .row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

.excursiones-populares .col-lg-4,
.excursiones-populares .col-md-6,
.excursiones-populares .col-12 {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Responsive para tablets - 2 columnas */
@media (max-width: 991.98px) {
  .excursiones-populares .row {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem !important;
  }
}

/* Responsive para móviles - 1 columna */
@media (max-width: 767.98px) {
  .excursiones-populares .row {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

.excursiones-populares::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: 
    radial-gradient(circle at 20% 80%, rgba(0, 94, 117, 0.05) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(255, 87, 51, 0.05) 0%, transparent 50%);
  pointer-events: none;
}

.excursiones-populares h2 {
  text-align: center;
  color: var(--color-primario);
  margin-bottom: 6px;
  font-size: 2.5rem;
  font-weight: 800;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
  position: relative;
}

.divisor {
  width: 100px;
  height: 6px;
  background: linear-gradient(90deg, var(--color-secundario), #ff7f5c);
  border-radius: 10px;
  margin: 0 auto 40px;
  box-shadow: 0 2px 8px rgba(255, 87, 51, 0.3);
}

.grid-excursiones {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 35px;
  position: relative;
}

.card-excursion {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
  overflow: hidden;
  transition: all 0.4s ease;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255,255,255,0.8);
  backdrop-filter: blur(10px);
  position: relative;
}

.card-excursion::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-secundario), #ff7f5c);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.card-excursion:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}

.card-excursion:hover::before {
  opacity: 1;
}

.card-imagen-wrapper {
  position: relative;
  height: 200px;
}

/* Estilos específicos para las tarjetas de excursiones populares */
.excursiones-populares .card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: 15px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1) !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  background: white !important;
  border: none !important;
}

.excursiones-populares .card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15) !important;
}

.excursiones-populares .card .ratio {
  height: 200px !important;
  overflow: hidden !important;
  position: relative !important;
  width: 100% !important;
}

.excursiones-populares .card .ratio iframe,
.excursiones-populares .card .ratio video {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border: 0 !important;
}

.excursiones-populares .card .card-body {
  padding: 1.5rem !important;
  flex-grow: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.excursiones-populares .card .card-title {
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.75rem !important;
  color: #003366 !important;
}

.excursiones-populares .card .card-text {
  flex-grow: 1 !important;
  margin-bottom: 1rem !important;
  color: #666 !important;
  line-height: 1.5 !important;
}

/* Estilos específicos para el botón "Ver detalles" */
.excursiones-populares .card .btn-outline-primary {
  display: inline-block !important;
  padding: 8px 16px !important;
  background: transparent !important;
  color: #003366 !important;
  border: 2px solid #003366 !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  transition: all 0.3s ease !important;
  white-space: nowrap !important;
  min-width: auto !important;
  width: auto !important;
}

.excursiones-populares .card .btn-outline-primary:hover {
  background: #003366 !important;
  color: white !important;
  text-decoration: none !important;
  transform: translateY(-1px) !important;
}

.excursiones-populares .card .btn-outline-primary:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(0, 51, 102, 0.2) !important;
}

@media (max-width: 767px) {
  .card-imagen-wrapper {
    height: 180px;
  }
  
  .excursiones-populares .card .ratio {
    height: 180px !important;
  }
  
  .excursiones-populares .card .card-body {
    padding: 1rem !important;
  }
  
  .excursiones-populares .card .btn-outline-primary {
    padding: 6px 12px !important;
    font-size: 0.85rem !important;
  }
}

@media (min-width: 1024px) {
  .card-imagen-wrapper {
    height: 220px;
  }
  
  .excursiones-populares .card .ratio {
    height: 220px !important;
  }
}

.card-imagen-wrapper.media video,
.card-imagen-wrapper.media img,
.card-imagen-wrapper.media iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card-contenido {
  padding: 16px;
  display: grid;
  gap: 8px;
}

.card-titulo {
  font-size: 20px;
  color: var(--color-primario);
}

.card-descripcion {
  font-size: 14px;
  color: #555;
}

.card-boton {
  display: inline-block;
  margin-top: 6px;
  padding: 10px 14px;
  background: var(--color-primario);
  color: #fff;
  text-decoration: none;
  border-radius: 10px;
  font-weight: 700;
}

.card-boton:hover {
  background: #024c5e;
}

.card-precio {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(0,0,0,.65);
  color: #fff;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 14px;
}

/* =========================
   TESTIMONIOS (mejorado visualmente)
   ========================= */
#testimonios {
  background: linear-gradient(135deg, #fff 0%, #f1f8ff 100%);
  padding: 60px 20px;
  border-radius: 20px;
  margin: 40px auto;
  box-shadow: 0 10px 40px rgba(0,0,0,0.1);
  position: relative;
  overflow: hidden;
}

#testimonios::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: 
    radial-gradient(circle at 25% 25%, rgba(10, 124, 255, 0.05) 0%, transparent 50%),
    radial-gradient(circle at 75% 75%, rgba(0, 212, 255, 0.05) 0%, transparent 50%);
  animation: float 20s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-20px) rotate(180deg); }
}

#testimonios h2 {
  font-size: 2.2rem;
  font-weight: 800;
  color: #2196F3;
  text-align: center;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}

.testimonios .divisor {
  width: 100px;
  height: 6px;
  background: linear-gradient(90deg, #0a7cff, #00d4ff);
  border-radius: 999px;
  margin: 8px auto 30px;
  box-shadow: 0 2px 8px rgba(10, 124, 255, 0.3);
}

.testimonios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 25px;
  position: relative;
  z-index: 1;
}

.card-review {
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(255,255,255,0.8);
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 10px 40px rgba(10,124,255,0.1);
  transition: all 0.3s ease;
  position: relative;
  backdrop-filter: blur(10px);
}

.card-review::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 20px;
  padding: 2px;
  background: linear-gradient(135deg, rgba(10,124,255,0.2), rgba(0,212,255,0.2));
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.card-review:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 20px 60px rgba(10,124,255,0.2);
}

.card-review:hover::before {
  opacity: 1;
}

.review-header {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 8px;
}

.card-review .avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #f0f5ff;
}

.testimonial-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 2px solid #f0f5ff;
  margin-right: 12px;
  flex-shrink: 0;
}

.card-review .meta {
  line-height: 1.1;
}

.card-review .meta-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
}

.badge {
  font-size: .75rem;
  padding: .2rem .5rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #334155;
  border: 1px solid #e3e8ef;
}

.badge-google {
  background: #eaf3ff;
  border-color: #cfe7ff;
  color: #0a7cff;
}

.badge-facebook {
  background: #eaf0ff;
  border-color: #d5e0ff;
  color: #1877f2;
}

.badge-instagram {
  background: #fff0f4;
  border-color: #ffd6e4;
  color: #d62a7e;
}

.rating .stars {
  color: #ffb703;
  font-size: 1.05rem;
  letter-spacing: .06em;
}

.review-text {
  margin: .4rem 0 .6rem;
  color: #334155;
}

.source-link {
  font-size: .85rem;
  color: #0a7cff;
  text-decoration: none;
}

.source-link:hover {
  text-decoration: underline;
}

/* =========================
   PÁGINA NOSOTROS (específico)
   ========================= */
.page-nosotros {
  min-height: 100vh;
}

.page-nosotros .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Hero section */
.hero-nosotros {
  position: relative;
  height: 50vh;
  min-height: 400px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.hero-media img,
.hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: white;
  max-width: 800px;
  margin: 0 auto;
  padding: 2rem;
}

.hero-content h1 {
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 1rem;
  text-shadow: 0 2px 4px rgba(0,0,0,0.7);
}

/* Cards */
.page-nosotros .card {
  background: white;
  border-radius: 8px;
  padding: 2rem;
  margin: 2rem 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* Intro section */
.intro-nosotros {
  text-align: center;
  max-width: 800px;
  margin-top: 18px;
}

.intro-nosotros p {
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0 auto 12px;
  color: #333;
  max-width: 800px;
}

/* Botones */
.hero-ctas {
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin: 8px 0 10px;
  flex-wrap: wrap;
}

.btn-outline-alt {
  background: transparent;
  color: #2196F3;
  border: 2px solid #2196F3;
  display: inline-block;
  padding: 12px 24px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: bold;
  transition: all 0.3s;
}

.btn-outline-alt:hover {
  background: #2196F3;
  color: white;
}

/* Badges */
.hero-badges {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.hero-badges span {
  background: #e8f4fd;
  color: #2196F3;
  padding: 0.5rem 1rem;
  border-radius: 20px;
  font-size: 0.9rem;
}

.hero-badges--light {
  margin: 10px 0 6px;
}

.hero-badges--light span {
  background: #eaf6ff;
  border: 1px solid #d8ecfa;
  color: #003366;
}

/* Historia */
.historia {
  display: block;
  margin-top: 34px;
}

.historia-texto h2 {
  color: #333;
  margin-bottom: 1rem;
  font-size: 2rem;
  text-align: center;
}

.historia-texto p {
  line-height: 1.6;
  margin-bottom: 1.5rem;
  color: #555;
}

/* Timeline */
.timeline {
  list-style: none;
  padding: 0;
  margin: 2rem 0;
}

.timeline li {
  padding: 0.8rem 0;
  border-left: 3px solid #2196F3;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.timeline-text {
  flex: 1;
  color: #555;
}

.timeline li span {
  font-weight: bold;
  color: #2196F3;
  font-size: 1.1rem;
  margin-left: 1rem;
  flex-shrink: 0;
}

.timeline li::before {
  content: '';
  position: absolute;
  left: -6px;
  top: 1rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #2196F3;
}

/* Misión y Visión */
.mision-vision {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 18px;
}

.mv {
  flex: 1;
  min-width: 300px;
}

.mv h3 {
  color: #333;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  text-align: center;
}

/* Grid de cards */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin: 2rem 0;
}

.card-mini {
  text-align: center;
  padding: 1.5rem;
  width: 100%;
  max-width: 260px;
  min-height: 220px;
  margin: 0 auto;
}

.card-mini .icono {
  width: 60px;
  height: 60px;
  margin: 0 auto 1rem;
  background: #2196F3;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
}

.card-mini .icono svg {
  width: 30px;
  height: 30px;
  fill: currentColor;
}

.icono-dollar {
  font-size: 2rem;
  font-weight: bold;
}

.card-mini h3 {
  margin-bottom: 1rem;
  color: #333;
  font-size: 16px;
  margin: 8px 0 6px;
}

.card-mini p {
  font-size: 14.5px;
  line-height: 1.5;
}

/* KPIs */
.kpis {
  display: flex;
  justify-content: space-around;
  align-items: center;
  text-align: center;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 28px;
}

.kpi {
  flex: 1;
  min-width: 120px;
}

.kpi strong {
  display: block;
  font-size: clamp(26px,4vw,40px);
  color: #2196F3;
  font-weight: bold;
  line-height: 1;
}

.kpi span {
  font-size: 14px;
  color: #666;
  opacity: .9;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.kpi-soporte {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.kpi-soporte .kpi-label {
  font-weight: 700;
  color: #003366;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.kpi-soporte .kpi-number {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
}

.kpi-soporte .kpi-number strong,
.kpi-soporte .kpi-number .kpi-seven {
  font-size: clamp(26px,4vw,40px);
  line-height: 1;
  font-weight: 700;
  color: #003366;
}

.kpi-soporte .kpi-number .kpi-sep {
  font-size: clamp(22px,3.5vw,36px);
  line-height: 1;
  color: #003366;
}

/* Testimonios */
.testimonios {
  margin-top: 34px;
}

.testimonios h2 {
  text-align: center;
  margin-bottom: 2rem;
  color: #333;
}

.testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.testi-grid .card {
  padding: 16px;
}

.testi-grid p {
  font-size: 15px;
  line-height: 1.55;
}

.testi-grid blockquote {
  border-left: 4px solid #2196F3;
  font-style: italic;
}

.testi-grid footer {
  margin-top: 1rem;
  font-weight: bold;
  color: #2196F3;
  font-style: normal;
}

/* Específico para nosotros.php - solo 2 testimonios */
.page-nosotros .testi-grid {
  grid-template-columns: repeat(2, 1fr);
}

/* Responsive para nosotros.php testimonios */
@media (max-width: 768px) {
  .page-nosotros .testi-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .page-nosotros .testi-grid .card {
    margin-bottom: 1rem;
  }
}


/* Confianza / Logos */
.confianza-logos {
  text-align: center;
}

.confianza-logos .logos {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.confianza-logos img {
  max-height: 50px;
  max-width: 100px;
  object-fit: contain;
  filter: saturate(.9) contrast(.95);
}

.confianza-logos .permiso {
  color: #666;
  font-size: 0.9rem;
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
  margin-top: 10px;
  opacity: .9;
}

/* CTA final */
.cta {
  margin: 36px auto;
}

.cta-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}

.cta-card h2 {
  color: #003366;
  margin: 0 0 6px;
}

.cta-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* FAQ Page Styles */
.faq-body {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  background: linear-gradient(180deg, #a8def3 0%, #FAFAFA 100%);
  color: #003366;
}

.hero-pagina {
  padding: 60px 20px;
  background: #003366;
  color: white;
  text-align: center;
}

.titulo-pagina {
  font-size: 2.2em;
  margin-bottom: 10px;
}

.subtitulo-pagina {
  font-size: 1.1em;
}

.buscador-faq {
  padding: 20px;
  text-align: center;
}

.faq-search-input {
  width: 80%;
  max-width: 500px;
  padding: 10px;
  border: 2px solid #003366;
  border-radius: 8px;
}

.bloque-faq {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
}

.faq-item {
  margin-bottom: 10px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #a8def3;
}

.faq-boton {
  width: 100%;
  text-align: left;
  background: #a8def3;
  color: #003366;
  padding: 15px;
  font-size: 1em;
  border: none;
  cursor: pointer;
}

.faq-cuerpo {
  display: none;
  background: white;
  color: #003366;
  padding: 15px;
}

.cta-pagina {
  text-align: center;
  padding: 30px;
}

.btn-cta-primary {
  display: inline-block;
  margin: 10px;
  padding: 12px 24px;
  background: #003366;
  color: white;
  border-radius: 6px;
  text-decoration: none;
}

.btn-cta-secondary {
  display: inline-block;
  margin: 10px;
  padding: 12px 24px;
  background: #a8def3;
  color: #003366;
  border-radius: 6px;
  text-decoration: none;
}

/* Blog Page Styles */
.blog-hero-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}

.blog-search {
  display: flex;
  gap: 10px;
  align-items: center;
}

.blog-search-input {
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  min-width: 200px;
}

.blog-filtros {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}

.post-card {
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}

.post-card:hover {
  transform: translateY(-4px);
}

.post-image-link {
  display: block;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.post-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post-category-badge {
  background: #2196F3;
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.8rem;
  margin-bottom: 8px;
}

.post-body {
  padding: 16px;
}

.post-title {
  font-size: 1.25rem;
  margin-bottom: 8px;
  color: #333;
}

.post-date {
  color: #666;
  font-size: 0.9rem;
  margin-bottom: 12px;
}

.post-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.post-read-more {
  color: #2196F3;
  text-decoration: none;
  font-weight: 600;
}

.paginacion {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 2rem;
}

/* Responsive para páginas principales */
@media (max-width: 900px) {
  .cards-grid {
    grid-template-columns: repeat(2, minmax(220px,1fr));
  }
  
  .kpis {
    grid-template-columns: repeat(2,1fr);
  }
}

@media (max-width: 768px) {
  .hero-content h1 {
    font-size: 2rem;
  }
  
  .hero-ctas {
    flex-direction: column;
    align-items: center;
  }
  
  .historia {
    margin-top: 24px;
  }
  
  .mision-vision {
    flex-direction: column;
    gap: 16px;
  }
  
  .mision-vision .mv {
    flex: 0 0 100%;
  }
  
  .cards-grid {
    grid-template-columns: 1fr;
  }
  
  .kpis {
    flex-direction: column;
    gap: 1rem;
  }
  
  .testi-grid {
    grid-template-columns: 1fr;
  }
  
  .cta-card {
    flex-direction: column;
    text-align: center;
  }
  
  .cta-actions {
    justify-content: center;
  }
  
  .faq-search-input {
    width: 95%;
  }
  
  .titulo-pagina {
    font-size: 1.8em;
  }
  
  .blog-hero-flex {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .hero-content {
    padding: 1rem;
  }
  
  .hero-content h1 {
    font-size: 1.5rem;
  }
  
  .page-nosotros .card {
    padding: 1rem;
    margin: 1rem 0;
  }
  
  .btn {
    padding: 10px 20px;
    font-size: 0.9rem;
  }
}

/* ========== ESTILOS PARA INDEX.PHP ========== */

/* Estilos mejorados para la página de inicio */
.titulo-principal {
  color: #003366;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 700;
  margin: 2rem 0 1.5rem 0;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.marca {
  color: #ff5733;
  font-weight: 900;
}

.presentacion {
  padding: 3rem 0;
  background: linear-gradient(135deg, #F3E5F5 0%, #E1F5FE 100%);
  border-radius: 15px;
  margin: 2rem 0;
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.contenedor {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

.texto-intro {
  font-size: 1.1rem;
  line-height: 1.8;
  margin-bottom: 1.5rem;
  color: #444;
  text-align: center;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.cta {
  text-align: center;
  margin-top: 2.5rem;
}

.btn-primario, .btn-secundario {
  display: inline-block;
  padding: 12px 30px;
  margin: 0.5rem;
  border-radius: 25px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.btn-primario {
  background: linear-gradient(45deg, #003366, #004080);
  color: white;
}

.btn-primario:hover {
  background: linear-gradient(45deg, #004080, #0066cc);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  color: white;
  text-decoration: none;
}

.btn-secundario {
  background: linear-gradient(45deg, #ff5733, #ff7043);
  color: white;
}

.btn-secundario:hover {
  background: linear-gradient(45deg, #ff7043, #ff8a65);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  color: white;
  text-decoration: none;
}

.seccion-azul {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  color: #003366;
  padding: 3rem 0;
  border-radius: 15px;
  margin: 2rem 0;
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.seccion-azul .texto-intro {
  color: #003366;
}

.titulo-bloque {
  color: #003366;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 2rem;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.lista-beneficios {
  list-style: none;
  padding: 0;
  margin: 2rem 0;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.lista-beneficios li {
  padding: 0.8rem 0;
  padding-left: 2rem;
  position: relative;
  font-size: 1.1rem;
  color: #003366;
}

.lista-beneficios li::before {
  position: absolute;
  left: 0;
  top: 0.8rem;
  font-size: 1.2rem;
}

.lista-beneficios li:nth-child(1)::before {
  content: "⏰";
}

.lista-beneficios li:nth-child(2)::before {
  content: "🗺️";
}

.lista-beneficios li:nth-child(3)::before {
  content: "🚗";
}

.lista-beneficios li:nth-child(4)::before {
  content: "💬";
}

/* Estilos para excursiones populares */
.excursiones-populares {
  padding: 3rem 0;
  background: #F3E5F5;
}

.excursiones-populares h2 {
  color: #003366;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.card {
  border: none;
  border-radius: 15px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.card-body {
  padding: 1.5rem;
}

.card-title {
  color: #003366;
  font-weight: 600;
}

.btn-outline-primary {
  border-color: #003366;
  color: #003366;
  border-radius: 20px;
  font-weight: 500;
}

.btn-outline-primary:hover {
  background: #003366;
  border-color: #003366;
}

/* Estilos para testimonios */
#testimonios {
  padding: 4rem 0;
  background: #F3E5F5;
}

.contenedor-testimonios {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

.titulo-bloque-testimonios {
  color: #003366;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.subtitulo-bloque {
  text-align: center;
  color: #666;
  font-size: 1.1rem;
  margin-bottom: 3rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.testimonios-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.testimonio-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  padding: 1.5rem;
  transition: all 0.5s ease;
  min-height: 280px;
  position: relative;
  overflow: hidden;
  width: 100%;
}

.testimonio-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0,0,0,0.15);
}

.testimonio-content {
  opacity: 1;
  transition: all 0.5s ease;
}

.testimonio-content.fade-out {
  opacity: 0;
  transform: translateX(-20px);
}

.testimonio-content.fade-out .testimonio-avatar {
  opacity: 1 !important;
}

.testimonio-header {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
  gap: 1rem;
}

.testimonio-avatar {
  width: 70px !important;
  height: 70px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  object-position: center center !important;
  border: 3px solid #ff5733;
  opacity: 1 !important;
  background: white;
  flex-shrink: 0 !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
  aspect-ratio: 1/1 !important;
}

.testimonio-avatar[src="/avatar/dee.webp"] {
  object-position: center center !important;
}

.testimonio-avatar[src="/avatar/Rosi.webp"] {
  object-position: center center !important;
}

.testimonio-info {
  flex: 1;
}

.testimonio-name {
  font-size: 1.2rem;
  font-weight: 600;
  color: #003366;
  margin-bottom: 0.2rem;
}

.testimonio-country {
  font-size: 0.9rem;
  color: #666;
  font-weight: 500;
}

.testimonio-stars {
  color: #ffd700;
  font-size: 1.1rem;
  margin-bottom: 1rem;
  text-align: center;
}

.testimonio-text {
  font-size: 1rem;
  line-height: 1.6;
  color: #444;
  text-align: center;
  font-style: italic;
  margin: 0;
}

/* =========================
   FORMULARIOS - RESERVAS
   ========================= */

.form-row {
  margin-bottom: 15px;
}

.form-row.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.form-row.three {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
}

.field {
  display: flex;
  flex-direction: column;
}

.field label {
  margin-bottom: 5px;
  font-weight: bold;
}

.field input,
.field textarea {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.form-title {
  text-align: center;
  margin-bottom: 20px;
}

.form-section-title {
  text-align: center;
  margin: 20px 0;
}

@media (max-width: 768px) {
  .form-row.two,
  .form-row.three {
    grid-template-columns: 1fr;
  }
  
  .testimonios-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .testimonio-card {
    padding: 1.5rem;
    min-height: 250px;
  }
}
/* ===== ESTILOS PARA RESERVAR.PHP (movidos desde styles.css) ===== */
/* ===== Página Reservar ===== */
.page-reservar .container{ max-width:1180px; margin:0 auto; padding:20px; }
.page-reservar .card{ background:#fff; border-radius:18px; padding:24px; box-shadow:0 8px 24px rgba(0,0,0,.08); }

.reserva-hero{ text-align:center; margin-top:10px; }
.reserva-hero h1{ color:#003366; margin:0 0 6px; }
.reserva-hero p{ margin:0; opacity:.9; }

.reserva-tipo .tabs{ display:flex; gap:8px; justify-content:center; }
.reserva-tipo .tab{
  background:#f1f5f9; border:1px solid #e2e8f0; color:#003366;
  padding:10px 14px; border-radius:999px; cursor:pointer; font-weight:700;
}
.reserva-tipo .tab.is-active{ background:#e0f2ff; border-color:#b9e1ff; }

.reserva-grid{
  display:grid; grid-template-columns: 1.25fr .75fr; gap:18px; align-items:start; margin-top:16px;
}
@media (max-width: 900px){
  .reserva-grid{ grid-template-columns: 1fr; }
}

.form-reserva{ display:block; }
.form-title{ color:#003366; margin:0 0 10px; }

@media (max-width: 760px){
  .form-row.two, .form-row.three{ grid-template-columns: 1fr; }
}

.field label{ display:block; font-weight:700; margin-bottom:6px; color:#003366; }
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field input[type="date"],
.field input[type="time"],
.field input[type="number"],
.field select,
.field textarea{
  width:100%; height:44px; padding:10px 12px;
  border:1px solid #d9e2ec; border-radius:12px; outline:none; background:#fff;
}
.field textarea{ height:auto; min-height:96px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:#0ea5e9; box-shadow:0 0 0 3px rgba(14,165,233,.15);
}
.is-invalid{ border-color:#ef4444 !important; box-shadow:0 0 0 2px rgba(239,68,68,.15) !important; }

.subcard{ border:1px solid #e6ecf4; border-radius:14px; padding:14px; margin:8px 0 12px; }
.subcard h3{ margin:0 0 8px; color:#003366; text-align:left; }

.qty{ display:flex; align-items:center; gap:8px; }
.qty input{ width:72px; text-align:center; }
.qty-btn{
  width:36px; height:36px; border-radius:10px; border:1px solid #d9e2ec; background:#f8fafc; cursor:pointer; font-weight:900;
}
.qty-btn:hover{ background:#eef6ff; border-color:#b9e1ff; }

.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chips label{
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px;
  border:1px solid #e6ecf4; border-radius:999px; background:#f8fafc; cursor:pointer;
}
.chips input{ accent-color:#0ea5e9; }

.form-row.agree .check{ display:flex; gap:8px; align-items:flex-start; }
.form-row.agree a{ color:#2196F3; }

.form-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.form-actions .btn{ min-width:180px; }

.resumen h2{ color:#003366; margin:0 0 8px; }
.resumen-list{ list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.resumen-nota{ margin-top:10px; font-size:.95rem; color:#334155; }
.resumen-badges{ list-style:none; padding:0; margin:12px 0 0; display:flex; gap:10px; flex-wrap:wrap; }
.resumen-badges li{
  background:#eaf6ff; border:1px solid #d8ecfa; color:#003366;
  padding:6px 10px; border-radius:999px; font-size:.9rem;
}

.is-hidden{ display:none !important; }
.hp{ position:absolute; left:-5000px; width:1px; height:1px; overflow:hidden; }

.form-row.four{ grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 760px){
  .form-row.four{ grid-template-columns: 1fr; }
}

.pill-readonly{
  height:44px; display:flex; align-items:center;
  padding:0 12px; border:1px solid #d9e2ec; border-radius:12px; background:#f8fafc;
  font-weight:700; color:#003366;
}

.page-reservar .form-row.stacked{ display:grid; grid-template-columns:1fr; gap:12px; }
.page-reservar .field-hotel input{ width:100%; }

.page-reservar .qty{ display:flex; align-items:center; gap:10px; white-space:nowrap; }
.page-reservar .qty-btn{ width:38px; height:38px; border-radius:10px; border:1px solid #d9e2ec; background:#f8fafc; font-weight:900; cursor:pointer; }
.page-reservar .qty input{ width:90px; text-align:center; }

.page-reservar .ac-wrap{ position:relative; }
.page-reservar .ac-list{
  position:absolute; z-index:30; top:100%; left:0; right:0; max-height:260px; overflow:auto;
  border:1px solid #d9e2ec; background:#fff; border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.08);
  margin-top:4px; display:none; list-style:none; padding:6px 0;
}

.page-reservar .ac-list.show {
  display:block;
}
.page-reservar .ac-list li{ 
  padding:8px 12px; 
  cursor:pointer; 
  transition: background-color 0.2s ease;
  border-radius: 6px;
  margin: 2px 4px;
}
.page-reservar .ac-list li:hover, 
.page-reservar .ac-list li:focus,
.page-reservar .ac-list li.ac-selected { 
  background:#f0f7ff; 
  outline:none; 
}
.page-reservar .ac-list li strong {
  color: #0ea5e9;
  font-weight: 700;
}


.info-excursion{margin-top:.85rem;background:#fff;border-radius:var(--radio);box-shadow:0 4px 16px rgba(0,0,0,.07);padding:1rem}
.titulo-excursion{margin:0 0 .25rem;color:var(--azul)}
.lead{margin:0 0 .6rem;opacity:.9}
.acciones{display:flex;gap:.75rem;flex-wrap:wrap}
.acciones .btn{display:inline-block;padding:.6rem 1rem;border-radius:10px;text-decoration:none;font-weight:600}
.acciones .btn.primario{background:var(--azul);color:#fff}
.acciones .btn.secundario{background:var(--celeste);color:var(--azul)}

.cb-packages.fullwidth{margin-top:1.25rem}
.cb-packages .grupo-titulo{margin:0 0 .5rem;color:var(--azul);font-size:clamp(1.15rem,1.9vw,1.35rem)}
.cb-packages .grupo-titulo.center{text-align:center}
.cb-packages .cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.cb-packages .card{background:#fff;border-radius:var(--radio);box-shadow:0 4px 14px rgba(0,0,0,.07);padding:1rem;text-align:center}
.cb-packages .price{font-weight:800;margin:.15rem 0 .7rem}
.cb-packages .nota.center{text-align:center}

.tarjeta{background:#fff;border-radius:var(--radio)}
.p-2{padding:1rem}
.mt-1{margin-top:.85rem}
.center{text-align:center}

.excursion-detalle .cb-packages .cards{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 1024px){
  .excursion-detalle .cb-packages .cards{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 680px){
  .excursion-detalle .cb-packages .cards{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.excursion-detalle .cb-packages .card{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  padding: 1rem;
  border-radius: var(--radio);
  text-decoration: none;
  font-weight: 700;
  background: var(--celeste);
  color: var(--azul);
  box-shadow: var(--sombra);
  transition: transform .12s ease, filter .12s ease;
}
.excursion-detalle .cb-packages .card strong{
  display:block;
  font-weight: 800;
}
.excursion-detalle .cb-packages .card:hover{
  transform: translateY(-1px);
  filter: brightness(0.98);
}



/* ===== FIX: asegurar scroll y evitar recortes en página reservar ===== */
html, body {
  height: auto !important;
  min-height: 100%;
  overflow-y: auto !important;
  overflow-x: hidden;
}

.page-reservar,
.page-reservar .container,
.page-reservar .card,
.page-reservar .reserva-grid,
.page-reservar .form-reserva,
.page-reservar .form-row,
.page-reservar .field {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Si por error queda un overlay abierto que bloquea el scroll */
body.overlay-open.page-reservar {
  overflow-y: auto !important;
}

/* =========================
   ESTILOS PARA PÁGINAS DE PAGO/PASARELA
   ========================= */

/* Estilos generales para páginas de pago */
.page-pago {
  font-family: Arial, sans-serif;
  margin: 20px;
  background: #f0f8ff;
}

.page-pago .container {
  max-width: 700px;
  margin: 0 auto;
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.page-pago .success {
  background: #d4edda;
  color: #155724;
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
  border: 1px solid #c3e6cb;
}

.page-pago .btn {
  padding: 15px 25px;
  background: #4CAF50;
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  margin: 10px 5px 0 0;
}

.page-pago .btn:hover {
  background: #218838;
}

.page-pago .btn-secondary {
  background: #6c757d;
}

.page-pago .btn-secondary:hover {
  background: #5a6268;
}

.page-pago ul {
  list-style: none;
  padding: 0;
}

.page-pago li {
  padding: 8px 0;
  border-bottom: 1px solid #eee;
}

.page-pago .total {
  font-size: 1.3em;
  font-weight: bold;
  color: #4CAF50;
  background: #F3E5F5;
  padding: 10px;
  border-radius: 5px;
}

/* Estilos para página de procesamiento de pago */
.processing-container {
  font-family: Arial, sans-serif;
  max-width: 600px;
  margin: 2rem auto;
  padding: 2rem;
  text-align: center;
  background: #F3E5F5;
}

.processing-card {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.spinner {
  border: 4px solid #f3f3f3;
  border-top: 4px solid #2196F3;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 2s linear infinite;
  margin: 20px auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.btn-paypal {
  background: #0070ba;
  color: white;
  border: none;
  padding: 15px 30px;
  border-radius: 5px;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  margin-top: 20px;
}

.security-info {
  background: #e7f3ff;
  border: 1px solid #b3d9ff;
  padding: 15px;
  border-radius: 5px;
  margin-top: 20px;
  font-size: 0.9em;
}

/* Estilos para página de error de pago */
.error-container {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  border: 2px solid #F44336;
}

.error-icon {
  font-size: 3em;
  color: #F44336;
  margin-bottom: 1rem;
}

.btn-primary {
  background: #2196F3;
  color: white;
}

.debug-info {
  background: #F3E5F5;
  padding: 1rem;
  border-radius: 4px;
  margin-top: 1rem;
  font-size: 0.9em;
}

/* Estilos para voucher */
.voucher-preview {
  background: #F3E5F5;
  border-radius: 12px;
  padding: 20px;
  position: sticky;
  top: 20px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}

.voucher-preview h2 {
  color: #003366;
  margin-bottom: 16px;
  text-align: center;
  font-size: 1.4rem;
}

.voucher-card {
  background: white;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  border: 1px solid #e6ecf4;
}

.voucher-header {
  text-align: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid #e6ecf4;
}

.voucher-header h3 {
  color: #003366;
  margin: 0 0 8px;
  font-size: 1.3rem;
}

.voucher-date {
  color: #666;
  font-weight: 600;
  font-size: 1rem;
}

.voucher-section {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f5ff;
}

.voucher-section:last-of-type {
  border-bottom: none;
}

.voucher-section h4 {
  color: #003366;
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 700;
}

.voucher-section p {
  margin: 4px 0;
  color: #333;
  font-size: 0.95rem;
}

.voucher-total {
  background: #f0f8ff;
  border-radius: 8px;
  padding: 16px;
  margin-top: 16px;
  text-align: center;
  border: 2px solid #d8ecfa;
}

.voucher-total h4 {
  color: #003366;
  margin: 0 0 8px;
  font-size: 1.1rem;
}

.precio-final {
  font-size: 1.8rem;
  font-weight: 800;
  color: #4CAF50;
}

.voucher-comments {
  background: #fff8e1;
  border-radius: 8px;
  padding: 12px;
  margin-top: 12px;
  border: 1px solid #ffe082;
}

.voucher-comments h4 {
  color: #f57c00;
  margin: 0 0 6px;
  font-size: 0.95rem;
}

.voucher-comments p {
  margin: 0;
  color: #e65100;
  font-size: 0.9rem;
}

/* ===========================
   PÁGINA NOSOTROS - RESPONSIVE
   =========================== */

/* Responsive Media Queries para tarjetas */
@media (max-width: 900px) {
  /* KPIs - colapsar a 2x3 en tablets */
  .kpis { 
    grid-template-columns: repeat(2, 1fr); 
    grid-template-rows: repeat(3, 1fr); 
    gap: 1.5rem; 
  }
  
  /* Tarjetas de valores - vertical en tablets */
  .valores.cards-grid { 
    flex-direction: column; 
    gap: 1.5rem; 
  }
  .valores .card-mini { 
    flex: 1 1 auto; 
    max-width: 100%; 
  }
  
  /* Tarjetas de beneficios - 2x2 en tablets */
  .benefits-grid-compact { 
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 1.5rem;
    justify-content: center;
  }
  .benefit-card { 
    flex: 1 1 auto; 
  }
}

@media (max-width: 600px) {
  /* KPIs - una sola columna en móvil */
  .kpis { 
    grid-template-columns: 1fr; 
    grid-template-rows: repeat(6, 1fr); 
    gap: 1rem; 
  }
  
  /* Tarjetas de beneficios - vertical en móvil */
  .benefits-grid-compact { 
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .benefit-card {
    flex: 1 1 auto;
    min-width: 100%;
  }
}


