/* =====================================================
   SADDLE BAR — PRIVATE EVENTS
   Modern Western / Rustic Luxury Design System
===================================================== */

:root{
  /* Brand palette */
  --color-primary:      #5A341A;
  --color-secondary:    #8C6239;
  --color-gold:         #D6A84F;
  --color-gold-light:   #E8C77E;
  --color-cream:        #F8F3EA;
  --color-dark:         #1B1713;
  --color-light-brown:  #C7A17A;

  --color-cream-2:      #F1E9D8;
  --color-line:         rgba(90,52,26,0.16);
  --color-text:         #2B2117;
  --color-text-soft:    #5c4d3e;

  /* Fonts */
  --font-display: 'Cinzel', serif;
  --font-western: 'Rye', cursive;
  --font-body:    'Poppins', sans-serif;

  /* Layout */
  --container-w: 1240px;
  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-lg: 26px;

  --shadow-soft: 0 20px 45px -20px rgba(27,23,19,0.35);
  --shadow-gold: 0 18px 40px -16px rgba(214,168,79,0.55);

  --ease: cubic-bezier(.22,1,.36,1);
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
input, select, textarea{ font-family:inherit; }

.container{
  width:100%;
  max-width: var(--container-w);
  margin:0 auto;
  padding: 0 28px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* -----------------------------------------------------
   Typography helpers
----------------------------------------------------- */
.eyebrow{
  font-family: var(--font-display);
  letter-spacing:0.22em;
  text-transform:uppercase;
  font-size:0.78rem;
  font-weight:600;
  color: var(--color-secondary);
  margin: 0 0 10px;
}
.eyebrow--light{ color: var(--color-gold-light); }

.section-title{
  font-family: var(--font-display);
  font-weight:700;
  font-size: clamp(2rem, 3.4vw, 2.9rem);
  color: var(--color-primary);
  margin: 0 0 18px;
  text-align:center;
}
.section-title--left{ text-align:left; }
.section-title--light{ color: var(--color-cream); text-align:center; }

.divider{
  width:120px; height:3px; margin:0 auto 56px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
  position:relative;
}
.divider::before{
  content:"\2726";
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  color: var(--color-gold);
  background: var(--color-cream);
  padding:0 10px;
  font-size:0.9rem;
}
.divider--light{ background: linear-gradient(90deg, transparent, var(--color-gold), transparent); }
.divider--light::before{ background: var(--color-dark); }

.text-gold{ color: var(--color-gold); }

/* -----------------------------------------------------
   Buttons
----------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family: var(--font-display);
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-size:0.82rem;
  padding: 16px 30px;
  border-radius: var(--radius-sm);
  border:2px solid transparent;
  position:relative;
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
  white-space:nowrap;
}
.btn:active{ transform: translateY(1px) scale(0.98); }
.btn__star{ color: currentColor; }

.btn--gold{
  background: linear-gradient(135deg, var(--color-gold-light), var(--color-gold));
  color: var(--color-dark);
  box-shadow: var(--shadow-gold);
}
.btn--gold:hover{ transform: translateY(-3px); box-shadow: 0 24px 48px -14px rgba(214,168,79,0.65); }

.btn--outline-light{
  border-color: rgba(248,243,234,0.55);
  color: var(--color-cream);
}
.btn--outline-light:hover{ background: rgba(248,243,234,0.12); border-color: var(--color-cream); }

.btn--outline{
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.btn--outline:hover{ background: var(--color-primary); color: var(--color-cream); }

.btn--outline-dark{
  border-color: var(--color-dark);
  color: var(--color-dark);
}
.btn--outline-dark:hover{ background: var(--color-dark); color: var(--color-cream); }

.btn--dark{
  background: var(--color-dark);
  color: var(--color-cream);
}
.btn--dark:hover{ background:#000; transform: translateY(-3px); }

.btn--small{ padding:11px 20px; font-size:0.72rem; }
.btn--large{ padding:19px 38px; font-size:0.9rem; }
.btn--full{ width:100%; }

/* ripple */
.btn::after{
  content:""; position:absolute; border-radius:50%;
  background: rgba(255,255,255,0.5);
  width:8px; height:8px; left:var(--rx,50%); top:var(--ry,50%);
  transform: translate(-50%,-50%) scale(0);
  opacity:0; pointer-events:none;
}
.btn.is-rippling::after{ animation: ripple .6s var(--ease); }
@keyframes ripple{
  0%{ transform: translate(-50%,-50%) scale(0); opacity:0.55; }
  100%{ transform: translate(-50%,-50%) scale(28); opacity:0; }
}

/* -----------------------------------------------------
   Scroll progress bar
----------------------------------------------------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background: linear-gradient(90deg, var(--color-secondary), var(--color-gold));
  z-index:1200;
  transition: width .1s linear;
}

/* -----------------------------------------------------
   Logo (reused in footer now that the navbar is removed)
----------------------------------------------------- */
.navbar__logo{
  display:flex; flex-direction:column; align-items:flex-start; line-height:1;
  color: var(--color-cream);
}
.navbar__logo-mark{ display:none; }
.navbar__logo-text{
  font-family: var(--font-western);
  font-size:1.7rem;
  letter-spacing:0.04em;
  color: var(--color-gold-light);
}
.navbar__logo-sub{
  font-family: var(--font-display);
  font-size:0.6rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color: rgba(248,243,234,0.7);
  margin-top:2px;
}

/* -----------------------------------------------------
   Hero
----------------------------------------------------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden;
  background: var(--color-dark);
}
.hero__bg{
  position:absolute; inset:-40px;
  background-size:cover; background-position:center;
  will-change: transform;
}
.hero__overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(15,12,9,0.75) 0%, rgba(15,12,9,0.55) 35%, rgba(15,12,9,0.85) 100%),
    linear-gradient(90deg, rgba(15,12,9,0.92) 0%, rgba(15,12,9,0.35) 55%, rgba(15,12,9,0.65) 100%);
}
.hero__content{
  position:relative; z-index:2;
  display:grid; grid-template-columns: 1.25fr 0.75fr;
  gap:40px; align-items:center;
  padding-top:40px;
}
.hero__title{
  font-family: var(--font-display);
  font-weight:800;
  font-size: clamp(2.4rem, 5.2vw, 4.4rem);
  line-height:1.08;
  color: var(--color-cream);
  margin:0 0 22px;
  text-shadow: 0 8px 30px rgba(0,0,0,0.45);
}
.hero__subtitle{
  color: rgba(248,243,234,0.85);
  font-size:1.02rem;
  line-height:1.75;
  max-width:520px;
  margin:0 0 34px;
}
.hero__actions{ display:flex; gap:18px; flex-wrap:wrap; }

.hero__sign-wrap{ display:flex; justify-content:center; }
.hanging-sign{ position:relative; padding-top:60px; animation: signSwing 5.5s ease-in-out infinite; transform-origin: top center; }
.hanging-sign__rope{ position:absolute; top:0; width:2px; height:60px; background: rgba(198,168,122,0.65); }
.hanging-sign__rope--left{ left:22%; }
.hanging-sign__rope--right{ right:22%; }
.hanging-sign__board{
  background: linear-gradient(160deg, #6b4426, #4a2c17);
  border: 3px solid var(--color-gold);
  border-radius: var(--radius-md);
  padding: 34px 30px;
  text-align:center;
  box-shadow: var(--shadow-soft), inset 0 0 0 1px rgba(214,168,79,0.25);
  min-width:230px;
}
.hanging-sign__line1, .hanging-sign__line2{
  display:block;
  font-family: var(--font-western);
  color: var(--color-gold-light);
  letter-spacing:0.03em;
}
.hanging-sign__line1{ font-size:1.5rem; }
.hanging-sign__line2{ font-size:1.5rem; }
@keyframes signSwing{
  0%,100%{ transform: rotate(-2deg); }
  50%{ transform: rotate(2deg); }
}

.hero__scroll-cue{
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  z-index:2; width:26px; height:42px; border:2px solid rgba(248,243,234,0.6); border-radius:20px;
}
.hero__scroll-cue span{
  position:absolute; top:8px; left:50%; width:4px; height:8px; background: var(--color-gold);
  border-radius:2px; transform:translateX(-50%);
  animation: scrollCue 1.8s infinite;
}
@keyframes scrollCue{
  0%{ opacity:1; top:8px; }
  70%{ opacity:0; top:22px; }
  100%{ opacity:0; top:8px; }
}

/* Floating CTA */
.floating-cta{
  position:fixed; right:26px; bottom:26px; z-index:900;
  background: linear-gradient(135deg, var(--color-gold-light), var(--color-gold));
  color: var(--color-dark);
  font-family: var(--font-display);
  letter-spacing:0.08em; text-transform:uppercase; font-size:0.76rem; font-weight:600;
  padding:15px 22px; border-radius:50px;
  display:flex; align-items:center; gap:8px;
  box-shadow: var(--shadow-gold);
  opacity:0; transform: translateY(20px) scale(0.9); pointer-events:none;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.floating-cta.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.floating-cta:hover{ transform: translateY(-4px) scale(1.03); }

/* -----------------------------------------------------
   Features
----------------------------------------------------- */
.features{ background: var(--color-cream); padding: 90px 0 60px; }
.features__grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:28px;
}
.feature-card{
  background:#fff; border:1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding:34px 26px;
  text-align:center;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.feature-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-soft); border-color: var(--color-gold); }
.feature-card__icon{
  width:64px; height:64px; margin:0 auto 18px;
  color: var(--color-secondary);
  display:flex; align-items:center; justify-content:center;
  background: var(--color-cream-2);
  border-radius:50%;
  transition: background .4s, color .4s, transform .4s;
}
.feature-card__icon svg{ width:30px; height:30px; }
.feature-card:hover .feature-card__icon{ background: var(--color-gold); color:#fff; transform: rotate(-8deg) scale(1.08); }
.feature-card h3{
  font-family: var(--font-display); font-size:1.08rem; color: var(--color-primary); margin:0 0 10px;
}
.feature-card p{ font-size:0.9rem; color: var(--color-text-soft); line-height:1.6; margin:0; }

/* -----------------------------------------------------
   Occasions
----------------------------------------------------- */
.occasions{ background: var(--color-cream-2); padding:90px 0; text-align:center; }
.occasions__grid{
  display:grid; grid-template-columns: repeat(5, 1fr); gap:20px;
}
.occasion-card{
  background:#fff; border:1px solid var(--color-line); border-radius: var(--radius-md);
  padding:26px 14px;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
}
.occasion-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-soft); background: var(--color-dark); }
.occasion-card:hover h4{ color: var(--color-gold-light); }
.occasion-card__icon{ font-size:1.9rem; display:block; margin-bottom:12px; }
.occasion-card h4{
  font-family: var(--font-display); font-size:0.8rem; letter-spacing:0.03em;
  color: var(--color-primary); margin:0; transition: color .35s;
}

