/*
Theme Name:  Hotel Eternal Kashi
Theme URI:   https://eternalkashi.in
Author:      Hotel Eternal Kashi
Author URI:  https://eternalkashi.in
Description: A luxury boutique hotel theme for Hotel Eternal Kashi at Dashashwamedh Ghat, Varanasi. Features 13 river view rooms and Annapurnam rooftop restaurant.
Version:     1.0.0
License:     GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags:        hotel, luxury, varanasi, one-page, dark, gold
Text Domain: hotel-eternal-kashi
*/

/* ============================================================
   TOKENS & RESET
============================================================ */
:root {
  --black:    #06050A;
  --ink:      #100E15;
  --deep:     #180F0A;
  --gold:     #C9A84C;
  --gold-lt:  #E8CB7A;
  --saffron:  #D4651A;
  --ember:    #B84A10;
  --cream:    #F5EDD8;
  --mist:     #C4B89A;
  --slate:    #6A6070;
  --river:    #1B3A5C;
  --border:   rgba(201,168,76,0.22);
  --border-s: rgba(201,168,76,0.08);
}
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:'Cormorant',Georgia,serif; background:var(--black); color:var(--cream); overflow-x:hidden; cursor:none; }
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; font:inherit; }

/* ============================================================
   CUSTOM CURSOR
============================================================ */
#cur { width:10px; height:10px; background:var(--gold); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:transform .12s ease,background .2s; }
#cur-ring { width:36px; height:36px; border:1px solid rgba(201,168,76,.5); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s,border-color .3s; }

/* ============================================================
   SCROLLBAR
============================================================ */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--ink); }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:2px; }

