
@import url(/css/var.css);

.wrapper {
    position: relative;
    max-width: var(--maxwidth-body);
    margin: 0 auto;
}

/* Background Section + */
.bg-container {
    position: relative;
    height: 90dvh;
    overflow: hidden;
    max-width: var(--maxwidth-body);
    margin: 0 auto;
    background-image: linear-gradient(#0003, #0003), url(/img/bg-img.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 10% 50%;
    animation: inicio 2.5s -.1s both;
}

/* Background Section - */

/* Text Container + */
.container-text {
    padding: 0px 20px;
    position: absolute;
    text-align: start;
    bottom: 30px;
    width: 100%;
    animation: inicio 3s 0.7s both;
}

.container-text h1 {
    font-size: 40px;
    color: var(--text-color-primary-ligth);
    text-shadow: 1px 1px 4px #fffc;
    letter-spacing: 3px;
}

/* Text Container - */

/* Section info + */
.info {
    background-color: var(--bg-section-ligth); 
    max-width: var(--maxwidth-body);
    margin: 0 auto;
    color: var(--text-color-green);
    padding: 10px;
} 

/* Section info - */

/* Section Info General + */

.info-general {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.container-img img {
    width: 100%;
    height: auto;
    object-fit: cover;
    outline: 5px solid #000e;
    padding: 2px;
}

.info-general p {
    width: 100%;
    line-height: 1.4;
    padding: 10px 10px;
    text-align: justify;
    font-size: var(--font-size-small);
}

.wrapper-features {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-top: 2px solid var(--line-color-green);
    width: 100%;
    padding: 20px 0px;
}

.icon-text {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 5px 30px;
}

.icon-text img {
    max-width: 48px;
    height: auto;
}

.icon-text p {
    font-size: var(--font-size-small);
    text-transform: capitalize;
}

.container-sites {
    border-top: 2px solid var(--line-color-green);
    padding: 20px 0px;
}

.container-sites h2 {
    text-transform: uppercase;
    text-align: center;
    font-size: var(--font-size-small);
}

.wrapper-sites {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 10px 0px;
}

.icon-text-sites {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 5px 30px;
}

.icon-text-sites img {
    max-width: 48px;
    height: auto;
}

.icon-text-sites p {
    text-transform: none;
    font-size: var(--font-size-small);
}

.wrapper-measures {
    border-top: 2px solid var(--line-color-green);
    padding: 20px 0px;
}

.measure-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    place-content: center;
    place-items: center;
    gap: 5px;
}

.measure-grid .grid-item {
    color: var(--text-color-primary-ligth);
    font-size: 18px;
    text-align: center;
    padding: 20px;
    place-self: stretch stretch;
    place-content: center;
    background: var(--bg-section-green-ligth);
    border-radius: 2px;
}

.wrapper-finance {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-top: 2px solid var(--line-color-green);
    width: 100%;
    padding: 20px 0px;
}

.wrapper-finance .icon-text > p{
    margin-left: 20px;
    text-transform: none;
}

/* Section Info General - */


/* Section Galery + */
.container-galery {
    background-color: var(--bg-section-brown); 
    max-width: var(--maxwidth-body);
    margin: 0 auto;
    color: var(--text-color-primary-ligth);
    padding: 10px;
} 

.wrapper-galery {
    padding: 20px 0px;
}

.wrapper-galery h2 {
    text-transform: uppercase;
    text-align: center;
    color: var(--text-color-green);
    font-size: var(--font-size-small);
    margin-bottom: 20px;
}

/* ── Grid magazine ── */
  .grid-galery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 260px 200px 200px 260px;
    max-width: var(--maxwidth-gallery);
    margin: 0 auto;
    gap: 6px;
    border-radius: 16px;
    overflow: hidden;
    align-items: stretch;
    justify-items: stretch;
    box-shadow: inset 0 0 0 1px #0002, 0 4px 10px #0005;
  }

  /* Posiciones tipo magazine */
  .gal-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1; }
  .gal-item:nth-child(2) { grid-column: 3 / 4; grid-row: 1; }
  .gal-item:nth-child(3) { grid-column: 4 / 5; grid-row: 1 / 3; }
  .gal-item:nth-child(4) { grid-column: 1 / 2; grid-row: 2; }
  .gal-item:nth-child(5) { grid-column: 2 / 3; grid-row: 2; }
  .gal-item:nth-child(6) { grid-column: 3 / 4; grid-row: 2; }
  .gal-item:nth-child(7) { grid-column: 1 / 2; grid-row: 3 / 5; }
  .gal-item:nth-child(8) { grid-column: 2 / 3; grid-row: 3; }
  .gal-item:nth-child(9) { grid-column: 3 / 4; grid-row: 3; }
  .gal-item:nth-child(10) { grid-column: 4 / 5; grid-row: 3; }
  .gal-item:nth-child(11) { grid-column: 2 / 5; grid-row: 4; }

  /* ── Cada ítem ── */
  .gal-item {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    border: none;
    padding: 0;
    background: #b8c4aa;
    width: 100%;
    height: 100%;
    min-height: 0;
    display: block;
    /* Animación de entrada con scroll */
    animation: scroll-opacity linear both;
    animation-timeline: view();
    animation-range: entry 8% cover 30%;
  }

  .gal-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform;
  }

  .gal-item:hover img,
  .gal-item:focus-visible img {
    transform: scale(1.07);
  }

  /* ── Overlay lupa ── */
  .gal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    opacity: 0;
    transition: background 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
  }

  .gal-item:hover .gal-overlay,
  .gal-item:focus-visible .gal-overlay {
    background: rgba(0, 0, 0, 0.28);
    opacity: 1;
  }

  .gal-item:focus-visible {
    outline: 3px solid var(--text-color-green, #4a7c59);
    outline-offset: 2px;
    z-index: 1;
  }

  /* ── Lightbox ── */
  .gal-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.93);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    animation: gal-lb-in 0.2s ease;
  }

  .gal-lightbox[hidden] { display: none; }


  @keyframes gal-lb-in {
    from { opacity: 0; }
    to   { opacity: 1; }
  }

