:root{
  --luxis-teal-deep:#3D1F26;
  --luxis-teal:#7A3B42;
  --luxis-cream:#F7EFE1;
  --luxis-gold:#C08A3E;
  --luxis-gold-soft:#E3C48A;
  --luxis-rose:#B76E5D;
  --luxis-ink:#2E2119;

  --luxis-line-category:#B76E5D;
  --luxis-line-date:#7A3B42;
  --luxis-line-time:#8A7768;
  --luxis-line-title:#2E2119;
  --luxis-line-excerpt:#5C4B3F;
  --luxis-line-location:#2E2119;
  --luxis-line-capacity:#C08A3E;
  --luxis-line-success:#7A3B42;
  --luxis-line-addcal:#7A3B42;
}

.luxis-events-empty{
  color:#8A7768; 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-line-category); 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-line-date);
}
.luxis-event-time{ font-size:0.85rem; color:var(--luxis-line-time); }

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

.luxis-event-excerpt{ color:var(--luxis-line-excerpt); font-size:0.95rem; margin-bottom:12px; }

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

.luxis-event-capacity{
  font-size:0.8rem; font-weight:600; color:var(--luxis-line-capacity);
  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-line-addcal); border:1px solid var(--luxis-line-addcal);
}
.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-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-name-row{ display:flex; gap:10px; }
.luxis-name-row input{ flex:1; min-width:0; }
.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-line-success); }
.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-cream); color:var(--luxis-line-title);
  display:flex; flex-direction:column; justify-content:center;
  padding:40px clamp(24px, 4vw, 56px); overflow-y:auto;
}
.luxis-event-when--slide .luxis-event-date{ font-size:1.3rem; }
.luxis-slide-title{
  font-family:'Cormorant Garamond', serif; font-size:clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight:600; color:var(--luxis-line-title); margin:6px 0 12px; line-height:1.15;
}
.luxis-slide-excerpt{ color:var(--luxis-line-excerpt); font-size:0.98rem; margin-bottom:14px; }
.luxis-slide-content .luxis-rsvp-toggle{ margin-top:10px; }
.luxis-slide-content .luxis-addcal{ margin-top:12px; margin-left:10px; }
.luxis-slide-content .luxis-rsvp-form{
  border-top:1px solid rgba(46,26,47,0.12); max-width:360px;
}

.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; }
}