/* ============================================================
   NAVIGATION
============================================================ */
#nav { position:fixed; inset:0 0 auto; z-index:200; padding:24px 60px; display:flex; align-items:center; justify-content:space-between; transition:all .5s ease; }
#nav.solid { background:rgba(6,5,10,.94); backdrop-filter:blur(20px); padding:16px 60px; border-bottom:1px solid var(--border); }
.logo { display:flex; align-items:center; gap:14px; }
.logo-mark { flex-shrink:0; }
.logo-text .name { font-family:'Raleway',sans-serif; font-size:.82rem; font-weight:600; letter-spacing:.28em; color:var(--gold); text-transform:uppercase; display:block; }
.logo-text .sub { font-family:'Cormorant',serif; font-style:italic; font-size:.72rem; color:var(--slate); letter-spacing:.12em; display:block; margin-top:1px; }
#nav ul { display:flex; gap:38px; }
#nav ul a { font-family:'Raleway',sans-serif; font-size:.72rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:rgba(245,237,216,.7); transition:color .3s; }
#nav ul a:hover { color:var(--gold); }
.nav-cta { font-family:'Raleway',sans-serif; font-size:.68rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--black); background:var(--gold); padding:11px 26px; transition:all .3s; clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); }
.nav-cta:hover { background:var(--saffron); color:var(--cream); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.hamburger span { width:24px; height:1.5px; background:var(--gold); transition:all .3s; }

/* ============================================================
   HERO
============================================================ */
#hero { height:100vh; min-height:700px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-photo { position:absolute; inset:0; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 40%; filter:saturate(.75); }
.hero-scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,5,10,.62) 0%,rgba(6,5,10,.3) 40%,rgba(6,5,10,.55) 70%,rgba(6,5,10,.92) 100%); }
.hero-scrim2 { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%,rgba(212,101,26,.18) 0%,transparent 65%); }
#particles { position:absolute; inset:0; pointer-events:none; }
.hero-content { position:relative; z-index:10; text-align:center; padding:0 24px; max-width:900px; }
.hero-eyebrow { font-family:'Raleway',sans-serif; font-size:.65rem; font-weight:600; letter-spacing:.55em; text-transform:uppercase; color:var(--gold); margin-bottom:32px; display:flex; align-items:center; justify-content:center; gap:16px; opacity:0; animation:fadeUp .8s ease forwards .3s; }
.hero-eyebrow::before,.hero-eyebrow::after { content:''; width:40px; height:1px; background:var(--gold); }
.hero-logo-hero { margin-bottom:24px; opacity:0; animation:fadeIn 1s ease forwards .6s; }
.hero-title { font-family:'Playfair Display',serif; font-size:clamp(3.2rem,7vw,7.2rem); font-weight:700; line-height:.95; color:var(--cream); letter-spacing:-.01em; margin-bottom:16px; opacity:0; animation:fadeUp .9s ease forwards .8s; }
.hero-title em { font-style:italic; color:var(--gold); }
.hero-tagline { font-family:'Cormorant',serif; font-size:clamp(1.1rem,2.2vw,1.5rem); font-style:italic; font-weight:300; color:rgba(245,237,216,.65); letter-spacing:.04em; margin-bottom:48px; opacity:0; animation:fadeUp .8s ease forwards 1.1s; }
.hero-actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; opacity:0; animation:fadeUp .8s ease forwards 1.4s; }
.btn-gold { font-family:'Raleway',sans-serif; font-size:.68rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--black); background:var(--gold); padding:15px 36px; transition:all .3s; clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); position:relative; overflow:hidden; display:inline-block; }
.btn-gold::after { content:''; position:absolute; inset:0; background:var(--saffron); clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); transform:translateY(102%); transition:transform .4s ease; }
.btn-gold:hover { color:var(--cream); }
.btn-gold:hover::after { transform:translateY(0); }
.btn-gold span { position:relative; z-index:1; }
.btn-ghost { font-family:'Raleway',sans-serif; font-size:.68rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--cream); border:1px solid rgba(245,237,216,.3); padding:15px 36px; transition:all .3s; backdrop-filter:blur(4px); display:inline-block; }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); }
.hero-scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; animation:fadeIn 1s ease forwards 2s; }
.hero-scroll p { font-family:'Raleway',sans-serif; font-size:.55rem; font-weight:600; letter-spacing:.4em; text-transform:uppercase; color:var(--slate); }
.scroll-track { width:1px; height:50px; background:linear-gradient(to bottom,var(--slate),transparent); position:relative; overflow:hidden; }
.scroll-track::after { content:''; position:absolute; top:0; left:0; width:100%; height:50%; background:var(--gold); animation:scrollAnim 2s ease-in-out infinite; }
@keyframes scrollAnim { 0%{transform:translateY(-100%)} 50%{transform:translateY(100%)} 100%{transform:translateY(300%)} }
.ghat-strip { position:absolute; bottom:0; left:0; right:0; height:120px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,120 L0,80 L30,80 L30,65 L50,65 L50,50 L70,50 L70,65 L90,65 L90,80 L110,80 L110,55 L130,55 L130,30 L150,30 L150,20 L170,20 L170,10 L190,10 L190,20 L210,20 L210,30 L230,30 L230,50 L250,50 L250,65 L270,65 L270,80 L300,80 L300,60 L320,60 L320,35 L340,35 L340,15 L360,15 L360,5 L380,5 L380,15 L400,15 L400,35 L420,35 L420,55 L440,55 L440,70 L460,70 L460,80 L500,80 L500,60 L520,60 L520,40 L540,40 L540,20 L560,20 L560,8 L580,8 L580,20 L600,20 L600,40 L620,40 L620,60 L640,60 L640,80 L680,80 L680,60 L700,60 L700,35 L720,35 L720,15 L740,15 L740,5 L760,5 L760,15 L780,15 L780,35 L800,35 L800,55 L820,55 L820,70 L840,70 L840,80 L880,80 L880,55 L900,55 L900,35 L920,35 L920,55 L940,55 L940,80 L980,80 L980,60 L1000,60 L1000,40 L1020,40 L1020,60 L1040,60 L1040,80 L1080,80 L1080,60 L1100,60 L1100,40 L1120,40 L1120,25 L1140,25 L1140,40 L1160,40 L1160,60 L1180,60 L1180,80 L1220,80 L1220,65 L1240,65 L1240,50 L1260,50 L1260,65 L1280,65 L1280,80 L1310,80 L1310,65 L1330,65 L1330,80 L1360,80 L1360,90 L1400,90 L1400,80 L1440,80 L1440,120 Z' fill='%23080604'/%3E%3C/svg%3E") bottom center/cover no-repeat; z-index:5; }

/* ============================================================
   MARQUEE
============================================================ */
.marquee-strip { background:var(--gold); padding:14px 0; overflow:hidden; }
.marquee-inner { display:flex; animation:marquee 28s linear infinite; white-space:nowrap; width:max-content; }
.marquee-inner span { font-family:'Raleway',sans-serif; font-size:.6rem; font-weight:700; letter-spacing:.35em; text-transform:uppercase; color:var(--black); padding:0 28px; }
.marquee-inner .dot { color:var(--ember); padding:0 4px; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ============================================================
   WHY US
============================================================ */
.why-us { padding:80px 60px; background:var(--ink); display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background-color:var(--border-s); border-top:1px solid var(--border-s); border-bottom:1px solid var(--border-s); }
.why-item { background:var(--ink); padding:44px 32px; text-align:center; transition:background .4s; position:relative; }
.why-item:hover { background:rgba(201,168,76,.04); }
.why-icon { font-size:2.4rem; margin-bottom:16px; display:block; }
.why-title { font-family:'Raleway',sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.why-desc { font-size:.95rem; font-weight:300; color:var(--slate); line-height:1.75; font-style:italic; }
.why-badge { position:absolute; top:16px; right:16px; font-family:'Raleway',sans-serif; font-size:.5rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; background:var(--saffron); color:var(--cream); padding:4px 8px; }

/* ============================================================
   SECTION COMMONS
============================================================ */
.section-label { font-family:'Raleway',sans-serif; font-size:.62rem; font-weight:700; letter-spacing:.45em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.section-label::before { content:''; width:32px; height:1px; background:var(--gold); flex-shrink:0; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,3.8vw,3.6rem); font-weight:700; line-height:1.08; color:var(--cream); }
.section-title em { font-style:italic; color:var(--gold); }
.reveal { opacity:0; transform:translateY(36px); transition:opacity .9s ease,transform .9s ease; }
.reveal.on { opacity:1; transform:translateY(0); }
.reveal-l { opacity:0; transform:translateX(-36px); transition:opacity .9s ease,transform .9s ease; }
.reveal-l.on { opacity:1; transform:translateX(0); }
.reveal-r { opacity:0; transform:translateX(36px); transition:opacity .9s ease,transform .9s ease; }
.reveal-r.on { opacity:1; transform:translateX(0); }

/* ============================================================
   ABOUT
============================================================ */
#about { padding:120px 60px; display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; background:var(--deep); }
.about-photo-stack { position:relative; height:580px; }
.aph-main { position:absolute; inset:0; overflow:hidden; }
.aph-main img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.aph-main:hover img { transform:scale(1.04); }
.aph-float { position:absolute; bottom:-30px; right:-30px; width:200px; height:160px; overflow:hidden; border:4px solid var(--deep); box-shadow:0 20px 60px rgba(0,0,0,.6); }
.aph-float img { width:100%; height:100%; object-fit:cover; }
.about-caption { position:absolute; top:24px; left:-20px; background:var(--saffron); padding:12px 20px; writing-mode:vertical-rl; text-orientation:mixed; font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); }
.about-text p { font-size:1.12rem; font-weight:300; line-height:1.95; color:rgba(245,237,216,.7); margin-top:22px; }
.about-divider { display:flex; align-items:center; gap:16px; margin:32px 0; }
.about-divider hr { flex:1; border:none; border-top:1px solid var(--border); }
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.stat-box { border:1px solid var(--border); padding:24px; text-align:center; transition:all .3s; position:relative; overflow:hidden; }
.stat-box::before { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); transform:scaleX(0); transition:transform .4s; }
.stat-box:hover::before { transform:scaleX(1); }
.stat-box:hover { background:rgba(201,168,76,.04); }
.stat-n { font-family:'Playfair Display',serif; font-size:2.6rem; font-weight:700; color:var(--gold); line-height:1; }
.stat-l { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--slate); margin-top:6px; }

