/* RESET */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}


.card,
.feature-box,
.villa-card,
.contact-form{
background:white;
}

h1{
color:#ecf2f0;
}

h2,h3{
color:#010705;
}


.gold{
color:#d4b06a;
}


/* COMMON SECTION TITLE */

.section-title{
text-align:center;
max-width:800px;
margin:auto;
margin-bottom:70px;
}

.section-title h5{
color:#c6a05d;
letter-spacing:3px;
font-size:14px;
margin-bottom:15px;
}

.section-title h2{
font-size:55px;
font-family:'Playfair Display',serif;
color:#0f3b2f;
margin-bottom:20px;
}

.section-title p{
color:gray;
line-height:1.8;
}




/* NAVBAR */

.navbar{
display:flex;
justify-content:space-between;
align-items:center;
padding:18px clamp(18px,4vw,8%);
gap:20px;
}

.logo{
flex:0 0 auto;
min-width:220px;
}

.logo h2{
font-family:'Playfair Display',serif;
font-size:30px;
line-height:1;
letter-spacing:.03em;
color:white;
}

.logo p{
font-size:12px;
letter-spacing:4px;
color:#ddd;
margin-top:6px;
}


/* LINKS */

.nav-links{
display:flex;
align-items:center;
gap:18px;
list-style:none;
flex:1 1 auto;
min-width:0;
justify-content:flex-end;
margin-left:0;
}

.nav-links > li{
flex:0 0 auto;
display:flex;
align-items:center;
}

.nav-links a{
color:white;
text-decoration:none;
font-weight:500;
font-size:15px;
white-space:nowrap;
transition:.3s;
}

.nav-links a:hover{
color:#d4b06a;
}


/* BOOK BUTTON */

.book-btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
min-width:138px;
height:48px;
padding:0 22px;
border-radius:999px;
background:linear-gradient(135deg,#e1bc69 0%,#d4b06a 45%,#c99a45 100%);
border:1px solid rgba(255,255,255,.24);
color:white !important;
font-weight:700;
letter-spacing:.2px;
white-space:nowrap;
box-shadow:0 14px 30px rgba(212,176,106,.28);
position:relative;
overflow:hidden;
transition:.3s ease;
transform:translateZ(0);
}

.book-btn::after{
content:"";
position:absolute;
top:0;
left:-120%;
width:90%;
height:100%;
background:linear-gradient(120deg,transparent,rgba(255,255,255,.32),transparent);
transform:skewX(-18deg);
transition:left .6s ease;
}

.book-btn:hover::after{
left:130%;
}

