/* ============================================================
   PLANTILLA SEO - ESTILO INTEGRADO CON medicoayurvedacdmx.com
   Paleta tomada del sitio principal:
   #2490eb azul | #14467b azul oscuro | #24acc4 turquesa
   #88ca51 verde | #f0f4ff / #f5f6fa fondos claros
   ============================================================ */

:root {
  --site-blue: #2490eb;
  --site-navy: #14467b;
  --site-teal: #24acc4;
  --site-green: #88ca51;
  --site-bg-blue: #f0f4ff;
  --site-bg-soft: #f5f6fa;
  --site-text: #666666;
  --site-white: #ffffff;
}

/* ------------------------- BANNER ------------------------- */
.banner-modern {
  position: relative;
  min-height: 650px;
  height: calc(100vh - 145px);
  max-height: 860px;

  /* Separa visualmente el header del banner */
  margin-top: 58px;

  background-image: url("../images/banner.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;

  /* Da aire arriba y abajo y mantiene el contenido realmente centrado */
  padding: 35px 0;
  box-sizing: border-box;

  overflow: hidden;
}

.banner-modern .overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, rgba(20, 70, 123, .88), rgba(36, 144, 235, .72), rgba(36, 172, 196, .58));
}

.banner-modern .banner-content {
  position: relative;
  z-index: 2;
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
  padding: 55px 40px;
  border-radius: 28px;
  background: rgba(20, 70, 123, .18);
  backdrop-filter: blur(2px);
}

.banner-modern h1 {
  margin: 0 0 22px;
  font-size: clamp(2.25rem, 5vw, 3.55rem);
  line-height: 1.15;
  font-weight: 800;
  color: var(--site-white);
  text-shadow: 0 4px 18px rgba(0, 0, 0, .28);
}

.banner-modern h1 strong,
.banner-modern p strong {
  color: var(--site-white);
  font-weight: inherit;
}

.banner-modern p {
  margin: 0 auto;
  max-width: 790px;
  font-size: 1.18rem;
  line-height: 1.75;
  color: var(--site-white);
  text-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}

.banner-modern p a {
  color: #ffffff;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.banner-modern p a:hover { color: #dff7ff; }

.banner-modern .btn {
  margin-top: 28px;
  padding: 14px 32px;
  border: 1px solid var(--site-blue);
  border-radius: 8px;
  background: var(--site-blue);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 600;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
  transition: .3s ease;
}

.banner-modern .btn:hover {
  background: var(--site-navy);
  border-color: var(--site-navy);
  transform: translateY(-2px);
}

.banner-modern .scroll-down {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
}

.banner-modern .scroll-down a {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.12);
}

.banner-modern .scroll-down i { color: #fff; }

.animate-title, .animate-text, .animate-btn {
  opacity: 0;
  transform: translateY(30px);
}
.animate-title { animation: fadeUp .8s ease forwards; }
.animate-text { animation: fadeUp .8s ease .2s forwards; }
.animate-btn { animation: fadeUp .8s ease .4s forwards; }

@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }


/* Separación banner/header en pantallas medianas y móviles */
@media (max-width: 991px) {
  .banner-modern {
    margin-top: 20px;
  }
}

@media (max-width: 575px) {
  .banner-modern {
    margin-top: 14px;
  }
}

/* ------------------------- SHARED ------------------------- */
.bio-section,
.benefits-section,
.testimonials-section,
.faq-section {
  position: relative;
  overflow: hidden;
}

.bio-section a,
.benefits-section a,
.testimonials-section a,
.faq-section a {
  color: var(--site-blue);
  font-weight: 600;
}

.bio-section a:hover,
.benefits-section a:hover,
.testimonials-section a:hover,
.faq-section a:hover { color: var(--site-navy); }

.section-header { position: relative; z-index: 2; }
.section-header h2,
.bio-content h2 {
  color: var(--site-navy);
  font-size: clamp(2rem, 3vw, 2.35rem);
  line-height: 1.25;
  font-weight: 700;
}
.section-header p,
.bio-content p {
  color: var(--site-text);
  font-size: 1.05rem;
  line-height: 1.8;
}

/* ------------------------- BIOGRAFÍA ------------------------- */
.bio-section {
  padding: 100px 0;
  background: var(--site-bg-blue);
}