/* ============================================================
   ROOMS
============================================================ */
#rooms { padding:120px 60px; background:var(--black); }
.rooms-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:52px; }
.rooms-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; grid-template-rows:auto auto; gap:3px; }
.room-card { position:relative; overflow:hidden; cursor:pointer; }
.room-card:nth-child(1) { grid-row:span 2; }
.room-photo { height:240px; overflow:hidden; }
.room-card:nth-child(1) .room-photo { height:100%; }
.room-photo img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.room-card:hover .room-photo img { transform:scale(1.07); }
.room-info { position:absolute; bottom:0; left:0; right:0; padding:28px; background:linear-gradient(to top,rgba(6,5,10,.97) 0%,rgba(6,5,10,.5) 60%,transparent 100%); transform:translateY(40%); transition:transform .4s ease; }
.room-card:hover .room-info { transform:translateY(0); }
.room-cat { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--saffron); margin-bottom:6px; }
.room-name { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:700; color:var(--cream); margin-bottom:12px; }
.room-card:nth-child(1) .room-name { font-size:1.9rem; }
.room-meta { display:flex; align-items:center; justify-content:space-between; }
.room-price { font-family:'Cormorant',serif; font-style:italic; font-size:1.05rem; color:var(--gold); }
.room-details { font-family:'Raleway',sans-serif; font-size:.56rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); }
.room-note { text-align:center; margin-top:28px; font-family:'Cormorant',serif; font-style:italic; font-size:1rem; color:var(--slate); }
.room-note span { color:var(--gold); }

