:root{
  --luxis-teal-deep:#163530;
  --luxis-teal:#2F6659;
  --luxis-cream:#FBF2DC;
  --luxis-gold:#EDA671;
  --luxis-gold-soft:#F6C9A0;
  --luxis-rose:#4F9A8C;
  --luxis-ink:#223330;
}

.luxis-events-empty{
  color:#5F7A74; font-style:italic; font-family:'Inter', sans-serif;
}

.luxis-events-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:28px; font-family:'Inter', sans-serif;
}

.luxis-event-card{
  background:#fff; border:1px solid rgba(46,26,47,0.08); border-top:3px solid var(--luxis-gold);
  display:flex; flex-direction:column; overflow:hidden;
}
.luxis-event-card--featured{
  border-top-width:4px; box-shadow:0 16px 32px rgba(22,53,48,0.1);
}

.luxis-event-photo{
  height:180px; background-size:cover; background-position:center;
}

.luxis-event-body{ padding:24px; }

.luxis-event-cat{
  display:inline-block; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--luxis-rose); font-weight:700; margin-bottom:10px;
}

.luxis-event-when{ display:flex; gap:10px; align-items:baseline; margin-bottom:8px; }
.luxis-event-date{
  font-family:'Cormorant Garamond', serif; font-size:1.1rem; font-weight:600; color:var(--luxis-teal);
}
.luxis-event-time{ font-size:0.85rem; color:#5F7A74; }

.luxis-event-title{
  font-family:'Cormorant Garamond', serif; font-size:1.4rem; font-weight:600;
  color:var(--luxis-ink); margin-bottom:8px;
}
.luxis-event-card--featured .luxis-event-title{ font-size:1.7rem; }

.luxis-event-excerpt{ color:#4B615C; font-size:0.95rem; margin-bottom:12px; }

.luxis-event-location{
  font-size:0.85rem; color:var(--luxis-ink); margin-bottom:8px;
  display:flex; align-items:center; gap:6px;
}

.luxis-event-capacity{
  font-size:0.8rem; font-weight:600; color:var(--luxis-gold);
  text-transform:uppercase; letter-spacing:0.03em; margin-bottom:14px;
}

.luxis-event-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; position:relative; }

.luxis-btn{
  display:inline-block; padding:11px 20px; border:none; cursor:pointer;
  background:var(--luxis-gold); color:var(--luxis-teal-deep);
  font-weight:700; font-size:0.8rem; letter-spacing:0.04em; text-transform:uppercase;
  border-radius:2px; transition:background .2s ease, transform .2s ease;
  font-family:'Inter', sans-serif;
}
.luxis-btn:hover{ background:var(--luxis-gold-soft); transform:translateY(-1px); }

.luxis-btn-outline{
  background:transparent; color:var(--luxis-teal); border:1px solid var(--luxis-teal);
}
.luxis-btn-outline:hover{ background:rgba(47,102,89,0.06); }

.luxis-addcal{ position:relative; display:none; }
.luxis-addcal.is-visible{ display:inline-block; }

.luxis-loc-value{ display:none; }
.luxis-loc-value.is-visible{ display:inline; }
.luxis-loc-locked{ font-style:italic; opacity:0.65; font-size:0.85em; }
.luxis-loc-locked.is-hidden{ display:none; }
.luxis-addcal-menu{
  display:none; position:absolute; top:calc(100% + 6px); left:0; z-index:5;
  background:#fff; border:1px solid rgba(46,26,47,0.12); box-shadow:0 12px 28px rgba(22,53,48,0.15);
  min-width:170px; padding:8px 0;
}
.luxis-addcal-menu.is-open{ display:block; }
.luxis-addcal-menu a{
  display:block; padding:9px 16px; font-size:0.85rem; color:var(--luxis-ink); text-decoration:none;
}
.luxis-addcal-menu a:hover{ background:var(--luxis-cream); color:var(--luxis-teal); }

.luxis-rsvp-form{
  margin-top:16px; padding-top:16px; border-top:1px solid rgba(46,26,47,0.08);
  display:flex; flex-direction:column; gap:10px;
}
.luxis-rsvp-form input[type="text"],
.luxis-rsvp-form input[type="email"]{
  padding:10px 12px; border:1px solid rgba(46,26,47,0.15); border-radius:2px;
  font-family:'Inter', sans-serif; font-size:0.9rem;
}
.luxis-rsvp-form input:focus{ outline:2px solid var(--luxis-gold); outline-offset:1px; }
.luxis-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; }

