  body {
    font-family: 'Lato', sans-serif;
    overflow-x: hidden;
    color: #000;
    background-color: #f9f9f9;
  }

  h1, h2, h3, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: 'League Spartan', sans-serif;
    letter-spacing: 0.5px;
    text-transform: uppercase;
  }

.titulo-bold{
    font-family: 'League Spartan', sans-serif;
    text-transform: uppercase;
    font-weight: 700 !important;
  }

  p {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    line-height: 1.6;
  }
    .top-banner {
      background-color: #00aff2;
      color: white;
      padding: 10px 0;
      text-align: center;
      font-weight: bold;
      font-size: 0.95rem;
    }
    .hero {
      background: url('https://kunturfly.com/wp-content/uploads/2023/04/kunturfly.jpg') center/cover no-repeat;
      color: white;
      height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      position: relative;
    }
    .parapente-img {
      position: absolute;
      top: 10%;
      right: 5%;
      width: 200px;
      max-width: 25vw;
      animation: float 6s ease-in-out infinite;
      z-index: 10;
      opacity: 0.95;
    }
    @keyframes float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-20px); }
    }
   
    footer {
      background: #e0e0e0;
      color: #000;
      padding: 40px 20px 60px;
      text-align: center;
      position: relative;
    }
    .footer-credit {
      font-size: 0.75rem;
      display: block;
      margin-top: 10px;
    }
 
    .section-prices {
      background-color: #f1f1f1;
      padding: 60px 0;
    }
    .section-prices h2 {
      color: #00aff2;
    }
    .map-container iframe {
      width: 100%;
      height: 400px;
      border: 0;
    }

.social-icon:hover img {
  transform: scale(1.3);
    transition: transform 0.3s ease;
}

.emoji-icon {
  font-size: 48px;
  display: inline-block;
  animation: floaty 4s ease-in-out infinite;
  transition: transform 0.3s;
}

.emoji-icon:hover {
  transform: scale(1.2) rotate(5deg);
}

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

.light-blue{
  color: rgb(0, 175, 242);
}

.nav-link {
  position: relative;
  transition: color 0.3s ease;
}

.nav-link::after {
  content: "";
  position: absolute;
  width: 0%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #00aff2;
  transition: width 0.3s ease;
}

.nav-link:hover {
  color: #00aff2;
}

.nav-link:hover::after {
  width: 100%;
}

.btn-lightblue {
  background-color: #00aff2;
  color: white;
  border: none;
  transition: transform 0.3s ease, background-color 0.3s ease;
  padding: 0.6rem 1.2rem;
  font-weight: 600;
  border-radius: 0.375rem;
}

.btn-lightblue:hover {
  transform: scale(1.08);
  background-color: #0099d6;
  color: white;
}
#preloader {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color:white;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-family: 'Bebas Neue', sans-serif;
  color: #000;
}

.emoji-container {
  text-align: center;
}

.parapente {
  font-size: 80px;
  color: #000;
  animation: flotar 2s ease-in-out infinite;
}

.porcentaje {
  font-size: 48px;
  font-weight: bold;
  margin-top: 10px;
  color:#0f172a;
}

.cargando-texto {
  font-size: 15px;
  margin-top: 10px;
  color:#0f172a;
  font-family: 'League Spartan', sans-serif;

}

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



/* Botón light blue con animación de agrandado */
.btn-lightblue {
  background-color: #00aff2;
  color: white;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: none;
}

.btn-lightblue:hover {
  transform: scale(1.07);
  box-shadow: 0 4px 10px rgba(0, 175, 242, 0.5);
}



/* Footer gris con logo transparente */
footer {
  background-color: #eaeaea;
  padding: 40px 20px;
  text-align: center;
  position: relative;
  font-size: 14px;
}

