/* ===========================
   BLISS BEACH VILLA
   GLOBAL STYLES
=========================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'Inter',sans-serif;

background:#f8f6f2;

color:#2d2d2d;

line-height:1.7;

overflow-x:hidden;

}


/* ===========================
COLORS
=========================== */

:root{

--green:#1f5c47;

--green-dark:#164535;

--gold:#c89d53;

--cream:#f8f6f2;

--white:#ffffff;

--text:#2b2b2b;

--light:#f2efe9;

--shadow:0 20px 60px rgba(0,0,0,.08);

--radius:22px;

}


/* ===========================
HEADINGS
=========================== */

h1,h2,h3{

font-family:'Cormorant Garamond',serif;

font-weight:700;

color:#18382e;

}

h1{

font-size:72px;

line-height:1.05;

}

h2{

font-size:48px;

margin-bottom:20px;

}

h3{

font-size:28px;

margin-bottom:12px;

}

p{

font-size:18px;

color:#555;

}


/* ===========================
LINKS
=========================== */

a{

text-decoration:none;

color:inherit;

}


/* ===========================
SECTION
=========================== */

section{

padding:110px 8%;

}

.section-heading{

text-align:center;

max-width:760px;

margin:auto;

margin-bottom:70px;

}

.section-tag{

letter-spacing:4px;

font-size:14px;

font-weight:700;

color:var(--gold);

text-transform:uppercase;

margin-bottom:15px;

}


/* ===========================
BUTTONS
=========================== */

.primary-btn{

display:inline-block;

background:var(--green);

color:white;

padding:18px 38px;

border-radius:60px;

font-weight:600;

transition:.35s;

box-shadow:var(--shadow);

}

.primary-btn:hover{

background:var(--green-dark);

transform:translateY(-4px);

}

.secondary-btn{

display:inline-block;

padding:18px 38px;

border-radius:60px;

border:2px solid white;

color:white;

font-weight:600;

margin-left:14px;

transition:.35s;

}

.secondary-btn:hover{

background:white;

color:var(--green);

}


/* ===========================
NAVBAR
=========================== */

.navbar{

position:absolute;

top:0;

left:0;

width:100%;

padding:28px 8%;

display:flex;

justify-content:space-between;

align-items:center;

z-index:100;

}

.logo h2{

font-size:28px;

color:white;

margin:0;

}

.logo p{

color:white;

font-size:12px;

opacity:.9;

}

.nav-links{

display:flex;

gap:20px;

list-style:none;

}

.nav-links a{

color:white;

font-weight:500;

transition:.3s;

}

.nav-links a:hover{

color:#ffe1a7;

}

.book-btn{

background:white;

padding:14px 30px;

border-radius:50px;

font-weight:600;

color:var(--green);

transition:.3s;

}

.book-btn:hover{

transform:translateY(-3px);

}


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

.hero{

position:relative;

height:100vh;

display:flex;

align-items:center;

padding:0 8%;

background:url("images/hero.png") center center/cover no-repeat;

}

.overlay{

position:absolute;

inset:0;

background:linear-gradient(

90deg,

rgba(0,0,0,.72),

rgba(0,0,0,.45),

rgba(0,0,0,.18)

);

}

.hero-content{

position:relative;

z-index:5;

max-width:700px;

color:white;

}

.eyebrow{

letter-spacing:5px;

font-size:14px;

text-transform:uppercase;

color:#ffe0a3;

margin-bottom:20px;

}

.hero h1{

color:white;

margin-bottom:24px;

}

.hero-text{

font-size:21px;

line-height:1.8;

color:#f1f1f1;

margin-bottom:35px;

}

.rating{

margin:30px 0;

font-size:20px;

color:#ffd86a;

font-weight:600;

}

.rating span{

margin-left:12px;

color:white;

font-size:18px;

}

.hero-buttons{

margin-top:35px;

}


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

.highlights{

display:grid;

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

gap:30px;

margin-top:-70px;

position:relative;

z-index:20;

}

.highlight{

background:white;

padding:40px;

text-align:center;

border-radius:var(--radius);

box-shadow:var(--shadow);

transition:.35s;

}
.highlight img{
    width:100%;
    height:170px;
    object-fit:cover;
    border-radius:16px;
    margin-bottom:15px;
    display:block;
}
.highlight:hover{

transform:translateY(-8px);

}