/* -----------------------------------------------------
   Gallery
----------------------------------------------------- */
.gallery{ background: var(--color-cream); padding:90px 0; }
.gallery__head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:30px; gap:20px; flex-wrap:wrap; }
.gallery__head .section-title{ text-align:left; margin-bottom:0; }
.gallery__filters{ display:flex; gap:12px; margin-bottom:34px; flex-wrap:wrap; }
.filter-btn{
  background:transparent; border:1.5px solid var(--color-line); color: var(--color-text-soft);
  padding:9px 20px; border-radius:50px; font-size:0.82rem; font-weight:500;
  transition: all .3s;
}
.filter-btn:hover{ border-color: var(--color-gold); color: var(--color-primary); }
.filter-btn.is-active{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }

.gallery__grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:20px;
}
.gallery__item{
  position:relative; padding:0; border:none; border-radius: var(--radius-md); overflow:hidden;
  aspect-ratio: 3/4; background: var(--color-cream-2);
  transition: opacity .35s, transform .4s var(--ease);
}
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.gallery__item:hover img{ transform: scale(1.12); }
.gallery__item.is-hidden{ display:none; }
.gallery__zoom{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background: rgba(27,23,19,0.35); opacity:0; transition: opacity .35s; color:#fff; font-size:1.4rem;
}
.gallery__item:hover .gallery__zoom{ opacity:1; }