.book-btn:hover{
background:linear-gradient(135deg,#0f3b2f 0%,#134838 100%);
color:#fff !important;
transform:translateY(-3px);
box-shadow:0 18px 38px rgba(15,59,47,.28);
}

.admin-btn{
display:inline-flex;
position:relative;
align-items:center;
width:48px;
height:48px;
padding:0;
border-radius:50%;
justify-content:center;
text-indent:0;
border:1px solid rgba(255,255,255,.32);
color:white !important;
background:rgba(255,255,255,.10);
backdrop-filter:blur(8px);
transition:.3s ease;
box-shadow:0 10px 22px rgba(0,0,0,.12);
font-size:0;
line-height:0;
overflow:hidden;
}

.admin-btn:hover{
color:#fff !important;
background:rgba(212,176,106,.28);
border-color:rgba(212,176,106,.55);
transform:translateY(-2px);
box-shadow:0 16px 30px rgba(0,0,0,.16);
}

.admin-btn i{
font-size:17px;
line-height:1;
margin:0;
display:block;
position:relative;
left:0;
}

.admin-btn::after{
content:"";
position:absolute;
inset:0;
border-radius:50%;
box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
pointer-events:none;
}


/* SEARCH */

.nav-search{
position:relative;
display:flex;
align-items:center;
background:white;
border-radius:50px;
height:48px;
width:240px;
box-shadow:0 8px 24px rgba(0,0,0,.08);
transition:width .3s,box-shadow .3s;
}

.nav-search:focus-within{
width:280px;
box-shadow:0 12px 32px rgba(0,0,0,.16);
}

.nav-search input{
flex:1;
min-width:0;
height:48px;
border:none;
outline:none;
padding:0 8px 0 18px;
border-radius:50px 0 0 50px;
background:white;
color:#1e2d28;
font-size:14px;
}

.nav-search button{
flex:0 0 48px;
width:48px;
height:48px;
border:none;
background:#d4b06a;
color:white;
cursor:pointer;
border-radius:0 50px 50px 0;
transition:.25s;
}

.nav-search button:hover{
background:#0f3b2f;
}

.search-results{
position:absolute;
top:calc(100% + 12px);
right:0;
width:390px;
padding:8px;
border:1px solid rgba(15,59,47,.08);
border-radius:20px;
background:#fff;
box-shadow:0 22px 55px rgba(0,0,0,.2);
opacity:0;
visibility:hidden;
transform:translateY(-7px);
transition:opacity .2s,visibility .2s,transform .2s;
z-index:10020;
}

.search-results.active{
opacity:1;
visibility:visible;
transform:translateY(0);
}

.search-result{
width:100%;
min-height:72px;
display:grid;
grid-template-columns:54px 1fr auto;
align-items:center;
gap:13px;
padding:9px;
border:0;
border-radius:15px;
background:transparent;
color:#26342f;
text-align:left;
text-decoration:none;
cursor:pointer;
transition:.2s;
}

.search-result:hover,
.search-result.is-active{
background:#f5f3eb;
transform:none;
}

.search-result img{
width:54px;
height:54px;
border-radius:13px;
object-fit:cover;
}

.search-result-copy{
min-width:0;
display:flex;
flex-direction:column;
gap:3px;
}

.search-result-copy strong{
overflow:hidden;
color:#0f3b2f;
font:600 17px 'Playfair Display',serif;
text-overflow:ellipsis;
white-space:nowrap;
}

.search-result-copy span{
color:#737d79;
font-size:12px;
}

.search-result>i{
margin-right:8px;
color:#d4b06a;
font-size:12px;
}

.search-result-empty{
grid-template-columns:46px 1fr auto;
padding:12px;
}

.search-result-empty .search-empty-icon{
width:46px;
height:46px;
display:grid;
place-items:center;
border-radius:13px;
background:#eef4ef;
color:#0f3b2f;
font-size:17px;
}

.search-result-empty .search-result-copy strong{
font-family:'Poppins',sans-serif;
font-size:14px;
}

.search-result-empty .search-result-copy span{
line-height:1.45;
}

@media(max-width:1200px){
.logo{
min-width:190px;
}

.logo h2{
font-size:26px;
}

.nav-links{
gap:14px;
}

.nav-search,
.nav-search:focus-within{
width:215px;
}

.book-btn{
min-width:126px;
padding:0 18px;
}
}

@media(max-width:900px){
.nav-links.active .nav-search,
.nav-links.active .nav-search:focus-within{
width:100%;
}

.nav-links.active .search-results{
position:relative;
top:8px;
right:auto;
width:100%;
margin-bottom:8px;
box-shadow:0 14px 35px rgba(0,0,0,.16);
}
}


/* HAMBURGER */

.hamburger{
display:none;
flex-direction:column;
cursor:pointer;
}

.hamburger span{
width:30px;
height:3px;
background:white;
margin:4px;
}


/* FOOTER */

footer{
background:#0b2f24;
color:white;
padding-top:100px;
}

.footer-container{
padding:0 8%;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:60px;
}

.footer-col h2,
.footer-col h3{
margin-bottom:25px;
font-family:'Playfair Display',serif;
color:#d4b06a;
letter-spacing:.3px;
}

.footer-col p{
line-height:2;
color:#f5f3eb;
}

.footer-col a{
display:block;
text-decoration:none;
color:#f5f3eb;
margin-bottom:15px;
transition:.3s;
}

.footer-col a:hover{
color:#d4b06a;
transform:translateX(4px);
}

.footer-contact-link{
display:flex !important;
align-items:center;
gap:12px;
line-height:1.7;
color:#f5f3eb !important;
margin-bottom:14px;
}

.footer-contact-link i{
width:18px;
color:#d4b06a;
font-size:17px;
text-align:center;
}

.footer-social-link i{
color:#e4405f;
}

.copyright{
border-top:1px solid rgba(255,255,255,.1);
margin-top:60px;
padding:35px;
text-align:center;
}


/* WHATSAPP */

.whatsapp{
position:fixed;

left:30px;
bottom:30px;

width:70px;
height:70px;

background:#25D366;
color:white;

display:flex;
justify-content:center;
align-items:center;

border-radius:50%;

font-size:38px;

text-decoration:none;

box-shadow:0 15px 40px rgba(37,211,102,.35);

z-index:9999;

transition:.4s;
}

.whatsapp:hover{
transform:scale(1.1);
background:#1ebe5d;
}

/* TOP BUTTON */

#topBtn{
position:fixed;

right:25px;
bottom:25px;

width:60px;
height:60px;

border:none;

background:#d4b06a;

color:white;

font-size:22px;
line-height:1;

display:flex;
align-items:center;
justify-content:center;
padding:0;

border-radius:50%;

cursor:pointer;

z-index:999;
}


