@charset "utf-8";
/* CSS Document */

.nav-links a.active{
    color:#c89b60;
}

/* =========================================
   CONTACT HERO
========================================= */

.gallery-hero{

    position:relative;

    height:86vh;

    min-height:720px;

    overflow:hidden;
}

.gallery-hero img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    object-position:center center;
}

.gallery-hero-overlay{
    position:absolute;
    inset:0;
    background:
    linear-gradient(
        rgba(0,0,0,.18),
        rgba(0,0,0,.28)
    );
}

.gallery-hero-content{

    position:absolute;

    left:50%;
    top:55%;

    transform:translate(-50%,-50%);

    width:90%;

    max-width:1000px;

    text-align:center;

    color:#fff;

    z-index:2;
}

.gallery-hero-content h1{

    font-family:'Cormorant Garamond', serif;

    font-size:3.2rem;

    line-height:1.05;

    margin:20px 0;
}

.gallery-hero-content p{

    max-width:760px;

    margin:auto;

    line-height:1.9;

    color:rgba(255,255,255,.9);
}

.gallery-hero-content p a{

    color:#d8b27c;

    font-weight:500;

    text-decoration:none;

    transition:.3s ease;

}

.gallery-hero-content p a:hover{

    color:#ffffff;

}

.gallery-hero-content p a:visited{

    color:#e0c08a;

}

.gallery-hero-content p a:active{

    color:#ffffff;

}

.gallery-meta{

    display:flex;

    justify-content:center;

    gap:15px;

    flex-wrap:wrap;

    margin-top:35px;
}

.gallery-meta span{

    padding:10px 20px;

    border-radius:999px;

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    border:1px solid rgba(255,255,255,.15);

    color:#fff;

    font-size:.85rem;
}

@media(max-width:768px){

.gallery-hero{

height:75vh;

min-height:550px;

}
	
.gallery-hero-content h1{

font-size:2.8rem;

}

}

/* ============================
   COLLECTION GALLERY
============================ */

.gallery-collections{

    padding:120px 0;

    background:#faf8f3;
}

.collection-grid{

    max-width:1300px;

    margin:70px auto 0;

    padding:0 40px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;
}

.collection-card{

    background:#fff;

    border-radius:28px;

    overflow:hidden;

    cursor:pointer;

    transition:.35s ease;

    box-shadow:
    0 15px 40px rgba(0,0,0,.05);
}

.collection-card:hover{

    transform:translateY(-6px);

    box-shadow:
    0 25px 50px rgba(0,0,0,.08);
}

.collection-card img{
    width:100%;
    aspect-ratio: 4 / 3;
    object-fit:cover;
    display:block;
    background:#f3f3f3;
}

.collection-content{

    padding:25px;
}

.collection-content h3{

    margin-bottom:8px;

    font-size:1.2rem;
}

.collection-content span{

    color:#888;
}

.gallery-modal{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.92);

    display:none;

    z-index:99999;

    overflow-y:auto;

    text-align:center;

    padding:80px 40px;
}

.gallery-modal.active{

    display:block;
}

.gallery-modal-image{

    display:block;

    width:auto;

    max-width:1200px;

    width:90%;

    max-height:70vh;

    object-fit:contain;

    margin:0 auto;

    border-radius:16px;
}

.close-gallery{

    position:absolute;

    top:30px;
    right:40px;

    color:#fff;

    font-size:40px;

    cursor:pointer;
}

.gallery-prev,
.gallery-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    background:none;

    border:none;

    color:#fff;

    font-size:60px;

    cursor:pointer;
}

.gallery-prev{

    left:40px;
}

.gallery-next{

    right:40px;
}

.gallery-caption{

    color:#fff;

    text-align:center;

    max-width:900px;

    margin:25px auto 0;

    font-size:1rem;

    line-height:1.8;
}

.photo-count{
    position:absolute;
    top:15px;
    right:15px;

    background:rgba(0,0,0,.65);

    color:white;

    padding:8px 14px;

    border-radius:999px;

    font-size:.95rem;
}

.collection-card{
    position:relative;
	overflow:hidden;
    transition:.35s ease;
}

.collection-card:hover{

    transform:translateY(-8px);

    box-shadow:
    0 25px 60px rgba(0,0,0,.08);
}

.collection-content p{

    color:#888;

    margin-top:8px;

    font-size:.9rem;
}

.gallery-counter{

    position:fixed;

    top:30px;

    left:40px;

    color:#fff;

    background:rgba(255,255,255,.1);

    padding:10px 18px;

    border-radius:999px;

    backdrop-filter:blur(10px);

    z-index:100000;
}

