/* Font Faces */

@font-face {
    font-family: 'GandhiSans';
    src: url('/fonts/GandhiSans-Regular.woff2') format('woff2'),
         url('/fonts/GandhiSans-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
  }
  /* idem para Bold */

@font-face {
    font-family: 'GandhiSans';
    src: url('/fonts/GandhiSans-Bold.woff2') format('woff2'),
         url('/fonts/GandhiSans-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
  }
  /* idem para Bold */
  

@font-face {
    font-family: 'GandhiSerif';
    src: url('/fonts/GandhiSerif-Bold.woff2') format('woff2'),
         url('/fonts/GandhiSerif-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
  }
  /* idem para Bold */
  

/* Base Styles */
body {
    margin: 0;
    padding: 0;
    background-color: #ffb000;
    color: #2d2d2d;
    font-family: 'GandhiSans', sans-serif;
    padding-top: 100px;
}

/* Navbar Styles */
.navbar {
    position: fixed;
    top: 0;
    width: 100%;
    height: 120px;
    background: linear-gradient(to bottom, #ffb000 60%, rgba(255, 182, 0, 0));
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 50px;
    box-sizing: border-box;
    z-index: 1000;
}

.logo {
    height: 2.6rem;
}

.nav-links {
    display: flex;
    gap: 30px;
}

.nav-links a {
    font-family: 'Anton', sans-serif;
    text-transform: uppercase;
    color: #2d2d2d;
    text-decoration: none;
    font-size: 1.6em;
    transition: transform 0.3s ease;
}

.nav-links a:hover {
    transform: scale(1.1);
}

.faro-svg {
    position: fixed;
    bottom: 0;
    left: -7rem;
    width: 60rem;      /* o el %/px que necesites */
    height: auto;    /* mantiene la proporción */
    object-fit: cover;
    object-position: bottom left;
    overflow: visible;
    pointer-events: none;
  }
  
  

/* Content Containers — estilo por defecto para todas las páginas */
.content-container {
    max-width: 1200px;
    margin-top: 5rem;                /* cambio aquí */
    padding: 2rem;
    padding-left: 30%;
    margin-bottom: 15rem;
}

/* Override para la página principal */
#main-page.content-container {
    margin-top: calc(45vh - 120px);
}


.container-left-img, .container-right-img {
    display: flex;
    align-items: center;
    gap: 50px;
    margin-bottom: 100px;
}

.image-container {
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

/*FOR ANIMATION SLIDES*/

.anim .image-container {
  position: relative;
}

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

.anim .image-container img {
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease;
  z-index: 0;
}

.anim .image-container img.active {
  opacity: 1;
  z-index: 1;
}

.text-container {
    flex: 1;
}

/* Content Logo Styles */
.content-logo {
    text-align: center;
    margin: 0 auto 60px;
    width: 80%;
    position: relative;
    padding-bottom: 16rem;
}

.content-logo img {
    width: 100%;
    height: auto;
}

h1 {
    font-family: 'Anton', sans-serif;
    text-transform: uppercase;
    font-size: 2.5em;
    margin: 0 0 0.1rem 0;
}

h2 {
    font-family: 'GandhiSans', sans-serif;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 1.8em;
    margin: 0 0 0.1rem 0;
}

p {
    font-family: 'GandhiSans', sans-serif;
    font-size: 1.1em;
    line-height: 1.6;
}

/* Right Image Variation */
.container-right-img {
    flex-direction: row-reverse;
}



/* WAVES */
/* Waves overlay */
.wave-container {
    position: fixed;
    bottom: -35px;
    left: -50px;
    width: 120%;
    height: 150px;
    z-index: 998;
    pointer-events: none;
}

.wave {
    position: absolute;
    bottom: 0;
    width: 50rem;
    height: 100%;
    background-repeat: repeat-x;
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
}

#wave1 {
    background-image: url('/IMG/svgs/wave_01.svg');
}

#wave2 {
    background-image: url('/IMG/svgs/wave_02.svg');
}


/* Overlay responsive */
@media (max-width: 798px) {
    .faro-svg {
        left: -10rem;
        width: 49rem;
    }

    .wave-container {
        bottom: -55px;
    }
}

/* Overlay responsive */
@media (max-width: 490px) {
    .faro-svg {
        left: -6rem;
        width: 30rem;
    }

    .wave-container {
        bottom: -70px;
    }
}

@media (max-width: 303px) {
    .logo {
        height: 1.6rem;
    }
}



/* Mobile menu styles */


.mobile-menu-btn {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 15px;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
}

.mobile-menu-btn span {
    display: block;
    width: 30px;
    height: 3px;
    background: #2d2d2d;
    margin: 5px 0;
    transition: 0.4s;
}

.mobile-menu {
    display: none;
    position: fixed;
    top: -120%;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #2d2d2d;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: 0.5s ease-in-out;
    z-index: 999;
}

.mobile-menu.active {
    top: 0;
}

.mobile-menu a {
    font-family: 'Anton', sans-serif;
    text-transform: uppercase;
    text-decoration: none;
    color: #ffb000 !important;
    font-size: 2em !important;
    margin: 15px 0;
    opacity: 0;
    transform: translateY(20px);
    transition: 0.4s;
}

.mobile-menu.active a {
    opacity: 1;
    transform: translateY(0);
}


/* Cubre la parte baja de la pantalla con negro */
.bottom-overlay {
    position: fixed;
    bottom: -200px;
    left: 0;
    width: 100%;
    height: 200px;           /* ajusta a la altura de tu barra */
    background-color: #2d2d2d;
    z-index: 500;           /* debe quedar por debajo de la barra (z‑index del nav es ≥1000) */
    pointer-events: none;   /* para que no interfiera con toques o clicks */
  }


/* Navbar responsive */
@media (max-width: 798px) {
    .navbar {
        height: 80px;
        padding: 0 20px;
    }

    .nav-links {
        display: none;
    }

    .mobile-menu {
        display: flex; /* Change from none to flex so it shows up */
   }

    .mobile-menu-btn {
        display: block;
    }

    .mobile-menu-btn.active span {
        background: #ffb000;
    }

    .mobile-menu-btn.active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 6px);
    }

    .mobile-menu-btn.active span:nth-child(2) {
        opacity: 0;
    }

    .mobile-menu-btn.active span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -6px);
    }

    .content-container {
        padding-left: 25%;
    }

    .image-container {
        width: 27vw;
        height: 27vw;
    }

    .overlay {
        left: -130px;
    }

    .container-left-img, .container-right-img {
        gap: 2rem;
    }

    h1 {
        font-size: 2em;
    }
    h2 {
        font-size: 1.4em;
    }
    p {
        font-size: 1em;
        line-height: 1.4;
    }
}