.lightbox{
  position:fixed; inset:0; background: rgba(10,8,6,0.94); z-index:1500;
  display:none; align-items:center; justify-content:center;
}
.lightbox.is-open{ display:flex; }
.lightbox img{ max-width:82vw; max-height:82vh; border-radius: var(--radius-sm); box-shadow: 0 30px 60px rgba(0,0,0,0.5); }
.lightbox__close, .lightbox__prev, .lightbox__next{
  position:absolute; background:none; border:none; color:#fff; font-size:2rem; cursor:pointer;
  opacity:0.75; transition: opacity .3s;
}
.lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover{ opacity:1; }
.lightbox__close{ top:26px; right:34px; }
.lightbox__prev{ left:26px; top:50%; transform:translateY(-50%); }
.lightbox__next{ right:26px; top:50%; transform:translateY(-50%); }

/* -----------------------------------------------------
   Capacity
----------------------------------------------------- */
.capacity{ background: var(--color-dark); padding:100px 0; color: var(--color-cream); }
.capacity__grid{ display:grid; grid-template-columns: 1fr 1fr; gap:60px; align-items:center; }
.capacity__image{ position:relative; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-soft); }
.capacity__image img{ width:100%; height:100%; object-fit:cover; aspect-ratio: 5/4; }
.capacity__badge{
  position:absolute; left:24px; bottom:24px;
  background: rgba(27,23,19,0.85); border:1px solid rgba(214,168,79,0.5);
  border-radius: var(--radius-md); padding:16px 22px; backdrop-filter: blur(6px);
}
.capacity__badge strong{ display:block; font-family: var(--font-display); font-size:1.8rem; color: var(--color-gold-light); }
.capacity__badge span{ font-size:0.72rem; letter-spacing:0.06em; color: rgba(248,243,234,0.75); text-transform:uppercase; }