/* LOADER */

#loader{
position:fixed;
top:0;
left:0;

width:100%;
height:100vh;

background:#0f3b2f;

display:flex;
justify-content:center;
align-items:center;

z-index:99999;

transition:.5s;
}

.loader-content{
text-align:center;
}

.loader-content h1{
font-size:70px;
font-family:'Playfair Display',serif;
color:white;
margin-bottom:20px;
}

.loader-content p{
letter-spacing:8px;
color:#d4b06a;
}

.loader-hidden{
opacity:0;
visibility:hidden;
}


/* MOBILE */

@media(max-width:900px){

.nav-links{
display:none;
}

.nav-links.active{
position:absolute;
top:78px;
left:12px;
right:12px;
display:flex;
flex-direction:column;
align-items:stretch;
gap:10px;
padding:18px;
border-radius:24px;
background:rgba(15,59,47,.97);
box-shadow:0 18px 45px rgba(0,0,0,.22);
}

.nav-links.active>li,
.nav-links.active>li>a{
width:100%;
}

.nav-links.active>li>a{
display:block;
padding:12px 14px;
border-radius:14px;
background:rgba(255,255,255,.06);
}

.nav-links.active .nav-search{
width:100%;
max-width:none;
}

.nav-links.active .nav-search input{
font-size:14px;
}

.nav-links.active .book-btn{
text-align:center;
}

.hamburger{
display:flex;
}

.hamburger span{
transition:.3s;
}

.hamburger.active span:nth-child(1){
transform:translateY(11px) rotate(45deg);
}

.hamburger.active span:nth-child(2){
opacity:0;
}

.hamburger.active span:nth-child(3){
transform:translateY(-11px) rotate(-45deg);
}

.logo h2{
font-size:26px;
}

.logo{
min-width:auto;
}

.section-title h2{
font-size:40px;
}

}

@media(max-width:600px){

.navbar{
padding:14px 14px;
}

.logo{
min-width:auto;
}

.logo h2{
font-size:18px;
line-height:1.05;
}

.logo p{
font-size:9px;
letter-spacing:2px;
}

.nav-links.active{
top:70px;
left:10px;
right:10px;
padding:16px;
}

.nav-links.active>li>a{
font-size:15px;
}

.section-title{
margin-bottom:48px;
}

.section-title h2{
font-size:34px;
line-height:1.12;
}

.section-title p{
font-size:14px;
line-height:1.7;
}

}

/* LIGHTBOX */

.lightbox{
position:fixed;
top:0;
left:0;

width:100%;
height:100vh;

background:rgba(0,0,0,.92);

display:none;

justify-content:center;
align-items:center;

padding:30px;

z-index:99999;
}

.lightbox.active{
display:flex;
}

.lightbox-img{
max-width:90%;
max-height:90vh;
border-radius:20px;
box-shadow:0 15px 40px rgba(255,255,255,.15);
}

