/* ============================================
   HOTEL FLORA HARIDWAR - Main Stylesheet
   ============================================ */

:root {
  --green: #3F6B1C;
  --green-dark: #2e4f14;
  --gold: #D4A62A;
  --gold-light: #e8bc45;
  --ivory: #FAF8F3;
  --ivory-dark: #F0EDE4;
  --white: #ffffff;
  --text: #1F2937;
  --muted: #64748B;
  --border: rgba(212,166,42,0.2);
  --shadow: 0 20px 60px rgba(63,107,28,0.12);
  
  /* Luxury Redesign Colors */
  --luxury-green: #1F3A1D;
  --luxury-gold: #C8A24D;
  --luxury-ivory: #F8F6F1;
  --luxury-overlay: rgba(0,0,0,0.62);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; background: var(--ivory); color: var(--text); overflow-x: hidden; }
a { text-decoration: none; color: inherit; }

/* BUTTONS */
.btn-gold { display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:13px 26px;border-radius:4px;border:none;cursor:pointer;transition:all .3s }
.btn-gold:hover { transform:translateY(-2px);box-shadow:0 8px 25px rgba(212,166,42,.4) }
.btn-green { display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:13px 26px;border-radius:4px;border:none;cursor:pointer;transition:all .3s }
.btn-green:hover { background:var(--green-dark);transform:translateY(-2px) }
.btn-outline { display:inline-flex;align-items:center;gap:8px;background:transparent;color:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:12px 26px;border-radius:4px;border:1.5px solid rgba(255,255,255,.6);cursor:pointer;transition:all .3s }
.btn-outline:hover { background:rgba(255,255,255,.1) }
.btn-ghost { display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--green);font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:12px 26px;border-radius:4px;border:1.5px solid var(--green);cursor:pointer;transition:all .3s }
.btn-ghost:hover { background:var(--green);color:#fff }

/* LAYOUT */
.container { max-width:1280px;margin:0 auto;padding:0 40px }
.pill { display:inline-block;border:1px solid rgba(63,107,28,.3);color:var(--green);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:4px 14px;border-radius:50px;background:rgba(63,107,28,.05);margin-bottom:18px }
.section-title { font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,56px);font-weight:600;line-height:1.1;color:var(--text);margin-bottom:18px }
.section-title em { color:var(--gold);font-style:italic }
.section-sub { font-size:15px;color:var(--muted);line-height:1.75;max-width:540px }

/* ANIMATIONS */
.fade-up { 
  opacity: 0; 
  transform: translateY(22px); 
  transition: opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1), transform 1.1s cubic-bezier(0.16, 1, 0.3, 1); 
  will-change: transform, opacity;
}
.fade-up.visible { 
  opacity: 1; 
  transform: translateY(0); 
}
.delay-1 { transition-delay: .12s }
.delay-2 { transition-delay: .24s }
.delay-3 { transition-delay: .36s }
.delay-4 { transition-delay: .48s }
.delay-5 { transition-delay: .6s }
.delay-6 { transition-delay: .72s }

/* Luxury Button Shimmer Sweep Effect */
.btn-gold, .btn-green, .btn-outline, .btn-ghost, .btn-luxury-gold, .btn-luxury-outline, .mnav-book-btn, .form-submit, .vt-launch-btn {
  position: relative;
  overflow: hidden;
}
.btn-gold::after, .btn-green::after, .btn-outline::after, .btn-ghost::after, .btn-luxury-gold::after, .btn-luxury-outline::after, .mnav-book-btn::after, .form-submit::after, .vt-launch-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -60%;
  width: 25%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-25deg);
  pointer-events: none;
}
.btn-gold:hover::after, .btn-green:hover::after, .btn-outline:hover::after, .btn-ghost:hover::after, .btn-luxury-gold:hover::after, .btn-luxury-outline:hover::after, .mnav-book-btn:hover::after, .form-submit:hover::after, .vt-launch-btn:hover::after {
  left: 160%;
  transition: left 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

/* HEADER */
header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px;
  padding:0 48px;
  height:96px;
  background:#ffffff;
  box-shadow:0 2px 20px rgba(0,0,0,.08);
  transition:all .3s;
}
.logo-wrap{display:flex;align-items:center;flex-shrink:0}
.logo-img{height:76px;width:auto;object-fit:contain;transition:all .3s}
nav{
  display:flex;align-items:center;justify-content:center;
  gap:4px;
  flex-wrap:nowrap;
}
.nav-link{
  font-size:13.5px;font-weight:500;color:var(--text);
  position:relative;transition:color .3s;
  padding:6px 10px;
  white-space:nowrap;
  border-radius:4px;
}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:10px;right:10px;
  height:1.5px;background:var(--gold);
  transform:scaleX(0);transition:transform .3s;
}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link:hover{color:var(--green)}
.header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.btn-booknow{padding:10px 20px!important;font-size:12px!important;white-space:nowrap}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:0}
.hamburger span{width:22px;height:2px;background:var(--text);display:block;transition:.3s}