.capacity .eyebrow{ color: var(--color-gold-light); }
.capacity__lede{ color: rgba(248,243,234,0.78); line-height:1.75; margin-bottom:28px; }
.check-list{ display:grid; grid-template-columns: 1fr 1fr; gap:14px 24px; margin-bottom:36px; }
.check-list li{ display:flex; align-items:center; gap:10px; font-size:0.95rem; color: rgba(248,243,234,0.92); }
.check-list__icon{
  width:22px; height:22px; border-radius:50%; background: var(--color-gold);
  color: var(--color-dark); display:flex; align-items:center; justify-content:center;
  font-size:0.7rem; flex-shrink:0;
}
.capacity__stats{ display:flex; gap:40px; border-top:1px solid rgba(248,243,234,0.15); padding-top:26px; }
.stat strong{ display:block; font-family: var(--font-display); font-size:2rem; color: var(--color-gold-light); }
.stat span{ font-size:0.78rem; color: rgba(248,243,234,0.7); text-transform:uppercase; letter-spacing:0.05em; }

/* -----------------------------------------------------
   Packages
----------------------------------------------------- */
.packages{ background: var(--color-cream-2); padding:100px 0; }
.packages__grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:28px; align-items:center;
}
.package-card{
  background:#fff; border:1px solid var(--color-line); border-radius: var(--radius-lg);
  padding:44px 32px; text-align:center; position:relative;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.package-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-soft); }
.package-card--featured{
  background: var(--color-dark); color: var(--color-cream);
  transform: scale(1.06); border-color: var(--color-gold);
  box-shadow: var(--shadow-gold);
  z-index:2;
}
.package-card--featured:hover{ transform: scale(1.06) translateY(-8px); }
.package-card__ribbon{
  position:absolute; top:22px; right:-38px; transform:rotate(45deg);
  background: var(--color-gold); color: var(--color-dark);
  font-family: var(--font-display); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
  padding:6px 46px; box-shadow: 0 6px 14px rgba(0,0,0,0.25);
}
.package-card__name{ font-family: var(--font-display); font-size:1.5rem; color: inherit; margin:0 0 6px; }
.package-card--featured .package-card__name{ color: var(--color-gold-light); }
.package-card__tag{ font-size:0.85rem; color: var(--color-text-soft); margin-bottom:26px; }
.package-card--featured .package-card__tag{ color: rgba(248,243,234,0.7); }
.package-card__list{ margin-bottom:32px; text-align:left; }
.package-card__list li{
  padding:11px 0; border-bottom:1px dashed var(--color-line); font-size:0.92rem;
  display:flex; align-items:center; gap:10px;
}
.package-card--featured .package-card__list li{ border-color: rgba(248,243,234,0.15); }
.package-card__list li::before{ content:"\2726"; color: var(--color-gold); font-size:0.75rem; }

