/* =========================================================
   TRIPURA CONVENTION — MASTER STYLESHEET
   ========================================================= */

/* ---------- Design Tokens ---------- */
:root{
  --color-royal: #5C1A2B;
  --color-royal-light:#7C2C40;
  --color-gold: #A9702E;
  --color-gold-light:#D9AE7B;
  --color-emerald:#6B4226;
  --color-ivory:#F7F1EA;
  --color-dark:#241211;
  --color-white:#ffffff;

  --glass-bg: rgba(255,255,255,0.10);
  --glass-border: rgba(255,255,255,0.25);
  --glass-blur: blur(14px);

  --shadow-soft: 0 10px 30px rgba(92,26,43,0.15);
  --shadow-lift: 0 20px 45px rgba(92,26,43,0.24);

  --gradient-gold: linear-gradient(135deg,#A9702E 0%, #D9AE7B 50%, #A9702E 100%);
  --gradient-gold-blue: linear-gradient(120deg,#A9702E 0%, #5C1A2B 100%);

  --font-display: 'Playfair Display', serif;
  --font-body: 'Jost', sans-serif;

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;

  --transition: 0.45s cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  font-family:var(--font-body);
  background:var(--color-ivory);
  color:var(--color-dark);
  line-height:1.6;
  overflow-x:hidden;
  width:100%;
  max-width:100vw;
}
img{ max-width:100%; display:block; height:auto; }
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
.container{ width:100%; max-width:1280px; margin:0 auto; padding:0 20px; box-sizing:border-box; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:700; color:var(--color-royal); }
section{ position:relative; }

::selection{ background:var(--color-gold); color:var(--color-dark); }

/* ---------- Scrollbar & progress ---------- */
#scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:var(--gradient-gold-blue); z-index:2000; transition:width .1s linear;
}

/* ---------- Preloader (Black Background + Logo Sized MP4 Video) ---------- */
#preloader {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  background: #000000;
  z-index: 5000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1),
              visibility 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

#preloader.hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#preloaderVideo {
  max-width: min(90vw, 480px);
  width: 100%;
  height: auto;
  max-height: 70vh;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.5));
}

/* ==========================================================
   OLD FRAME SEQUENCE / TILE PRELOADER STYLES (COMMENTED OUT)
   .logo-reveal-stage {
     position: relative;
     max-width: min(95vw, 680px);
     width: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   #preloaderFrameImg {
     width: 100%;
     height: auto;
     max-height: 70vh;
     object-fit: contain;
     display: block;
     filter: drop-shadow(0 10px 25px rgba(0,0,0,0.4));
   }
   ========================================================== */

/* ---------- Header Logo ---------- */
.logo { 
  display: flex; 
  align-items: center; 
}

.logo-img { 
  height: 54px; 
  width: auto; 
  display: block; 
  transition: height 0.35s ease; 
}

header.scrolled .logo-img { 
  height: 80px; 
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  padding:15px 34px; border-radius:50px; font-weight:600; font-size:.95rem;
  letter-spacing:.4px; position:relative; overflow:hidden; transition:transform var(--transition), box-shadow var(--transition);
}
.btn-primary{
  background:var(--gradient-gold-blue); background-size:200% 200%; color:#fff;
  box-shadow:var(--shadow-soft);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); background-position:100% 0; }
.btn-outline{
  border:1.5px solid var(--color-royal); color:var(--color-royal); background:#fff;
}
.btn-outline:hover{ background:var(--color-royal); color:#fff; transform:translateY(-3px); }
.ripple{ position:absolute; border-radius:50%; background:rgba(255,255,255,.55); transform:scale(0); animation:ripple .6s ease-out; pointer-events:none; }
@keyframes ripple{ to{ transform:scale(4); opacity:0; } }

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

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; width:100%; z-index:1000;
  padding:20px 0; transition:all var(--transition);
  background:transparent;
}
header.scrolled{
  background:rgba(248,248,244,0.85); backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow-soft); padding:12px 0;
}
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; }
.logo{ display:flex; align-items:center; gap:10px; }
.logo-mark{
  width:44px; height:44px; border-radius:50%; background:var(--gradient-gold-blue);
  display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-display);
  font-size:1.2rem; flex-shrink:0;
}
.logo-text{ font-family:var(--font-display); font-size:1.35rem; font-weight:700; color:var(--color-royal); }
header:not(.scrolled) .logo-text{ color:#fff; }
.logo-text span{ color:var(--color-gold); }
.logo-img{ height:100px; width:auto; display:block; transition:height .35s ease; }
header.scrolled .logo-img{ height:80px; }

.nav-links{ display:flex; gap:38px; }
.nav-links a{
  font-weight:500; font-size:.95rem; position:relative; padding:6px 0; color:var(--color-royal);
  transition:color .3s;
}
header:not(.scrolled) .nav-links a{ color:#fff; }
.nav-links a::after{
  content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--color-gold);
  transition:width .3s;
}
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-links a:hover{ color:var(--color-gold); }

.nav-cta{ display:flex; align-items:center; gap:20px; }
.hamburger{ display:none; flex-direction:column; gap:5px; z-index:1100; position:relative; transition:opacity .25s ease, visibility .25s ease; }
.hamburger span{ width:26px; height:2px; background:var(--color-royal); transition:.3s; transform-origin:center; }
header:not(.scrolled) .hamburger span{ background:#fff; }
/* only ONE close affordance should ever be visible: hide the hamburger itself
   while the panel is open, and rely solely on .nav-close inside the panel */
.hamburger.active{ opacity:0; visibility:hidden; pointer-events:none; }

.nav-close{
  display:none; position:absolute; top:22px; right:22px; width:36px; height:36px;
  border-radius:50%; align-items:center; justify-content:center; font-size:1.6rem; line-height:1;
  color:var(--color-royal); background:rgba(0,0,0,.05); transition:.3s;
}
.nav-close:hover{ background:var(--color-gold); color:#fff; transform:rotate(90deg); }

/* ---------- Hero / 3D Virtual Tour ---------- */
.hero{
  position:relative; height:100vh; overflow:hidden; background:var(--color-dark);
}
.tour-hero{ cursor:default; }

/* Frame image */
.tour-frame-wrap{
  position:absolute; inset:0; z-index:1;
}
.tour-frame-img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block;
  transition:opacity .45s ease, transform .5s ease;
}
.tour-frame-img.fade-out{ opacity:0; transform:scale(1.04); }
.tour-overlay{
  position:absolute; inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.45) 0%,
    rgba(0,0,0,.15) 40%,
    rgba(0,0,0,.20) 70%,
    rgba(0,0,0,.65) 100%
  );
  pointer-events:none;
}

/* ============================================================
   HERO SHOWCASE SLIDER — Smooth Vanishing Transitions & Quotes
   ============================================================ */
.hero-slider-section{
  position:relative; width:100%; height:100vh; min-height:650px;
  overflow:hidden; background:#0a0605;
}

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

.hero-slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden; z-index:1;
  filter:blur(14px) brightness(1.1);
  transform:scale(1.05);
  transition:opacity 1.3s cubic-bezier(.4,0,.2,1),
              filter 1.3s cubic-bezier(.4,0,.2,1),
              transform 1.3s cubic-bezier(.4,0,.2,1),
              visibility 1.3s cubic-bezier(.4,0,.2,1);
  will-change:opacity, filter, transform;
}

.hero-slide.active{
  opacity:1; visibility:visible; z-index:2;
  filter:blur(0px) brightness(1);
  transform:scale(1);
}

/* Outgoing slide blurring out as next slide enters */
.hero-slide.blur-out{
  opacity:0 !important; visibility:visible !important; z-index:3 !important;
  filter:blur(16px) brightness(1.2) !important;
  transform:scale(1.08) !important;
  transition:opacity 1.3s cubic-bezier(.4,0,.2,1),
              filter 1.3s cubic-bezier(.4,0,.2,1),
              transform 1.3s cubic-bezier(.4,0,.2,1);
}

.hero-slide-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.0);
  transition:transform 7s ease-out;
}

.hero-slide.active .hero-slide-bg{
  transform:scale(1.06);
}

.hero-slide-overlay{
  position:absolute; inset:0;
 background: linear-gradient(90deg, rgba(5, 5, 5, 0.88) 0%, rgba(5, 5, 5, 0.72) 22%, rgba(5, 5, 5, 0.48) 42%, rgba(5, 5, 5, 0.20) 65%, rgba(5, 5, 5, 0.05) 100%);
}

.hero-slide-content{
  position:relative; z-index:10;
  height:100%; display:flex; flex-direction:column;
  justify-content:center; align-items:flex-start;
  color:#fff; padding-top:60px;
}

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.85rem; font-weight:600;  text-transform:uppercase;
  color:var(--color-gold-light);
  
  animation:heroFadeUp .8s ease forwards;
}

.hero-slide-content .hero-title{
  font-family:var(--font-display);
  font-size:clamp(1.7rem, 3.8vw, 3.1rem);
  font-weight:700; line-height:1.15; color:#fff;
  margin-bottom:14px; max-width:880px;
  text-shadow:0 4px 20px rgba(0,0,0,.6);
  animation:heroFadeUp .9s ease .15s forwards;
}

.gold-text{
  background:var(--gradient-gold); -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}

