*{margin:0;padding:0;box-sizing:border-box}
:root{
  --green:#2a5c3f;--green-dark:#1e4530;--green-light:#3a7a55;
  --beige:#f5e6a3;--beige-dark:#ecdfa0;--beige-soft:#fdf6dc;
  --cream:#faf6e9;--text:#2a3020;--text-light:#5a6650;
}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;color:var(--text);background:var(--green-dark);overflow-x:hidden}

.logo-svg{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-svg svg{height:52px;width:auto;flex-shrink:0}
.logo-text-wrap{display:flex;flex-direction:column;line-height:1}
.logo-name{font-family:'Dancing Script',cursive;font-size:1.4rem;color:#fff;font-weight:600}
.logo-sub{font-size:.42rem;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:2px}

.pre-header{position:fixed;top:0;left:0;width:100%;z-index:101;height:36px;background:rgba(10,28,18,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(245,230,163,.08);display:flex;align-items:center;justify-content:flex-end;padding:0 56px;gap:16px}
.pre-header-link{font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;display:inline-flex;align-items:center;gap:5px}.pre-header-link:hover{color:var(--beige)}
.pre-header-user{font-size:.58rem;letter-spacing:1px;color:rgba(255,255,255,.4)}
.pre-header-sep{color:rgba(255,255,255,.15);font-size:.7rem}
nav{position:fixed;top:36px;left:0;width:100%;z-index:100;padding:22px 56px;display:flex;justify-content:space-between;align-items:center;transition:all .4s}
nav.scrolled{background:rgba(30,69,48,.95);backdrop-filter:blur(10px);padding:14px 56px;box-shadow:0 2px 30px rgba(0,0,0,.2)}
/* Offset anchor-link targets so the fixed pre-header + nav don't cover the section heading on jump */
#rooms,#experiences,#gallery,#location,#contact{scroll-margin-top:150px}
.nav-links{display:flex;gap:36px;list-style:none;align-items:center}
.nav-links li{display:flex;align-items:center}
.nav-links a{font-family:'Montserrat',sans-serif;color:rgba(255,255,255,.85);text-decoration:none;font-size:.65rem;letter-spacing:3px;text-transform:uppercase;transition:color .3s}
.nav-links a:hover{color:var(--beige)}
.nav-book{border:1px solid var(--beige);color:var(--beige)!important;padding:8px 22px}
.nav-book:hover{background:var(--beige)!important;color:var(--green-dark)!important}
.nav-dropdown-wrap{position:relative}
.nav-dropdown-wrap>a{display:flex;align-items:center;gap:5px}
.nav-dropdown-wrap>a::after{content:'';width:4px;height:4px;border-right:1px solid rgba(255,255,255,.55);border-bottom:1px solid rgba(255,255,255,.55);transform:rotate(45deg);transition:transform .25s,border-color .3s;margin-top:-3px;flex-shrink:0}
.nav-dropdown-wrap:hover>a::after,.nav-dropdown-wrap:focus-within>a::after{transform:rotate(-135deg);border-color:var(--beige);margin-top:1px}
.nav-dropdown{position:absolute;top:100%;left:0;transform:translateY(-6px);padding-top:14px;background:transparent;min-width:240px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.nav-dropdown::before{content:'';display:block;height:2px;background:rgba(245,230,163,.5);margin-bottom:0}
.nav-dropdown-inner{background:rgba(18,46,30,.97);backdrop-filter:blur(16px);border:1px solid rgba(245,230,163,.15);border-top:none;box-shadow:0 16px 48px rgba(0,0,0,.45);display:grid;grid-template-columns:1fr 1fr}
.nav-dropdown-wrap:hover .nav-dropdown,.nav-dropdown-wrap:focus-within .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.nav-dropdown-inner a{font-family:'Montserrat',sans-serif;display:block;padding:9px 16px;font-size:.55rem;letter-spacing:2px;color:rgba(255,255,255,.7);text-transform:uppercase;border-bottom:1px solid rgba(245,230,163,.06);transition:background .18s,color .18s,padding-left .18s}
.nav-dropdown-inner a:nth-last-child(-n+2){border-bottom:none}
.nav-dropdown-inner a:hover{background:rgba(245,230,163,.07);color:var(--beige);padding-left:20px}
.lang-switch{margin-left:8px}.lang-switch form{display:inline}.lang-switch button{background:none;border:1px solid rgba(255,255,255,.4);color:rgba(255,255,255,.7);font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:2px;padding:5px 10px;cursor:pointer;border-radius:2px;transition:.2s}.lang-switch button:hover{border-color:var(--beige);color:var(--beige)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer}
.hamburger span{width:24px;height:1px;background:#fff}

.hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease;background-size:cover;background-position:center}
.slide.active{opacity:1}
.hero-content{position:relative;z-index:2;text-align:center;color:#fff;padding:0 24px}
.hero-badge{display:inline-block;border:1px solid rgba(245,230,163,.5);padding:8px 24px;font-size:.6rem;letter-spacing:5px;text-transform:uppercase;color:var(--beige);margin-bottom:28px}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,7vw,6.5rem);font-weight:300;line-height:1.05;margin-bottom:20px}
.hero-title em{font-style:italic;color:var(--beige)}
.hero-sub{font-size:.72rem;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:48px}
.hero-cta{display:inline-flex;gap:20px;flex-wrap:wrap;justify-content:center}
.btn-primary{background:var(--beige);color:var(--green-dark);padding:15px 42px;font-size:.62rem;letter-spacing:4px;text-transform:uppercase;text-decoration:none;transition:.3s;font-weight:500;display:inline-block}
.btn-primary:hover{background:var(--beige-dark);transform:translateY(-1px)}
.btn-outline{border:1px solid rgba(255,255,255,.55);color:#fff;padding:15px 42px;font-size:.62rem;letter-spacing:4px;text-transform:uppercase;text-decoration:none;transition:.3s}
.btn-outline:hover{border-color:var(--beige);color:var(--beige)}
@media(max-width:640px){
  .hero-cta{flex-direction:column;width:100%;align-items:stretch}
  .hero-cta .btn-primary,.hero-cta .btn-outline{text-align:center;width:100%;box-sizing:border-box}
}
.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.5);font-size:.55rem;letter-spacing:3px;text-transform:uppercase;cursor:pointer}
.scroll-line{width:1px;height:50px;background:linear-gradient(var(--beige),transparent);animation:sa 2s infinite}
@keyframes sa{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.slide-dots{position:absolute;bottom:40px;right:56px;z-index:2;display:flex;gap:10px}
.dot{width:22px;height:1px;background:rgba(255,255,255,.35);cursor:pointer;transition:.3s}
.dot.active{width:44px;background:var(--beige)}

.intro-wrap{background:var(--cream)}
.intro{padding:100px 80px;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;max-width:1400px;margin:0 auto}
.pre{font-size:.6rem;letter-spacing:6px;text-transform:uppercase;color:var(--green);margin-bottom:18px;font-weight:500}
.intro-text h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:300;line-height:1.25;margin-bottom:28px;color:var(--green-dark)}
.intro-text p{font-size:.82rem;line-height:1.95;color:var(--text-light);margin-bottom:18px}
.intro-link{display:inline-block;margin-top:20px;font-size:.62rem;letter-spacing:4px;text-transform:uppercase;color:var(--green);text-decoration:none;border-bottom:1px solid var(--green);padding-bottom:4px}
.intro-img{position:relative}
.intro-img img{width:100%;height:520px;object-fit:cover;object-position:center}
.intro-img::before{content:'';position:absolute;top:-18px;left:-18px;width:55%;height:55%;border:1px solid var(--beige-dark);z-index:0;pointer-events:none}
.divider{width:40px;height:1px;background:var(--green);margin:20px 0 28px}
.divider-center{margin:20px auto 28px}

.equipements-section{background:#fff;padding:100px 0}
.equipements-inner{max-width:1300px;margin:0 auto;padding:0 80px}
.equipements-header{margin-bottom:48px}
.equipements-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,2.8rem);font-weight:400;color:var(--green-dark);margin-top:8px}
.equipements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.eq-card{position:relative;padding:40px 36px;border:1px solid rgba(42,92,63,.12);overflow:hidden;background:#fff;border-radius:12px}
.eq-icon{width:48px;height:48px;color:var(--green);margin-bottom:20px;position:relative;z-index:1}
.eq-icon svg{width:100%;height:100%}
.eq-bg-icon{position:absolute;right:-10px;bottom:-10px;width:130px;height:130px;color:var(--green);opacity:.06;pointer-events:none}
.eq-bg-icon svg{width:100%;height:100%}
.eq-card h3{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:400;color:var(--green-dark);margin-bottom:12px;position:relative;z-index:1}
.eq-card p{font-size:.78rem;line-height:1.85;color:var(--text-light);position:relative;z-index:1}
@media(max-width:1024px){
  .equipements-inner{padding:0 40px}
  .equipements-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .equipements-inner{padding:0 20px}
  .equipements-grid{grid-template-columns:1fr}
  .intro{padding:48px 20px}
}

.section-header{text-align:center;padding:100px 48px 56px}
.section-header h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--green-dark)}