.highlight h3{

margin-top:18px;

}


/* ===========================
INTRO
=========================== */

.intro{

display:grid;

grid-template-columns:1fr 1fr;

gap:80px;

align-items:center;

}

.intro-image img{

width:100%;

border-radius:24px;

box-shadow:var(--shadow);

}

.intro-content p{

margin-bottom:22px;

}


/* ===========================
ROOMS
=========================== */

.rooms{

background:white;

}

.room-grid{

display:grid;

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

gap:40px;

}

.room-card{

background:white;

border-radius:24px;

overflow:hidden;

box-shadow:var(--shadow);

transition:.35s;

}

.room-card:hover{

transform:translateY(-8px);

}

.room-card img{

width:100%;

height:330px;

object-fit:cover;

}
.room-image-slider{
    position:relative;
    width:100%;
    height:330px;
    overflow:hidden;
}

.room-slide{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity .8s ease-in-out;
}

.room-slide.active{
    opacity:1;
}
.room-info{

padding:35px;

}

.room-info ul{

margin:20px 0;

padding-left:18px;

}

.room-info li{

margin-bottom:12px;

}
/* ===================================
BEACH STORY
=================================== */

.beach-story{

display:grid;

grid-template-columns:1fr 1fr;

gap:80px;

align-items:center;

background:#fff;

}

.beach-image img{

width:100%;

height:650px;

object-fit:cover;

border-radius:28px;

box-shadow:var(--shadow);

transition:.5s;

}

.beach-image img:hover{

transform:scale(1.03);

}

.beach-text p{

margin-bottom:22px;

}


/* ===================================
WHY US
=================================== */

.why-us{

background:#f7f5ef;

}

.why-grid{

display:grid;

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

gap:30px;

}

.why-card{

background:white;

padding:45px;

border-radius:24px;

text-align:center;

box-shadow:var(--shadow);

transition:.35s;

font-size:18px;

}
.why-card img{
    width:100%;
    height:220px;
    object-fit:cover;
    border-radius:18px;
    margin-bottom:20px;
    display:block;
}
.experience-card img{
    width:100%;
    height:220px;
    object-fit:cover;
    border-radius:18px;
    margin-bottom:20px;
    display:block;
}
.why-card:hover{

transform:translateY(-10px);

}

.why-card h3{

margin:20px 0 12px;

}


/* ===================================
EXPERIENCES
=================================== */

.experience-grid{

display:grid;

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

gap:30px;

}

.experience-card{

background:white;

padding:60px 35px;

border-radius:24px;

text-align:center;

box-shadow:var(--shadow);

transition:.35s;

font-size:24px;

}

.experience-card:hover{

background:var(--green);

color:white;

transform:translateY(-8px);

}

.experience-card:hover h3{

color:white;

}


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

.gallery{

background:white;

}

.gallery-grid{

display:grid;

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

gap:18px;

}

.gallery-grid img{

width:100%;

height:300px;

object-fit:cover;

border-radius:20px;

transition:.45s;

cursor:pointer;

}

.gallery-grid img:hover{

transform:scale(1.05);

box-shadow:0 20px 40px rgba(0,0,0,.18);

}


/* ===================================
REVIEWS
=================================== */

.reviews{

background:#f7f5ef;

}

.review-container{

display:grid;

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

gap:28px;

margin-top:40px;

}

.review-card{

background:white;

padding:40px;

border-radius:24px;

box-shadow:var(--shadow);

transition:.35s;

}

.review-card:hover{

transform:translateY(-8px);

}

.review-card span{

display:block;

margin-top:20px;

color:var(--gold);

font-weight:600;

}

.review-button{

display:inline-block;

margin-top:50px;

padding:18px 40px;

background:var(--green);

color:white;

border-radius:50px;

}

.review-avatar{
    width:60px;
    height:60px;
    border-radius:50%;
    object-fit:cover;
    margin-bottom:15px;
    border:3px solid var(--green);
}

.review-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.review-top h3{
    margin:0;
}
/* ===================================
LOCATION
=================================== */

.location{

display:grid;

grid-template-columns:1fr 1fr;

gap:70px;

align-items:center;

background:white;

}

.location img{

width:100%;

height:500px;

object-fit:cover;

border-radius:25px;

box-shadow:var(--shadow);

}