/* ============================================================
   INFINITY SHOWCASE
============================================================ */
.infinity-showcase { position:relative; height:420px; overflow:hidden; }
.inf-photo { position:absolute; inset:0; }
.inf-photo img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.inf-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,5,10,.85) 0%,rgba(6,5,10,.4) 40%,rgba(6,5,10,.4) 60%,rgba(6,5,10,.85) 100%); }
.inf-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; text-align:center; padding:40px; }
.inf-eyebrow { font-family:'Raleway',sans-serif; font-size:.65rem; font-weight:700; letter-spacing:.55em; color:var(--gold); text-transform:uppercase; }
.inf-tagline { font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(1.1rem,2.4vw,1.8rem); font-weight:400; color:rgba(245,237,216,.85); max-width:520px; line-height:1.6; }

/* ============================================================
   EXPERIENCES
============================================================ */
#experiences { padding:120px 60px; background:var(--deep); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.exp-visual { height:580px; position:relative; overflow:hidden; }
.exp-scene { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; }
.exp-scene.active { opacity:1; }
.exp-scene img { width:100%; height:100%; object-fit:cover; }
.exp-scene::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(6,5,10,.8) 0%,rgba(6,5,10,.15) 60%,transparent 100%); }
.exp-scene-label { position:absolute; bottom:28px; left:28px; z-index:2; }
.exp-scene-label .el-title { font-family:'Playfair Display',serif; font-size:1.6rem; font-style:italic; color:var(--cream); }
.exp-scene-label .el-num { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:700; letter-spacing:.25em; color:var(--gold); margin-bottom:4px; }
.exp-list { margin-top:36px; }
.exp-item { padding:22px 0 22px 20px; border-bottom:1px solid var(--border-s); cursor:pointer; position:relative; transition:padding-left .3s; }
.exp-item::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:2px; height:0; background:var(--saffron); transition:height .4s ease; }
.exp-item.active::before { height:80%; }
.exp-item.active { padding-left:28px; }
.exp-num { font-family:'Raleway',sans-serif; font-size:.55rem; font-weight:700; letter-spacing:.2em; color:var(--slate); margin-bottom:6px; }
.exp-title { font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--cream); margin-bottom:6px; transition:color .3s; }
.exp-item.active .exp-title,.exp-item:hover .exp-title { color:var(--gold); }
.exp-desc { font-size:.92rem; font-weight:300; color:var(--slate); line-height:1.7; max-height:0; overflow:hidden; transition:max-height .4s ease; }
.exp-item.active .exp-desc { max-height:80px; }

