/*************************************************
BAAN BO RAN VILLAGE
samui.website premium framework
*************************************************/

:root{
--bg:#f3efe8;
--bg-dark:#191714;
--text:#2b2927;
--text-light:#6d675f;
--green:#56614e;
--green-light:#7a8772;
--gold:#b48d5b;
--white:#ffffff;
--border:rgba(0,0,0,.08);
--shadow-lg:
0 35px 90px rgba(0,0,0,.12);
--shadow:
0 18px 45px rgba(0,0,0,.08);
--radius:24px;
--radius-lg:38px;
--container:1380px;
--transition:.45s cubic-bezier(.2,.8,.2,1);
}

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

html{
scroll-behavior:smooth;
}
html {
        scroll-behavior: smooth;
        scroll-padding-top: 96px;
      }

      section[id] {
        scroll-margin-top: 96px;
      }
   @media (max-width: 980px) {
  .site-header nav {
    position: fixed;
    top: 82px;
    left: 17px;
    right: 17px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    background: rgba(17,17,17,.97);
    box-shadow: 0 24px 60px rgba(0,0,0,.3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transition:
      opacity .25s ease,
      visibility .25s ease,
      transform .25s ease;
  }

  .site-header nav.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .site-header nav a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 14px;
    border-radius: 10px;
  }

  .site-header nav a::after {
    display: none;
  }

  .site-header nav a:hover {
    background: rgba(255,255,255,.08);
  }

  .site-header nav .book-btn {
    justify-content: center;
    margin-top: 8px;
    color: #222;
    background: #fff;
  }

  body.menu-open {
    overflow: hidden;
  }
}

body{
font-family:Manrope,sans-serif;
background:var(--bg);
color:var(--text);
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility;
overflow-x:hidden;
}

img{
display:block;
max-width:100%;
}

a{
text-decoration:none;
color:inherit;
}

.container{
width:min(var(--container),calc(100% - 60px));
margin:auto;
}

section{
position:relative;
}
h1,
h2,

h3{
font-family:"Cormorant Garamond",serif;
font-weight:600;
line-height:.95;
letter-spacing:-.04em;
}

p{
line-height:1.9;
color:var(--text-light);
}

::selection{
background:var(--green);
color:#fff;
}

/*************************************************
HEADER
*************************************************/

.site-header{
position:fixed;
top:0;
left:0;
right:0;
z-index:999;
transition:var(--transition);
}

.logo {
    display: block;
    width: clamp(130px, 16vw, 180px);
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
    margin-top: 45px;
    transition:
        width 0.35s ease,
        margin-top 0.35s ease,
        transform 0.35s ease;
}

.site-header.scrolled .logo {
    width: 115px;
    margin-top: 8px;
}