.hero-quote{
  font-family:var(--font-display);
  font-size:clamp(0.88rem, 1.5vw, 1.15rem);
  font-style:italic; color:#f5eaeb;
  max-width:760px; margin-bottom:12px; line-height:1.45;
  text-shadow:0 2px 12px rgba(0,0,0,.7);
  animation:heroFadeUp 1s ease .3s forwards;
}

.hero-subtext{
  font-size:.88rem; font-weight:600; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--color-gold); margin-bottom:32px;
  animation:heroFadeUp 1s ease .4s forwards;
}

.hero-btn-wrap{
  display:flex; gap:16px; flex-wrap:wrap;
  animation:heroFadeUp 1s ease .55s forwards;
}

@keyframes heroFadeUp{
  from{ opacity:0; transform:translateY(25px); }
  to  { opacity:1; transform:translateY(0); }
}

/* Remove Navigation Arrow Buttons */
.hero-slider-nav{
  display:none !important;
}

/* Vertical Dots Navigation (Right Edge — Matching Reference Image) */
.hero-vertical-nav{
  position:absolute; top:50%; right:36px;
  transform:translateY(-50%);
  z-index:30;
}
.hero-dots{
  display:flex; flex-direction:column; gap:16px; align-items:center;
}
.hero-dot{
  width:12px; height:12px; border-radius:50%;
  background:transparent;
  border:2px solid rgba(255,255,255,0.7);
  cursor:pointer; padding:0;
  transition:all 0.35s cubic-bezier(.4,0,.2,1);
  outline:none;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.hero-dot:hover{
  border-color:var(--color-gold);
  transform:scale(1.25);
}
.hero-dot.active{
  background:var(--color-gold);
  border-color:var(--color-gold);
  transform:scale(1.2);
  box-shadow:0 0 12px rgba(217,174,123,0.8);
}

/* Bottom SCROLL Indicator (Matching Reference Image) */
.hero-scroll-indicator{
  position:absolute; bottom:28px; left:50%;
  transform:translateX(-50%);
  z-index:20; display:flex; flex-direction:column; align-items:center; gap:6px;
  color:rgba(255,255,255,0.7); font-size:0.72rem; letter-spacing:2px; font-weight:600; text-transform:uppercase;
  pointer-events:none;
}
.hero-scroll-indicator .scroll-line{
  width:2px; height:12px;
  background:var(--color-gold); border-radius:2px;
  animation:heroScrollPulse 2s infinite;
}
@keyframes heroScrollPulse{
  0%,100%{ opacity:0.3; transform:translateY(0); }
  50%{ opacity:1; transform:translateY(6px); }
}

@media (max-width:768px){
  .hero-nav-prev{ left:14px; }
  .hero-nav-next{ right:14px; }
  .hero-slider-nav{ width:44px; height:44px; font-size:1rem; }
  .hero-slide-content{ padding-top:40px; }
}

/* Hero title used in old slides */
.hero-title{ font-family:var(--font-display); font-size:clamp(1.7rem,3.8vw,3.1rem); font-weight:700; max-width:900px; line-height:1.15; color:#fff; }



/* ---------- Section headings ---------- */
.section-pad{ padding:80px 0; }
.eyebrow{
  display:inline-block; font-size:.8rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--color-emerald); font-weight:600; margin-bottom:12px;
}
.section-title{
  font-size:clamp(2rem,4vw,2.8rem); margin-bottom:22px; letter-spacing:.3px;
  position:relative; padding-bottom:20px; display:inline-block;
}
.section-title::after{
  content:''; position:absolute; left:50%; bottom:0; translate:-50% 0;
  width:70px; height:3px; background:var(--gradient-gold-blue); border-radius:3px;
}
/* left-aligned headings (e.g. the About section, which sits in a 2-column layout) */
.about-grid .section-title::after{ left:0; translate:0 0; }
.section-desc{ max-width:640px; color:#555; font-size:1.05rem; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }

/* ---------- Reveal on scroll ---------- */
[data-reveal]{ opacity:0; transform:translateY(40px); transition:opacity .8s ease, transform .8s ease; }
[data-reveal].in-view{ opacity:1; transform:translateY(0); }
[data-reveal="left"]{ transform:translateX(-50px); }
[data-reveal="left"].in-view{ transform:translateX(0); }
[data-reveal="right"]{ transform:translateX(50px); }
[data-reveal="right"].in-view{ transform:translateX(0); }

/* ---------- About Section ---------- */
.about{
  position:relative;
  overflow:hidden;
  background:var(--color-white);
}

.about::after{
  content:'';
  position:absolute;
  top:55%;
  width:460px;
  height:460px;
  background-image:url('assets/images/logo_mandala.png');
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  opacity:0.12;
  mix-blend-mode:multiply;
  filter:contrast(1.05);
  pointer-events:none;
  z-index:0;
}
.about::before{
  left:-230px;
  transform:translateY(-50%);
}
.about::after{
  right:-230px;
  transform:translateY(-50%);
}
.about-grid{
  position:relative;
  z-index:1;
  display:grid; grid-template-columns:.95fr 1fr; gap:60px; align-items:center;
}

/* ---- About Visual Collage & 3D Model Viewer ---- */
.about-visual-wrap{
  position:relative;
  width:100%;
  max-width:580px;
  margin:0 auto;
  padding:26px 40px 60px 10px;
}
/* soft warm glow behind the whole composition */
.about-visual-wrap::before{
  content:'';
  position:absolute;
  inset:-30px 10px -20px -10px;
  background:radial-gradient(60% 55% at 45% 40%, rgba(169,112,46,.16) 0%, rgba(169,112,46,0) 70%);
  z-index:0;
  pointer-events:none;
}

.about-3d-wrap{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:560px;
  margin:0 auto;
  padding:0;
  cursor:default;
  user-select:none;
  -webkit-user-select:none;
  z-index:2;
}
.about-3d-wrap.is-dragging{
  cursor:grabbing !important;
}

/* Overlapping Extra Frames — real photo-collage look: white polaroid
   borders + slight rotation, like scattered prints (NOT the main
   .about-3d-wrap / .about-anim-canvas above, which stays untouched) */
.about-extra-frame{
  position:absolute;
  background:#fff;
  padding:10px 10px 26px 10px;
  border-radius:4px;
  box-shadow:
    0 18px 34px rgba(0,0,0,0.28),
    0 2px 6px rgba(0,0,0,0.12);
  transition:transform .4s ease, box-shadow .4s ease;
  z-index:3;
}
.about-extra-frame::before{
  /* small gold "pin" accent at the top of each photo */
  content:'';
  position:absolute;
  top:-7px; left:50%; translate:-50% 0;
  width:14px; height:14px; border-radius:50%;
  background:var(--gradient-gold-blue);
  box-shadow:0 3px 6px rgba(0,0,0,.35);
}
.about-extra-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
.about-extra-frame:hover{
  box-shadow:
    0 26px 46px rgba(0,0,0,0.34),
    0 3px 8px rgba(0,0,0,0.16);
  z-index:4;
}
.about-extra-frame:hover img{
  transform:scale(1.1);
}

/* Frame 1: Bottom-Right overlap (tripura-wall.jpeg) — tilted like a dropped print */
.about-extra-frame.frame-1{
  width:52%;
  height:170px;
  bottom:-34px;
  right:-22px;
  transform:rotate(-6deg);
  animation:floatFrame1 6s ease-in-out infinite alternate;
}

/* Frame 2: Top-Right floating accent (slider-1.jpeg) — opposite tilt for the collage feel */
.about-extra-frame.frame-2{
  width:34%;
  height:118px;
  top:-28px;
  right:-26px;
  transform:rotate(5deg);
  animation:floatFrame2 7s ease-in-out infinite alternate;
}

@keyframes floatFrame1{
  0%{ transform:rotate(-6deg) translateY(0px); }
  100%{ transform:rotate(-6deg) translateY(-8px); }
}

@keyframes floatFrame2{
  0%{ transform:rotate(5deg) translateY(0px); }
  100%{ transform:rotate(5deg) translateY(8px); }
}

/* Canvas frame-animation — real 3D turntable photo sequence */
.about-anim-canvas{
  width:100% !important;
  height:auto !important;
  display:block;
  user-select:none;
  -webkit-user-select:none;
  pointer-events:auto;
  border-radius:var(--radius-lg);
  box-shadow:
    0 24px 60px rgba(0,0,0,0.35),
    0 4px 16px rgba(169,112,46,0.18),
    0 0 0 1.5px rgba(169,112,46,0.12);
  transform-style:preserve-3d;
  transition:transform 0.08s linear;
  /* Shimmer while first frame loads */
  background:linear-gradient(
    90deg,
    rgba(92,26,43,.05) 0%,
    rgba(169,112,46,.1) 50%,
    rgba(92,26,43,.05) 100%
  );
  background-size:200% 100%;
  animation:canvasShimmer 1.4s ease-in-out infinite;
}
.about-anim-canvas.loaded{ animation:none; background:none; }
@keyframes canvasShimmer{
  0%  { background-position:200% 0; }
  100%{ background-position:-200% 0; }
}

/* Decorative glow rings behind the card */
.about-3d-ring{
  position:absolute; border-radius:50%; border:1.5px solid;
  animation:about3dPulse 4s ease-in-out infinite;
  pointer-events:none; z-index:-1;
}
.about-3d-ring-1{
  width:90%; height:40%; bottom:-10%; left:5%;
  border-color:rgba(169,112,46,.35);
  filter:blur(8px);
  animation-delay:0s;
}
.about-3d-ring-2{
  width:70%; height:30%; bottom:-6%; left:15%;
  border-color:rgba(92,26,43,.3);
  filter:blur(4px);
  animation-delay:1.5s;
}

/* Floating badge */
.about-3d-badge{
  position:absolute; bottom:10px; right:0;
  background:var(--gradient-gold-blue); color:#fff;
  padding:16px 22px; border-radius:var(--radius-md);
  box-shadow:var(--shadow-lift); text-align:center;
  animation:about3dBadge 6s ease-in-out infinite;
}
.about-3d-badge strong{ display:block; font-family:var(--font-display); font-size:1.7rem; line-height:1; }
.about-3d-badge span{ font-size:.72rem; letter-spacing:1px; opacity:.9; }

/* Keyframes */
@keyframes about3dFloat{
  0%,100%{ transform:translateY(0) rotateX(2deg) rotateY(-3deg); }
  33%     { transform:translateY(-10px) rotateX(-1deg) rotateY(3deg); }
  66%     { transform:translateY(-5px) rotateX(3deg) rotateY(1deg); }
}
@keyframes about3dPulse{
  0%,100%{ opacity:.6; transform:scaleX(1); }
  50%    { opacity:1; transform:scaleX(1.08); }
}
@keyframes about3dBadge{
  0%,100%{ transform:translateY(0); }
  50%    { transform:translateY(-8px); }
}

/* Pause float when JS is controlling the tilt */
.about-3d-card.js-tilt{ animation:none !important; }

/* Mobile: simpler flat display with gentle float only */
@media (max-width:900px){
  .about-grid{ grid-template-columns:1fr; gap:40px; }
  .about-3d-wrap{ max-width:100%; padding:10px 0 30px; }
}
@media (max-width:480px){
  .about-3d-wrap{ padding:20px 0 50px; }
  .about-3d-badge{ right:-6px; padding:12px 16px; }
  .about-3d-badge strong{ font-size:1.4rem; }
}

/* Legacy badge styles kept for any other references */
.about-badge{
  position:absolute; bottom:-30px; left:-30px; background:var(--gradient-gold-blue);
  color:#fff; padding:22px 26px; border-radius:var(--radius-md); box-shadow:var(--shadow-lift);
  text-align:center; z-index:2;
}
.about-badge strong{ display:block; font-family:var(--font-display); font-size:1.8rem; }
.about-badge span{ font-size:.75rem; letter-spacing:1px; }



.about-list{ margin:26px 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.about-list li{
  display:flex; align-items:center; gap:10px; font-size:.95rem; color:#333; font-weight:500;
}
.about-list li i{
  color:var(--color-gold); font-size:1.05rem;
}

.stats-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin:36px 0;
}
.stat-card{
  background:var(--color-ivory); border-radius:var(--radius-md); padding:24px 14px; text-align:center;
  box-shadow:var(--shadow-soft); transition:transform .4s;
}
.stat-card:hover{ transform:translateY(-6px); }
.stat-num{ font-family:var(--font-display); font-size:2rem; color:var(--color-royal); font-weight:700; }
.stat-label{ font-size:.8rem; color:#666; margin-top:4px; }

.founder-card{
  display:flex; align-items:center; gap:18px; margin-top:30px; padding:18px 24px;
  border-radius:var(--radius-md); box-shadow:0 12px 30px rgba(0,0,0,0.25);
}
.founder-avatar-wrap{
  width:60px; height:60px; border-radius:50%; 
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; box-shadow:0 4px 14px rgba(212,175,55,0.25);
}
.founder-avatar-img{
  width:100%; height:100%; object-fit:contain; border-radius:50%; display:block;
}
.founder-name{
  font-family:var(--font-display); font-size:1.25rem; font-weight:700;
  color:#4c3417; letter-spacing:.3px;
  text-shadow:0 2px 10px rgba(212,175,55,0.25);
}
.founder-role{ font-size:.82rem; color:#5a5a5a; letter-spacing:.5px; margin-top:2px; }

/* ---------- Plan Your Event ---------- */
.plan-events { 
  position: relative;
  overflow: hidden;
  background: #0d0806;
}
.plan-events-bg-video {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%; min-height: 100%;
  width: auto; height: auto;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
.plan-events-video-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(13, 8, 6, 0.65) 0%, rgba(13, 8, 6, 0.82) 100%);
  z-index: 1;
  pointer-events: none;
}
.plan-events .container {
  position: relative;
  z-index: 2;
}
.plan-events .section-title { color: #fff; }
.plan-events .section-desc { color: #e0e0e0; }
.events-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:28px; margin-top:50px;
}
.event-card{
  position:relative; height:320px; border-radius:var(--radius-md); overflow:hidden; cursor:pointer;
  box-shadow:var(--shadow-soft); transition:transform .5s, box-shadow .5s;
}
.event-card:hover{ transform:translateY(-10px); box-shadow:var(--shadow-lift); }
.event-card img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.event-card:hover img{ transform:scale(1.12); }
.event-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:22px;
  background:linear-gradient(0deg, rgba(26,26,26,.85) 10%, rgba(26,26,26,.05) 70%);
}
.event-overlay h3{ color:#fff; font-size:1.35rem; margin-bottom:12px; }
.event-book-btn{
  align-self:flex-start; padding:10px 22px; border-radius:50px; font-size:.82rem; font-weight:600;
  background:var(--glass-bg); border:1px solid var(--glass-border); backdrop-filter:var(--glass-blur); color:#fff;
  transition:.35s;
}
.event-card:hover .event-book-btn{ background:var(--gradient-gold-blue); border-color:transparent; }

/* ---------- Gallery: Hall / Office tabs + hover-reveal grid ---------- */
.gallery-tabs{
  display:flex; justify-content:center; gap:0; margin:40px auto 0; width:fit-content;
  border:1px solid rgba(29,53,87,.15); border-radius:50px; overflow:hidden;
}

.gallery-tab{
  padding:14px 34px; font-size:.82rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--color-royal); background:transparent; transition:.3s;
}
.gallery-tab.active{ background:var(--gradient-gold-blue); color:#fff; }

.gallery-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:40px;
}
.gallery-grid-item{
  position:relative; height:260px; border-radius:var(--radius-md); overflow:hidden; cursor:pointer;
  box-shadow:var(--shadow-soft); transition:transform .5s ease, box-shadow .5s ease;
}
.gallery-grid-item:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lift); }
.gallery-grid-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease, filter .4s ease; }
.gallery-grid-item:hover img{ transform:scale(1.08); filter:brightness(.55); }
.gallery-grid-item-overlay{
  position:absolute; inset:14px; border:1px solid rgba(255,255,255,0); display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; opacity:0; transition:opacity .4s ease, border-color .4s ease;
}
.gallery-grid-item:hover .gallery-grid-item-overlay{ opacity:1; border-color:rgba(212,175,55,.8); }
.gallery-grid-item-overlay h4{
  color:#fff; font-size:1.15rem; font-style:italic; font-weight:600; margin-bottom:8px;
}
.gallery-grid-item-overlay span{
  color:var(--color-gold-light); font-size:.7rem; letter-spacing:3px; text-transform:uppercase;
  border-top:1px solid rgba(212,175,55,.6); padding-top:6px;
}