.gal-lb-content {
    max-width: 90vw;
    max-height: 88vh;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .gal-lb-content img {
    max-width: 100%;
    max-height: 88vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6);
    animation: gal-img-in 0.22s ease;
  }

  @keyframes gal-img-in {
    from { opacity: 0; transform: scale(0.96); }
    to   { opacity: 1; transform: scale(1); }
  }

  .gal-lb-close,
  .gal-lb-nav {
    position: fixed;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, border-color 0.2s;
    z-index: 1;
  }

  .gal-lb-close:hover,
  .gal-lb-nav:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.6);
  }

  .gal-lb-close { top: 1rem; right: 2rem; width: 42px; height: 42px; }
  .gal-lb-nav   { top: 50%; transform: translateY(-50%); width: 46px; height: 46px; }
  .gal-lb-prev  { left: 6rem; }
  .gal-lb-next  { right: 6rem; }

  .gal-lb-counter {
    position: fixed;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    font-family: system-ui, sans-serif;
  }

  /* ── Responsive ── */
  @media (max-width: 768px) {
    .grid-galery {
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: 200px 160px 160px 160px 160px 200px;
    }

    .gal-item:nth-child(1) { grid-column: 1 / 3; grid-row: 1; }
    .gal-item:nth-child(2) { grid-column: 1;     grid-row: 2; }
    .gal-item:nth-child(3) { grid-column: 2;     grid-row: 2; }
    .gal-item:nth-child(4) { grid-column: 1;     grid-row: 3; }
    .gal-item:nth-child(5) { grid-column: 2;     grid-row: 3; }
    .gal-item:nth-child(6) { grid-column: 1;     grid-row: 4; }
    .gal-item:nth-child(7) { grid-column: 2;     grid-row: 4; }
    .gal-item:nth-child(8) { grid-column: 1 / 3; grid-row: 5; }
    .gal-item:nth-child(9) { grid-column: 1;     grid-row: 6; }
    .gal-item:nth-child(10) { grid-column: 2;     grid-row: 6; }
    .gal-item:nth-child(11) { grid-column: 1 / 3; grid-row: 7; } 

    .gal-lb-close { right: 1rem; }

    .gal-lb-prev { left: 0.4rem; }
    .gal-lb-next { right: 0.4rem; }
  }

    /* ── Lazy loading: skeleton + fade-in ── */

  /* Skeleton pulsante mientras no carga */
  .gal-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      #c8c8b8 25%,
      #d8d8c8 50%,
      #c8c8b8 75%
    );
    background-size: 200% 100%;
    animation: gal-skeleton 1.4s ease infinite;
    z-index: 0;
    transition: opacity 0.3s ease;
  }

  /* Ocultar skeleton cuando la imagen ya cargó */
  .gal-item.gal-loaded::before {
    opacity: 0;
    pointer-events: none;
  }

  @keyframes gal-skeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
  }

  /* Imagen empieza invisible, hace fade-in al cargar */
  .gal-img-lazy {
    opacity: 0;
    transition:
      opacity 0.5s ease,
      transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 1;
    position: relative;
  }

  .gal-img-lazy.gal-img-loaded {
    opacity: 1;
  }

  @media (prefers-reduced-motion: reduce) {
    .gal-item,
    .gal-item img,
    .gal-overlay,
    .gal-item::before {
      transition: none;
      animation: none;
    }
    .gal-img-lazy { opacity: 1; }
  }