.bio-section .container { position: relative; z-index: 2; }
.bio-image img {
  display: block;
  width: 100%;
  border-radius: 22px;
  box-shadow: 0 18px 45px rgba(20, 70, 123, .14);
}
.bio-content { padding-left: 48px; }
.bio-content h2 { margin-bottom: 20px; }
.bio-content strong { color: var(--site-navy); }
.bio-content .btn {
  margin-top: 10px;
  padding: 12px 28px;
  border-color: var(--site-blue);
  color: var(--site-blue);
  font-weight: 600;
}
.bio-content .btn:hover { background: var(--site-blue); color: #fff; }

.bio-shapes .shape,
.benefits-background .shape,
.testimonials-background .shape {
  position: absolute;
  display: block;
  border-radius: 50%;
  pointer-events: none;
}
.bio-shapes .shape { background: var(--site-teal); opacity: .10; }
.bio-shapes .shape-1 { width: 250px; height: 250px; top: -70px; left: -70px; animation: floatShape 7s ease-in-out infinite; }
.bio-shapes .shape-2 { width: 175px; height: 175px; bottom: 30px; right: 8%; animation: floatShape 9s ease-in-out infinite reverse; }
.bio-shapes .shape-3 { width: 110px; height: 110px; top: 35%; right: -45px; background: var(--site-green); animation: floatShape 6s ease-in-out infinite; }

@keyframes floatShape {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
}

/* ------------------------- BENEFICIOS ------------------------- */
.benefits-section {
  padding: 100px 0;
  background: #fff;
}
.benefits-section .container { position: relative; z-index: 2; }
.benefits-background .shape { opacity: .055; background: var(--site-blue); }
.benefits-background .shape-1 { width: 210px; height: 210px; top: 30px; left: 7%; }
.benefits-background .shape-2 { width: 300px; height: 300px; bottom: -80px; right: 8%; background: var(--site-teal); }
.benefits-background .shape-3 { width: 140px; height: 140px; top: 48%; left: 48%; background: var(--site-green); }

.benefit-card {
  height: 100%;
  padding: 34px 28px;
  border: 1px solid #e8eef7;
  border-radius: 18px;
  background: #fff;
  text-align: center;
  box-shadow: 0 12px 32px rgba(20, 70, 123, .08);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.benefit-card:hover {
  transform: translateY(-8px);
  border-color: rgba(36, 144, 235, .35);
  box-shadow: 0 20px 42px rgba(20, 70, 123, .14);
}
.benefit-card i {
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--site-bg-blue);
  color: var(--site-blue);
  font-size: 36px;
}
.benefit-card h4 { margin-bottom: 14px; color: var(--site-navy); font-size: 1.35rem; }
.benefit-card p { margin: 0; color: var(--site-text); line-height: 1.7; }

/* ------------------------- TESTIMONIOS ------------------------- */
.testimonials-section {
  padding: 100px 0;
  background: var(--site-bg-soft);
}
.testimonials-section .container { position: relative; z-index: 2; }
.testimonials-background .shape { opacity: .06; background: var(--site-navy); }
.testimonials-background .shape-1 { width: 250px; height: 250px; top: -70px; left: 4%; }
.testimonials-background .shape-2 { width: 220px; height: 220px; bottom: -70px; right: 7%; background: var(--site-teal); }

.testimonials-carousel { position: relative; }
.testimonials-carousel .owl-stage { display: flex; }
.testimonials-carousel .owl-item { display: flex; }
.testimonials-carousel .testimonial-card {
  width: 100%;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 14px 0 28px;
  padding: 34px 30px;
  border: 1px solid #e4ebf5;
  border-radius: 18px;
  background: #fff;
  text-align: center;
  box-shadow: 0 12px 34px rgba(20, 70, 123, .09);
  transition: transform .3s ease, box-shadow .3s ease;
}
.testimonials-carousel .testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 42px rgba(20, 70, 123, .14);
}
.testimonials-carousel .testimonial-card p { color: #555; font-size: 1rem; line-height: 1.8; }
.testimonials-carousel .testimonial-stars { margin: 8px 0 10px; color: var(--site-green); font-size: 1.2rem; letter-spacing: 2px; }
.testimonials-carousel .testimonial-card h4 { margin: 0; color: var(--site-navy); font-size: 1.05rem; font-weight: 700; }

.testimonials-carousel .owl-nav { margin-top: 8px; text-align: center; }
.testimonials-carousel .owl-nav button.owl-prev,
.testimonials-carousel .owl-nav button.owl-next {
  position: static;
  transform: none;
  width: 44px;
  height: 44px;
  margin: 0 6px;
  border: 0;
  border-radius: 50%;
  background: var(--site-blue) !important;
  color: #fff !important;
  font-size: 24px !important;
  line-height: 44px !important;
  transition: .25s ease;
}
.testimonials-carousel .owl-nav button:hover { background: var(--site-navy) !important; }
.testimonials-carousel .owl-dots { margin-top: 12px; text-align: center; }
.testimonials-carousel .owl-dot span {
  display: block;
  width: 9px;
  height: 9px;
  margin: 5px;
  border-radius: 50%;
  background: #cbd8e8;
}
.testimonials-carousel .owl-dot.active span { background: var(--site-blue); }

/* ------------------------- FAQ ------------------------- */
.faq-section {
  padding: 100px 0;
  background: #fff;
}
.faq-section .container { position: relative; z-index: 2; }
.faq-section .section-header { max-width: 850px; }
.faq-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  margin-top: 45px;
}
.faq-list { flex: 1 1 52%; min-width: 0; }
.faq-image { flex: 1 1 42%; min-width: 0; }
.faq-image img {
  display: block;
  width: 100%;
  max-width: 520px;
  margin-left: auto;
  border-radius: 22px;
  box-shadow: 0 18px 45px rgba(20, 70, 123, .13);
  animation: floatFaq 6s ease-in-out infinite;
}
@keyframes floatFaq { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.accordion .faq-item {
  margin-bottom: 14px;
  overflow: hidden;
  border: 1px solid #e5edf7;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(20, 70, 123, .06);
}
.faq-question {
  position: relative;
  display: block;
  width: 100%;
  padding: 19px 55px 19px 22px;
  border: 0;
  background: transparent;
  color: var(--site-navy);
  text-align: left;
  font-size: 1.03rem;
  font-weight: 700;
  cursor: pointer;
}
.faq-question .faq-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  color: var(--site-blue);
  font-size: 25px;
  font-weight: 400;
  transition: transform .3s ease;
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  padding: 0 22px;
  color: var(--site-text);
  font-size: .98rem;
  line-height: 1.75;
  transition: max-height .35s ease, padding .35s ease;
}
.faq-item.active { border-color: rgba(36,144,235,.3); }
.faq-item.active .faq-answer { max-height: 500px; padding: 0 22px 20px; }
.faq-item.active .faq-icon { transform: translateY(-50%) rotate(45deg); }