.site-header.scrolled {
    background: rgba(24, 22, 20, 0.72);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

@media (max-width: 768px) {
    .logo {
        width: 135px !important;
        margin-top: 55px;
    }

    .site-header.scrolled .logo {
        width: 100px;
        margin-top: 6px;
    }
}

.header-inner{
height:94px;
display:flex;
justify-content:space-between;
align-items:center;
}

.logo{
font-family:"Cormorant Garamond",serif;
font-size:34px;
font-weight:600;
color:white;
letter-spacing:.08em;
}

.logo span{
display:block;
font-size:11px;
font-family:Manrope;
letter-spacing:.34em;
text-transform:uppercase;
opacity:.6;
margin-top:2px;
}

nav{
display:flex;
align-items:center;
gap:42px;
}

nav a{
font-size:14px;
letter-spacing:.18em;
text-transform:uppercase;
font-weight:600;
color:white;
position:relative;
}

nav a:after{
content:"";
position:absolute;
left:0;
bottom:-8px;
width:0;
height:2px;
background:var(--gold);
transition:var(--transition);
}

nav a:hover:after{
width:100%;
}

.book-btn{
height:52px;
padding:0 28px;
display:flex;
align-items:center;
border-radius:999px;
background:white;
color:#222;
font-size:14px;
font-weight:700;
transition:var(--transition);
}

.book-btn:hover{
transform:translateY(-3px);
}

/*************************************************
MOBILE NAV
*************************************************/

.mobile-toggle{
display:none;
width:48px;
height:48px;
border-radius:50%;
border:none;
background:rgba(255,255,255,.12);
color:white;
font-size:20px;
cursor:pointer;
}

/*************************************************
HERO
*************************************************/

.hero{
height:100vh;
min-height:860px;
position:relative;
overflow:hidden;
background:#111;
}

.hero-image{
position:absolute;
inset:0;
overflow:hidden;
}

.hero-image img{
width:100%;
height:100%;
object-fit:cover;
transform:scale(1.08);
animation:heroZoom 14s ease forwards;
}

.hero-overlay{
position:absolute;
inset:0;
background:
linear-gradient(
90deg,
rgba(18,16,15,.82) 0%,
rgba(18,16,15,.48) 42%,
rgba(18,16,15,.18) 100%
),
linear-gradient(
180deg,
rgba(0,0,0,.15),
rgba(0,0,0,.46)
);
}

.hero-content{
position:relative;
z-index:5;
height:100%;
display:flex;
align-items:center;
}

.hero-copy{
max-width:720px;
padding-top:120px;
animation:fadeUp 1.3s ease;
}

.hero-kicker{
display:inline-block;
margin-bottom:28px;
letter-spacing:.34em;
text-transform:uppercase;
font-size:13px;
color:#dfd4c5;
}

.hero h1{
font-size:clamp(78px,9vw,132px);
color:white;
margin-bottom:34px;
}

.hero p{
font-size:20px;
max-width:580px;
color:rgba(255,255,255,.82);
margin-bottom:42px;
}

.hero-buttons{
display:flex;
gap:18px;
}

.hero-btn{
height:58px;
padding:0 34px;
display:flex;
align-items:center;
justify-content:center;
border-radius:999px;
font-weight:700;
transition:var(--transition);
}

.hero-btn.primary{
background:white;
color:#222;
}

.hero-btn.secondary{
border:1px solid rgba(255,255,255,.28);
background:rgba(255,255,255,.06);
backdrop-filter:blur(12px);
color:white;
}

.hero-btn:hover{
transform:translateY(-3px);
}

/*************************************************
SCROLL INDICATOR
*************************************************/

.scroll-indicator{
position:absolute;
left:50%;
bottom:40px;
transform:translateX(-50%);
display:flex;
flex-direction:column;
align-items:center;
color:white;
font-size:12px;
letter-spacing:.26em;
text-transform:uppercase;
z-index:10;
animation:float 2.2s ease infinite;
}

.scroll-indicator i{
margin-top:14px;
font-size:18px;
}

/*************************************************
FLOAT BUTTONS
*************************************************/

.float-buttons{
position:fixed;
right:20px;
bottom:20px;
display:grid;
gap:12px;
z-index:999;
}

.float-btn{
width:56px;
height:56px;
border-radius:18px;
display:grid;
place-items:center;
background:#181818;
color:white;
box-shadow:var(--shadow);
transition:var(--transition);
}

.float-btn.whatsapp{
background:#25D366;
}

.float-btn:hover{
transform:translateY(-4px);
}

/*************************************************
ANIMATIONS
*************************************************/

@keyframes heroZoom{
to{
transform:scale(1);
}
}

@keyframes fadeUp{
from{
opacity:0;
transform:translateY(40px);
}
to{
opacity:1;
transform:none;
}
}

@keyframes float{
50%{
transform:
translateX(-50%)
translateY(-8px);
}
}

/*************************************************
RESPONSIVE
*************************************************/

@media(max-width:980px){
nav{
display:none;
}
.mobile-toggle{
display:block;
}
.hero{
min-height:720px;
}
.hero h1{
font-size:72px;
}
.hero p{
font-size:18px;
}
}

@media(max-width:640px){
.container{
width:calc(100% - 34px);
}
.header-inner{
height:82px;
}
.logo{
font-size:28px;
}
.hero{
min-height:720px;
}
.hero-copy{
padding-top:80px;
}
.hero h1{
font-size:54px;
}
.hero-buttons{
display:grid;
}
.hero-btn{
width:100%;
}
.hero p{
font-size:17px;
}
}

/*==================================================
HERITAGE
==================================================*/

.heritage-section{
padding:170px 0;
background:#f6f2eb;
}

.heritage-grid{
display:grid;
grid-template-columns:1.1fr .9fr;
gap:90px;
align-items:center;
}

.heritage-image{
overflow:hidden;
border-radius:34px;
box-shadow:0 40px 90px rgba(0,0,0,.12);
}

.heritage-image img{
width:100%;
height:760px;
object-fit:cover;
transition:.9s;
}

.heritage-image:hover img{
transform:scale(1.06);
}

.section-kicker{
display:inline-block;
margin-bottom:18px;
font-size:13px;
letter-spacing:.32em;
font-weight:700;
color:#7d6d57;
text-transform:uppercase;
}

.heritage-content h2{
font-size:72px;
margin-bottom:40px;
color:#1f1d1a;
}

.heritage-content p{
font-size:18px;
margin-bottom:26px;
max-width:620px;
}

.outline-button{
display:inline-flex;
align-items:center;
gap:16px;
margin-top:20px;
padding:18px 34px;
border:1px solid #d9cec0;
border-radius:999px;
font-weight:700;
transition:.35s;
}

.outline-button:hover{
background:#56614e;
border-color:#56614e;
color:white;
transform:translateY(-3px);
}

.quote-section{
padding:130px 0;
background:white;
text-align:center;
}

.quote-section blockquote{
max-width:980px;
margin:auto;
font-family:"Cormorant Garamond",serif;
font-size:64px;
line-height:1.15;
font-weight:500;
color:#2b2927;
}

@media(max-width:980px){
.heritage-grid{
grid-template-columns:1fr;
gap:60px;
}
.heritage-image img{
height:500px;
}
.heritage-content h2{
font-size:52px;
}
.quote-section blockquote{
font-size:44px;
}
}

@media(max-width:640px){
.heritage-section{
padding:90px 0;
}
.heritage-content h2{
font-size:42px;
}
.heritage-content p{
font-size:16px;
}
.quote-section{
padding:90px 0;
}
.quote-section blockquote{
font-size:34px;
}
}

/*==================================================
EXPERIENCE STRIP
==================================================*/

.experience-strip{
display:grid;
grid-template-columns:repeat(3,1fr);
}

.experience-card{
position:relative;
height:520px;
overflow:hidden;
cursor:pointer;
}

.experience-card img{
width:100%;
height:100%;
object-fit:cover;
transition:1.2s;
}

.experience-card:hover img{
transform:scale(1.08);
}

.experience-overlay{
position:absolute;
inset:0;
padding:60px;
display:flex;
flex-direction:column;
justify-content:flex-end;
background:linear-gradient(
180deg,
rgba(0,0,0,0),
rgba(0,0,0,.72)
);
color:white;
}

.experience-overlay span{
letter-spacing:.28em;
text-transform:uppercase;
font-size:12px;
margin-bottom:12px;
opacity:.75;
}

.experience-overlay h3{
font-size:48px;
line-height:.95;
}

/*==================================================
TIMELINE
==================================================*/

.timeline-section{
padding:170px 0;
background:#f8f6f2;
}

.section-heading{
margin-bottom:90px;
max-width:700px;
}

.section-heading h2{
font-size:72px;
}

.timeline{
position:relative;
padding-left:80px;
}

.timeline:before{
content:"";
position:absolute;
left:24px;
top:0;
bottom:0;
width:2px;
background:#d9d0c5;
}

.timeline-item{
position:relative;
display:grid;
grid-template-columns:120px 1fr;
gap:40px;
margin-bottom:90px;
}

.timeline-item:last-child{
margin-bottom:0;
}

.timeline-item:before{
content:"";
position:absolute;
left:-67px;
top:14px;
width:18px;
height:18px;
border-radius:50%;
background:#56614e;
box-shadow:0 0 0 8px #f8f6f2;
}

.timeline-year{
font-family:"Cormorant Garamond",serif;
font-size:64px;
color:#b28b5a;
}

.timeline-content h3{
font-size:42px;
margin-bottom:20px;
}

.timeline-content p{
font-size:18px;
max-width:650px;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:980px){
.experience-strip{
grid-template-columns:1fr;
}
.experience-card{
height:380px;
}
.section-heading h2{
font-size:52px;
}
.timeline{
padding-left:40px;
}
.timeline-item{
grid-template-columns:1fr;
gap:20px;
}
.timeline-year{
font-size:48px;
}
.timeline-content h3{
font-size:34px;
}
}

@media(max-width:640px){
.timeline-section{
padding:90px 0;
}
.section-heading{
margin-bottom:60px;
}
.section-heading h2{
font-size:42px;
}
.experience-overlay{
padding:35px;
}
.experience-overlay h3{
font-size:36px;
}
.timeline-content h3{
font-size:30px;
}
.timeline-content p{
font-size:16px;
}
}

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

.section-heading.centre{
text-align:center;
max-width:900px;
margin:0 auto 90px;
}

.section-heading.centre p{
margin:30px auto 0;
max-width:720px;
}

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

.accommodation-section{
padding:170px 0;
background:#fff;
}

.room-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:40px;
}