/* -----------------------------------------------------
   Food & Beverage
----------------------------------------------------- */
.fb{ background: var(--color-cream); padding:100px 0; }
.fb__scroll{
  display:flex; gap:20px; overflow-x:auto; padding-bottom:14px; scroll-snap-type:x mandatory;
}
.fb__scroll::-webkit-scrollbar{ height:6px; }
.fb__scroll::-webkit-scrollbar-thumb{ background: var(--color-light-brown); border-radius:10px; }
.fb-card{
  flex: 0 0 190px; scroll-snap-align:start;
  border-radius: var(--radius-md); overflow:hidden; position:relative;
  aspect-ratio: 1/1; box-shadow: var(--shadow-soft);
}
.fb-card img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.fb-card:hover img{ transform: scale(1.1); }
.fb-card span{
  position:absolute; left:0; right:0; bottom:0; padding:16px 14px 14px;
  background: linear-gradient(0deg, rgba(15,12,9,0.9), transparent);
  color:#fff; font-family: var(--font-display); font-size:0.92rem; letter-spacing:0.02em;
}
.fb__cta{ text-align:center; margin-top:40px; }

/* -----------------------------------------------------
   Entertainment
----------------------------------------------------- */
.entertainment{
  background: var(--color-dark);
  padding:100px 0;
  background-image: radial-gradient(circle at 20% 20%, rgba(140,98,57,0.18), transparent 55%),
                     radial-gradient(circle at 80% 80%, rgba(214,168,79,0.12), transparent 55%);
}
.entertainment__grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:22px; }
.ent-card{
  background: rgba(248,243,234,0.04); border:1px solid rgba(248,243,234,0.12);
  border-radius: var(--radius-md); padding:32px 18px; text-align:center;
  transition: transform .35s var(--ease), background .35s, border-color .35s;
}
.ent-card:hover{ transform: translateY(-6px); background: rgba(214,168,79,0.12); border-color: var(--color-gold); }
.ent-card__icon{ font-size:1.9rem; display:block; margin-bottom:14px; }
.ent-card h4{ font-family: var(--font-display); font-size:0.9rem; color: var(--color-cream); margin:0; }

/* -----------------------------------------------------
   Testimonials
----------------------------------------------------- */
.testimonials{ background: var(--color-cream-2); padding:100px 0; }
.testimonial-carousel{ max-width:760px; margin:0 auto; overflow:hidden; }
.testimonial-track{ display:flex; transition: transform .6s var(--ease); }
.testimonial-slide{ flex:0 0 100%; }
.testimonial-card{
  background:#fff; border-radius: var(--radius-lg); padding:48px 44px; text-align:center;
  box-shadow: var(--shadow-soft); border:1px solid var(--color-line);
}
.stars{ color: var(--color-gold); font-size:1.1rem; letter-spacing:3px; margin-bottom:18px; }
.testimonial-card p{ font-size:1.08rem; line-height:1.8; color: var(--color-text); font-style:italic; margin:0 0 22px; }
.testimonial-card strong{ font-family: var(--font-display); display:block; color: var(--color-primary); }
.testimonial-card span{ font-size:0.8rem; color: var(--color-text-soft); text-transform:uppercase; letter-spacing:0.05em; }
.testimonial-dots{ display:flex; justify-content:center; gap:10px; margin-top:28px; }
.testimonial-dots button{
  width:10px; height:10px; border-radius:50%; border:none; background: var(--color-light-brown); opacity:0.5;
  transition: opacity .3s, transform .3s;
}
.testimonial-dots button.is-active{ opacity:1; background: var(--color-gold); transform: scale(1.25); }