.close-lightbox{
position:absolute;

top:30px;
right:50px;

font-size:60px;
color:white;
cursor:pointer;
}

/* =====================================
SHARED PREMIUM BOOKING EXPERIENCE
===================================== */

:root{
--skyden-green:#0f3b2f;
--skyden-gold:#d4b06a;
--skyden-cream:#f5f3eb;
--skyden-blue:#1976d2;
}

body{
font-family:'Poppins',sans-serif;
background:var(--skyden-cream);
color:#17231f;
}

body.calendar-open{
overflow:hidden;
}

#header{
position:fixed;
top:0;
left:0;
width:100%;
z-index:9999;
background:transparent;
transition:transform .35s ease,background .35s ease,box-shadow .35s ease;
}

#header.sticky{
background:rgba(15,59,47,.82);
backdrop-filter:blur(16px);
-webkit-backdrop-filter:blur(16px);
box-shadow:0 10px 35px rgba(0,0,0,.12);
}

.booking-widget-section{
position:relative;
z-index:100;
width:min(1500px,92%);
margin:-72px auto 80px;
}

.booking-box{
display:grid;
grid-template-columns:1.35fr 1fr 1fr .85fr .8fr;
gap:16px;
align-items:end;
padding:30px;
background:#fff;
border-radius:35px;
box-shadow:0 15px 50px rgba(0,0,0,.1);
}

.booking-item{
min-width:0;
}

.booking-item label{
display:block;
margin:0 0 9px 8px;
color:var(--skyden-green);
font-size:13px;
font-weight:600;
letter-spacing:.04em;
}

.booking-item input,
.booking-item select{
width:100%;
height:75px;
padding:0 20px;
border:1px solid #e2e5e2;
border-radius:20px;
outline:none;
background:#fafbf9;
color:#17231f;
font:500 16px 'Poppins',sans-serif;
transition:border-color .25s,box-shadow .25s,background .25s;
}

.booking-item input{
cursor:pointer;
}

.booking-item input:focus,
.booking-item select:focus{
background:#fff;
border-color:var(--skyden-gold);
box-shadow:0 0 0 4px rgba(212,176,106,.15);
}

.booking-widget-submit{
height:75px;
padding:0 24px;
border:0;
border-radius:25px;
background:var(--skyden-green);
color:#fff;
font-size:16px;
font-weight:600;
cursor:pointer;
transition:.3s;
}

.booking-widget-submit:hover{
background:var(--skyden-gold);
transform:translateY(-2px);
box-shadow:0 12px 24px rgba(212,176,106,.26);
}

.legacy-calendar-popup{
display:none !important;
}

.calendar-popup{
position:fixed;
inset:0;
width:auto;
max-width:none;
padding:24px;
display:flex;
align-items:center;
justify-content:center;
background:rgba(0,0,0,.35);
opacity:0;
visibility:hidden;
transform:none;
z-index:100000;
transition:opacity .25s,visibility .25s;
}

.calendar-popup.active{
display:flex;
opacity:1;
visibility:visible;
}

.popup-calendar-card{
width:min(1100px,100%);
max-height:calc(100vh - 48px);
overflow:auto;
padding:40px;
background:#fff;
border-radius:30px;
box-shadow:0 30px 80px rgba(0,0,0,.2);
transform:translateY(15px) scale(.985);
transition:transform .25s;
}

.calendar-popup.active .popup-calendar-card{
transform:translateY(0) scale(1);
}

.popup-header,
.calendar-navigation{
display:flex;
align-items:center;
justify-content:space-between;
}

.popup-header{
margin-bottom:18px;
}

.popup-header h2{
font:600 clamp(30px,4vw,44px) 'Playfair Display',serif;
color:var(--skyden-green);
}

.calendar-eyebrow{
display:block;
margin-bottom:5px;
color:var(--skyden-gold);
font-size:12px;
font-weight:600;
letter-spacing:.2em;
}

.calendar-close,
.calendar-navigation button{
display:grid;
place-items:center;
border:0;
border-radius:50%;
cursor:pointer;
transition:.25s;
}