/* ============================================================
   RESTAURANT
============================================================ */
#restaurant { padding:120px 60px; background:var(--black); }
.rest-inner { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; align-items:center; }
.rest-photo-wrap { position:relative; }
.rest-photo { height:520px; overflow:hidden; }
.rest-photo img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.rest-photo:hover img { transform:scale(1.04); }
.rest-name-badge { position:absolute; bottom:-20px; left:30px; background:var(--saffron); padding:18px 26px; box-shadow:0 10px 40px rgba(212,101,26,.4); }
.rest-name-badge .rn { font-family:'Playfair Display',serif; font-size:1.4rem; font-style:italic; color:var(--cream); display:block; }
.rest-name-badge .rs { font-family:'Raleway',sans-serif; font-size:.55rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:rgba(245,237,216,.7); display:block; margin-top:4px; }
.rest-desc { font-size:1.08rem; font-weight:300; color:rgba(245,237,216,.7); line-height:1.9; margin-top:20px; }
.rest-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.rest-tag { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); border:1px solid var(--border); padding:7px 14px; }
.menu-grid { margin-top:36px; }
.menu-item { display:flex; align-items:flex-start; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--border-s); gap:20px; transition:padding-left .3s; }
.menu-item:hover { padding-left:8px; }
.mi-name { font-family:'Cormorant',serif; font-size:1.05rem; color:var(--cream); }
.mi-desc { font-size:.82rem; color:var(--slate); margin-top:3px; font-style:italic; }
.mi-tag { font-family:'Raleway',sans-serif; font-size:.48rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ember); border:1px solid rgba(184,74,16,.3); padding:2px 6px; display:inline-block; margin-top:4px; }
.mi-price { font-family:'Cormorant',serif; font-style:italic; font-size:.95rem; color:var(--gold); white-space:nowrap; }

/* ============================================================
   GALLERY
============================================================ */
#gallery { padding:80px 0; background:var(--ink); }
.gallery-header { padding:0 60px; display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:260px 260px; gap:3px; padding:0 3px; }
.gal-item { position:relative; overflow:hidden; cursor:zoom-in; }
.gal-item:nth-child(1) { grid-column:span 2; grid-row:span 2; }
.gal-item:nth-child(5) { grid-column:span 2; }
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gal-item:hover img { transform:scale(1.08); }
.gal-overlay { position:absolute; inset:0; background:rgba(6,5,10,.55); opacity:0; display:flex; align-items:center; justify-content:center; transition:opacity .4s; }
.gal-item:hover .gal-overlay { opacity:1; }
.gal-caption { text-align:center; padding:20px; }
.gal-cap-title { font-family:'Playfair Display',serif; font-style:italic; font-size:1.2rem; color:var(--cream); }
.gal-cap-sub { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-top:6px; }

/* LIGHTBOX */
#lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.95); z-index:9990; align-items:center; justify-content:center; backdrop-filter:blur(8px); }
#lightbox.open { display:flex; }
#lightbox img { max-width:90vw; max-height:85vh; object-fit:contain; }
.lb-close { position:absolute; top:24px; right:32px; font-size:2rem; color:var(--gold); cursor:pointer; transition:color .3s; }
.lb-close:hover { color:var(--saffron); }
.lb-arrow { position:absolute; top:50%; transform:translateY(-50%); font-size:2.5rem; color:var(--gold); cursor:pointer; padding:16px; transition:color .3s; user-select:none; }
.lb-arrow:hover { color:var(--saffron); }
.lb-prev { left:16px; }
.lb-next { right:16px; }
.lb-info { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); text-align:center; }
.lb-title { font-family:'Playfair Display',serif; font-style:italic; font-size:1.1rem; color:var(--cream); }
.lb-counter { font-family:'Raleway',sans-serif; font-size:.58rem; letter-spacing:.2em; color:var(--slate); margin-top:4px; }