@media (max-width: 390px){
    .content-container {
        padding-left: 2rem;
    }

    .container-left-img, .container-right-img {
        gap: 1rem;
    }
}


/* ===== Banner full-width ===== */
.banner {
    width: 100%;
    height: 18rem;
    border-radius: 2rem;
    background: url('/IMG/photos/el_faro_isla_01.jpg') top/cover no-repeat;
    position: relative;
    margin-bottom: 4rem;
  }
  .banner-text {
    position: absolute;
    bottom: 1.5rem;
    top: 0;
    right: 2rem;
    left: 2rem;
    color: #2d2d2d;
    font-family: 'GandhiSerif', serif;
    align-content: end;
  }
  .banner-text h1 {
    font-size: 2.5em;
    margin: 0 0 0.5rem;
  }
  .banner-text p {
    font-size: 1.1em;
    line-height: 1.5;
    margin-top: 0;
  }

  /* Variantes de color de texto en el banner */
    .banner--yellow .banner-text {
        color: #ffb000;
    }
    
    .banner--white .banner-text {
        color: #FFFFFF;
    }

    @media (max-width: 798px) {
        .banner-text p {
            font-size: 0.8em;
            line-height: 1.5;
        }

        .banner {
            height: 23rem;
        }

        .banner-text h1 {
            font-size: 1.5em;
        }
    }
  
  
  /* ===== Imagen full-width redondeada ===== */
  .rounded-fullwidth-img {
    margin-bottom: 4rem;
  }
  .rounded-fullwidth-img img {
    width: 100%;
    height: auto;
    border-radius: 2rem;
    object-fit: cover;
    margin-bottom: 1rem;
  }
  .rounded-fullwidth-img p {
    font-size: 1.1em;
    line-height: 1.6;
  }
  
  /* ===== Grid de logos de clientes ===== */
  .clients-grid {
    margin-bottom: 4rem;
  }
  .clients-grid h2 {
    font-family: 'Anton', sans-serif;
    text-transform: uppercase;
    font-size: 2em;
    margin-bottom: 1.5rem;
  }
  .clients-grid .grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 2rem;
    align-items: center;
  }
  .clients-grid .grid img {
    max-width: 100%;
    filter: grayscale(100%);
    opacity: 0.8;
    transition: filter 0.3s ease, opacity 0.3s ease;
  }
  .clients-grid .grid img:hover {
    filter: none;
    opacity: 1;
  }
  
  /* ===== Botón CTA ===== */
  .cta-button-container {
    text-align: center;
    margin-bottom: 0rem;
  }
  .cta-button {
    background-color: #2d2d2d;
    color: #ffb000;
    font-family: 'Anton', sans-serif;
    text-transform: uppercase;
    padding: 0.8rem 2rem;
    border: none;
    border-radius: 2rem;
    font-size: 1.2em;
    cursor: pointer;
    transition: transform 0.2s ease;
  }
  .cta-button:hover {
    transform: scale(1.05);
  }



  .social-grid-wrapper {
    display: flex;
    justify-content: center;
  }
  
  .social-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 2rem;
    justify-content: center; /* ¡Este es el truco para centrar la última fila! */
    text-align: center;
    width: 100%;
    max-width: 700px; /* Puedes ajustar el ancho máximo si quieres limitarlo */
  }
  
  .social-item img {
    width: 60px;
    height: 60px;
    transition: transform 0.3s ease;
  }
  
  .social-item p {
    margin-top: 0.5rem;
    font-family: 'GandhiSans', sans-serif;
    font-weight: bold;
    font-size: 1em;
  }
  
  .social-item a {
    color: inherit;
    text-decoration: none;
  }
  
  .social-item img:hover {
    transform: scale(1.1);
  }

  
  /*CARRUSEL*/

  .carousel-container {
    overflow: hidden;
    width: 100%;
    position: relative;
    margin-bottom: 2rem;
  }
  
  .carousel-track {
    display: flex;
    width: max-content;
    animation: scroll 40s linear infinite;
    will-change: transform; /* Optimiza la animación */
    backface-visibility: hidden; /* Evita flickering */
  }
  
  .carousel-track img {
    flex: 0 0 auto;
    width: 200px; /* Ajusta este valor según tus necesidades */
    height: auto;
    margin-right: 20px; /* Espacio entre imágenes */
    cursor: pointer;
    border-radius: 1rem;
  }

  /* VARIACIÓN para logos: menos ancho, más separación */
  .carousel-track.carousel-logos img {
    width: 140px;
    margin-right: 45px;
  }
  
  @keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  
  /* Focus Mode Overlay */
  .image-focus-overlay {
    position: fixed;
    top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: #2d2d2dcc;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
  }
  .image-focus-overlay img {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 1rem;
  }
  .image-focus-overlay .close-btn {
    position: absolute;
    top: 2rem; right: 2rem;
    font-size: 4rem;
    color: white;
    cursor: pointer;
  }
  
  .spacer-01 {
    margin-top: 6rem;
  }
  

  /* Separador antes del footer */