/* -----------------------------------------------------
   FAQ
----------------------------------------------------- */
.faq{ background: var(--color-cream); padding:100px 0; }
.faq__grid{ display:grid; grid-template-columns: 0.8fr 1.2fr; gap:60px; align-items:flex-start; }
.faq__lede{ color: var(--color-text-soft); line-height:1.75; margin-bottom:30px; }
.accordion__item{
  border-bottom:1px solid var(--color-line);
}
.accordion__trigger{
  width:100%; background:none; border:none; padding:22px 0;
  display:flex; align-items:center; justify-content:space-between; text-align:left;
  font-family: var(--font-display); font-size:1.02rem; color: var(--color-primary);
}
.accordion__icon{
  font-size:1.3rem; color: var(--color-gold); transition: transform .35s var(--ease);
  flex-shrink:0; margin-left:16px;
}
.accordion__item.is-open .accordion__icon{ transform: rotate(45deg); }
.accordion__panel{
  max-height:0; overflow:hidden; transition: max-height .45s var(--ease), padding .45s var(--ease);
}
.accordion__item.is-open .accordion__panel{ max-height:220px; padding-bottom:22px; }
.accordion__panel p{ margin:0; color: var(--color-text-soft); line-height:1.75; font-size:0.95rem; }

/* -----------------------------------------------------
   Reservation
----------------------------------------------------- */
.reservation{ background: var(--color-dark); padding:110px 0; color: var(--color-cream); }
.reservation__grid{ display:grid; grid-template-columns: 0.85fr 1.15fr; gap:60px; }
.reservation__lede{ color: rgba(248,243,234,0.78); line-height:1.75; margin-bottom:28px; }
.reservation__points{ margin-bottom:34px; }
.reservation__points li{ display:flex; gap:10px; align-items:center; margin-bottom:12px; color: rgba(248,243,234,0.9); font-size:0.95rem; }
.reservation__points span{ color: var(--color-gold); }
.reservation__contact p{ margin:6px 0; color: rgba(248,243,234,0.85); font-size:0.92rem; }

.reservation__form{
  background: rgba(248,243,234,0.05); border:1px solid rgba(248,243,234,0.14);
  border-radius: var(--radius-lg); padding:38px; backdrop-filter: blur(6px);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field{ margin-bottom:20px; position:relative; }
.form-field label{
  display:block; font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase;
  color: rgba(248,243,234,0.7); margin-bottom:8px;
}
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:13px 14px; border-radius: var(--radius-sm);
  border:1px solid rgba(248,243,234,0.22); background: rgba(255,255,255,0.06);
  color: var(--color-cream); font-size:0.92rem; transition: border-color .3s, background .3s;
}
.form-field input::placeholder, .form-field textarea::placeholder{ color: rgba(248,243,234,0.4); }
.form-field select{ color: var(--color-cream); }
.form-field select option{ color:#000; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--color-gold); background: rgba(255,255,255,0.1);
}
.form-error{
  display:none; color:#e79a9a; font-size:0.76rem; margin-top:6px;
}
.form-field.is-invalid input, .form-field.is-invalid select{ border-color:#e07a7a; }
.form-field.is-invalid .form-error{ display:block; }

.checkbox-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; }
.checkbox{
  display:flex; align-items:center; gap:9px; font-size:0.88rem; color: rgba(248,243,234,0.88);
  cursor:pointer;
}
.checkbox input{ accent-color: var(--color-gold); width:16px; height:16px; }

.form-success{
  display:none; text-align:center; color: var(--color-gold-light); margin-top:18px; font-size:0.92rem;
}
.form-success.is-visible{ display:block; }

/* -----------------------------------------------------
   Footer CTA
----------------------------------------------------- */
.footer-cta{
  background: linear-gradient(160deg, var(--color-secondary), var(--color-primary));
  padding:80px 0;
  text-align:center;
  position:relative;
}
.footer-cta::before, .footer-cta::after{
  content:""; position:absolute; left:0; right:0; height:10px;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.15) 0 20px, transparent 20px 40px);
}
.footer-cta::before{ top:0; }
.footer-cta::after{ bottom:0; }
.footer-cta__inner h2{
  font-family: var(--font-display); color: var(--color-cream); font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  margin:0 0 12px;
}
.footer-cta__inner p{ color: rgba(248,243,234,0.85); margin:0 0 30px; }