/* ---- Touch / mobile: always show a partial overlay so the image is identifiable ---- */
@media (hover:none){
  .gallery-grid-item img{ filter:brightness(.7); }
  .gallery-grid-item-overlay{ opacity:1; border-color:rgba(212,175,55,.6); background:rgba(0,0,0,.3); inset:0; }
  .gallery-grid-item-overlay h4{ font-size:1rem; }
}
/* Mobile: Clean grid view — single click/tap directly opens full-screen image lightbox modal */

@media (max-width:900px){ .gallery-grid{ grid-template-columns:1fr 1fr; gap:14px; } }
@media (max-width:520px){ .gallery-grid{ grid-template-columns:1fr 1fr; gap:10px; }
  .gallery-grid-item{ height:160px; }
  .gallery-tab{ padding:10px 18px; font-size:.75rem; }
}

/* ---------- Plan Your Event: split showcase (image + hover list) ---------- */
.plan-showcase{
  display:grid; grid-template-columns:2.1fr 1fr; gap:50px; margin-top:50px; align-items:stretch;
}
.plan-showcase-image{
  position:relative; border-radius:var(--radius-md); overflow:hidden; min-height:560px;
  box-shadow:var(--shadow-lift);
}
.plan-showcase-image img{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
  transition:transform 8s ease;
}