.room-card{
background:#faf8f5;
border-radius:28px;
overflow:hidden;
transition:.45s;
box-shadow:0 20px 60px rgba(0,0,0,.05);
}

.room-card:hover{
transform:translateY(-10px);
box-shadow:0 35px 80px rgba(0,0,0,.12);
}

.room-image{
overflow:hidden;
}

.room-image img{
width:100%;
height:340px;
object-fit:cover;
transition:1s;
}

.room-card:hover img{
transform:scale(1.08);
}

.room-content{
padding:40px;
}

.room-content span{
display:block;
margin-bottom:14px;
font-size:12px;
text-transform:uppercase;
letter-spacing:.28em;
color:#8a7a67;
font-weight:700;
}

.room-content h3{
font-size:42px;
margin-bottom:18px;
}

.room-content p{
margin-bottom:28px;
}

.room-content a{
display:inline-flex;
align-items:center;
gap:12px;
font-weight:700;
transition:.35s;
}

.room-content a:hover{
gap:18px;
color:#56614e;
}

/*==================================================
FEATURE SPLIT
==================================================*/

.feature-split{
display:grid;
grid-template-columns:1.05fr .95fr;
align-items:center;
background:#ece7df;
}

.split-image img{
width:100%;
height:820px;
object-fit:cover;
}