.video-section{background:#000;padding:0}
.video-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;cursor:pointer}
.video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}
.video-thumb{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s}
.video-wrap:hover .video-thumb{opacity:.85}
.video-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;background:rgba(245,230,163,.9);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s;z-index:2}
.video-play-btn svg{width:28px;height:28px;color:#1e4530;margin-left:4px}
.video-play-btn:hover{background:#f5e6a3;transform:translate(-50%,-50%) scale(1.1)}
.video-yt-label{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:.6rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.7);white-space:nowrap}

.bg-cream{background:#f8f5f0}
.section-padding{padding:120px 0}
.section-subtitle{font-size:.75rem;letter-spacing:6px;text-transform:uppercase;color:#666;margin-bottom:6px;font-weight:400}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,2.8rem);font-weight:400;color:#222;margin-bottom:40px;line-height:1.25}

.rooms3-header{padding:0 100px 40px}

.rooms-carousel-outer{position:relative}
.rooms-carousel-wrap{overflow:hidden;padding:0 100px}
.rooms-track{display:flex;gap:24px;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.rc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid rgba(42,92,63,.18);color:var(--green);font-size:1.3rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,.1);transition:background .2s,color .2s,opacity .2s}
.rc-arrow:hover{background:var(--green);color:#fff}
.rc-arrow:disabled{opacity:.25;cursor:default;pointer-events:none}
.rc-prev{left:36px}.rc-next{right:36px}

/* ── Flip cards ── */
.square-flip{flex:0 0 calc(33.333% - 16px);perspective:1000px;transform:perspective(1000px);transform-style:preserve-3d;position:relative;min-height:450px;margin-bottom:30px;border-radius:12px;overflow:hidden}
.square,.square2{width:100%;height:100%;position:absolute;top:0;backface-visibility:hidden;transition:transform .9s cubic-bezier(.68,-.55,.265,1.25);border-radius:12px}
.square{background-size:cover;background-position:center;transform:rotateY(0deg);transform-style:preserve-3d;z-index:1;overflow:hidden}
.square-flip:hover .square{transform:rotateY(-180deg)}
.square2{background:#f8f5f0;transform:rotateY(180deg);transform-style:preserve-3d;z-index:1;overflow:hidden}
.square-flip:hover .square2{transform:rotateY(0deg)}

.square-container{padding:40px;height:450px;display:flex;align-items:flex-end;justify-content:flex-end;position:relative;z-index:2;transform-style:preserve-3d}
.square-container .box-title h4{color:#fff;font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:400;margin:0;text-align:right}
.flip-overlay{display:block;background:#000;width:100%;height:100%;position:absolute;top:0;left:0;opacity:.2}

.square-container2{padding:30px;text-align:left;position:relative;top:50%;transform:translateY(-50%) translateX(650px) translateZ(60px) scale(.88);transform-style:preserve-3d;z-index:2;transition:transform .9s cubic-bezier(.68,-.55,.265,1.25)}
.square-flip:hover .square-container2{transform:translateY(-50%) translateX(0) translateZ(0) scale(1)}
.square-container2 h4{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:#222;font-weight:400;margin-bottom:10px}
.square-container2 p{font-size:.82rem;color:#666;line-height:1.75;margin-bottom:20px}

.room-facilities ul{margin:0;padding:0;list-style:none;margin-bottom:24px}
.room-facilities ul li{color:#666;font-size:.78rem;padding-bottom:8px;display:flex;align-items:center;gap:8px}
.rf-icon{font-size:14px;color:var(--green)}

.btn-line a{font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:#666;text-decoration:none;border-bottom:1px solid #ccc;padding-bottom:3px;transition:.3s}
.btn-line a:hover{border-bottom-color:var(--green);color:#444}

.rooms-carousel-dots{display:flex;justify-content:center;gap:10px;margin-top:20px;padding-bottom:20px}
.rooms-carousel-dots .rc-dot{width:10px;height:10px;border-radius:50%;background:rgba(42,92,63,.2);cursor:pointer;transition:.3s;border:none;padding:0}
.rooms-carousel-dots .rc-dot.active{background:var(--green);transform:scale(1.2)}

@media(max-width:1024px){
  .rooms-carousel-wrap{padding:0 48px}
  .rooms3-header{padding:0 48px 32px}
  .square-flip{flex:0 0 calc(50% - 12px)}
}
@media(max-width:640px){
  .rooms-carousel-wrap{padding:0 24px}
  .rooms3-header{padding:0 24px 24px}
  .square-flip{flex:0 0 100%}
  .rc-prev{left:4px}.rc-next{right:4px}
  .rc-arrow{width:36px;height:36px;font-size:1rem}
}

.experiences{background:var(--green-dark)}
.experiences .section-header{padding-bottom:56px}
.experiences .section-header h2{color:#fff}
.experiences .section-header .pre{color:var(--beige);opacity:.8}
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.exp-card{position:relative;overflow:hidden;height:500px;cursor:pointer}
.exp-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s;display:block}
.exp-card:hover img{transform:scale(1.06)}
.exp-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,45,30,.9) 0%,rgba(20,45,30,.05) 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:40px 36px;color:#fff}
.exp-tag{font-size:.52rem;letter-spacing:4px;text-transform:uppercase;color:var(--beige);margin-bottom:10px}
.exp-title{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:300;margin-bottom:12px}
.exp-desc{font-size:.73rem;line-height:1.75;color:rgba(255,255,255,.78);max-height:0;overflow:hidden;transition:max-height .5s}
.exp-card:hover .exp-desc{max-height:120px}

.gallery-section{background:var(--green-dark);padding:6px}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:260px;gap:6px}
.gal-item{overflow:hidden;cursor:pointer;position:relative}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.gal-item:hover img{transform:scale(1.05)}
.gal-item:nth-child(1){grid-column:span 5;grid-row:span 2}
.gal-item:nth-child(2){grid-column:span 4}
.gal-item:nth-child(3){grid-column:span 3}
.gal-item:nth-child(4){grid-column:span 3}
.gal-item:nth-child(5){grid-column:span 4}
.gal-item:nth-child(6){grid-column:span 7}
.gal-item:nth-child(7){grid-column:span 5}
.gal-item:nth-child(8){grid-column:span 4}
.gal-item:nth-child(9){grid-column:span 4}
.gal-item:nth-child(10){grid-column:span 4}
.gal-item:nth-child(11){grid-column:span 12}
.gal-overlay{position:absolute;inset:0;background:rgba(30,69,48,0);transition:.4s;display:flex;align-items:center;justify-content:center}
.gal-item:hover .gal-overlay{background:rgba(30,69,48,.3)}
.gal-plus{color:#fff;font-size:1.8rem;opacity:0;transition:.4s;transform:scale(.6)}
.gal-item:hover .gal-plus{opacity:1;transform:scale(1)}

.testimonials{background:#fff;padding:100px 56px;text-align:center}
.testimonials h2{font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:var(--green-dark);font-weight:300;margin-bottom:48px}
.elfsight-wrap{max-width:1200px;margin:0 auto}

.location{background:var(--beige-soft);display:grid;grid-template-columns:1fr 1fr}
.location-map{min-height:520px;overflow:hidden}
.location-map iframe{width:100%;height:100%;border:none;filter:sepia(.25) saturate(.9)}
.location-info{padding:80px 72px;display:flex;flex-direction:column;justify-content:center}
.location-info h2{font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:300;color:var(--green-dark);margin-bottom:24px;line-height:1.2}
.location-info p{font-size:.8rem;line-height:1.95;color:var(--text-light);margin-bottom:32px}
.loc-items{display:flex;flex-direction:column;gap:18px;margin-bottom:36px}
.loc-item{display:flex;align-items:flex-start;gap:16px}
.loc-icon{width:38px;height:38px;border:1px solid var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--green);font-size:15px}
.loc-text{font-size:.73rem;color:var(--text-light);line-height:1.65}
.loc-text strong{display:block;color:var(--green-dark);margin-bottom:3px;font-size:.62rem;letter-spacing:2.5px;text-transform:uppercase}

.booking{position:relative;padding:130px 56px;text-align:center;color:#fff;overflow:hidden}
.booking-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.booking-bg::after{content:'';position:absolute;inset:0;background:rgba(20,45,30,.78)}
.booking > *:not(.booking-bg){position:relative;z-index:1}
.booking h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,5vw,4rem);font-weight:300;margin-bottom:16px}
.booking p.sub{font-size:.8rem;color:rgba(255,255,255,.7);margin-bottom:52px;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.85}
.booking-form{display:flex;max-width:860px;margin:0 auto;background:rgba(245,230,163,.08);backdrop-filter:blur(12px);border:1px solid rgba(245,230,163,.25)}
.booking-form input,.booking-form select{flex:1;background:transparent;border:none;border-right:1px solid rgba(245,230,163,.2);padding:20px 22px;color:#fff;font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:2px;outline:none}
.booking-form input::placeholder{color:rgba(255,255,255,.45)}
.booking-form select option{background:#1e4530}
.booking-form button{background:var(--beige);color:var(--green-dark);border:none;padding:20px 28px;font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:4px;text-transform:uppercase;cursor:pointer;transition:.3s;font-weight:500;white-space:nowrap}
.booking-form button:hover{background:var(--beige-dark)}

footer{background:var(--green-dark);padding:80px 56px 36px}
.footer-top{border-bottom:1px solid rgba(245,230,163,.1);padding-bottom:60px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:48px;margin-bottom:36px}
.footer-brand p{font-size:.75rem;line-height:1.85;max-width:270px;margin-top:20px;color:rgba(255,255,255,.45)}
.footer-col h4{font-size:.58rem;letter-spacing:4px;text-transform:uppercase;color:var(--beige);opacity:.8;margin-bottom:22px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.footer-col ul a{color:rgba(255,255,255,.45);text-decoration:none;font-size:.73rem;transition:.3s}
.footer-col ul a:hover{color:var(--beige)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;font-size:.62rem;letter-spacing:2px;color:rgba(255,255,255,.3)}
.social-links{display:flex;gap:22px;margin-top:24px}
.social-links a{color:rgba(255,255,255,.4);text-decoration:none;font-size:.6rem;letter-spacing:3px;text-transform:uppercase;transition:.3s}
.social-links a:hover{color:var(--beige)}

.lightbox{display:none;position:fixed;inset:0;z-index:999;background:rgba(8,20,12,.96);align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain}
.lb-close{position:absolute;top:24px;right:32px;color:#fff;font-size:2rem;cursor:pointer;opacity:.7;background:none;border:none;transition:.3s}
.lb-close:hover{opacity:1}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2.5rem;cursor:pointer;opacity:.6;transition:.3s;padding:20px;background:none;border:none}
.lb-prev{left:20px}.lb-next{right:20px}
.lb-prev:hover,.lb-next:hover{opacity:1;color:var(--beige)}
.lb-counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.5);font-size:.6rem;letter-spacing:3px}

#loading{position:fixed;inset:0;background:var(--green-dark);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .4s}
#loading.done{opacity:0;pointer-events:none}
.load-logo{font-family:'Dancing Script',cursive;font-size:2.5rem;color:var(--beige)}
.load-bar{width:200px;height:1px;background:rgba(245,230,163,.2);position:relative;overflow:hidden}
.load-bar::after{content:'';position:absolute;left:-100%;top:0;width:100%;height:100%;background:var(--beige);animation:lb .7s ease forwards}
@keyframes lb{to{left:0}}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}
.reveal.visible{opacity:1;transform:none}

.whatsapp-fab{position:fixed;bottom:32px;right:32px;z-index:999;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .3s,box-shadow .3s}
.whatsapp-fab:hover{transform:scale(1.1);box-shadow:0 6px 28px rgba(37,211,102,.55)}
.whatsapp-fab svg{width:28px;height:28px}

@media(max-width:1024px){
  .intro{grid-template-columns:1fr;gap:40px;padding:70px 36px}
  .exp-grid{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr 1fr;gap:40px}
  .location{grid-template-columns:1fr}
  .location-map{min-height:300px}
  .booking-form{flex-direction:column}
  .booking-form input,.booking-form select{border-right:none;border-bottom:1px solid rgba(245,230,163,.15)}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}
  .gal-item:nth-child(n){grid-column:span 1;grid-row:span 1}
  .gal-item:nth-child(1){grid-column:span 2;grid-row:span 1}
}
@media(max-width:768px){
  .pre-header{padding:0 16px;gap:14px;justify-content:flex-end}
  .pre-header-sep{display:none}
  .pre-header-user{display:none}
  .pre-header-link span.pre-header-label{display:none}
  .pre-header-link{gap:0}
  nav{top:36px;padding:16px 20px}
  nav.scrolled{padding:12px 20px}
  .nav-links{display:none;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(10,28,18,.98);backdrop-filter:blur(16px);padding:88px 32px 60px;gap:0;list-style:none;z-index:200;overflow-y:auto}
  .nav-links.open{display:flex;animation:navFadeIn .25s ease forwards}
  /* Brand logo shown at top of the overlay */
  .nav-links.open::before{content:'La Réserve';font-family:'Dancing Script',cursive;font-size:1.7rem;color:var(--beige);display:block;text-align:center;padding:0 0 28px;border-bottom:1px solid rgba(245,230,163,.12);margin-bottom:8px;letter-spacing:1px}
  .nav-links li{border-bottom:1px solid rgba(245,230,163,.08);display:block}
  .nav-links li:last-child{border-bottom:none;padding-top:20px}
  .nav-links a{display:block;padding:16px 0;font-size:.7rem;letter-spacing:3px;color:rgba(255,255,255,.8);text-align:center}
  .nav-links .nav-book{border:none;color:var(--beige)!important;padding:16px 0}
  .nav-dropdown-wrap>a::after{display:none}
  .nav-dropdown{position:static;opacity:1;visibility:visible;pointer-events:auto;transform:none;padding:0 0 14px}
  .nav-dropdown::before{display:none}
  .nav-dropdown-inner{background:transparent;border:none;box-shadow:none;display:flex;flex-wrap:wrap;justify-content:center;gap:0}
  .nav-dropdown-inner a{font-size:.58rem;padding:8px 0;border-bottom:none;color:rgba(255,255,255,.45);text-align:center;letter-spacing:2px;flex:0 0 44%}
  .nav-dropdown-inner a:hover{color:var(--beige)}
  .hamburger{display:flex;z-index:201;position:relative}
  .hamburger span{transition:transform .3s,opacity .3s}
  .hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .hamburger.open span:nth-child(2){opacity:0}
  .hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  @keyframes navFadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
  .booking{padding:80px 24px}
  .footer-top{grid-template-columns:1fr;gap:32px}
  .footer-bottom{flex-direction:column;gap:14px;text-align:center}
  .slide-dots{right:20px}
  /* Padding fixes for all sections on mobile */
  .section-header{padding:56px 20px 32px}
  .section-padding{padding:72px 0}
  .equipements-section{padding:72px 0}
  .testimonials{padding:60px 20px}
  .location-info{padding:40px 24px}
  footer{padding:60px 20px 28px}
  .exp-overlay{padding:24px 20px}
  .hero-sub{font-size:.62rem;letter-spacing:2px}
}

.reservation-section {
  padding: 120px 56px;
  background: var(--green-dark);
  position: relative;
  overflow: hidden;
}
.reservation-section::before {
  content: '';
  position: absolute;
  top: -150px; left: 50%;
  transform: translateX(-50%);
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(245,230,163,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.reservation-inner {
  max-width: 740px;
  margin: 0 auto;
  text-align: center;
}
.reservation-wide {
  max-width: 960px;
}
.booking-toggle{display:inline-flex;border:1px solid rgba(245,230,163,.25);border-radius:4px;overflow:hidden;margin-bottom:40px}
.btoggle{background:transparent;border:none;padding:12px 28px;color:rgba(255,255,255,.5);font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:.3s}
.btoggle.active{background:var(--beige);color:var(--green-dark)}
.btoggle:not(.active):hover{color:rgba(255,255,255,.85)}
.booking-intro{font-size:.78rem;color:rgba(255,255,255,.6);margin-bottom:32px;line-height:1.85}
.price-summary{border:1px solid rgba(245,230,163,.25);padding:24px 28px;margin-bottom:32px;background:rgba(245,230,163,.05)}
.price-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(245,230,163,.1)}
.price-row:last-child{border:none}
.price-label{font-size:.6rem;letter-spacing:3px;text-transform:uppercase;color:rgba(245,230,163,.6)}
.price-value{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:#fff;font-weight:300}
.price-total .price-label{color:var(--beige)}
.price-total .price-value{font-size:1.5rem;color:var(--beige)}

.booking-step{margin-bottom:32px}
.booking-step-label{font-size:.58rem;letter-spacing:4px;text-transform:uppercase;color:var(--beige);opacity:.7;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(245,230,163,.15)}
.reservation-inner .section-label {
  font-size: .58rem;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--beige);
  opacity: .8;
  margin-bottom: 16px;
  display: block;
}
.reservation-inner .section-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  color: #fff;
  margin-bottom: 20px;
  line-height: 1.15;
}
.reservation-inner .section-title em {
  font-style: italic;
  color: var(--beige);
}
.gold-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 180px;
  margin: 0 auto 32px;
}
.gold-divider-line {
  flex: 1;
  height: 1px;
  background: rgba(245,230,163,.3);
}
.gold-divider-icon {
  color: var(--beige);
  font-size: 11px;
  opacity: .8;
}
.reservation-inner > p {
  font-size: .78rem;
  line-height: 1.9;
  color: rgba(255,255,255,.6);
  margin-bottom: 48px;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
  text-align: left;
}
.form-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.form-field.full { grid-column: span 2; }
.form-label {
  font-size: .55rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(245,230,163,.6);
}
.form-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  letter-spacing: .5px;
  text-transform: none;
  font-size: .68rem;
  cursor: pointer;
}
.form-checkbox-label input[type="checkbox"] {
  margin-top: 3px;
  accent-color: var(--beige, #f5e6a3);
}
.form-input,
.form-select,
.form-textarea {
  background: rgba(245,230,163,.06);
  border: 1px solid rgba(245,230,163,.18);
  color: #fff;
  padding: 13px 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: .68rem;
  outline: none;
  transition: border-color .3s;
  width: 100%;
  -webkit-appearance: none;
  appearance: none;
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  border-color: rgba(245,230,163,.55);
}
.form-input::placeholder { color: rgba(255,255,255,.3); }
.form-select option { background: var(--green-dark); color: #fff; }
.form-textarea { resize: none; height: 110px; }
.form-submit {
  width: 100%;
  background: var(--beige);
  color: var(--green-dark);
  border: none;
  padding: 18px;
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  transition: all .3s;
  margin-top: 6px;
}
.form-submit:hover {
  background: var(--beige-dark);
  transform: translateY(-2px);
}

/* CTA Section */
.cta-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 40px;
  font-family: 'Montserrat', sans-serif;
  font-size: .58rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all .3s;
}
.cta-btn-primary {
  background: var(--beige);
  color: var(--green-dark);
  border: 1px solid transparent;
}
.cta-btn-primary:hover {
  background: var(--beige-dark);
  transform: translateY(-2px);
}
.cta-btn-outline {
  background: transparent;
  color: var(--beige);
  border: 1px solid rgba(245,230,163,.35);
}
.cta-btn-outline:hover {
  border-color: rgba(245,230,163,.7);
  background: rgba(245,230,163,.06);
  transform: translateY(-2px);
}

@media(max-width: 768px) {
  .reservation-section { padding: 80px 24px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: span 1; }
  .cta-btn { width: 100%; justify-content: center; }
}
@keyframes toastIn {
  from { opacity:0; transform:translateX(-50%) translateY(20px); }
  to   { opacity:1; transform:translateX(-50%) translateY(0); }
}
.whatsapp-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  margin-top: 4px;
}
.whatsapp-toggle input[type="checkbox"] {
  display: none;
}
.wt-box {
  width: 44px; height: 24px;
  background: rgba(245,230,163,.15);
  border: 1px solid rgba(245,230,163,.25);
  border-radius: 20px;
  position: relative;
  transition: background .3s;
  flex-shrink: 0;
}
.wt-box::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: rgba(245,230,163,.5);
  transition: all .3s;
}
.whatsapp-toggle input:checked + .wt-box {
  background: rgba(37,211,102,.25);
  border-color: rgba(37,211,102,.5);
}
.whatsapp-toggle input:checked + .wt-box::after {
  left: 22px;
  background: #25d366;
}
.wt-label {
  font-size: .62rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(245,230,163,.7);
  line-height: 1.5;
}
.tel-field {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .4s ease, opacity .4s ease, margin .4s ease;
  margin-top: 0;
}
.tel-field.visible {
  max-height: 100px;
  opacity: 1;
  margin-top: 0;
}