/* -----------------------------------------------------
   Footer
----------------------------------------------------- */
.site-footer{ background: var(--color-dark); color: rgba(248,243,234,0.8); padding-top:70px; }
.site-footer__grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(248,243,234,0.1); }
.site-footer__col p{ font-size:0.9rem; line-height:1.7; margin:14px 0; }
.site-footer__col h5{ font-family: var(--font-display); color: var(--color-gold-light); margin:0 0 18px; font-size:1rem; letter-spacing:0.05em; }
.site-footer__col a{ display:block; font-size:0.9rem; margin-bottom:12px; transition: color .3s; }
.site-footer__col a:hover{ color: var(--color-gold-light); }
.site-footer__socials{ display:flex; gap:12px; margin-top:20px; }
.site-footer__socials a{
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(248,243,234,0.25);
  display:flex; align-items:center; justify-content:center; font-size:0.85rem;
  transition: background .3s, border-color .3s;
}
.site-footer__socials a:hover{ background: var(--color-gold); border-color: var(--color-gold); color: var(--color-dark); }
.site-footer__bottom{ padding:24px 0; text-align:center; font-size:0.8rem; color: rgba(248,243,234,0.5); }

/* -----------------------------------------------------
   Back to top
----------------------------------------------------- */
.back-to-top{
  position:fixed; left:26px; bottom:26px; z-index:900;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--color-line);
  background: var(--color-primary); color: var(--color-cream); font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform: translateY(16px); pointer-events:none;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.back-to-top.is-visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
.back-to-top:hover{ background: var(--color-gold); color: var(--color-dark); }

/* -----------------------------------------------------
   AOS-style reveal animations
----------------------------------------------------- */
[data-aos]{ opacity:0; transition: opacity .7s var(--ease), transform .7s var(--ease); }
[data-aos="fade-up"]{ transform: translateY(36px); }
[data-aos="fade-right"]{ transform: translateX(-36px); }
[data-aos="fade-left"]{ transform: translateX(36px); }
[data-aos="zoom-in"]{ transform: scale(0.85); }
[data-aos].is-visible{ opacity:1; transform: translate(0,0) scale(1); }

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width: 1180px){
  .features__grid{ grid-template-columns: repeat(2, 1fr); }
  .occasions__grid{ grid-template-columns: repeat(3, 1fr); }
  .entertainment__grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 992px){
  .hero__content{ grid-template-columns:1fr; text-align:center; padding-top:60px; }
  .hero__subtitle{ margin-left:auto; margin-right:auto; }
  .hero__actions{ justify-content:center; }
  .hero__sign-wrap{ margin-top:20px; }

  .capacity__grid, .faq__grid, .reservation__grid{ grid-template-columns:1fr; }
  .packages__grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
  .package-card--featured{ transform:none; order:-1; }
  .package-card--featured:hover{ transform: translateY(-8px); }
}

@media (max-width: 768px){
  .features__grid{ grid-template-columns:1fr; }
  .occasions__grid{ grid-template-columns: repeat(2, 1fr); }
  .gallery__grid{ grid-template-columns: repeat(2, 1fr); }
  .entertainment__grid{ grid-template-columns: repeat(2, 1fr); }
  .form-row{ grid-template-columns:1fr; }
  .checkbox-grid{ grid-template-columns:1fr; }
  .site-footer__grid{ grid-template-columns:1fr; gap:36px; }
  .check-list{ grid-template-columns:1fr; }
  .capacity__stats{ flex-wrap:wrap; gap:24px; }
}

@media (max-width: 480px){
  .occasions__grid, .gallery__grid{ grid-template-columns:1fr; }
  .hero__title{ font-size:2.1rem; }
  .btn{ padding:14px 22px; font-size:0.76rem; }
  .package-card{ padding:34px 22px; }
  .reservation__form{ padding:26px; }
  .navbar__logo-sub{ display:none; }
}