/* ============================================================
   TESTIMONIALS
============================================================ */
#testimonials { padding:100px 60px; background:var(--river); text-align:center; position:relative; overflow:hidden; }
#testimonials::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%,rgba(201,168,76,.1) 0%,transparent 70%); }
.testi-wrap { max-width:680px; margin:48px auto 0; position:relative; }
.testi { display:none; animation:fadeIn .7s ease; }
.testi.active { display:block; }
.testi-quote { font-family:'Cormorant',serif; font-size:clamp(1.15rem,2.2vw,1.6rem); font-style:italic; font-weight:300; line-height:1.75; color:var(--cream); margin-bottom:28px; }
.testi-quote::before { content:'\201C'; font-size:3.5rem; color:var(--gold); line-height:0; vertical-align:-.5em; margin-right:4px; }
.testi-quote::after { content:'\201D'; font-size:3.5rem; color:var(--gold); line-height:0; vertical-align:-.5em; margin-left:4px; }
.testi-author { font-family:'Raleway',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); }
.testi-place { font-size:.88rem; font-style:italic; color:rgba(245,237,216,.45); margin-top:4px; }
.testi-stars { color:var(--gold); font-size:.9rem; letter-spacing:3px; margin-bottom:16px; }
.testi-dots { display:flex; justify-content:center; gap:10px; margin-top:36px; }
.testi-dot { width:6px; height:6px; border-radius:50%; background:rgba(201,168,76,.3); cursor:pointer; transition:all .3s; }
.testi-dot.active { background:var(--gold); width:24px; border-radius:3px; }
.testi-nav { display:flex; justify-content:center; gap:16px; margin-top:24px; }
.testi-btn { width:42px; height:42px; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.2rem; cursor:pointer; transition:all .3s; }
.testi-btn:hover { background:var(--gold); color:var(--black); }

/* ============================================================
   BOOKING
============================================================ */
#book { padding:120px 60px; background:var(--deep); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.book-desc { font-size:1.05rem; font-weight:300; color:rgba(245,237,216,.6); line-height:1.9; margin-top:20px; }
.book-perks { margin-top:32px; display:flex; flex-direction:column; gap:12px; }
.book-perk { display:flex; align-items:center; gap:14px; font-size:.95rem; color:rgba(245,237,216,.65); }
.book-perk-icon { width:6px; height:6px; background:var(--gold); border-radius:50%; flex-shrink:0; }
.book-form { border:1px solid var(--border); padding:48px; }
.bf-title { font-family:'Raleway',sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:32px; padding-bottom:16px; border-bottom:1px solid var(--border-s); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.form-group { display:flex; flex-direction:column; gap:8px; }
.form-group.span2 { grid-column:span 2; }
.form-group label { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--slate); }
.form-group input,.form-group select { background:transparent; border:none; border-bottom:1px solid var(--border); padding:10px 0; color:var(--cream); font-family:'Cormorant',serif; font-size:1rem; outline:none; transition:border-color .3s; width:100%; -webkit-appearance:none; }
.form-group input::placeholder { color:var(--slate); font-style:italic; }
.form-group input:focus,.form-group select:focus { border-color:var(--gold); }
.form-group select option { background:var(--ink); }
.form-submit { width:100%; margin-top:8px; padding:18px; background:var(--gold); color:var(--black); font-family:'Raleway',sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase; cursor:pointer; transition:all .3s; position:relative; overflow:hidden; }
.form-submit::after { content:''; position:absolute; inset:0; background:var(--saffron); transform:translateY(100%); transition:transform .4s ease; }
.form-submit:hover { color:var(--cream); }
.form-submit:hover::after { transform:translateY(0); }
.form-submit span { position:relative; z-index:1; }