.site-footer {
  margin-top: 8rem;
  padding-top: 2rem;
  border-top: 2px solid #2d2d2d;
}

/* Grid de columnas */
.footer-grid {
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  flex-wrap: wrap;
}

/* Cada columna */
.footer-col {
  flex: 1 1 140px; /* flex-basis mínimo */
  min-width: 200px;
}

/* Logo en columna 1 */
.footer-logo {
  display: block;
  margin-bottom: 1rem;
  height: auto;
  max-width: 160px;
}

/* Nav links estilo "p" sin subrayado */
.footer-grid a {
  display: block;
  margin-bottom: 0.5rem;
  font-family: 'GandhiSans', sans-serif;
  color: #2d2d2d;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.footer-grid a:hover {
  transform: scale(1.02);
}

/* Título columna 2 */
.site-footer h2 {
  font-family: 'Anton', sans-serif;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

/* Enlaces de contacto igual que párrafo */
.site-footer p a {
  font-family: 'GandhiSans', sans-serif;
  color: #2d2d2d;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.site-footer p a:hover {
  transform: scale(1.05);
}

/* Redes sociales */
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}
.footer-social a img {
  width: 32px;
  height: 32px;
  transition: transform 0.2s ease;
}
.footer-social a:hover img {
  transform: scale(1.1);
}

/* Responsive: columnas pasan a vertical */
@media (max-width: 768px) {
  .footer-grid {
    flex-direction: column;
  }
}