.faq-section::before,
.faq-section::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  opacity: .07;
}
.faq-section::before { width: 210px; height: 210px; top: -80px; left: -80px; background: var(--site-blue); }
.faq-section::after { width: 280px; height: 280px; right: -120px; bottom: -130px; background: var(--site-teal); }

/* ------------------------- RESPONSIVE ------------------------- */
@media (max-width: 991px) {
  .banner-modern { min-height: 620px; height: auto; padding: 100px 0; }
  .banner-modern .banner-content { padding: 40px 25px; }
  .bio-section, .benefits-section, .testimonials-section, .faq-section { padding: 75px 0; }
  .bio-content { padding: 35px 12px 0; }
  .faq-row { flex-direction: column-reverse; gap: 35px; }
  .faq-list, .faq-image { width: 100%; flex-basis: auto; }
  .faq-image img { margin: 0 auto; }
}

@media (max-width: 575px) {
  .banner-modern { min-height: 560px; padding: 75px 0; }
  .banner-modern .banner-content { width: calc(100% - 24px); padding: 32px 18px; border-radius: 20px; }
  .banner-modern p { font-size: 1rem; }
  .banner-modern .btn { width: 100%; padding: 13px 20px; }
  .benefit-card, .testimonials-carousel .testimonial-card { padding: 28px 22px; }
  .faq-question { font-size: .97rem; padding: 17px 48px 17px 18px; }
  .faq-answer { padding-left: 18px; padding-right: 18px; }
  .faq-item.active .faq-answer { padding: 0 18px 18px; }
}