.mobile-nav { display:none;position:fixed;inset:0;background:var(--green-dark);z-index:1100;flex-direction:column;overflow:hidden }
.mobile-nav.open { display:flex }
/* Header */
.mnav-header { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 20px 18px;background:#fff;border-bottom:1px solid rgba(0,0,0,0.08);flex-shrink:0 }
.mnav-logo { width:52px;height:52px;object-fit:contain;border-radius:50%;flex-shrink:0 }
.mnav-brand { flex:1 }
.mnav-brand-name { font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:700;color:#fff;letter-spacing:1.5px }
.mnav-brand-sub { font-size:11px;color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin-top:1px }
.mnav-close { background:var(--green);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;flex-shrink:0;transition:background .25s }
.mnav-close:hover { background:var(--green-dark) }
/* Items list */
.mnav-items { flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:6px }
.mnav-item { display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:10px;background:rgba(255,255,255,.06);text-decoration:none;color:rgba(255,255,255,.9);transition:all .2s;border:1px solid rgba(255,255,255,.06) }
.mnav-item:hover,.mnav-item:active { background:rgba(255,255,255,.14);border-color:rgba(212,166,42,.4) }
.mnav-item.mnav-active { background:rgba(212,166,42,.18);border-color:rgba(212,166,42,.5);color:#fff }
.mnav-item.mnav-active .mnav-icon { color:var(--gold) }
.mnav-icon { width:36px;height:36px;background:rgba(255,255,255,.08);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(255,255,255,.75) }
.mnav-label { flex:1;font-family:'Inter',sans-serif;font-size:15px;font-weight:500;letter-spacing:.2px }
.mnav-arrow { color:rgba(255,255,255,.35);flex-shrink:0 }
.mnav-item.mnav-active .mnav-arrow { color:var(--gold) }
/* Footer CTA */
.mnav-footer { padding:14px 16px 28px;flex-shrink:0;border-top:1px solid rgba(255,255,255,.1) }
.mnav-book-btn { display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px;background:var(--gold);color:#1a2a0a;border-radius:10px;font-family:'Inter',sans-serif;font-size:15px;font-weight:700;letter-spacing:.8px;text-decoration:none;text-transform:uppercase;transition:all .25s }
.mnav-book-btn:hover { background:#e6b800;transform:translateY(-1px) }
/* Remove old rule that hid btn-gold */

/* PAGE HERO BANNER (SHARED) */
.page-hero {
  height: 480px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 96px;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  transition: transform 8s ease;
}
.page-hero:hover .page-hero-bg { transform: scale(1.0); }
.page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(46,80,20,0.82) 0%, rgba(0,0,0,0.5) 100%);
}
.page-hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 20px;
}
.page-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(212,166,42,0.5);
  border-radius: 50px;
  padding: 6px 18px;
  margin-bottom: 20px;
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 600;
}
.page-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(44px, 7vw, 80px);
  font-weight: 600;
  color: #fff;
  line-height: 1.05;
  margin-bottom: 16px;
}
.page-hero-title em { color: var(--gold); font-style: italic; }
.page-hero-sub {
  font-size: 17px;
  color: rgba(255,255,255,0.72);
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.7;
  font-weight: 300;
}

/* BREADCRUMB */
.breadcrumb {
  background: var(--white);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  padding: 14px 0;
}
.breadcrumb-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--muted);
}
.breadcrumb-inner a {
  color: var(--green);
  transition: color 0.2s;
}
.breadcrumb-inner a:hover { color: var(--gold); }
.breadcrumb-sep { color: var(--muted); opacity: 0.5; }


/* ===== IMMERSIVE FULL-SCREEN HERO REDESIGN ===== */
#hero {
  position: relative;
  height: 100vh;
  min-height: 650px;
  overflow: hidden;
  background: var(--luxury-green);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  padding-top: 96px; /* Offset for fixed header */
  z-index: 1;
}
.hero-video-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.hero-video-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: heroVideoFadeIn 1.5s ease forwards;
}
@keyframes heroVideoFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.hero-video-overlay-dark {
  position: absolute;
  inset: 0;
  background: var(--luxury-overlay);
  z-index: 2;
  pointer-events: none;
}
.hero-content-center {
  position: relative;
  z-index: 3;
  text-align: center;
  color: var(--luxury-ivory);
  width: 100%;
  max-width: 1200px;
  padding: 0 24px 60px; /* spacing bottom for scroll down mouse */
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero-title-text {
  display: inline-block;
}
@media(min-width: 901px) {
  .hero-title-text {
    white-space: nowrap;
  }
}
.hero-title-main {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(38px, 5.2vw, 68px);
  font-weight: 500;
  line-height: 1.15;
  color: var(--luxury-ivory);
  margin-bottom: 24px;
  letter-spacing: -0.5px;
}
.hero-title-accent {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(30px, 4.2vw, 52px);
  color: var(--luxury-gold);
  font-style: italic;
  font-weight: 400;
  margin-top: 10px;
  letter-spacing: 0.5px;
}
.hero-description {
  font-size: clamp(14px, 1.8vw, 17px);
  line-height: 1.8;
  color: rgba(248, 246, 241, 0.85);
  max-width: 650px;
  margin: 0 auto 36px;
  font-weight: 300;
  letter-spacing: 0.2px;
}
.hero-buttons-centered {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-bottom: 44px;
}
.btn-luxury-gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--luxury-gold);
  color: var(--luxury-green);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 16px 36px;
  border-radius: 50px;
  border: 1px solid var(--luxury-gold);
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}
.btn-luxury-gold:hover {
  background: transparent;
  color: var(--luxury-gold);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(200, 162, 77, 0.3);
}
.btn-luxury-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--luxury-ivory);
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 15px 36px;
  border-radius: 50px;
  border: 1.5px solid rgba(248, 246, 241, 0.5);
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}
.btn-luxury-outline:hover {
  background: var(--luxury-ivory);
  color: var(--luxury-green);
  border-color: var(--luxury-ivory);
  transform: translateY(-2px);
}
.hero-trust-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: rgba(248, 246, 241, 0.7);
  font-size: clamp(11px, 1.4vw, 13px);
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  flex-wrap: wrap;
}
.trust-bullet {
  color: var(--luxury-gold);
  font-size: 14px;
}