footer::before {
  content: "";
  background-image: url('logo-kunturfly-blanco.svg');
  background-size: 180px;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.04;
  position: absolute;
  top: 20px;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

/* Tarjetas igual altura */
.equal-card { height: 100%; }

/* Enlaces “feos” -> estilo limpio */
.section-intro a {
  color: inherit; text-decoration: underline dotted; text-underline-offset: 2px;
}
.section-intro a:hover { color: #00aff2; }

/* Quitar azul del subtítulo (antes .text-primary) */
.heading-neutral { color: #1f2937 !important; } /* gris oscuro elegante */

/* Gradientes suaves de fondo */
.soft-gradient {
  background: linear-gradient(180deg, #ffffff 0%, #f7fafc 50%, #eef6fb 100%);
}
.soft-gradient-alt {
  background: linear-gradient(180deg, #f8fafc 0%, #f0f5ff 100%);
}

/* Acordeón FAQ — estilos sutiles */
#faq .accordion-button {
  background: #ffffff;
  font-weight: 700;
  letter-spacing: .2px;
}
#faq .accordion-button:not(.collapsed) {
  box-shadow: none; color: #111827;
}
#faq .accordion-item {
  border: 1px solid rgba(0,0,0,.06); border-radius: 12px; overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,.04); margin-bottom: 14px;
}

  h1 { font-size: 2.4rem !important; line-height: 1.2; }   /* ~35px */
  h2 { font-size: 2.2rem !important; line-height: 1.3; }   /* ~29px */
  h3 { font-size: 1.5rem !important; line-height: 1.35; }  /* ~24px */
  h4 { font-size: 1.25rem !important; line-height: 1.4; }  /* ~20px */
  h5 { font-size: 1.125rem !important; line-height: 1.45; }/* ~18px */
  h6 { font-size: 1rem !important; line-height: 1.5; }     /* 16px */

/* Responsive */
  @media (max-width: 768px) {
    h1 { font-size: 1.8rem !important; }
    h2 { font-size: 1.6rem !important; }
    h3 { font-size: 1.3rem !important; }
    h4 { font-size: 1.15rem !important; }
    h5 { font-size: 1.075rem !important; }
    h6 { font-size: 1rem !important; }
  }

  @media (max-width: 480px) {
    h1 { font-size: 1.6rem !important; }
    h2 { font-size: 1.5rem !important; }
    h3 { font-size: 1rem !important; }
    h4 { font-size: 1.1rem !important; }
    h5 { font-size: 1.05rem !important; }
    h6 { font-size: 1rem !important; }
  }

.h-100 { font-weight: 100 !important; }
  .h-200 { font-weight: 200 !important; }
  .h-300 { font-weight: 300 !important; }
  .h-400 { font-weight: 400 !important; }
  .h-500 { font-weight: 500 !important; }
  .h-600 { font-weight: 600 !important; }
  .h-700 { font-weight: 700 !important; }


/* Tipos y escala tipográfica */
    :root{
      --brand-blue:#00aff2;
      --brand-blue-700:#0098d1;
      --ink:#0f172a;
      --muted:#6b7280;
      --soft-grad-1: linear-gradient(180deg,#ffffff 0%, #f7f9fb 100%);
      --soft-grad-2: linear-gradient(180deg,#f8fafc 0%, #eef2f7 100%);
    }


    body{font-family:'Lato', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:#000; background:#f9f9f9;}
    h1,h2,h3,h4,h5,h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:'League Spartan', sans-serif; letter-spacing:.3px;}
    /* Pesos utilitarios 100–700 */
    .h-100{font-weight:100}.h-200{font-weight:200}.h-300{font-weight:300}.h-400{font-weight:400}
    .h-500{font-weight:500}.h-600{font-weight:600}.h-600{font-weight:700}

    /* Tamaños de encabezados más contenidos */
    h1,.display-4{font-size:clamp(2rem,4vw,2.75rem); line-height:1.05}
    h2,.display-5{font-size:clamp(1.75rem,3vw,2.25rem); line-height:1.12}
    h3,.display-6{font-size:clamp(1.35rem,2.2vw,1.6rem); line-height:1.18}
    h4{font-size:1.25rem}
    h5{font-size:1.15rem}
    h6{font-size:1rem}

.nav-item{
  font-family: 'League Spartan', sans-serif;
}
    /* Gradientes suaves para secciones nuevas */
    .soft-gradient{background:var(--soft-grad-1);}
    .soft-gradient-alt{background:var(--soft-grad-2);}

    /* Botones de marca */
    .btn-lightblue{background:var(--brand-blue); color:#fff; border:0; font-weight:700;}
    .btn-lightblue:hover{background:var(--brand-blue-700); color:#fff;}
    .light-blue{color:var(--brand-blue);}
    .heading-neutral{color:var(--ink);}

    /* Cards de igual alto (precio, features) */
    .equal-card{display:flex; flex-direction:column; height:100%;}
    .features-grid .equal-card{min-height:180px}

    /* Fix grid “3 por fila” en tablet/desktop para tu sección de iconos */
    @media(min-width:768px){
      .features-grid .col-md-4{display:flex}
    }

    /* Carrusel de testimonios: altura coherente */
    #carouselTestimonios .row > [class*="col-"] > div{min-height: 220px}

    /* Barra WhatsApp fija (solo mobile) */
    .cta-wa-fixed{
      position:fixed; left:0; right:0; bottom:0; z-index:9998;
      display:flex; justify-content:center; align-items:center;
      padding:12px 16px; background:#25D366; color:#fff; font-weight:700;
      text-transform:uppercase; letter-spacing:.3px; box-shadow:0 -6px 20px rgba(0,0,0,.12);
    }
    .cta-wa-fixed:hover{opacity:.95}
    @media(min-width:992px){ .cta-wa-fixed{ display:none; } }

@media(min-width:992px){ .whatsapp-btn{ display:none !important; } }

    /* Top banner contraste */
    .top-banner{background:#1d9dd8; color:#fff; font-size:.95rem}

    /* Scroll-to-top (ya lo tenías, solo colores conv.) */
    .scroll-to-top {
      position: fixed; bottom: 115px; right: 25px;
      width: 48px; height: 48px; background-color: var(--brand-blue);
      border: none; border-radius: 50%; color: white; font-size: 22px;
      box-shadow: 0 0 10px rgba(0,0,0,0.2); cursor: pointer; display: none; z-index: 1000;
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .scroll-to-top:hover { transform: scale(1.15); background-color: var(--brand-blue-700); }
    .scroll-to-top i { line-height: 48px; }

    .whatsapp-float {
      position: fixed; bottom: 20px; right: 20px;
      width: 60px; height: 60px; z-index: 999;
      animation: float 2.5s ease-in-out infinite; transition: transform 0.2s ease;
    }
    .whatsapp-float:hover { transform: scale(1.5); transition: transform 0.5s ease;}
    @keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }


    #faq h2 {
  font-family: 'League Spartan', sans-serif;
  font-weight: 700;
  font-size: 2.2rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
#faq .accordion-button {
  font-family: 'League Spartan', sans-serif;
  font-weight: 600;
  font-size: 1.2rem;
}
#faq .accordion-body {
  font-family: 'Lato', sans-serif;
  font-weight: 400;
  font-size: 1rem;
  color: #333;
  line-height: 1.5;
}
.soft-gradient-alt {
  background: linear-gradient(135deg, #f0f9ff, #e0f2f1);
}
.accordion-item {
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 1rem;
  border: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.accordion-button:not(.collapsed) {
  background-color: #26a69a;
  color: white;
}
.btn-reserva{
    background:#00aff2; color:#fff; border:0; font-weight:700;
    border-radius:999px; /* píldora elegante */
    box-shadow:0 8px 18px rgba(0,175,242,.25);
    transform:translateZ(0);
    transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
    display:inline-flex; align-items:center; gap:.5rem;
    text-decoration: none !important;
  }
  .btn-reserva:hover{ 
    filter:saturate(1.08);
    box-shadow:0 10px 24px rgba(0,175,242,.32);
    transform:translateY(-2px) scale(1.015);
    text-decoration: none !important;
        background: #0084b9; /* azul oscuro */

  }
  .btn-reserva:active{ transform:translateY(0) scale(.995); }
  .btn-reserva:focus-visible{
    outline:3px solid #99e6ff; outline-offset:2px;
    text-decoration: none !important;
  }

  /* Animación “flotar” + “respirar” (como WhatsApp float) */
  .btn-reserva{
    animation: kf-float 2.6s ease-in-out infinite,
               kf-breathe 5.2s ease-in-out infinite;

  }
  @keyframes kf-float{
    0%,100%{ transform:translateY(0) }
    50%    { transform:translateY(-5px) }
  }
  @keyframes kf-breathe{
    0%,100%{ filter:none }
    50%    { filter:brightness(1.04) }
  }

  /* Pausa la animación al pasar el mouse (opcional) */
  .btn-reserva:hover{ animation-play-state: paused; }

  /* En móviles que no soportan mucha GPU, baja la intensidad */
  @media (max-width: 480px){
    .btn-reserva{ animation: kf-float 3s ease-in-out infinite; }
  }

  /* Respeta reduce-motion del usuario */
  @media (prefers-reduced-motion: reduce){
    .btn-reserva{ animation: none; }
  }

@media(max-width:992px){ .whatsapp-float{ display:none !important; } }

.img-parapente{
  max-height: 400px !important;
}

/* Suaviza el “collapse” del menú */
  :root{ --nav-ease: cubic-bezier(.22,.61,.36,1); }
  .navbar .collapsing { transition: height .55s var(--nav-ease); }
  @media (max-width: 991.98px){
    /* Suaviza la entrada de los links cuando se abre el menú */
    .navbar .nav-link{ 
      opacity: 0; 
      transform: translateY(-6px);
      transition: transform .35s var(--nav-ease), opacity .35s var(--nav-ease);
    }
    .navbar-collapse.show .nav-link{ opacity:1; transform:none; }
    /* Pequeños delays escalonados para un efecto más fino */
    .navbar-collapse.show .nav-item:nth-child(1) .nav-link{ transition-delay: .05s; }
    .navbar-collapse.show .nav-item:nth-child(2) .nav-link{ transition-delay: .10s; }
    .navbar-collapse.show .nav-item:nth-child(3) .nav-link{ transition-delay: .15s; }
    .navbar-collapse.show .nav-item:nth-child(4) .nav-link{ transition-delay: .20s; }
  }

  /* Parallax: prevenimos saltos y avisamos al navegador */
  [data-parallax], [data-parallax-bg]{ will-change: transform, background-position; }
  .reveal{ opacity:0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:none; }

.scroll-cue {
    position: absolute; left: 50%; bottom: 70px; transform: translateX(-50%);
    z-index: 10; display: inline-flex; flex-direction: column; align-items: center;
    gap: 6px; text-decoration: none; color: #fff; font-weight: 600; opacity: .95;
    user-select: none;
  }
  .scroll-cue .chevron {
    width: 44px; height: 44px; border-radius: 999px; border: 2px solid rgba(255,255,255,.85);
    display: grid; place-items: center; backdrop-filter: blur(2px);
    box-shadow: 0 10px 28px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.08);
    animation: cue-float 2.4s ease-in-out infinite, cue-pulse 2.4s ease-in-out infinite;
  }
  .scroll-cue i { font-size: 1.25rem; line-height: 1; }

  .scroll-cue:hover .chevron{
    border-color:#99e6ff; box-shadow: 0 12px 32px rgba(0,175,242,.35), inset 0 0 0 1px rgba(153,230,255,.25);
    animation-play-state: paused;
  }
  .scroll-cue span { font-size: .85rem; letter-spacing: .3px; opacity:.9; }

  @keyframes cue-float { 0%,100%{ transform: translateY(0)} 50%{ transform: translateY(-6px)} }
  @keyframes cue-pulse {
    0%,100%{ box-shadow: 0 10px 28px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.08) }
    50%    { box-shadow: 0 14px 36px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.18) }
  }

  /* Respeta reduce-motion */
  @media (prefers-reduced-motion: reduce) {
    .scroll-cue .chevron { animation: none; }
  }

  /* Evita scroll horizontal en toda la página */
html, body {
  overflow-x: hidden;
}

/* Previene que los elementos hijos generen ancho extra */
* {
  box-sizing: border-box;
}

/* Ajusta elementos que puedan salirse */
img, iframe, video {
  max-width: 100%;
  height: auto;
}

/* Detecta contenedores problemáticos y limita su ancho */
.container-fluid,
.row,
.col {
  max-width: 100%;
  overflow-x: hidden;
}

.video-vertical {
  aspect-ratio: 9 / 16;
  max-width: 100%;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}
.video-vertical video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* Carrusel más suave y legible */
#carruselCostaVerde .carousel-caption{
  background: rgba(0,0,0,.35);
  padding:.35rem .6rem;
  border-radius:.5rem;
  backdrop-filter: blur(2px);
}
#carruselCostaVerde .carousel-inner{ box-shadow: 0 10px 30px rgba(0,0,0,.12); }

/* Altura del hero */
#heroSlider .carousel-inner,
#heroSlider .carousel-item { height: 650px; }


/* Slide con gradiente inferior */
.hero-slide{
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 100%;
  z-index: 0; /* fondo */
}

.hero-slide::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 60%);
  z-index: 1; /* gradiente detrás del texto */
}

.hero-caption{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 50%; /* ajusta altura del texto */
  text-align: center;
  color: #fff;
  padding: 0 16px;
  z-index: 2; /* texto encima del gradiente */
}


.hero-caption h1, .hero-caption h2{
  margin: 0 0 8px;
  font-weight: 800;
  text-shadow: 0 3px 12px rgba(0,0,0,.5), 0 1px 1px rgba(0,0,0,.35);
}
.hero-caption p{
  margin: 0;
  text-shadow: 0 2px 8px rgba(0,0,0,.5);
}

/* Opcional: alineación izquierda en desktop */
@media (min-width: 992px){
  .hero-caption.left{
    left: 5%; transform: none; text-align: left; max-width: 720px;
  }
}

/* Evita huecos blancos con el bloque siguiente */
.hero-landing + section,
#heroSlider + section { margin-top: 0; }

/* Limitar altura de imágenes en la galería */
#carouselGaleria img {
  max-height: 300px;   /* ajusta este valor a lo que te parezca */
  object-fit: cover;   /* recorta manteniendo proporción */
}

/* Opcional: para que se vea mejor en pantallas grandes */
@media (min-width: 992px) {
  #carouselGaleria img {
    max-height: 350px;
  }
}