.luxis-rsvp-result{
  font-size:0.85rem; font-weight:600; margin:0; min-height:1.2em;
}
.luxis-rsvp-result.is-success{ color:var(--luxis-teal); }
.luxis-rsvp-result.is-error{ color:#B4453C; }

/* ===== Slider ===== */
.luxis-slider{
  position:relative; width:100%; overflow:hidden;
  font-family:'Inter', sans-serif;
}
.luxis-slider-track{
  display:flex; width:100%; height:520px;
  transition:transform .6s cubic-bezier(.16,.84,.44,1);
}
.luxis-slide{
  flex:0 0 100%; width:100%; height:100%; position:relative;
  display:grid; grid-template-columns:1fr 1fr;
}
.luxis-slide--no-photo{ grid-template-columns:1fr; }
.luxis-slide-photo{
  background-size:cover; background-position:center; background-color:var(--luxis-teal-deep);
  height:100%;
}
.luxis-slide-content{
  background:var(--luxis-teal-deep); color:#fff;
  display:flex; flex-direction:column; justify-content:center;
  padding:40px clamp(24px, 4vw, 56px); overflow-y:auto;
}
.luxis-slide-content .luxis-event-cat{ color:var(--luxis-gold-soft); }
.luxis-event-when--slide .luxis-event-date{ color:var(--luxis-gold-soft); font-size:1.3rem; }
.luxis-event-when--slide .luxis-event-time{ color:#E9DCC5; }
.luxis-slide-title{
  font-family:'Cormorant Garamond', serif; font-size:clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight:600; color:#fff; margin:6px 0 12px; line-height:1.15;
}
.luxis-slide-excerpt{ color:#E9DCC5; font-size:0.98rem; margin-bottom:14px; }
.luxis-event-location--slide{ color:#E9DCC5; }
.luxis-slide-content .luxis-event-capacity{ color:var(--luxis-gold-soft); }
.luxis-slide-content .luxis-rsvp-toggle{ margin-top:10px; }
.luxis-slide-content .luxis-addcal{ margin-top:12px; margin-left:10px; }
.luxis-slide-content .luxis-btn-outline{
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.6);
}
.luxis-slide-content .luxis-btn-outline:hover{ background:rgba(255,255,255,0.12); }
.luxis-slide-content .luxis-addcal-menu{
  background:#fff; /* keep the dropdown itself light/readable regardless of the dark panel */
}
.luxis-slide-content .luxis-rsvp-form{
  border-top:1px solid rgba(255,255,255,0.2); max-width:360px;
}
.luxis-slide-content .luxis-rsvp-form input[type="text"],
.luxis-slide-content .luxis-rsvp-form input[type="email"]{
  background:rgba(255,255,255,0.95);
}
.luxis-slide-content .luxis-rsvp-result.is-success{ color:var(--luxis-gold-soft); }

.luxis-slider-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(22,53,48,0.5); color:#fff; font-size:1.6rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.luxis-slider-arrow:hover{ background:rgba(22,53,48,0.75); }
.luxis-slider-prev{ left:20px; }
.luxis-slider-next{ right:20px; }

.luxis-slider-dots{
  position:absolute; bottom:20px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; gap:8px;
}
.luxis-slider-dot{
  width:9px; height:9px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,0.4); padding:0; transition:background .2s ease, transform .2s ease;
}
.luxis-slider-dot.is-active{ background:var(--luxis-gold); transform:scale(1.2); }

@media (max-width: 720px){
  .luxis-slider-track{ height:auto; }
  .luxis-slide{ grid-template-columns:1fr; grid-template-rows:220px auto; height:auto; }
  .luxis-slide-photo{ height:220px; }
  .luxis-slide-content{ padding:28px 24px; }
}

@media (prefers-reduced-motion: reduce){
  .luxis-btn{ transition:none; }
  .luxis-slider-track{ transition:none; }
}