.calendar-close{
width:48px;
height:48px;
background:#f3f3ef;
color:var(--skyden-green);
font-size:30px;
}

.calendar-navigation{
padding:12px 0 24px;
border-bottom:1px solid #ecece7;
}

.calendar-navigation p{
color:#66706c;
font-size:14px;
}

.calendar-navigation button{
width:44px;
height:44px;
background:var(--skyden-green);
color:#fff;
}

.calendar-close:hover,
.calendar-navigation button:hover{
background:var(--skyden-gold);
color:#fff;
transform:translateY(-2px);
}

.calendar-months{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:44px;
padding:28px 0;
}

.calendar-month h3{
margin-bottom:20px;
text-align:center;
font:600 25px 'Playfair Display',serif;
color:var(--skyden-green);
}

.calendar-grid{
display:grid;
grid-template-columns:repeat(7,minmax(0,1fr));
gap:8px;
}

.calendar-grid>div{
padding:5px 0 9px;
text-align:center;
color:#7e8783;
font-size:12px;
font-weight:600;
}

.calendar-day{
position:relative;
min-height:70px;
padding:8px 4px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:4px;
border:0;
border-radius:15px;
background:#e9f6e5;
color:var(--skyden-green);
cursor:pointer;
transition:transform .2s,box-shadow .2s,background .2s;
}

.calendar-day strong{
font-size:18px;
line-height:1;
}

.calendar-day small{
font-size:10px;
font-weight:600;
}

.calendar-day:not(:disabled):hover{
transform:translateY(-3px);
box-shadow:0 8px 18px rgba(15,59,47,.13);
}

.calendar-day.is-booked{
background:#e63946;
color:#fff;
pointer-events:none;
}

.calendar-day.is-past{
background:#eceeeb;
color:#929894;
opacity:.4;
pointer-events:none;
}

.calendar-day.is-in-range{
background:#d9ebff;
color:#125ca7;
border-radius:8px;
}

.calendar-day.is-checkin,
.calendar-day.is-checkout{
background:var(--skyden-blue);
color:#fff;
border-radius:50%;
box-shadow:0 8px 20px rgba(25,118,210,.28);
}

.calendar-legend{
display:flex;
align-items:center;
justify-content:center;
flex-wrap:wrap;
gap:20px 30px;
padding-top:24px;
border-top:1px solid #ecece7;
color:#59635f;
font-size:13px;
}

.calendar-legend span{
display:flex;
align-items:center;
gap:8px;
}

.legend-dot{
width:13px;
height:13px;
border-radius:50%;
display:inline-block;
}

.legend-dot.available{background:#7fbd72}
.legend-dot.booked{background:#e63946}
.legend-dot.checkin{background:#1976d2}
.legend-diamond{
width:12px;
height:12px;
display:inline-block;
background:#1976d2;
transform:rotate(45deg);
border-radius:2px;
}

@media(max-width:1050px){
.booking-box{
grid-template-columns:repeat(2,minmax(0,1fr));
}

.booking-widget-submit{
grid-column:1/-1;
}
}

@media(max-width:700px){
.booking-widget-section{
width:calc(100% - 28px);
margin:-45px auto 60px;
}

.booking-box{
grid-template-columns:1fr;
padding:20px;
border-radius:28px;
gap:14px;
}

.booking-widget-submit{
grid-column:auto;
}

.booking-item input,
.booking-item select,
.booking-widget-submit{
height:64px;
}

.calendar-popup{
padding:10px;
align-items:flex-end;
}

.popup-calendar-card{
max-height:92vh;
padding:24px 16px 20px;
border-radius:26px 26px 0 0;
}

.calendar-months{
grid-template-columns:1fr;
gap:0;
padding:20px 0;
}

.calendar-month:nth-child(2){
display:none;
}

.calendar-day{
min-height:58px;
border-radius:13px;
}

.calendar-day strong{
font-size:16px;
}

.calendar-day small{
font-size:8px;
}

.calendar-navigation p{
font-size:12px;
}

.calendar-legend{
justify-content:flex-start;
gap:13px 18px;
}
}