/* Section Galery - */

/* Section Render + */
.container-render {
    background-color: var(--bg-section-ligth); 
    max-width: var(--maxwidth-body);
    margin: 0 auto;
    color: var(--text-color-green);
    padding: 10px;
} 

.container-amenities {
    padding: 20px 0px;
}

.container-amenities h2 {
    text-transform: uppercase;
    text-align: center;
    font-size: var(--font-size-small);
}

.wrapper-amenities {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 10px 0px;
}

.wrapper-render {
    border-top: 2px solid var(--line-color-green);
    padding: 20px 0px;
}

.wrapper-render h2 {
    text-align: center;
    color: var(--text-color-green);
    font-size: var(--font-size-small);
    margin-bottom: 20px;
}


.render-video {
    max-width: 900px;
    margin: 0 auto;
    margin-bottom: 10px;
    padding: 20px;
    border-radius: 6px;
    background-color: #000;
    animation: scroll-opacity linear both;
    animation-timeline: view();
    animation-range: entry 8% cover 30%;
}

.render-grid {
    width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: 0px 0px 20px 0px #0005;
}

.grid-render {
    display: grid;
    place-content: center;
    place-items: center;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 5px;
    padding: 8px;
    align-items: center;
}

.grid-render div {
    max-width: 100%;
    height: auto;
    animation: scroll-opacity linear both;
    animation-timeline: view();
    animation-range: entry 8% cover 30%;
}

.grid-render img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 2px 2px 5px 1px #0009;
    aspect-ratio: 16/9;
}

/* Section Render - */

/* Section Maps + */
.container-maps {
    background-color: var(--bg-section-brown); 
    max-width: var(--maxwidth-body);
    margin-left: auto;
    margin-right: auto;
    text-transform: uppercase;
    color: var(--text-color-green);
    padding: 10px;   
}

.wrapper-maps {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 10px 0px;
}

.wrapper-maps h2 {
    text-align: center;
    color: var(--text-color-green);
    font-size: var(--font-size-small);
    margin-bottom: 20px;
}

.wrapper-maps h3 {
    text-align: center;
    color: var(--text-color-primary-ligth);
    font-size: 1rem;
    margin-bottom: 20px;
    text-transform: none;
}

.mapa {
    font-size: var(--font-size-small);
    text-transform: none;
}
/* Section Maps - */

/* Wa fixed + */
.wa-delay {
    animation: delayopacity 1s 6s both;
}

.wa-logo {
    position: fixed;
    right: 40px;
    bottom: 120px;
}