.split-content{
padding:90px;
}

.split-content h2{
font-size:72px;
margin:28px 0 36px;
}

.split-content p{
font-size:18px;
margin-bottom:35px;
}

.split-content ul{
list-style:none;
display:grid;
gap:18px;
}

.split-content li{
display:flex;
align-items:center;
gap:15px;
font-size:18px;
font-weight:600;
}

.split-content i{
color:#56614e;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:1100px){
.room-grid{
grid-template-columns:1fr;
}
.feature-split{
grid-template-columns:1fr;
}
.split-image img{
height:500px;
}
}

@media(max-width:640px){
.accommodation-section{
padding:90px 0;
}
.room-content{
padding:30px;
}
.room-content h3{
font-size:34px;
}
.split-content{
padding:50px 30px;
}
.split-content h2{
font-size:44px;
}
.split-content li{
font-size:16px;
}
}

/*==================================================
DISCOVER
==================================================*/

.discover-section{
padding:170px 0;
background:#f7f3ed;
}

.discover-grid{
margin-bottom:80px;
}

.discover-content{
max-width:760px;
}

.discover-content h2{
font-size:72px;
margin:25px 0 30px;
}

.discover-cards{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:30px;
}

.discover-card{
background:white;
padding:45px;
border-radius:28px;
box-shadow:0 18px 50px rgba(0,0,0,.06);
transition:.45s;
}