.location ul{

margin-top:25px;

padding-left:20px;

}

.location li{

margin-bottom:15px;

}


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

.contact{

text-align:center;

background:#f7f5ef;

}

.contact-box{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

margin-top:40px;

}


/* ===================================
FOOTER
=================================== */

footer{

background:#14362b;

color:white;

text-align:center;

padding:80px 20px;

}

footer h2{

color:white;

margin-bottom:20px;

}

footer p{

color:#ddd;

margin-bottom:12px;

}


/* ===================================
ANIMATIONS
=================================== */

img{

transition:.45s;

}

.primary-btn,
.book-btn{

transition:.35s;

}

section{

animation:fadeUp .8s ease;

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(40px);

}

to{

opacity:1;

transform:translateY(0);

}

}
/* ===================================
MOBILE RESPONSIVE
=================================== */

@media(max-width:1100px){

.hero h1{

font-size:58px;

}

.gallery-grid{

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

}

.room-grid,
.intro,
.location,
.beach-story{

grid-template-columns:1fr;

}

.why-grid,
.experience-grid{

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

}

.review-container{

grid-template-columns:1fr;

}

}

@media(max-width:768px){

.navbar{

padding:20px 25px;

}

.nav-links{

display:none;

}

.book-btn{

display:none;

}

.hero{

padding:120px 25px 80px;

height:auto;

min-height:100vh;

}

.hero h1{

font-size:42px;

}

.hero-text{

font-size:17px;

}

.hero-buttons{

display:flex;

flex-direction:column;

gap:15px;

}

.secondary-btn{

margin-left:0;

}

section{

padding:80px 25px;

}

.highlights{

grid-template-columns:1fr;

margin-top:40px;

}

.highlight{

padding:30px;

}

.room-grid{

grid-template-columns:1fr;

}

.gallery-grid{

grid-template-columns:1fr;

}

.gallery-grid img{

height:260px;

}

.why-grid{

grid-template-columns:1fr;

}

.experience-grid{

grid-template-columns:1fr;

}

.location{

grid-template-columns:1fr;

}

.contact-box{

flex-direction:column;

align-items:center;

}

.location img{

height:350px;

}

.beach-image img{

height:420px;

}

.intro-image img{

height:420px;

object-fit:cover;

}

h2{

font-size:36px;

}

}


/* ===================================
FLOATING BUTTONS
=================================== */

.floating-buttons{

position:fixed;

bottom:20px;

right:20px;

display:flex;

flex-direction:column;

gap:14px;

z-index:999;

}

.float-btn{

width:62px;

height:62px;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

background:var(--green);

color:white;

box-shadow:0 15px 35px rgba(0,0,0,.25);

transition:.35s;

}

.float-btn:hover{

transform:scale(1.1);

background:var(--green-dark);

}


/* ===================================
IMAGE HOVER
=================================== */

.gallery-grid img,
.room-card img,
.intro img,
.beach-image img{

filter:saturate(108%) contrast(104%);

}

.gallery-grid img:hover,
.room-card:hover img{

transform:scale(1.08);

}


/* ===================================
SECTION DIVIDER
=================================== */

section{

position:relative;

}

section::after{

content:"";

position:absolute;

left:0;

bottom:-1px;

width:100%;

height:60px;

background:linear-gradient(to bottom,
transparent,
rgba(255,255,255,.25));

pointer-events:none;

}


/* ===================================
SCROLLBAR
=================================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#f3f3f3;

}

::-webkit-scrollbar-thumb{

background:var(--green);

border-radius:20px;

}


/* ===================================
SELECTION
=================================== */

::selection{

background:var(--gold);

color:white;

}


/* ===================================
SMOOTH FADE
=================================== */

.hero,
section,
footer{

animation:fadeIn .8s ease;

}

@keyframes fadeIn{

from{

opacity:0;

transform:translateY(25px);

}

to{

opacity:1;

transform:translateY(0);

}

   }
#lightbox{

position:fixed;

inset:0;

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

display:none;

align-items:center;

justify-content:center;

z-index:9999;

}

#lightbox.active{

display:flex;

}

#lightbox img{

max-width:90%;

max-height:90%;

border-radius:18px;

box-shadow:0 20px 60px rgba(0,0,0,.4);

}
