body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #050910;
  color: #f8fafc;
}

.o-header {
  backdrop-filter: blur(12px);
}

.hero {
  min-height: 85vh;
  overflow: hidden;
}

.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.2) contrast(1.1) brightness(0.55);
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top, rgba(34,197,94,0.35), transparent),
              linear-gradient(to bottom, rgba(3,7,18,0.2), rgba(3,7,18,0.95));
}

.hero-content {
  position: relative;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.hero-booking-card {
  border-radius: 1.2rem;
  border: 1px solid rgba(148, 163, 184, 0.4);
}

.o-card-glass,
.o-card-plan {
  border-radius: 1.2rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: radial-gradient(circle at top left, rgba(22,163,74,0.12), rgba(15,23,42,0.96));
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.o-card-plan:hover,
.o-card-glass:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(15,23,42,0.7);
  border-color: rgba(190, 242, 100, 0.9);
}

.o-card-plan-featured {
  background: radial-gradient(circle at top, rgba(190,242,100,0.14), rgba(15,23,42,0.97));
}

.o-story {
  position: relative;
  min-height: 320px;
}

.o-story-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: saturate(1.2) brightness(0.6);
  transform: scale(1.02);
}

.o-story-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(15,23,42,0.9), rgba(15,23,42,0.4));
}

.o-testimonials-wrapper {
  overflow: hidden;
  position: relative;
}

.o-testimonials-track {
  display: flex;
  gap: 1.5rem;
  animation: testimonials-scroll 40s linear infinite;
}

.o-testimonial {
  min-width: 260px;
  max-width: 320px;
  padding: 1rem 1.2rem;
  border-radius: 1rem;
  background: rgba(15,23,42,0.9);
  border: 1px solid rgba(148,163,184,0.4);
}

@keyframes testimonials-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media (max-width: 767.98px) {
  .hero-content {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

/* Pills de iconos camping */
.o-icon-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  font-size: 1.2rem;
}

.o-icon-green {
  background: rgba(46, 125, 50, 0.08);
  color: #2e7d32;
}

.o-icon-indigo {
  background: rgba(63, 81, 181, 0.08);
  color: #3f51b5;
}

.o-icon-sunset {
  background: rgba(255, 152, 0, 0.1);
  color: #f57c00;
}

/* Cards feature / planes */
.o-card-feature {
  border-radius: 18px;
}

.o-card-plan {
  border-radius: 18px;
  overflow: hidden;
  position: relative;
}

.o-card-plan-featured {
  box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.4);
}

/* Badge de plan destacado */
.o-plan-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: linear-gradient(135deg, #43a047, #fbc02d);
  color: #fff;
  font-size: 0.7rem;
  padding: 6px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Lista de features del plan */
.o-plan-features li {
  margin-bottom: 4px;
}

/* Opiniones carrusel infinito (asumiendo que ya lo tienes, le damos un retoque) */
.o-testimonials-wrapper {
  overflow: hidden;
  position: relative;
}

.o-testimonials-track {
  display: flex;
  gap: 1rem;
  animation: testimonials-scroll 40s linear infinite;
}

.o-testimonial {
  min-width: 260px;
  max-width: 320px;
  border-radius: 18px;
}

@keyframes testimonials-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* === PLANES – diseño claro, camping === */
.o-plan-grid {
  row-gap: 2rem;
}

.o-plan-card {
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  border: 1px solid rgba(0,0,0,0.05);
  background: #ffffff;
}

.o-plan-card-featured {
  border-color: rgba(46, 125, 50, 0.35);
  box-shadow: 0 14px 34px rgba(46, 125, 50, 0.18);
}

.o-plan-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}

/* icono circular estilo camping */
.o-plan-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  background: rgba(111, 207, 151, 0.20); 
  color: #2e7d32;
}

.o-plan-icon-main {
  background: rgba(255, 183, 77, 0.26);
  color: #ef6c00;
}

.o-plan-price {
  font-size: 1.6rem;
  font-weight: 700;
  color: #263238;
}

/* badge destacado */
.o-plan-badge-main {
  background: linear-gradient(135deg, #43a047, #fbc02d);
  color: #fff;
  font-size: 0.7rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* lista */
.o-plan-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: .25rem;
  color: #455a64;
}

.o-plan-list i {
  font-size: .85rem;
  color: #2e7d32;
  margin-top: .08rem;
}

/* responsive */
@media (max-width: 767.98px) {
  .o-plan-card {
    border-radius: 14px;
  }
}