/* SCROLL INDICATOR */
.hero-scroll-indicator {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.scroll-indicator-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: rgba(248, 246, 241, 0.55);
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
  transition: color 0.3s ease;
}
.scroll-indicator-link:hover {
  color: var(--luxury-gold);
}
.scroll-mouse {
  width: 22px;
  height: 34px;
  border: 1.5px solid currentColor;
  border-radius: 12px;
  position: relative;
  transition: all 0.3s ease;
}
.scroll-wheel {
  width: 3px;
  height: 6px;
  background: currentColor;
  border-radius: 50%;
  position: absolute;
  top: 7px;
  left: 50%;
  transform: translateX(-50%);
  animation: scrollWheelPlay 1.8s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}
@keyframes scrollWheelPlay {
  0% { top: 7px; opacity: 0; }
  30% { top: 10px; opacity: 1; }
  100% { top: 20px; opacity: 0; }
}

/* LOAD ANIMATIONS */
.hero-animate-up {
  opacity: 0;
  transform: translateY(30px);
  animation: heroSlideUpFade 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.hero-animate-fade {
  opacity: 0;
  animation: heroFadeOnly 1.2s ease forwards;
}
.hero-content-center .delay-1 {
  animation-delay: 0.3s;
}
.hero-content-center .delay-2 {
  animation-delay: 0.6s;
}
.hero-content-center .delay-3 {
  animation-delay: 0.9s;
}
@keyframes heroSlideUpFade {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes heroFadeOnly {
  to {
    opacity: 1;
  }
}

/* STORY */
#story { background:var(--ivory);padding:0 0 110px 0;overflow:hidden;margin-top:0 }
.story-grid { display:grid;grid-template-columns:1fr 1fr;min-height:580px }
.story-img-block { position:relative;min-height:600px;overflow:hidden }
.story-img-main { position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 6s ease, filter 0.8s cubic-bezier(0.16, 1, 0.3, 1) }
.story-img-block:hover .story-img-main { transform:scale(1.04); filter: brightness(0.95) }
.story-img-accent { position:absolute;bottom:-20px;right:-20px;width:200px;height:250px;background-size:cover;background-position:center;border:5px solid var(--ivory);border-radius:8px;box-shadow:var(--shadow);z-index:2;transition:transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important }
.story-img-block:hover .story-img-accent { transform:scale(1.05) translate(-4px,-4px) }
.story-badge { position:absolute;top:32px;right:32px;background:var(--gold);color:#fff;padding:13px 16px;border-radius:8px;text-align:center;z-index:3 }
.story-badge .num { font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:700;line-height:1 }
.story-badge .lbl { font-size:10px;letter-spacing:1.5px;text-transform:uppercase;opacity:.85 }
.story-content { padding:80px 70px 80px 60px;display:flex;flex-direction:column;justify-content:center }
.story-quote { font-family:'Cormorant Garamond',serif;font-size:clamp(24px,3vw,40px);font-weight:500;line-height:1.25;color:var(--text);margin-bottom:22px;font-style:italic;position:relative }
.story-quote::before { content:'"';font-size:80px;color:var(--gold);opacity:.12;position:absolute;top:-15px;left:-12px;line-height:1;font-family:'Cormorant Garamond',serif }
.story-text { font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:13px }
.story-features { display:flex;gap:24px;margin:26px 0;flex-wrap:wrap }
.story-feat { display:flex;align-items:center;gap:9px }
.feat-dot { width:7px;height:7px;background:var(--gold);border-radius:50%;flex-shrink:0 }
.story-feat span { font-size:13px;font-weight:600;color:var(--text) }

/* ROOMS */
#rooms { background:var(--white);padding:90px 0 0 }
.rooms-header { text-align:center;margin-bottom:60px }
.room-feature { display:grid;grid-template-columns:1fr 1fr;min-height:520px }
.room-feature.reverse { direction:rtl }
.room-feature.reverse > * { direction:ltr }
.room-img-wrap { position:relative;overflow:hidden }
.room-slider { position:absolute;inset:0 }
.room-slide { position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .8s ease, transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) !important }
.room-slide.active { opacity:1 }
.room-feature:hover .room-slide.active { transform:scale(1.04) }
.slider-dots { position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:7px;z-index:5 }
.dot { width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:all .3s;border:none }
.dot.active { background:var(--gold);width:18px;border-radius:4px }
.slider-prev, .slider-next { position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:all .3s }
.slider-prev:hover, .slider-next:hover { background:var(--gold);border-color:var(--gold) }
.slider-prev { left:12px } .slider-next { right:12px }
.room-type-badge { position:absolute;top:22px;left:22px;background:rgba(0,0,0,.45);backdrop-filter:blur(8px);border:1px solid rgba(212,166,42,.4);color:var(--gold);font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:600;padding:5px 13px;border-radius:50px;z-index:3 }
.room-content { background:var(--ivory);padding:55px 65px;display:flex;flex-direction:column;justify-content:center }
.room-feature:nth-child(2) .room-content { background:var(--green-dark) }
.room-feature:nth-child(2) .room-eyebrow { color:var(--gold) }
.room-feature:nth-child(2) .room-title { color:#fff }
.room-feature:nth-child(2) .room-desc { color:rgba(255,255,255,.68) }
.room-feature:nth-child(2) .room-detail span { color:rgba(255,255,255,.5) }
.room-feature:nth-child(2) .room-detail strong { color:rgba(255,255,255,.88) }
.room-feature:nth-child(2) .room-divider { background:rgba(255,255,255,.12) }
.room-feature:nth-child(2) .amenity-tag { color:rgba(255,255,255,.75);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15) }
.room-feature:nth-child(3) .room-content { background:var(--ivory-dark) }
.room-eyebrow { font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:9px }
.room-title { font-family:'Cormorant Garamond',serif;font-size:clamp(28px,3.5vw,44px);font-weight:600;color:var(--text);line-height:1.15;margin-bottom:16px }
.room-desc { font-size:14px;color:var(--muted);line-height:1.75;margin-bottom:22px }
.amenities { display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px }
.amenity-tag { font-size:11px;color:var(--green);background:rgba(63,107,28,.08);border:1px solid rgba(63,107,28,.2);border-radius:50px;padding:4px 11px;font-weight:500 }
.room-divider { height:1px;background:var(--border);margin-bottom:22px }
.room-details { display:flex;gap:20px;flex-wrap:wrap;margin-bottom:28px }
.room-detail { display:flex;flex-direction:column }
.room-detail span { font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:3px }
.room-detail strong { font-size:14px;font-weight:600;color:var(--text) }
.room-ctas { display:flex;gap:12px;flex-wrap:wrap }

/* WHY FLORA */
#why { background:var(--ivory);padding:30px 0 90px }
.why-header { text-align:center;margin-bottom:60px }
.why-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px }
.why-card { background:var(--white);border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:36px 26px;text-align:center;transition:all .3s;position:relative;overflow:hidden }
.why-card::before { content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--gold);transform:scaleX(0);transition:transform .3s }
.why-card:hover { transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(212,166,42,.2) }
.why-card:hover::before { transform:scaleX(1) }
.why-icon { width:68px;height:68px;background:transparent;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;transition:.3s;border:1.5px solid rgba(212,166,42,.35) }
.why-card:hover .why-icon { background:rgba(212,166,42,.1);border-color:var(--gold) }
.why-card-title { font-size:15px;font-weight:600;color:var(--text);margin-bottom:7px }
.why-card-desc { font-size:13px;color:var(--muted);line-height:1.6 }