/* The "print wipe" incoming image: slides clip-path from left=0% to left=100% */
.plan-showcase-image img.ps-incoming {
  z-index:2;
  clip-path: inset(0 100% 0 0);          /* fully hidden right side */
  animation: ps-print-wipe 0.85s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes ps-print-wipe {
  0%   { clip-path: inset(0 100% 0 0); }  /* start: fully hidden */
  100% { clip-path: inset(0 0% 0 0);   }  /* end: fully revealed */
}

/* Scan line glow that travels left-to-right during the wipe */
.plan-showcase-image img.ps-incoming::after {
  content:'';
  position:absolute; top:0; bottom:0; width:3px;
  background:linear-gradient(to bottom, transparent, rgba(212,175,55,0.7), transparent);
  animation:ps-scan-line 0.85s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
/* JS-injected gold scan line span that travels L→R during the print wipe */
.ps-scan {
  position:absolute;
  top:0; bottom:0;
  width:3px;
  z-index:10;
  pointer-events:none;
  background:linear-gradient(to bottom, transparent 5%, rgba(212,175,55,0.9) 50%, transparent 95%);
  animation:ps-scan-line 0.85s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  left:0%;
}
@keyframes ps-scan-line {
  0%   { left:0%; opacity:1; }
  98%  { opacity:1; }
  100% { left:100%; opacity:0; }
}
.plan-showcase-frame{
  position:absolute; inset:16px; border:1.5px solid rgba(212,175,55,.8); pointer-events:none; z-index:3;
  box-shadow:inset 0 0 15px rgba(0,0,0,0.3);
}
.plan-showcase-image::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(20,10,8,.92) 0%, rgba(20,10,8,.45) 50%, rgba(20,10,8,0) 75%);
  z-index:1;
}
.plan-showcase-overlay{
  position:absolute; inset:16px; z-index:4; display:flex; flex-direction:column; justify-content:flex-end;
  padding:24px 28px; box-sizing:border-box;
}
.plan-showcase-overlay h3{
  color:#fff; font-size:clamp(1.5rem,3vw,2.4rem); margin-bottom:8px; text-shadow:0 2px 8px rgba(0,0,0,0.6);
}
.plan-showcase-quote-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:space-between; }
.plan-showcase-quote{
  font-family:var(--font-display); font-style:italic; color:#f0ebe3; font-size:.95rem;
  max-width:480px; line-height:1.5; margin:0; flex:1 1 200px; text-shadow:0 1px 6px rgba(0,0,0,0.7);
}
.plan-showcase-book{ padding:10px 22px; font-size:.85rem; flex-shrink:0; box-shadow:0 4px 14px rgba(0,0,0,0.3); }

.plan-event-list{ list-style:none; display:flex; flex-direction:column; }
.plan-event-list li{
  padding:20px 6px; border-bottom:1px solid rgba(29,53,87,.12); cursor:pointer;
  font-family:var(--font-display); font-size:1.15rem; color:#fff; font-weight:600;
  transition:color .3s ease, padding-left .3s ease; position:relative;
}
.plan-event-list li::before{
  content:''; position:absolute; left:-6px; top:50%; translate:0 -50%; width:0; height:2px;
  background:var(--gradient-gold-blue); transition:width .3s ease;
}
.plan-event-list li:hover,
.plan-event-list li.active{ color:var(--color-royal); padding-left:20px; }
.plan-event-list li:hover::before,
.plan-event-list li.active::before{ width:14px; }

@media (max-width:900px){
  .plan-showcase{ grid-template-columns:1fr; }
  .plan-showcase-image{ min-height:420px; }
  .plan-event-list{ flex-direction:row; flex-wrap:wrap; gap:6px 22px; }
  .plan-event-list li{ border-bottom:none; padding:8px 4px; }
}

/* ---------- Modal ---------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(26,26,26,.6); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; z-index:3000;
  opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease;
}
.modal-overlay.show{ opacity:1; visibility:visible; }
.modal-box{
  background:#fff; border-radius:var(--radius-lg); padding:44px 40px; width:92%; max-width:420px;
  box-shadow:var(--shadow-lift); position:relative; transform:scale(.85); transition:transform .4s ease;
  text-align:center;
}
.modal-overlay.show .modal-box{ transform:scale(1); }
.modal-close{
  position:absolute; top:16px; right:18px; font-size:1.3rem; color:#999; transition:.3s;
}
.modal-close:hover{ color:var(--color-royal); transform:rotate(90deg); }
.modal-box h3{ margin-bottom:6px; }

/* two-column popup booking modal */
.popup-booking-box{
  max-width:860px; width:92%; max-height:92vh;
  display:flex; flex-direction:row; overflow:hidden;
  padding:0; text-align:left;
}

/* --- Left image panel --- */
.popup-booking-image{
  flex:0 0 42%; position:relative; overflow:hidden; border-radius:var(--radius-lg) 0 0 var(--radius-lg);
}
.popup-booking-image img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.popup-booking-image-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,10,30,.65) 0%, transparent 55%);
  display:flex; align-items:flex-end; padding:24px 20px;
}
.popup-img-tagline{
  color:#fff; font-size:1.05rem; font-weight:700; line-height:1.3;
  font-family:var(--font-head,serif); letter-spacing:.5px;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}