.gallery-thumbnails{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:10px;

    margin:25px auto 0;

    max-width:1000px;
}

.gallery-thumb{

    width:90px;

    height:70px;

    object-fit:cover;

    border-radius:10px;

    cursor:pointer;

    opacity:.65;

    transition:.3s;
}

.gallery-thumb:hover{

    opacity:1;

    transform:translateY(-2px);
}

.gallery-thumb.active{

    opacity:1;

    border:2px solid #d8b16a;
}

@media(max-width:768px){

.gallery-modal{

padding:15px;
}

.gallery-modal-image{

max-height:55vh;
}

.gallery-thumbnails{

display:flex;
overflow-x:auto;
width:100%;
margin-top:15px;
}

.gallery-thumb{

width:70px;
height:70px;
flex-shrink:0;
}
}

/* =========================================
   RESORT HIGHLIGHTS
========================================= */

.gallery-highlights{

    padding:120px 0;

    background:#ffffff;
}

.highlight-grid{

    max-width:1300px;

    margin:70px auto 0;

    padding:0 40px;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;
}


/* CARD */

.highlight-card{

    background:#faf8f3;

    border-radius:30px;

    overflow:hidden;

    transition:.35s ease;
}

.highlight-card:hover{

    transform:translateY(-6px);

    box-shadow:
    0 25px 50px rgba(0,0,0,.08);
}


/* IMAGE */

.highlight-card img{

    width:100%;

    height:260px;

    object-fit:cover;

    display:block;
}


/* CONTENT */

.highlight-content{

    padding:30px;
}

.highlight-content h3{

    margin-bottom:14px;

    font-size:1.4rem;

    color:#1f1f1f;
}

.highlight-content p{

    color:#666;

    line-height:1.8;
}


/* TABLET */

@media(max-width:991px){

.highlight-grid{

grid-template-columns:1fr;

}

}


/* MOBILE */

@media(max-width:768px){

.gallery-highlights{

padding:90px 0;

}

.highlight-grid{

padding:0 20px;

}

.highlight-card img{

height:220px;

}

}

@media(max-width:768px){

.collection-grid{

grid-template-columns:1fr;
gap:20px;
}
}

/* =========================================
   CTA
========================================= */

.final-cta{

    position:relative;

    width:min(1400px,92%);

    margin:90px auto;

    border-radius:40px;

    overflow:hidden;

    min-height:280px;
}


.final-cta img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

}

.cta-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
    rgba(0,0,0,.35),
    rgba(0,0,0,.55)
    );

}

.cta-content{

    position:relative;

    z-index:2;

    max-width:760px;

    margin:auto;

    min-height:350px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:#fff;

    padding:40px;

}

.cta-content span{

    letter-spacing:4px;

    font-size:.8rem;

    opacity:.9;

}

.cta-content h2{

    margin:20px 0;

    font-size:2.6rem;

    line-height:1.1;

}

.cta-content p{

    max-width:700px;

    line-height:1.8;

    opacity:.95;

}

.cta-buttons{

    margin-top:35px;

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

.btn-primary{

    background:#d4b27a;

    color:#111;

    padding:16px 34px;

    border-radius:999px;

    text-decoration:none;

}

.btn-secondary{

    border:1px solid rgba(255,255,255,.5);

    color:#fff;

    padding:16px 34px;

    border-radius:999px;

    text-decoration:none;

}

.cta-note{

    margin-top:25px;

    max-width:700px;

    font-size:.95rem;

    line-height:1.8;

    color:rgba(255,255,255,.85);

}

@media(max-width:768px){

.final-cta{

    min-height:700px;
    margin:70px auto 120px;

}

.cta-content{

    min-height:700px;
    padding:50px 24px 120px;

}

.cta-buttons{

    flex-direction:column;
    width:100%;

}
	
.final-cta .btn-secondary{
    display:none;
}

.btn-primary,
.btn-secondary{

    width:100%;

}

.cta-note{

    margin-top:25px;

}

}

@media(max-width:768px){

.cta-content h2{

font-size:2.2rem;

}

}

.gallery-mini-cta{

padding:90px 40px;
text-align:center;

background:#fff;

max-width:1100px;
margin:80px auto 100px;

border-radius:32px;

box-shadow:
0 15px 50px rgba(0,0,0,.05);
}

.gallery-mini-cta h2{
font-family:'Cormorant Garamond', serif;
font-size:2.2rem;
}

.gallery-mini-cta p{

max-width:700px;
margin:auto;
line-height:1.8;
margin-bottom:35px;
}