/* VIRTUAL TOUR */
#virtual-tour { background:var(--green-dark);position:relative;overflow:hidden;min-height:680px;display:flex;align-items:center }
.vt-grid-overlay { position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px }
.vt-content { position:relative;z-index:2;width:100%;padding:80px 60px }
.vt-inner { display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1280px;margin:0 auto }
.vt-eyebrow { display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(212,166,42,.4);border-radius:50px;padding:7px 18px;margin-bottom:24px;color:var(--gold);font-size:11px;letter-spacing:3px;text-transform:uppercase;font-weight:600 }
.vt-title { font-family:'Cormorant Garamond',serif;font-size:clamp(42px,5.5vw,72px);font-weight:600;color:#fff;line-height:1.15;margin-bottom:20px }
.vt-title em { color:var(--gold);font-style:italic }
.vt-subtitle { font-size:16px;color:rgba(255,255,255,.65);max-width:460px;margin-bottom:36px;line-height:1.7 }
.vt-launch-btn { display:inline-flex;align-items:center;gap:12px;background:var(--gold);color:#fff;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:17px 44px;border-radius:50px;border:none;cursor:pointer;transition:all .3s;animation:glow 2.5s infinite }
@keyframes glow { 0%,100%{box-shadow:0 0 0 0 rgba(212,166,42,.4)}50%{box-shadow:0 0 0 16px rgba(212,166,42,0)} }
.vt-launch-btn:hover { transform:scale(1.05) }
.play-icon { width:32px;height:32px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px }
.vt-stats { display:flex;gap:40px;margin-top:40px;padding-top:36px;border-top:1px solid rgba(255,255,255,.12) }
.vt-stat-num { font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:700;color:var(--gold);line-height:1;margin-bottom:5px }
.vt-stat-label { font-size:11px;color:rgba(255,255,255,.48);letter-spacing:1.5px;text-transform:uppercase }
.vt-planet-wrap { position:relative }
.vt-planet-img { width:100%;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.4);display:block }
.vt-planet-badge { position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;padding:10px 24px;border-radius:50px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;white-space:nowrap }

/* DINING */
#dining { background:var(--white);padding:110px 0;overflow:hidden }
.dining-grid { display:grid;grid-template-columns:5fr 4fr;gap:70px;align-items:center }
.dining-img-stack { position:relative;overflow:visible }
.dining-main-img { width:100%;height:520px;background-size:cover;background-position:center;border-radius:8px;box-shadow:var(--shadow);transition:transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important }
.dining-accent-img { position:absolute;bottom:-32px;right:-32px;width:160px;height:200px;background-size:cover;background-position:center;border-radius:8px;border:5px solid #fff;box-shadow:var(--shadow);transition:transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important }
.dining-grid:hover .dining-main-img { transform:scale(1.02) }
.dining-grid:hover .dining-accent-img { transform:scale(1.06) translate(-5px,-5px) }
.dining-title { font-family:'Cormorant Garamond',serif;font-size:clamp(30px,3.8vw,48px);font-weight:600;line-height:1.1;color:var(--text);margin-bottom:20px }
.dining-title em { color:var(--gold);font-style:italic }
.dining-desc { font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:12px }
.dining-features { margin:26px 0;display:flex;flex-direction:column;gap:12px }
.dining-feat { display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--ivory);border-radius:8px;border-left:3px solid var(--gold) }
.feat-icon { font-size:17px }
.feat-text { font-size:13px;font-weight:600;color:var(--text) }

/* EVENTS */
#events { background:var(--ivory);padding:90px 0 }
.events-header { text-align:center;margin-bottom:52px }
.events-grid { display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto auto;gap:18px }
.event-card { position:relative;border-radius:12px;overflow:hidden;cursor:pointer }
.event-card:first-child { grid-row:span 2 }
.event-img { width:100%;height:100%;min-height:280px;background-size:cover;background-position:center;transition:transform 6s ease;display:block }
.event-card:hover .event-img { transform:scale(1.05) }
.event-card:first-child .event-img { min-height:580px }
.event-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.08) 60%);transition:.3s }
.event-card:hover .event-overlay { background:linear-gradient(to top,rgba(63,107,28,.82) 0%,rgba(63,107,28,.15) 60%) }
.event-info { position:absolute;bottom:0;left:0;right:0;padding:26px }
.event-tag { display:inline-block;background:var(--gold);color:#fff;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:4px 11px;border-radius:50px;margin-bottom:7px }
.event-name { font-family:'Cormorant Garamond',serif;font-size:clamp(18px,2.5vw,28px);font-weight:600;color:#fff;line-height:1.2;margin-bottom:5px }
.event-desc { font-size:12px;color:rgba(255,255,255,.7);line-height:1.6 }

/* HARIDWAR */
#haridwar { background:var(--white);padding:90px 0 }
.haridwar-header { text-align:center;margin-bottom:52px }
.haridwar-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px }
.dest-card { position:relative;border-radius:12px;overflow:hidden;cursor:pointer;height:350px }
.dest-img { position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 6s ease }
.dest-card:hover .dest-img { transform:scale(1.08) }
.dest-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 55%);transition:.3s }
.dest-card:hover .dest-overlay { background:linear-gradient(to top,rgba(63,107,28,.88) 0%,rgba(63,107,28,.2) 55%) }
.dest-info { position:absolute;bottom:0;left:0;right:0;padding:20px }
.dest-distance { font-size:11px;color:var(--gold);letter-spacing:1.5px;text-transform:uppercase;font-weight:600;margin-bottom:5px }
.dest-name { font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:#fff;line-height:1.2;margin-bottom:3px }
.dest-type { font-size:11px;color:rgba(255,255,255,.6) }

/* GALLERY */
#gallery { background:var(--ivory);padding:90px 0 }
.gallery-header { text-align:center;margin-bottom:52px }
.gallery-grid { display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,260px);gap:12px;margin-bottom:40px }
.gallery-item { background-size:cover;background-position:center;border-radius:10px;overflow:hidden;cursor:pointer;position:relative;transition:transform .3s,box-shadow .3s;min-height:200px }
.gallery-item:hover { transform:scale(1.02);box-shadow:0 12px 40px rgba(0,0,0,.25) }
.gallery-overlay { position:absolute;inset:0;background:rgba(46,79,20,0);display:flex;align-items:flex-end;padding:18px;transition:background .3s }
.gallery-item:hover .gallery-overlay { background:rgba(46,79,20,.55) }
.gallery-label { color:#fff;font-size:16px;font-family:'Cormorant Garamond',serif;opacity:0;transform:translateY(8px);transition:all .3s }
.gallery-item:hover .gallery-label { opacity:1;transform:translateY(0) }
.gallery-cta { text-align:center }

/* LIGHTBOX */
.lightbox { display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.92);align-items:center;justify-content:center;flex-direction:column }
.lightbox.open { display:flex }
.lightbox-img { max-width:90vw;max-height:82vh;border-radius:8px;box-shadow:0 0 60px rgba(0,0,0,.8);object-fit:contain }
.lightbox-title { color:#fff;font-family:'Cormorant Garamond',serif;font-size:20px;margin-top:16px;letter-spacing:.5px }
.lightbox-close { position:absolute;top:20px;right:28px;font-size:36px;color:#fff;cursor:pointer;background:none;border:none;opacity:.8;transition:opacity .2s }
.lightbox-close:hover { opacity:1 }
.lightbox-prev, .lightbox-next { position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s }
.lightbox-prev:hover, .lightbox-next:hover { background:var(--gold);border-color:var(--gold) }
.lightbox-prev { left:20px } .lightbox-next { right:20px }
.lightbox-counter { color:rgba(255,255,255,.6);font-size:13px;margin-top:8px }

/* REVIEWS */
#reviews { background:var(--white);padding:90px 0 }
.reviews-header { text-align:center;margin-bottom:52px }
.reviews-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:40px }
.review-card { background:var(--ivory);border-radius:12px;padding:30px 26px;border:1px solid rgba(0,0,0,.06);transition:.3s;position:relative }
.review-card:hover { transform:translateY(-4px);box-shadow:var(--shadow) }
.review-stars { color:var(--gold);font-size:13px;letter-spacing:2px;margin-bottom:12px }
.review-text { font-family:'Cormorant Garamond',serif;font-size:17px;font-style:italic;line-height:1.6;color:var(--text);margin-bottom:20px }
.review-author { display:flex;align-items:center;gap:11px }
.review-avatar { width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;border:2px solid rgba(212,166,42,.3);flex-shrink:0 }
.review-name { font-size:13px;font-weight:600;color:var(--text);margin-bottom:1px }
.review-location { font-size:11px;color:var(--muted) }
.review-source { position:absolute;top:24px;right:24px;font-size:11px;color:var(--muted);font-style:italic }
.reviews-cta { text-align:center }

/* FINAL CTA */
#final-cta { background:var(--green-dark);position:relative;padding:90px 0;overflow:hidden }
.cta-bg { position:absolute;inset:0;background-size:cover;background-position:center;opacity:.07 }
.cta-content { position:relative;z-index:2;text-align:center }
.cta-eyebrow { font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px;display:block }
.cta-title { font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4vw,68px);font-weight:600;color:#fff;line-height:1.1;margin-bottom:16px }
.cta-title em { color:var(--gold);font-style:italic }
.cta-subtitle { font-size:15px;color:rgba(255,255,255,.62);margin-bottom:40px;max-width:440px;margin-left:auto;margin-right:auto;line-height:1.7 }
.cta-buttons { display:flex;gap:16px;justify-content:center;flex-wrap:wrap }

/* FOOTER */
footer { background:#0f1f06;padding:72px 0 0;position:relative }
footer::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,transparent,var(--gold),transparent) }
.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:48px;padding-bottom:48px }
.footer-logo { height:52px;width:auto;object-fit:contain;display:block;margin-bottom:14px }
.footer-about { font-size:13px;line-height:1.75;color:rgba(255,255,255,.48);margin-bottom:20px;max-width:260px }
.footer-socials { display:flex;gap:9px }
.social-btn { width:32px;height:32px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:rgba(255,255,255,.6);transition:.3s;cursor:pointer }
.social-btn:hover { background:var(--gold);border-color:var(--gold);color:#fff }
.footer-heading { font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;color:#fff;margin-bottom:20px }
.footer-links { display:flex;flex-direction:column;gap:10px }
.footer-link { font-size:13px;color:rgba(255,255,255,.48);transition:.2s;display:flex;align-items:center;gap:7px }
.footer-link::before { content:'→';font-size:10px;color:var(--gold) }
.footer-link:hover { color:var(--gold) }
.footer-contact { display:flex;flex-direction:column;gap:13px }
.footer-contact-item { display:flex;align-items:flex-start;gap:10px }
.footer-icon { font-size:14px;color:var(--gold);flex-shrink:0;margin-top:2px }
.footer-contact-text { font-size:13px;color:rgba(255,255,255,.5);line-height:1.6 }
.footer-contact-text a { color:rgba(255,255,255,.7);transition:.2s }
.footer-contact-text a:hover { color:var(--gold) }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08);padding:20px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px }
.footer-copy { font-size:11px;color:rgba(255,255,255,.3) }
.footer-legal { display:flex;gap:16px }
.footer-legal a { font-size:11px;color:rgba(255,255,255,.3);transition:.2s }
.footer-legal a:hover { color:var(--gold) }