/* --- Right form panel --- */
.popup-booking-form-panel{
  flex:1; overflow-y:auto; padding:28px 28px 20px;
  display:flex; flex-direction:column; position:relative;
}
.popup-form-header{ text-align:center; margin-bottom:14px; }
.popup-modal-logo{ height:42px; width:auto; object-fit:contain; margin-bottom:8px; }
.popup-form-header h3{ font-size:1.3rem; margin:0 0 4px; color:var(--color-royal); }
.popup-form-header p{ font-size:.8rem; color:#666; margin:0; line-height:1.4; }

/* compact form grid — single column, tighter fields */
.popup-form-grid{
  display:grid; grid-template-columns:1fr; gap:8px;
}
.popup-form-grid .form-group{ margin:0; }
.popup-form-grid .form-group label{
  font-size:.72rem; font-weight:600; color:#444; margin-bottom:3px; display:block;
}
.popup-form-grid .form-group input,
.popup-form-grid .form-group select{
  padding:7px 10px; font-size:.82rem; border-radius:6px;
  border:1.5px solid #ddd; width:100%; box-sizing:border-box;
  transition:border-color .25s;
}
.popup-form-grid .form-group input:focus,
.popup-form-grid .form-group select:focus{
  border-color:var(--color-gold); outline:none;
}
.popup-form-grid .form-group input[type="range"]{
  padding:0; height:4px; accent-color:var(--color-gold);
}
.popup-booking-form .form-footer{ margin-top:10px; }
.popup-booking-form .form-footer .btn{ padding:10px 0; font-size:.88rem; }

/* trust bar */
.popup-trust-bar{
  text-align:center; font-size:.72rem; color:#888; margin-top:10px;
  letter-spacing:.3px;
}
.popup-booking-box h3{ text-align:center; font-size:1.6rem; }
.popup-booking-form .form-footer{ justify-content:center; }
@media (max-width:640px){
  .popup-booking-box{
    flex-direction:column; max-height:94vh; width:96%;
    border-radius:var(--radius-md);
  }
  header {
    padding: 0;
  }
  .popup-booking-image{ flex:0 0 150px; border-radius:var(--radius-md) var(--radius-md) 0 0; }
  .popup-booking-image img{ object-position:center 30%; }
  .popup-booking-form-panel{ padding:16px 14px 12px; overflow-y:auto; }
  .popup-modal-logo{ height:32px; }
  .popup-form-header{ margin-bottom:8px; }
  .popup-form-header h3{ font-size:1.1rem; }
  .popup-form-grid{ gap:6px; }
  .popup-booking-form .form-footer .btn{ padding:9px 0; font-size:.82rem; }
}

.modal-event-name{ color:var(--color-gold); font-weight:600; margin-bottom:26px; display:block; font-size:.9rem; letter-spacing:1px; text-transform:uppercase; }
.venue-options{ display:flex; gap:16px; margin-bottom:28px; }
.venue-option{
  flex:1; border:2px solid #e5e5e5; border-radius:var(--radius-md); padding:22px 10px; cursor:pointer;
  transition:.3s; position:relative;
}
.venue-option input{ position:absolute; opacity:0; }
.venue-option.selected, .venue-option:hover{ border-color:var(--color-gold); background:rgba(212,175,55,.06); }
.venue-icon{ font-size:1.8rem; margin-bottom:8px; }
.venue-option span.label{ display:block; font-weight:600; color:var(--color-royal); }
#continueBtn{ width:100%; }
#continueBtn:disabled{ opacity:.5; cursor:not-allowed; }

/* ---------- Testimonials ---------- */
.testimonials{ background:var(--color-royal); overflow:hidden; padding:100px 0; }
.testimonials .eyebrow{ color:var(--color-gold); }
.testimonials .section-title{ color:#fff; }
.testimonials .section-desc{ color:#cfd7e3; }
.testi-track-wrap{ margin-top:50px; overflow:hidden; position:relative; }
.testi-track-wrap::before, .testi-track-wrap::after{
  content:''; position:absolute; top:0; bottom:0; width:100px; z-index:2;
}
.testi-track-wrap::before{ left:0; background:linear-gradient(90deg,var(--color-royal),transparent); }
.testi-track-wrap::after{ right:0; background:linear-gradient(-90deg,var(--color-royal),transparent); }
.testi-track{ display:flex; gap:26px; width:max-content; animation:scrollLeft 34s linear infinite; }
.testi-track:hover{ animation-play-state:paused; }
@keyframes scrollLeft{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.testi-card{
  width:340px; flex-shrink:0; background:var(--glass-bg); border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur); border-radius:var(--radius-md); padding:30px; color:#fff;
}
.testi-stars{ color:var(--color-gold); margin-bottom:14px; letter-spacing:2px; }
.testi-text{ font-size:.95rem; color:#e8ecf3; margin-bottom:22px; min-height:90px; }
.testi-person{ display:flex; align-items:center; gap:12px; }
.testi-avatar{
  width:44px; height:44px; border-radius:50%; background:var(--gradient-gold-blue);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700;
}
.testi-name{ font-weight:600; font-size:.9rem; }
.testi-city{ font-size:.75rem; color:#b9c3d6; }

/* ---------- Footer ---------- */
footer{
  position:relative;
  overflow:hidden;
  background:var(--color-dark);
  color:#ddd;
  padding:80px 0 30px;
}
footer::before{
  content:'';
  position:absolute;
  top:200px;
  left:50%;
  transform:translateX(-50%);
  width:560px;
  height:560px;
  background-image:url('assets/images/logo_mandala.png');
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0.16;
  mix-blend-mode:screen;
  pointer-events:none;
  z-index:0;
}
footer .container{
  position:relative;
  z-index:1;
}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-logo{ display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.footer-logo .logo-text{ color:#fff; }
.footer-quote{ font-family:var(--font-display); font-style:italic; color:#c9c9c9; font-size:1.05rem; max-width:300px; line-height:1.6; }
.footer h4{ color:#fff; font-size:1rem; margin-bottom:20px; letter-spacing:.5px; }
.footer-links li{ margin-bottom:12px; }
.footer-links a{ color:#b7b7b7; font-size:.92rem; transition:.3s; }
.footer-links a:hover{ color:var(--color-gold); padding-left:6px; }
/* Uiverse.io Social Card Container by vinodjangid07 */
.social-card {
  width: fit-content;
  height: fit-content;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 14px;
  
}

/* for all social containers */
.socialContainer {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition-duration: .3s;
  text-decoration: none;
}

/* instagram */
.containerOne:hover {
  background-color: #d62976;
  transition-duration: .3s;
  box-shadow: 0 6px 18px rgba(214, 41, 118, 0.4);
}

/* twitter / facebook */
.containerTwo:hover {
  background-color: #1877F2;
  transition-duration: .3s;
  box-shadow: 0 6px 18px rgba(24, 119, 242, 0.4);
}

/* linkedin / youtube */
.containerThree:hover {
  background-color: #FF0000;
  transition-duration: .3s;
  box-shadow: 0 6px 18px rgba(255, 0, 0, 0.4);
}

/* Whatsapp */
.containerFour:hover {
  background-color: #128C7E;
  transition-duration: .3s;
  box-shadow: 0 6px 18px rgba(18, 140, 126, 0.4);
}

.socialContainer:active {
  transform: scale(0.9);
  transition-duration: .3s;
}

.socialSvg {
  width: 18px;
  height: 18px;
}

.socialSvg path {
  fill: rgb(255, 255, 255);
}

.socialContainer:hover .socialSvg {
  animation: slide-in-top 0.3s both;
}

@keyframes slide-in-top {
  0% {
    transform: translateY(-50px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:.8rem; color:#888; flex-wrap:wrap; gap:10px; }
.back-to-top{
  width:44px; height:44px; border-radius:50%; background:var(--gradient-gold-blue); color:#fff;
  display:flex; align-items:center; justify-content:center; position:fixed; bottom:30px; right:26px; z-index:900;
  opacity:0; visibility:hidden; transform:translateY(20px); transition:.4s; box-shadow:var(--shadow-lift);
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }

/* ---------- Floating buttons ---------- */
.floating-actions{ position:fixed; bottom:24px; left:16px; z-index:900; display:flex; flex-direction:column; gap:12px; }
.float-btn{
  width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-lift); color:#fff; font-size:1.2rem; transition:.35s;
}
.float-btn.whatsapp{ background:#25D366; }
.float-btn.call{ background:var(--color-royal); }
.float-btn:hover{ transform:scale(1.12) translateY(-2px); }

/* ---------- Inline Venue Sections (index page) ---------- */
.venue-section{ display:none; }
.venue-section.active{ display:block; animation:fadeInSection .6s ease; }
body.venue-view #mainSections{ display:none; }
@keyframes fadeInSection{ from{ opacity:0; transform:translateY(20px);} to{ opacity:1; transform:translateY(0);} }
.back-home-btn{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:30px;
  color:var(--color-royal); font-weight:600; font-size:.9rem; cursor:pointer;
}
.back-home-btn:hover{ color:var(--color-gold); }

/* ---------- Contact (compact cards + form + map inside cards grid) ---------- */
.contact-section{ position:relative; overflow:hidden; }
.contact-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
}
.contact-bg::after{
  content:''; position:absolute; inset:0;
  /*background:linear-gradient(180deg, rgba(247,241,234,.55) 0%, rgba(247,241,234,.72) 100%);
*/}
.contact-section .container{ position:relative; z-index:1; }

.contact-layout{
  display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:50px; align-items:stretch;
}
.contact-cards{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-content:start; }
.contact-card{
  display:flex; align-items:center; gap:14px; background:#fff; border-radius:var(--radius-md);
  padding:20px; box-shadow:var(--shadow-soft); transition:transform .35s ease, box-shadow .35s ease;
}
.contact-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.contact-card-icon{
  width:44px; height:44px; min-width:44px; border-radius:50%; background:rgba(169,112,46,.12);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
}
.contact-card-text{ display:flex; flex-direction:column; gap:3px; overflow:hidden; }
.contact-card-label{ font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:#999; font-weight:600; }
.contact-card-value{ font-size:.92rem; font-weight:600; color:var(--color-royal); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.contact-form{
  background:#fff; border-radius:var(--radius-lg); padding:30px; box-shadow:var(--shadow-lift);
  display:flex; flex-direction:column; gap:16px;
}
.contact-form .form-group{ display:flex; flex-direction:column; gap:8px; }

/* map spans both columns */
.contact-map-full{
  grid-column:1 / -1; border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--shadow-soft); height:320px;
}

@media (max-width:900px){
  .contact-layout{ grid-template-columns:1fr; }
  .contact-cards{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .contact-cards{ grid-template-columns:1fr; gap:12px; }
  .contact-card{ padding:14px; gap:10px; }
  .contact-card-value{ font-size:.82rem; white-space:normal; overflow:visible; text-overflow:clip; }
  .contact-form{ padding:20px 16px; }
}

/* aerial image map replaces the old iframe */
.contact-map-img{
  position:relative; cursor:pointer; overflow:hidden;
}
.map-img-link{
  display:block; width:100%; height:100%; position:relative;
  text-decoration:none;
}
.map-aerial-img{
  width:100%; height:100%; object-fit:cover; object-position:center 30%;
  transition:transform .6s ease, filter .4s ease;
  display:block;
}
.map-img-link:hover .map-aerial-img{
  transform:scale(1.05);
  filter:brightness(1.08);
}

/* Gold location pin — positioned on the convention building */
.map-pin-wrap{
  position:absolute;
  left:70%;   /* horizontal position over the building */
  top:42%;    /* vertical position over rooftop */
  transform:translate(-50%, -100%);
  z-index:10;
  display:flex; flex-direction:column; align-items:center;
  cursor:pointer;
}

/* Pulsing ring */
.map-pin-pulse{
  position:absolute;
  bottom:-10px; left:50%;
  transform:translateX(-50%);
  width:36px; height:36px;
  border-radius:50%;
  background:rgba(169,112,46,.35);
  animation:pinPulse 2s ease-out infinite;
  z-index:1;
}
@keyframes pinPulse{
  0%  { transform:translateX(-50%) scale(.6); opacity:.9; }
  70% { transform:translateX(-50%) scale(2.2); opacity:0; }
  100%{ transform:translateX(-50%) scale(.6); opacity:0; }
}

/* Pin icon */
.map-pin-icon{
  position:relative; z-index:2;
  font-size:3rem;
  color:#D9AE7B;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.8)) drop-shadow(0 0 10px rgba(169,112,46,.9));
  animation:pinFloat 3s ease-in-out infinite;
  line-height:1;
  transition:transform .3s ease, filter .3s ease;
}
.map-pin-wrap:hover .map-pin-icon,
.map-img-link:hover .map-pin-icon{
  transform:scale(1.25) translateY(-6px);
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.9)) drop-shadow(0 0 18px rgba(217,174,123,1));
  color:#FFD97A;
}
@keyframes pinFloat{
  0%,100%{ transform:translateY(0);     }
  50%     { transform:translateY(-10px); }
}

/* Tooltip */
.map-pin-tooltip{
  position:absolute;
  bottom:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%) translateY(8px) scale(.9);
  background:rgba(0,0,0,.75);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(169,112,46,.6);
  color:#fff;
  padding:8px 18px;
  border-radius:50px;
  font-size:.8rem; font-weight:600; letter-spacing:.5px; white-space:nowrap;
  display:flex; align-items:center; gap:8px;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
  z-index:20;
}
.map-pin-tooltip i{ color:var(--color-gold); font-size:1rem; }

/* Show tooltip when hovering the whole link OR the pin */
.map-img-link:hover .map-pin-tooltip,
.map-pin-wrap:hover .map-pin-tooltip{
  opacity:1;
  transform:translateX(-50%) translateY(0) scale(1);
}

/* Rays radiating out from behind pin (matches the second reference image) */
.map-pin-wrap::before{
  content:'';
  position:absolute;
  bottom:-4px; left:50%;
  transform:translateX(-50%);
  width:120px; height:120px;
  border-radius:50%;
  background:
    radial-gradient(ellipse at center,
      rgba(217,174,123,.22) 0%,
      rgba(217,174,123,.08) 45%,
      transparent 70%);
  animation:rayPulse 3s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
@keyframes rayPulse{
  0%,100%{ opacity:.6; transform:translateX(-50%) scale(1); }
  50%     { opacity:1;  transform:translateX(-50%) scale(1.3); }
}

@media (max-width:600px){
  .contact-map-full{ height:260px; }
  .map-aerial-img{ object-position:center 35%; }
  .map-pin-icon{ font-size:2rem; }
  .map-pin-pulse{ width:28px; height:28px; }
  .map-pin-wrap::before{ width:90px; height:90px; }
  .map-pin-tooltip{ font-size:.68rem; padding:5px 10px; white-space:normal; max-width:160px; text-align:center; }
}


.gallery-trio{
  display:grid; grid-template-columns:1.3fr 1fr; gap:18px; margin-bottom:18px; height:420px;
}
.gallery-trio-main{ height:100%; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); cursor:pointer; }
.gallery-trio-main img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gallery-trio-main:hover img{ transform:scale(1.08); }
.gallery-trio-stack{ display:flex; flex-direction:column; gap:18px; height:100%; }
.gallery-trio-stack > div{
  height:calc(50% - 9px); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); cursor:pointer;
}
.gallery-trio-stack img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gallery-trio-stack > div:hover img{ transform:scale(1.08); }
.event-card[data-lightbox-img]{ cursor:pointer; }

@media (max-width:700px){
  .gallery-trio{ grid-template-columns:1fr; height:auto; }
  header {
    padding: 0;
  }
  .gallery-trio-main{ height:260px; }
  .gallery-trio-stack{ flex-direction:row; height:160px; }
  .gallery-trio-stack > div{ height:100%; width:calc(50% - 9px); }
}

/* ---------- Lightbox ---------- */
.lightbox-overlay{
  position:fixed; inset:0; background:rgba(10,5,5,.94); z-index:4000;
  display:flex; align-items:center; justify-content:center; padding:40px;
  opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
}
.lightbox-overlay.show{ opacity:1; visibility:visible; }
.lightbox-overlay img{
  max-width:100%; max-height:100%; border-radius:var(--radius-md); box-shadow:0 30px 80px rgba(0,0,0,.5);
  transform:scale(.92); transition:transform .35s ease;
}
.lightbox-overlay.show img{ transform:scale(1); }
.lightbox-close{
  position:absolute; top:26px; right:30px; width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:#fff;
  font-size:1.8rem; line-height:1; display:flex; align-items:center; justify-content:center; transition:.3s;
}
.lightbox-close:hover{ background:var(--color-gold); transform:rotate(90deg); }

.page-hero{
  height:60vh; min-height:420px; position:relative;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  filter:none;
  display:flex; align-items:center; justify-content:center; text-align:center; color:#fff;
}
/* Subtle transparent gradient only to preserve exact crisp image quality without fading */
.page-hero::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.35) 100%);
  pointer-events:none;
}
.page-hero-content{
  position:relative; z-index:2;
  text-shadow:0 4px 20px rgba(0,0,0,0.85), 0 2px 6px rgba(0,0,0,0.9);
}
.page-hero-content .eyebrow{ color:var(--color-gold); font-weight:700; text-shadow:0 2px 10px rgba(0,0,0,0.9); }
.page-hero-content h1{ font-size:clamp(2.2rem,5vw,3.4rem); color:#fff; margin-top:10px; font-weight:800; }
.breadcrumb{ margin-top:16px; font-size:.85rem; color:#e5e5e5; }
.breadcrumb a{ color:var(--color-gold); }

/* ---------- Info Cards (venue pages) ---------- */
.info-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:26px; margin-top:40px; }
.info-card{
  background:#fff; border-radius:var(--radius-md); padding:32px 26px; box-shadow:var(--shadow-soft);
  transition:transform .4s, box-shadow .4s; border-top:3px solid transparent;
}
.info-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lift); border-top-color:var(--color-gold); }
.info-icon{ font-size:1.8rem; margin-bottom:14px; }
.info-card h3{ font-size:1.15rem; margin-bottom:12px; }
.info-card ul li{ font-size:.92rem; color:#555; padding:5px 0; display:flex; align-items:center; gap:8px; }
.info-card ul li::before{ content:'—'; color:var(--color-gold); }
.capacity-tags{ display:flex; flex-wrap:wrap; gap:10px; }
.capacity-tags span{
  background:rgba(29,53,87,.07); color:var(--color-royal); padding:8px 16px; border-radius:50px; font-size:.85rem; font-weight:600;
}

/* ============================================================
   VENUE BOOKING SCENE — Natural height, NO inner scrollbar
   ============================================================ */
.venue-booking-scene{
  position:relative;
  display:grid;
  grid-template-columns:1fr 520px;
  min-height:auto;
  background-attachment:scroll;
  background-size:cover;
  background-position:center;
  overflow:visible;
  padding:40px 0;
  align-items:center;
}
.vbs-overlay{
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(
    to right,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.60) 50%,
    rgba(0,0,0,.85) 100%
  );
}

/* ---- Quotes panel (left) ---- */
.vbs-quotes{
  position:relative; z-index:2;
  display:flex; flex-direction:column; justify-content:center;
  padding:60px 50px;
  color:#fff;
}
.vbs-ornament{
  font-size:2rem; color:var(--color-gold);
  margin-bottom:24px;
  animation:ornamentSpin 8s linear infinite;
}
@keyframes ornamentSpin{
  0%,100%{ transform:scale(1) rotate(0deg); }
  50%{ transform:scale(1.15) rotate(180deg); }
}

/* Quote carousel */
.vbs-quote-carousel{ position:relative; min-height:180px; margin-bottom:28px; }
.vbs-quote{
  position:absolute; inset:0;
  display:flex; flex-direction:column; gap:12px;
  opacity:0; transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
  pointer-events:none;
}
.vbs-quote.active{
  opacity:1; transform:translateY(0);
  pointer-events:auto;
}
.vbs-quote-mark{
  font-family:var(--font-display); font-size:5rem; line-height:.7;
  color:var(--color-gold); opacity:.7; display:block;
}
.vbs-quote p{
  font-family:var(--font-display); font-size:clamp(1.2rem,2.5vw,1.8rem);
  font-weight:600; line-height:1.4; color:#fff;
  font-style:italic;
}
.vbs-author{
  font-size:.85rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--color-gold-light); font-weight:600;
}

/* Quote navigation dots */
.vbs-quote-dots{
  display:flex; gap:10px; margin-bottom:32px;
}
.vbs-qdot{
  width:28px; height:3px; border-radius:3px;
  background:rgba(255,255,255,.3);
  cursor:pointer; transition:background .3s, width .3s;
  border:none;
}
.vbs-qdot.active{
  background:var(--color-gold); width:48px;
}

/* ---- Feature Pills with Hover Cards ---- */
.vbs-feature-pills {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px;
}
.vbs-pill-wrap {
  position: relative;
}
.vbs-pill {
  display: inline-block;
  background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff; padding: 8px 18px; border-radius: 50px;
  font-size: .85rem; font-weight: 500; cursor: default;
  transition: all 0.3s ease;
}
.vbs-pill:hover {
  background: rgba(169, 112, 46, 0.35); border-color: rgba(169, 112, 46, 0.6);
  transform: scale(1.05);
}

.vbs-pill-card {
  position: absolute;
  top: calc(100% + 15px);
  left: 50%;
  transform: translateX(-50%) scale(0.8) translateY(10px);
  opacity: 0;
  visibility: hidden;
  /* Glassmorphism transparent background */
  
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  
  border-radius: var(--radius-md);
  padding: 20px;
  width: max-content;
  min-width: 220px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  color: #fff;
  z-index: 100;
  pointer-events: none;
}
.vbs-pill-wrap:hover .vbs-pill-card,
.vbs-pill-wrap.open .vbs-pill-card{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) scale(1) translateY(0);
}
.vbs-pill-card h4 {
  font-family: var(--font-display); color: var(--color-gold); font-size: 1.15rem; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; font-weight: 700;
}
.vbs-pill-card ul { list-style: none; padding: 0; margin: 0; }
.vbs-pill-card ul li { font-size: .85rem; padding: 4px 0; color: #eee; display: flex; align-items: center; gap: 8px; font-weight: 500; }
.vbs-pill-card ul li::before { content: '—'; color: var(--color-gold); font-weight: 700; }
.vbs-capacity-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.vbs-capacity-tags span {
  background: rgba(217, 174, 123, 0.2); color: #fff; padding: 6px 12px; border-radius: 50px; font-size: .8rem; font-weight: 600;
}

@media (max-width: 768px){
  .vbs-feature-pills {
    display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; position: relative;
  }
  .vbs-pill-wrap {
    position: relative;
  }
  .vbs-pill {
    padding: 7px 14px; font-size: .78rem; cursor: pointer;
  }
  .vbs-pill-card {
    position: absolute;
    bottom: calc(100% + 8px); /* Opens UPWARD above the pill, so it NEVER blocks the booking form below! */
    top: auto;
    left: 100%;
    transform: translateX(-50%) scale(0.9) translateY(10px);
    width: 260px; max-width: 85vw; max-height: 240px; overflow-y: auto;
    border-radius: var(--radius-md);
    padding: 14px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
    z-index: 500;
  }
  .vbs-pill-wrap.open .vbs-pill-card,
  .vbs-pill-wrap:hover .vbs-pill-card {
    transform: translateX(-50%) scale(1) translateY(0);
    opacity: 1;
    visibility: visible;
  }
}

/* ---- Glass Form panel (right) — Compact 2-column layout, NO inner scrollbar ---- */
.vbs-form-panel{
  position:relative; z-index:2;
  overflow:visible;
  max-height:none;
}

.vbs-form-inner{
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-left:1px solid rgba(255,255,255,.15);
  padding:40px 32px;
  min-height:auto;
  border-radius:var(--radius-lg);
  margin-right:20px;
}

.vbs-form-header{ margin-bottom:20px; }
.vbs-form-header h3{
  font-family:var(--font-display); font-size:1.55rem;
  color:#fff; margin:4px 0 6px; font-weight:700;
}
.vbs-form-header p{ font-size:.86rem; color:rgba(255,255,255,.7); }

.vbs-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 14px;
}
.vbs-form .form-group.full,
.vbs-form .form-group:nth-child(7),
.vbs-form .form-group:nth-child(8),
.vbs-form .form-group:nth-child(9),
.vbs-form .form-group:nth-child(10),
.vbs-form button[type="submit"]{
  grid-column:1 / -1;
}

/* Form fields inside vbs — override to white on glass */
.vbs-form .form-group label{
  color:rgba(255,255,255,.9); font-size:.78rem; font-weight:600;
}
.vbs-form .form-group input,
.vbs-form .form-group select,
.vbs-form .form-group textarea{
  background:rgba(255,255,255,.12);
  border:1.5px solid rgba(255,255,255,.2);
  color:#fff; padding:10px 14px;
  border-radius:var(--radius-sm); font-family:inherit; font-size:.88rem;
  transition:.3s;
}
.vbs-form .form-group input::placeholder,
.vbs-form .form-group select::placeholder,
.vbs-form .form-group textarea::placeholder{ color:rgba(255,255,255,.4); }
.vbs-form .form-group input:focus,
.vbs-form .form-group select:focus,
.vbs-form .form-group textarea:focus{
  outline:none;
  border-color:var(--color-gold);
  background:rgba(255,255,255,.18);
  box-shadow:0 0 0 4px rgba(169,112,46,.25);
}
.vbs-form .form-group select option{ background:var(--color-dark); color:#fff; }
.vbs-form .checkbox-row{ color:rgba(255,255,255,.8); font-size:.82rem; }
.vbs-form .range-value{ background:var(--gradient-gold); padding:2px 10px; }

/* Mobile stacked — Background image constrained to top showcase area (quotes & pills) only */
@media (max-width:960px){
  .venue-booking-scene{
    grid-template-columns:1fr;
    padding:0;
    background-image:none !important;
    background:#0f0907; /* Solid dark background for form & outer container below */
  }
  .venue-booking-scene > .vbs-overlay{ display:none; } /* overlay handled inside vbs-quotes on mobile */

  .vbs-quotes{
    position:relative;
    padding:44px 20px 32px;
    background-image:var(--scene-bg);
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    overflow:hidden;
  }
  /* Dark overlay for top quotes showcase on mobile */
  .vbs-quotes::before{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.85) 100%);
    z-index:0; pointer-events:none;
  }
  .vbs-quotes > *{
    position:relative; z-index:2;
  }

  /* Glass type background for form panel & inner on mobile */
  .vbs-form-panel{
    position:relative; z-index:2;
    background:transparent;
  }
  .vbs-form-inner{
    margin-right:0;
    border-left:none;
    border-radius:24px 24px 0 0;
    background:rgba(255,255,255,0.06);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,0.15);
    border-top:1px solid rgba(212,175,55,0.4);
    padding:30px 20px 24px;
    box-shadow:0 -10px 30px rgba(0,0,0,0.4);
  }
  .vbs-form{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .vbs-quotes{ padding:38px 16px 26px; }
  .vbs-form-inner{ padding:24px 16px; border-radius:20px 20px 0 0; }
  .vbs-quote-mark{ font-size:3.5rem; }
}

/* ---------- Booking Form ---------- */
.booking-section{ background:var(--color-ivory); }
.booking-wrap{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lift); padding:50px; margin-top:40px;
}
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-group{ display:flex; flex-direction:column; gap:8px; }
.form-group.full{ grid-column:1 / -1; }
.form-group label{ font-size:.85rem; font-weight:600; color:var(--color-royal); display:flex; align-items:center; justify-content:space-between; gap:10px; }
.range-value{
  background:var(--gradient-gold-blue); color:#fff; font-size:.78rem; font-weight:700;
  padding:3px 12px; border-radius:50px; letter-spacing:.3px;
}
/* ---------- Aaron Iker Smoke Range Slider Component ---------- */
.slider {
  --line-background: rgba(200, 200, 200, 0.35);
  --line-active: var(--color-gold, #d4af37);
  --handle-background: var(--gradient-gold-blue, linear-gradient(135deg, #d4af37 0%, #aa7a2c 100%));
  --handle-border: #ffffff;
  --handle-text-color: #ffffff;
  --smoke-background: #d4af37;
  --smoke-shadow: inset 3px 3px 0 0 #f4e3b2;
  position: relative;
  width: 100%;
  padding: 6px 0;
}

.slider input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 1px;
 
  background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-gold) 0%, rgba(200, 200, 200, 0.35) 0%, rgba(200, 200, 200, 0.35) 100%);
  outline: none;
  cursor: pointer;
 
}

.slider input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--handle-background);
  border: 3px solid var(--handle-border);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.slider input[type="range"]::-webkit-slider-thumb:hover {
  transform: scale(1.15);
  box-shadow: 0 6px 18px rgba(212, 175, 55, 0.45);
}

.slider input[type="range"]::-webkit-slider-thumb:active {
  transform: scale(1.25);
  box-shadow: 0 8px 22px rgba(212, 175, 55, 0.6);
}

.slider input[type="range"]::-moz-range-thumb {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--handle-background);
  border: 3px solid var(--handle-border);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.slider .smoke {
  background: var(--smoke-background);
  box-shadow: var(--smoke-shadow);
  position: absolute;
  overflow: hidden;
  pointer-events: none;
  left: 0;
  top: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transform: scale(0);
  z-index: 10;
  opacity: 0.85;
}
.form-group input, .form-group select, .form-group textarea{
  padding:14px 16px; border:1.5px solid #e2e2e2; border-radius:var(--radius-sm); font-family:inherit;
  font-size:.95rem; transition:.3s; background:#fbfbfa;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:none; border-color:var(--color-gold); box-shadow:0 0 0 4px rgba(212,175,55,.15); background:#fff;
}
.radio-row{ display:flex; gap:24px; flex-wrap:wrap; }
.radio-pill{ display:flex; align-items:center; gap:8px; font-size:.9rem; color:#444; }
.checkbox-row{ display:flex; align-items:center; gap:10px; font-size:.88rem; color:#555; }
.form-footer{ display:flex; align-items:center; justify-content:space-between; margin-top:30px; flex-wrap:wrap; gap:16px; }
.progress-steps{ display:flex; gap:8px; align-items:center; font-size:.8rem; color:#888; }
.progress-steps span.dot{ width:8px; height:8px; border-radius:50%; background:#ddd; }
.progress-steps span.dot.active{ background:var(--color-gold); }

/* ====================================================================
   RESPONSIVE — mobile first overrides
   ==================================================================== */
@media (max-width: 992px){
  .about-grid{ grid-template-columns:1fr; gap:40px; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:30px; }
  .form-grid{ grid-template-columns:1fr; }
  .plan-showcase{ grid-template-columns:1fr; gap:30px; }
  .plan-showcase-image{ min-height:340px; }
  .stats-grid{ grid-template-columns:1fr 1fr; gap:14px; }
}

@media (max-width: 768px){
  /* ---- Nav ---- */
  .nav-links{
    position:fixed; top:0; right:-100%; width:72%; max-width:300px; height:100vh;
    background:#fff; flex-direction:column; padding:90px 28px; gap:22px; box-shadow:var(--shadow-lift);
    transition:right .4s ease; z-index:1050; overflow-y:auto;
  }
  /* ---- Nav & Logos ---- */
  .nav-links{
    position:fixed; top:0; right:-100%; width:72%; max-width:300px; height:100vh;
    background:#fff; flex-direction:column; padding:90px 28px; gap:22px; box-shadow:var(--shadow-lift);
    transition:right .4s ease; z-index:1050; overflow-y:auto;
  }
  .nav-links.open{ right:0; }
  .nav-links a{ color:var(--color-royal) !important; font-size:1.05rem; }
  .nav-close{ display:flex; }
  .hamburger{ display:flex; }
  .nav-wrap{ gap:10px; overflow:hidden; }
  .logo-img{ height:100px; width:auto; max-width:180px; object-fit:contain; } /* Prominent visible header logo on mobile */
  header.scrolled .logo-img{ height:75px; }
  .nav-cta{ gap:8px; }
  .nav-cta .btn-primary{ padding:9px 16px; font-size:.8rem; }

  /* ---- Sections ---- */
  .section-pad{ padding:50px 0; }
  .about-list{ grid-template-columns:1fr; }
  .about-visual-wrap{ padding-right:0; padding-bottom:50px; }
  .about-extra-frame.frame-1{ width:55%; height:140px; right:0; bottom:-25px; }
  .about-extra-frame.frame-2{ width:42%; height:110px; right:0; top:-10px; }
 
  .about::after{ top:73%; width:280px; height:280px; right:-140px; opacity:0.08; }
  footer::before{ width:280px; height:280px; top:260px; left:50%; transform:translateX(-50%); opacity:0.12; mix-blend-mode:screen; pointer-events:none; }
  .stats-grid{ grid-template-columns:1fr 1fr; }

  /* ---- Footer Grid (3 Columns Grid View on Mobile) ---- */
  .footer-grid{
    grid-template-columns:1fr 1fr 1fr; /* 3-column mobile grid view */
    gap:24px 12px; text-align:left;
  }
  .footer-grid > div:first-child{
    grid-column:1 / -1; /* Logo + Quote spans full width across top */
    text-align:center; margin-bottom:6px;
  }
  .footer-logo{ justify-content:center; margin-bottom:12px; }
  .footer-logo .logo-img{ height:100px; width:auto; } /* Prominent visible footer logo */
  .footer-quote{ max-width:100%; font-size:.88rem; text-align:center; margin:0 auto; line-height:1.45; }
  .footer h4{ font-size:.88rem; margin-bottom:12px; color:#fff; letter-spacing:.5px; }
  .footer-links li{ margin-bottom:8px; }
  .footer-links a{ font-size:.82rem; }
  .social-card{ padding:8px; gap:8px; flex-wrap:wrap; justify-content:flex-start; max-width:100%; }
  .socialContainer{ width:36px; height:36px; border-radius:10px; }
  .socialSvg{ width:15px; height:15px; }

  .venue-options{ flex-direction:column; }
  .booking-wrap{ padding:20px 14px; }
  .events-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .event-card{ height:230px; }
  .info-grid{ grid-template-columns:1fr; }

  /* ---- Contact Location Aerial Map Image (100% visible, no side crop) ---- */
  .contact-map-full{ height:auto; min-height:50px; max-height:300px; border-radius:var(--radius-md); overflow:hidden; }
  .map-aerial-img{ width:100%; height:auto; max-height:300px; object-fit:contain; background:#090605; }
  .map-pin-wrap{ top:45%; left:68%; }

  /* ---- Plan showcase ---- */
  .plan-showcase{ grid-template-columns:1fr; gap:20px; }
  .plan-showcase-image{ min-height:290px; }
  .plan-showcase-frame{ inset:12px; }
  .plan-showcase-overlay{ inset:12px; padding:14px 16px; }
  .plan-showcase-overlay h3{ font-size:1.4rem; margin-bottom:4px; }
  .plan-showcase-quote-row{ gap:8px; align-items:flex-end; }
  .plan-showcase-quote{ font-size:.82rem; line-height:1.35; max-width:100%; flex:1 1 100%; }
  .plan-showcase-book{ padding:8px 16px; font-size:.78rem; align-self:flex-start; margin-top:4px; }
  .plan-event-list{ flex-direction:row; flex-wrap:wrap; gap:4px 12px; justify-content:center; }
  .plan-event-list li{ border-bottom:none; padding:6px 10px; font-size:.85rem; }

  /* ---- Hero Section Mobile Scaling (Clear background images & compact text) ---- */
  .hero{ height:100svh; }
  .hero-slide-overlay{
    background:linear-gradient(180deg, rgba(10,5,5,.25) 0%, rgba(10,5,5,.35) 50%, rgba(10,5,5,.65) 100%);
  }
  .hero-slide-bg{ background-position:center center; }
  .hero-slide-content{ padding-top:65px; text-align:center; align-items:center; }
  .hero-eyebrow{ font-size:.7rem; padding:5px 14px; margin-bottom:10px; letter-spacing:1.5px; border-radius:50px; background:rgba(0,0,0,0.4); border:1px solid rgba(212,175,55,0.4); max-width:92%; }
  .hero-slide-content .hero-title{ font-size:clamp(1.25rem, 5.5vw, 1.65rem); line-height:1.25; margin-bottom:8px; font-weight:700; max-width:95%; }
  .hero-quote{ font-size:.82rem; line-height:1.35; margin-bottom:8px; max-width:88%; opacity:0.9; }
  .hero-subtext{ font-size:.68rem; margin-bottom:16px; letter-spacing:1.5px; }
  .tour-hero-content{ padding:40px 20px 100px; }
  .hero-btn-wrap{ gap:10px; justify-content:center; }
  .hero-btn-wrap .btn{ padding:10px 18px; font-size:.8rem; }
  .hero-vertical-nav{ right:12px; }
  .hero-dot{ width:10px; height:10px; }
  .hero-scroll-indicator{ display:none; }

  /* ---- About images ---- */
  .about-img-main{ height:280px; }
  .about-img-stack{ height:280px; }
  .about-badge{ bottom:-20px; left:-10px; padding:14px 16px; }
  .about-badge strong{ font-size:1.4rem; }

  /* ---- Testimonials ---- */
  .testimonials{ padding:60px 0; }
  .testi-card{ width:280px; padding:22px; }

  /* ---- Footer ---- */
  footer{ padding:50px 0 24px; }
  .newsletter-form{ flex-direction:column; border-radius:var(--radius-sm); }
  .newsletter-form input{ padding:12px 16px; }
  .newsletter-form button{ padding:12px 16px; text-align:center; border-radius:0 0 var(--radius-sm) var(--radius-sm); }
  .footer-bottom{ flex-direction:column; text-align:center; gap:6px; }

  /* ---- Floating buttons ---- */
  .floating-actions{ bottom:16px; left:12px; gap:10px; }
  .float-btn{ width:44px; height:44px; font-size:1.1rem; }
  .back-to-top{ bottom:24px; right:14px; width:40px; height:40px; }
}

@media (max-width: 480px){
  .container{ padding:0 14px; }
  /* .hero-title alone never matched .hero-slide-content .hero-title (higher
     specificity), so this override was silently ignored — the real hero
     title stayed at desktop size and visually buried the photo behind it. */
  .hero-slide-content .hero-title{ font-size:clamp(1.35rem,7vw,1.9rem); margin-bottom:8px; }
  .hero-slide-content{ padding-top:80px; }
  .hero-eyebrow{ font-size:.68rem; padding:5px 14px; margin-bottom:12px; letter-spacing:2px; }
  .hero-quote{ display:none; } /* trims vertical stacking so the photo stays visible */
  .hero-subtext{ font-size:.72rem; margin-bottom:18px; letter-spacing:1.5px; }
  .hero-title{ font-size:clamp(1.5rem,8vw,2.4rem); }
  .section-pad{ padding:48px 0; }
  .events-grid{ grid-template-columns:1fr; }
  .event-card{ height:220px; }
  .gallery-grid{ grid-template-columns:1fr 1fr; gap:8px; }
  .gallery-grid-item{ height:140px; }
  .gallery-tabs{ flex-wrap:wrap; border-radius:var(--radius-sm); }
  .gallery-tab{ padding:8px 14px; font-size:.72rem; }
  .about-img-wrap{ grid-template-columns:1fr; }
  .about-img-main{ height:240px; }
  .about-img-stack{ flex-direction:row; height:130px; }
  .about-img-stack img{ height:100%; width:50%; }
  .about-badge{ position:static; margin-top:16px; width:fit-content; }
  .booking-wrap{ padding:20px 12px; }
  .form-group input, .form-group select, .form-group textarea{ padding:11px 12px; font-size:.88rem; }
  .btn{ padding:12px 24px; font-size:.88rem; }
  .back-to-top{ display:none; }
  .floating-actions{ bottom:14px; left:10px; }
}

@media (max-width: 680px){
  .logo-img{ height:100px; max-width:200px; }
  header.scrolled .logo-img{ height:60px; }
  .nav-cta .btn-primary{ padding:7px 14px; font-size:.76rem; }
}

@media (max-width: 420px){
  .logo-img{ height:100px; max-width:200px; }
  header.scrolled .logo-img{ height:55px; }
  .nav-cta{ gap:6px; }
  .nav-cta .btn-primary{ padding:6px 12px; font-size:.72rem; display:inline-flex; }
  header { padding: 2px 0; }
  .plan-showcase-frame{ inset:8px; }
  .plan-showcase-overlay{ inset:8px; padding:10px 12px; }
  .plan-showcase-overlay h3{ font-size:1.2rem; }
  .plan-showcase-quote{ font-size:.76rem; }
  .plan-showcase-book{ padding:6px 14px; font-size:.74rem; }
}