.wa-logo img {
    max-width: 48px;
    margin: 0 auto;
    filter: drop-shadow(0 0 0.60rem #00000099);
}

/* Wa fixed - */

/* Animation + */

@keyframes inicio {
    from{
        opacity: 0;
    }
    to{
        opacity: 1;
    }

}

@keyframes delayopacity {
    from{
        opacity: 0;
    }
    to{
        opacity: 1;
    }
}

@keyframes scroll-opacity {
    from{
        opacity: 0;
    }
    to{
        opacity: 1;
    }
}

/* Animation - */

/* Media Querys + */
@media screen and (min-width:768px) {

    .bg-container {
        background-position: 10% 40%;
    }

    .container-text {
        text-align: end;
        right: 10px;
        bottom: 40px;
        max-width: 650px;
    }

    .container-text h1 {
        font-size: 50px;
    }

/* Section Info General + */
    .info-general {
        flex-wrap: nowrap;
    }

    .info-general p {
        font-size: 42px;
        padding: 10px 60px;
    }

    .wrapper-features {
        margin-top: 20px;
        flex-direction: row;
        border-top: 3px solid var(--line-color-green);
        padding: 30px 50px;
    }

    .icon-text {
        justify-content: center;
        padding: 5px 10px;
    }

    .icon-text p {
        padding-left: 20px;
        font-size: 20px;
    }
    
    .icon-text img {
        max-width: 56px;
    }


    .wa-logo {
        right: 50px;
    }

    .container-sites {
        border-top: 3px solid var(--line-color-green);
        padding: 30px 0px;
    }
    
    .container-sites h2 {
        font-size: var(--font-size-large);
        margin-bottom: 30px;
        letter-spacing: 4px;
    }
    

    .container-amenities {
        padding: 30px 0px;
    }
    
    .container-amenities h2 {
        font-size: var(--font-size-large);
        margin-bottom: 30px;
        letter-spacing: 4px;
    }

    .wrapper-amenities {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-around;
        margin: 10px 0px;
    }

    .wrapper-sites {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-around;
        margin: 10px 0px;
    }

    .icon-text-sites {
        justify-content: center;
        padding: 5px 10px;
        max-width: 33.3%;
    }

    .icon-text-sites p {
        font-size: 20px;
    }
    
    .icon-text-sites img {
        max-width: 56px;
    }

    .wrapper-measures {
        border-top: 3px solid var(--line-color-green);
        padding: 20px 50px;
    }
    
    .measure-grid {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: 1fr;
        gap: 20px;
    }
    
    
    .measure-grid .grid-item {
        font-size: 20px;
    }

    .wrapper-galery h2 {
        font-size: var(--font-size-large);
        margin-bottom: 30px;
        letter-spacing: 4px;
    }

    .wrapper-finance {
        flex-direction: row;
        border-top: 3px solid var(--line-color-green);
        padding: 20px 0px;
    }

    .wrapper-finance .icon-text p{
        font-size: 2rem;
        margin-left: 20px;
    }

/* Section Info General - */


/* Section Render + */
.wrapper-render {
    border-top: 3px solid var(--line-color-green);
}

.wrapper-render h2 {
    font-size: var(--font-size-large);
}

.grid-render {
    grid-template-columns: repeat(2, minmax(300px, 1fr));
    gap: 10px;
}

/* Section Render - */

/* Section Maps + */
.container-maps {
    padding: 30px 0px;
}

.container-maps h2 {
    font-size: var(--font-size-large);
    margin-bottom: 30px;
    letter-spacing: 4px;
}

.wrapper-maps {
    justify-content: space-around;
    margin: 10px 0px;
}

.wrapper-maps h3 {
    text-align: center;
    color: var(--text-color-primary-ligth);
    font-size: var(--font-size-small);
    margin-bottom: 20px;
}
/* Section Maps - */

}

@media screen and (min-width:1024px) {

    .bg-container {
        background-position: 50% 40%;
    }
}
/* Media Querys - */