/* SCROLL TO TOP */
.scroll-top { position:fixed;bottom:28px;right:28px;width:40px;height:40px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;cursor:pointer;z-index:998;opacity:0;transform:translateY(18px);transition:all .3s;border:none;box-shadow:0 4px 18px rgba(212,166,42,.4) }
.scroll-top.visible { opacity:1;transform:translateY(0) }
.scroll-top:hover { background:var(--green) }

/* RESPONSIVE */
@media(max-width:1100px) {
  .why-grid { grid-template-columns:repeat(2,1fr) }
  .haridwar-grid { grid-template-columns:repeat(2,1fr) }
  .footer-grid { grid-template-columns:1fr 1fr;gap:32px }
  .vt-inner { grid-template-columns:1fr;gap:40px }
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-template-rows:auto }
}
@media(max-width:900px) {
  header { padding:10px 22px; height:80px; display:flex; justify-content:space-between; align-items:center; }
  .logo-img { height:60px; }
  nav { display:none !important }
  .header-right { margin-left:auto; }
  .hamburger { display:flex !important }
  .btn-booknow { display:none !important }
  .page-hero { height:360px; margin-top:80px; }
  #hero {
    height: 100vh;
    padding-top: 80px;
  }
  .hero-content-center {
    padding: 0 16px 50px;
  }
  .story-grid, .dining-grid { grid-template-columns:1fr }
  .story-img-block { min-height:340px }
  .story-img-accent { display:none }
  .story-content { padding:48px 28px }
  .dining-accent-img { display:none }
  .room-feature, .room-feature.reverse { grid-template-columns:1fr;direction:ltr }
  .room-img-wrap { height:300px }
  .room-content { padding:40px 28px }
  .room-details { flex-wrap:nowrap !important; gap:10px !important; justify-content:space-between !important }
  .room-detail { flex:1 1 0% !important; min-width:0 !important }
  .room-detail span { font-size:9px !important; letter-spacing:0.3px !important }
  .room-detail strong { font-size:11.5px !important; white-space:nowrap !important }
  .why-grid { grid-template-columns:repeat(2,1fr) }
  .reviews-grid { grid-template-columns:1fr 1fr }
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-template-rows:auto }
  .haridwar-grid { grid-template-columns:repeat(2,1fr) }
  .events-grid { grid-template-columns:1fr }
  .event-card:first-child .event-img { min-height:340px }
  .vt-stats { flex-wrap:wrap;gap:20px }
}
@media(max-width:600px) {
  .container { padding:0 18px }
  .hero-trust { flex-wrap:wrap }
  .trust-item { min-width:calc(50% - 16px);border-right:none;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1) }
  .why-grid { grid-template-columns:1fr }
  .reviews-grid { grid-template-columns:1fr }

  /* FIX 6: Gallery grid with proper height on mobile */
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-template-rows:none }
  .gallery-item { min-height:160px }

  .haridwar-grid { grid-template-columns:1fr }

  /* FIX 4: Footer 2x2 columns on mobile */
  .footer-grid { grid-template-columns:1fr 1fr;gap:28px;align-items:start }
  .footer-bottom { flex-direction:column;text-align:center }

  .hero-buttons, .cta-buttons, .hero-buttons-centered { flex-direction:column;align-items:flex-start }
  .room-ctas { flex-direction:row;flex-wrap:wrap;gap:10px }
  .room-ctas .btn-green, .room-ctas .btn-gold { flex:1;min-width:0;justify-content:center;font-size:12px;padding:11px 10px }
  .cta-buttons { align-items:center }
  .hero-buttons-centered {
    width: 100%;
    max-width: 290px;
    align-items: stretch;
    margin-left: auto;
    margin-right: auto;
    gap: 12px;
  }
  .btn-luxury-gold, .btn-luxury-outline { width: 100%; }

  /* FIX 2: Trust row 2x2 grid on mobile */
  .hero-trust-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 0;
    text-align: center;
    font-size: 10px;
    letter-spacing: 1px;
    padding: 0 16px;
    row-gap: 10px;
  }
  .trust-bullet { display: none; }
  .hero-scroll-indicator { bottom: 12px; }

  /* FIX 3: pill size fix */
  .pill { font-size:10px;padding:4px 12px;letter-spacing:1.5px; }

  /* FIX 1: Dining phone line wraps on mobile (phone number itself stays intact) */
  .dining-cta-tel { white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:13px }
  .dining-cta-tel a { white-space:nowrap }
  .dining-cta-left, .dining-cta-right { min-width:0 }
  .dining-cta-card { overflow:hidden }

  .vt-stats { gap:16px;flex-wrap:wrap;justify-content:center }
  .vt-inner { gap:32px }
  .vt-content { padding:48px 20px }
  .vt-eyebrow { font-size:9px;letter-spacing:1.5px;padding:5px 12px;white-space:normal;text-align:center }
  .vt-launch-btn { padding:14px 24px;font-size:12px;letter-spacing:1px;width:100%;justify-content:center }
  .vt-stats > div { min-width:calc(50% - 16px);text-align:center }
  .vt-planet-wrap { padding:0 16px }

  /* FIX 2: Amenities page hero responsive */
  .page-hero { overflow:hidden }
  .page-hero-title { font-size:clamp(32px,8vw,56px) }
}