.discover-card:hover{
transform:translateY(-12px);
}

.discover-icon{
width:72px;
height:72px;
border-radius:50%;
background:#56614e;
display:grid;
place-items:center;
color:white;
font-size:28px;
margin-bottom:28px;
}

.discover-card h3{
font-size:34px;
margin-bottom:18px;
}

/*==================================================
BANNER
==================================================*/

.parallax-banner{
position:relative;
height:700px;
overflow:hidden;
}

.parallax-banner img{
width:100%;
height:100%;
object-fit:cover;
}

.banner-overlay{
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:rgba(20,17,14,.45);
text-align:center;
}

.banner-content{
color:white;
}

.banner-content span{
display:block;
letter-spacing:.32em;
font-size:13px;
text-transform:uppercase;
margin-bottom:24px;
}

.banner-content h2{
font-size:86px;
line-height:.95;
}

/*==================================================
STATS
==================================================*/

.stats-section{
padding:140px 0;
background:#1d1a18;
}

.stats-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:40px;
text-align:center;
}

.stat h3{
font-size:90px;
color:#b68e5d;
margin-bottom:15px;
}

.stat span{
display:block;
color:#d4cec6;
letter-spacing:.15em;
text-transform:uppercase;
font-size:13px;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:980px){
.discover-cards{
grid-template-columns:repeat(2,1fr);
}
.stats-grid{
grid-template-columns:repeat(2,1fr);
gap:60px;
}
.banner-content h2{
font-size:58px;
}
}

@media(max-width:640px){
.discover-section{
padding:90px 0;
}
.discover-content h2{
font-size:42px;
}
.discover-cards{
grid-template-columns:1fr;
}
.parallax-banner{
height:420px;
}
.banner-content h2{
font-size:40px;
}
.stats-section{
padding:90px 0;
}
.stats-grid{
grid-template-columns:1fr;
}
.stat h3{
font-size:64px;
}
}

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

.gallery-section{
padding:170px 0;
background:white;
}

.gallery-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
grid-auto-rows:260px;
gap:22px;
}

.gallery-item{
overflow:hidden;
border-radius:26px;
display:block;
}

.gallery-item img{
width:100%;
height:100%;
object-fit:cover;
transition:1s;
}

.gallery-item:hover img{
transform:scale(1.08);
}

.gallery-item.tall{
grid-row:span 2;
}

.gallery-item.wide{
grid-column:span 2;
}

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

.booking-cta{
position:relative;
height:720px;
overflow:hidden;
}

.booking-cta img{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
}

.booking-overlay{
position:absolute;
inset:0;
background:rgba(18,15,13,.55);
z-index:1;
}

.booking-content{
position:relative;
z-index:2;
height:100%;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
color:white;
max-width:900px;
margin:auto;
padding:40px;
}

.booking-content span{
letter-spacing:.30em;
text-transform:uppercase;
font-size:13px;
opacity:.85;
}

.booking-content h2{
font-size:82px;
margin:28px 0;
}

.booking-content p{
font-size:20px;
color:rgba(255,255,255,.82);
margin-bottom:40px;
max-width:620px;
}

.booking-buttons{
display:flex;
gap:20px;
}

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

.site-footer{
background:#171513;
color:white;
padding:100px 0 40px;
}