/* ============================================================
   FOOTER
============================================================ */
footer { background:#040304; padding:80px 60px 36px; border-top:1px solid var(--border-s); }
.ft-top { display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:60px; margin-bottom:60px; }
.ft-brand .ft-logo { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.ft-logo .logo-name { font-family:'Raleway',sans-serif; font-size:.9rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.ft-logo .logo-tag { display:block; font-family:'Cormorant',serif; font-style:italic; font-size:.7rem; color:var(--slate); margin-top:2px; }
.ft-desc { font-size:.92rem; color:var(--slate); line-height:1.85; font-weight:300; }
.ft-col h4 { font-family:'Raleway',sans-serif; font-size:.62rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.ft-col ul { display:flex; flex-direction:column; gap:12px; }
.ft-col li a { font-size:.92rem; color:var(--slate); transition:color .3s; font-weight:300; }
.ft-col li a:hover { color:var(--gold); }
.ft-contact-item { display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color:var(--slate); margin-bottom:12px; font-weight:300; }
.ft-contact-icon { color:var(--gold); margin-top:2px; }
.ft-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:1px solid var(--border-s); font-family:'Raleway',sans-serif; font-size:.6rem; letter-spacing:.1em; color:var(--slate); }
.ft-om { font-family:'Cormorant',serif; font-style:italic; color:var(--gold); font-size:.95rem; }

/* ============================================================
   MODAL
============================================================ */
#modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:9990; align-items:center; justify-content:center; backdrop-filter:blur(12px); }
#modal.open { display:flex; }
.modal-box { background:var(--ink); border:1px solid var(--border); padding:60px; max-width:480px; width:90%; text-align:center; animation:fadeUp .5s ease; }
.modal-icon { font-size:3rem; margin-bottom:16px; }
.modal-kicker { font-family:'Raleway',sans-serif; font-size:.62rem; font-weight:700; letter-spacing:.45em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.modal-title { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:700; color:var(--cream); margin-bottom:14px; }
.modal-desc { font-size:.95rem; color:var(--slate); line-height:1.85; margin-bottom:36px; }
.modal-close { font-family:'Raleway',sans-serif; font-size:.65rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--black); background:var(--gold); padding:14px 36px; cursor:pointer; border:none; transition:background .3s; }
.modal-close:hover { background:var(--saffron); color:var(--cream); }

/* ============================================================
   MOBILE NAV DRAWER
============================================================ */
#mobile-nav { position:fixed; inset:0; background:rgba(6,5,10,.97); z-index:300; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px; transform:translateX(100%); transition:transform .4s ease; }
#mobile-nav.open { transform:translateX(0); }
#mobile-nav a { font-family:'Raleway',sans-serif; font-size:1.1rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); transition:color .3s; }
#mobile-nav a:hover { color:var(--gold); }
.mn-close { position:absolute; top:24px; right:24px; font-size:1.8rem; color:var(--gold); cursor:pointer; }

/* ============================================================
   ANIMATIONS
============================================================ */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width:900px) {
  #nav { padding:16px 24px; }
  #nav.solid { padding:12px 24px; }
  #nav ul,.nav-cta { display:none; }
  .hamburger { display:flex; }
  #about,#experiences,#book,.rest-inner,.ft-top { grid-template-columns:1fr; }
  .rooms-grid { grid-template-columns:1fr 1fr; }
  .room-card:nth-child(1) { grid-column:1; grid-row:1; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:200px 200px 200px; }
  .gal-item:nth-child(1) { grid-column:1; grid-row:1; }
  .gal-item:nth-child(5) { grid-column:1; }
  #hero,#about,#rooms,#experiences,#restaurant,#gallery,#testimonials,#book { padding-left:24px; padding-right:24px; }
  .why-us { grid-template-columns:1fr 1fr; padding:40px 24px; }
  .rooms-header { flex-direction:column; align-items:flex-start; gap:16px; }
  .gallery-header { flex-direction:column; align-items:flex-start; gap:14px; padding:0 24px; }
  .aph-float,.about-caption { display:none; }
  .about-photo-stack { height:380px; }
  footer { padding:60px 24px 24px; }
}