/* mobile nav btn-gold rule removed - handled by new mnav structure */

/* ============================================
   BOOKING POPUP MODAL (shared, all pages)
   ============================================ */
.bm-overlay {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(20,30,15,.6); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.bm-overlay.open { opacity: 1; visibility: visible; }
.bm-modal {
  background: #fff; width: 100%; max-width: 640px;
  max-height: 92vh; overflow-y: auto; border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.4);
  transform: translateY(20px) scale(.98);
  transition: transform .3s ease; position: relative;
}
.bm-overlay.open .bm-modal { transform: translateY(0) scale(1); }
.bm-head {
  position: sticky; top: 0; z-index: 2;
  background: var(--green-dark); color: #fff;
  padding: 20px 26px; border-radius: 14px 14px 0 0;
  display: flex; align-items: center; justify-content: space-between;
}
.bm-head h3 {
  font-family: 'Playfair Display', serif; font-size: 22px;
  font-weight: 700; margin: 0; color: #fff;
}
.bm-head p { margin: 4px 0 0; font-size: 12.5px; color: rgba(255,255,255,.8); letter-spacing: .3px; }
.bm-close {
  background: rgba(255,255,255,.15); color: #fff; border: none;
  width: 38px; height: 38px; min-width: 38px; border-radius: 50%;
  font-size: 22px; line-height: 1; cursor: pointer; transition: background .25s;
  display: flex; align-items: center; justify-content: center;
}
.bm-close:hover { background: var(--gold); }
.bm-body { padding: 24px 26px 28px; }
.bm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.bm-group { display: flex; flex-direction: column; }
.bm-group.full { grid-column: 1 / -1; }
.bm-label { font-size: 12.5px; font-weight: 600; color: var(--green-dark); margin-bottom: 6px; letter-spacing: .3px; }
.bm-input, .bm-select, .bm-textarea {
  width: 100%; max-width: 100%; box-sizing: border-box; -webkit-appearance: none; appearance: none;
  padding: 11px 13px; border: 1.5px solid #d9ddd3;
  border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 16px;
  color: #2b2b2b; background: #fbfcfa; transition: border-color .25s, box-shadow .25s;
}
.bm-select { -webkit-appearance: menulist; appearance: menulist; }
.bm-input[type="date"] { -webkit-appearance: none; min-height: 44px; }
.bm-input:focus, .bm-select:focus, .bm-textarea:focus {
  outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(63,107,28,.12); background: #fff;
}
.bm-textarea { resize: vertical; min-height: 78px; }
.bm-submit {
  width: 100%; margin-top: 6px; background: var(--green); color: #fff;
  border: none; padding: 15px; border-radius: 8px; cursor: pointer;
  font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600;
  letter-spacing: 1px; text-transform: uppercase; transition: all .3s;
}
.bm-submit:hover { background: var(--green-dark); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(63,107,28,.35); }
.bm-submit:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.bm-note { margin-top: 14px; font-size: 12px; color: #777; text-align: center; }
.bm-status { display: none; margin-top: 12px; font-size: 14px; text-align: center; font-weight: 600; }
@media (max-width: 600px) {
  .bm-overlay { padding: 0; align-items: stretch; }
  .bm-modal { max-width: 100%; max-height: 100vh; min-height: 100vh; border-radius: 0; }
  .bm-head { border-radius: 0; padding: 16px 18px; }
  .bm-head h3 { font-size: 19px; }
  .bm-body { padding: 18px 18px 30px; }
  .bm-row { grid-template-columns: 1fr; gap: 12px; margin-bottom: 12px; }
}

/* ============================================
   MOBILE OVERFLOW HARD-FIX (stop sideways scroll / white strip)
   ============================================ */
html { overflow-x: hidden; }
body { overflow-x: hidden; position: relative; width: 100%; max-width: 100%; }
img, video, iframe { max-width: 100%; }
/* Footer long email / address must wrap, not push width */
.footer-grid > * { min-width: 0; }
.footer-contact-text, .footer-contact-text a { overflow-wrap: anywhere; word-break: break-word; }

/* ============================================
   DINING MENU FLIPBOOK POPUP
   ============================================ */
.fb-overlay {
  position: fixed; inset: 0; z-index: 2100;
  background: rgba(18,26,12,.85); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  padding: 28px; opacity: 0; visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.fb-overlay.open { opacity: 1; visibility: visible; }
.fb-frame-wrap {
  position: relative; width: 100%; max-width: 1000px; height: 86vh;
  background: #fff; border-radius: 12px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
  transform: translateY(16px) scale(.99); transition: transform .3s ease;
}
.fb-overlay.open .fb-frame-wrap { transform: translateY(0) scale(1); }
.fb-frame-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
.fb-close {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  width: 44px; height: 44px; min-width: 44px; border-radius: 50%;
  background: rgba(0,0,0,.6); color: #fff; border: none;
  font-size: 26px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .25s;
}
.fb-close:hover { background: var(--gold); }
@media (max-width: 600px) {
  .fb-overlay { padding: 0; }
  .fb-frame-wrap { max-width: 100%; height: 100vh; border-radius: 0; }
  .fb-close { top: 12px; right: 12px; width: 40px; height: 40px; min-width: 40px; font-size: 22px; }
}

/* ============================================
   MOBILE HEADINGS — fit on one line (<=600px)
   ============================================ */
@media (max-width: 600px) {
  .section-title       { font-size: 19px !important; line-height: 1.22 !important; }
  .dining-title        { font-size: 20px !important; line-height: 1.2 !important; }
  .fs-intro-title      { font-size: 19px !important; line-height: 1.2 !important; }
  .amenities-cta-title { font-size: 21px !important; line-height: 1.2 !important; }
  .dh-section-title    { font-size: 21px !important; line-height: 1.2 !important; }
  .gal-section-title   { font-size: 24px !important; line-height: 1.2 !important; }
  .enquiry-info-title  { font-size: 21px !important; }
  .dining-cta-title    { font-size: 22px !important; line-height: 1.2 !important; }
  .fs-cta-title        { font-size: 22px !important; line-height: 1.2 !important; }
  .enquiry-form-title  { font-size: 24px !important; }
  .dh-cta-title        { font-size: 25px !important; line-height: 1.2 !important; }
  .outlet-title        { font-size: 23px !important; }
  .event-cat-title     { font-size: 18px !important; }
  .contact-form-title  { font-size: 31px !important; }
}