.footer-grid{
display:grid;
grid-template-columns:2fr 1fr 1fr;
gap:80px;
padding-bottom:60px;
border-bottom:1px solid rgba(255,255,255,.08);
}

.site-footer h3{
font-size:44px;
margin-bottom:20px;
}

.site-footer h4{
margin-bottom:24px;
letter-spacing:.20em;
text-transform:uppercase;
font-size:13px;
}

.site-footer p{
color:#bcb4aa;
}

.site-footer ul{
list-style:none;
display:grid;
gap:14px;
}

.site-footer li{
color:#bcb4aa;
}

.footer-bottom{
display:flex;
justify-content:space-between;
align-items:center;
padding-top:35px;
font-size:14px;
color:#999;
}

.footer-bottom a{
color:white;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:980px){
.gallery-grid{
grid-template-columns:repeat(2,1fr);
}
.booking-content h2{
font-size:54px;
}
.footer-grid{
grid-template-columns:1fr;
}
.footer-bottom{
flex-direction:column;
gap:18px;
text-align:center;
}
}

@media(max-width:640px){
.gallery-section{
padding:90px 0;
}
.gallery-grid{
grid-template-columns:1fr;
grid-auto-rows:250px;
}
.gallery-item.tall,
.gallery-item.wide{
grid-column:auto;
grid-row:auto;
}
.booking-cta{
height:560px;
}
.booking-content h2{
font-size:42px;
}
.booking-content p{
font-size:17px;
}
.booking-buttons{
flex-direction:column;
width:100%;
}
.booking-buttons a{
width:100%;
}
.site-footer{
padding:70px 0 30px;
}
.site-footer h3{
font-size:34px;
}
}

/*==================================================
LOCATION
==================================================*/

.location-section{
display:grid;
grid-template-columns:1.2fr .8fr;
background:#fff;
}

.location-map iframe{
width:100%;
height:100%;
min-height:760px;
border:0;
}

.location-content{
padding:90px;
display:flex;
flex-direction:column;
justify-content:center;
}

.location-content h2{
font-size:68px;
margin:30px 0;
}

.location-features{
display:grid;
gap:35px;
margin:45px 0;
}

.location-features>div{
display:flex;
gap:22px;
align-items:flex-start;
}

.location-features i{
width:58px;
height:58px;
border-radius:50%;
display:grid;
place-items:center;
background:#56614e;
color:white;
font-size:22px;
}

.location-features strong{
display:block;
margin-bottom:8px;
font-size:18px;
}

.location-features span{
color:#777;
line-height:1.8;
}

/*==================================================
FAQ
==================================================*/

.faq-section{
padding:170px 0;
background:#f8f5f1;
}

.faq-list{
max-width:900px;
margin:70px auto 0;
}

.faq-list details{
background:white;
margin-bottom:20px;
border-radius:22px;
padding:30px 35px;
box-shadow:0 15px 45px rgba(0,0,0,.05);
}

.faq-list summary{
cursor:pointer;
list-style:none;
font-size:22px;
font-weight:700;
display:flex;
justify-content:space-between;
align-items:center;
}

.faq-list summary::-webkit-details-marker{
display:none;
}

.faq-list summary::after{
content:"+";
font-size:28px;
color:#56614e;
}

.faq-list details[open] summary::after{
content:"−";
}

.faq-list p{
margin-top:20px;
font-size:17px;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:980px){
.location-section{
grid-template-columns:1fr;
}
.location-map iframe{
min-height:450px;
}
.location-content{
padding:60px 35px;
}
.location-content h2{
font-size:48px;
}
.faq-section{
padding:90px 0;
}
}

@media(max-width:640px){
.location-content{
padding:40px 25px;
}
.location-content h2{
font-size:40px;
}
.location-features{
gap:25px;
}
.faq-list details{
padding:25px;
}
.faq-list summary{
font-size:18px;
}
}
