/* Jazz'd Up Marketing events. Colors and fonts come from the Brand screen as CSS variables. */
:root{
  --jum-primary-dark:#2b1d14; --jum-primary:#5a3a22; --jum-accent:#c8963e; --jum-accent-soft:#e8c98a;
  --jum-secondary:#9a6240; --jum-bg:#f7f0e3; --jum-ink:#2a211b;
  --jum-on-primary:#fff; --jum-on-accent:#1a1a1a;
  --jum-font-heading:Georgia,serif; --jum-font-body:inherit;
}

.jum-events-grid,.jum-event-card,.jum-slider{
  --_line:color-mix(in srgb,var(--jum-primary) 14%,transparent);
  font-family:var(--jum-font-body,inherit); color:var(--jum-ink);
}
.jum-events-empty{ color:var(--jum-line-time,#6b5d52); font-style:italic; font-family:var(--jum-font-body,inherit); }
.jum-sr{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.jum-icon{ flex:none; width:16px; height:16px; color:var(--jum-accent); margin-top:.18em; }

/* ---------- Grid + cards ---------- */
.jum-events-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:28px;
}
.jum-event-card{
  background:#fff; border:1px solid var(--_line); border-radius:12px; overflow:hidden;
  display:flex; flex-direction:column; box-shadow:0 1px 2px rgba(43,29,20,.04),0 10px 28px -14px rgba(43,29,20,.22);
  transition:box-shadow .25s ease, transform .25s ease; text-align:left;
}
.jum-event-card:hover{ box-shadow:0 2px 4px rgba(43,29,20,.05),0 18px 40px -16px rgba(43,29,20,.3); transform:translateY(-2px); }
.jum-event-card--featured{ max-width:560px; }
.jum-event-card--single{ max-width:640px; margin:28px 0; background:var(--jum-bg); border-left:5px solid var(--jum-accent); box-shadow:none; }
.jum-event-card--single:hover{ transform:none; box-shadow:none; }

.jum-event-photo{
  position:relative; display:block; aspect-ratio:16/9; background-size:cover; background-position:center;
  background-color:var(--jum-primary); background-image:linear-gradient(135deg,var(--jum-primary),var(--jum-primary-dark));
}
.jum-event-card--no-photo .jum-event-photo{ aspect-ratio:auto; height:72px; }
.jum-date-badge{
  position:absolute; left:16px; top:16px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:58px; padding:8px 10px 7px; border-radius:10px; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.18);
  line-height:1; font-family:var(--jum-font-heading);
}
.jum-event-card--no-photo .jum-date-badge{ top:12px; box-shadow:none; }
.jum-date-badge-m{ font-family:var(--jum-font-body,inherit); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--jum-secondary); }
.jum-date-badge-d{ font-size:1.65rem; font-weight:600; color:var(--jum-primary-dark); margin-top:3px; }
.jum-event-card--no-photo .jum-date-badge{ flex-direction:row; gap:8px; min-width:0; padding:8px 12px; }
.jum-event-card--no-photo .jum-date-badge-d{ margin:0; font-size:1.25rem; }

.jum-event-body{ padding:22px 24px 24px; display:flex; flex-direction:column; flex:1; }
.jum-event-body > p{ margin:0 0 8px; }
.jum-event-cat{
  display:inline-block; align-self:flex-start; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--jum-line-category); font-weight:700; margin-bottom:10px;
}
.jum-event-title{
  font-family:var(--jum-font-heading); font-size:1.45rem; font-weight:600; line-height:1.2;
  color:var(--jum-line-title); margin:0 0 12px;
}
.jum-event-title a{ color:inherit; text-decoration:none; }
.jum-event-title a:hover{ color:var(--jum-primary); text-decoration:underline; text-decoration-color:var(--jum-accent); text-underline-offset:4px; }
.jum-event-card--featured .jum-event-title{ font-size:1.8rem; }

.jum-event-when,.jum-event-location,.jum-event-capacity{ display:flex; gap:8px; align-items:flex-start; font-size:.95rem; line-height:1.45; }
.jum-event-date{ font-weight:700; color:var(--jum-line-date); }
.jum-event-time{ color:var(--jum-line-time); }
.jum-event-location{ color:var(--jum-line-location); }
.jum-event-location a{ color:inherit; text-decoration:underline; text-decoration-color:var(--jum-accent); text-underline-offset:3px; }
.jum-event-repeat{ font-size:.85rem; color:var(--jum-line-time); font-style:italic; }
.jum-loc-value{ display:none; }
.jum-loc-value.is-visible{ display:inline; }
.jum-loc-hint{ color:var(--jum-line-time); font-size:.85rem; }
.jum-event-excerpt{ color:var(--jum-line-excerpt); font-size:.97rem; line-height:1.55; margin:6px 0 12px!important; }
.jum-event-capacity{ font-size:.8rem; font-weight:700; color:var(--jum-line-capacity); text-transform:uppercase; letter-spacing:.05em; }
.jum-event-capacity .jum-icon{ color:currentColor; }

.jum-event-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:auto; padding-top:10px; position:relative; }

/* ---------- Buttons ---------- */
.jum-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:10px 22px;
  border:2px solid var(--jum-accent); border-radius:999px; cursor:pointer;
  background:var(--jum-accent); color:var(--jum-on-accent);
  font-family:var(--jum-font-body,inherit); font-weight:700; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; line-height:1.1;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.jum-btn:hover{ background:var(--jum-primary); border-color:var(--jum-primary); color:var(--jum-on-primary); transform:translateY(-1px); }
.jum-btn:focus-visible{ outline:3px solid var(--jum-accent-soft); outline-offset:2px; }
.jum-btn[disabled]{ opacity:.6; cursor:wait; transform:none; }
.jum-btn[hidden]{ display:none; }
.jum-btn-outline{ background:transparent; color:var(--jum-line-addcal); border-color:var(--jum-line-addcal); }
.jum-btn-outline:hover{ background:var(--jum-line-addcal); border-color:var(--jum-line-addcal); color:#fff; }

/* ---------- Add to calendar ---------- */
.jum-addcal{ position:relative; display:none; }
.jum-addcal.is-visible{ display:inline-block; }
.jum-addcal-menu{
  display:none; position:absolute; top:calc(100% + 8px); left:0; z-index:20; min-width:210px; padding:6px 0;
  background:#fff; border:1px solid var(--_line,#e5ddd2); border-radius:10px; box-shadow:0 16px 36px rgba(43,29,20,.18);
}
.jum-addcal-menu.is-open{ display:block; }
.jum-addcal-menu a{ display:block; padding:10px 16px; font-size:.92rem; color:var(--jum-ink); text-decoration:none; }
.jum-addcal-menu a:hover{ background:var(--jum-bg); color:var(--jum-primary); }

/* ---------- RSVP form ---------- */
.jum-rsvp-form{ margin-top:16px; padding-top:16px; border-top:1px solid var(--_line,#e5ddd2); display:flex; flex-direction:column; gap:10px; }
.jum-rsvp-form[hidden]{ display:none; }
.jum-name-row{ display:flex; gap:10px; flex-wrap:wrap; }
.jum-name-row > input{ flex:1 1 140px; min-width:0; }
.jum-rsvp-form input[type="text"],.jum-rsvp-form input[type="email"],.jum-rsvp-form input[type="tel"],.jum-rsvp-form input[type="number"]{
  box-sizing:border-box; width:100%; min-height:44px; padding:10px 12px; border:1px solid color-mix(in srgb,var(--jum-primary) 25%,#fff);
  border-radius:8px; background:#fff; color:var(--jum-ink); font-family:inherit; font-size:1rem;
}
.jum-name-row > input{ width:auto; }
.jum-guests{ display:flex; align-items:center; gap:8px; font-size:.9rem; color:var(--jum-line-time); flex:0 0 auto; }
.jum-guests input{ width:76px!important; }
.jum-rsvp-form input:focus{ outline:2px solid var(--jum-accent); outline-offset:1px; border-color:var(--jum-accent); }
.jum-rsvp-form .jum-btn{ align-self:flex-start; }
.jum-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; }
.jum-rsvp-result{ font-size:.95rem; font-weight:600; margin:0; min-height:1.2em; }
.jum-rsvp-result:empty{ display:none; }
.jum-rsvp-result.is-success{ color:var(--jum-line-success); padding:10px 14px; background:var(--jum-bg); border-left:3px solid var(--jum-accent); border-radius:4px; }
.jum-rsvp-result.is-error{ color:#a3322a; }

/* ---------- Slider ---------- */
.jum-slider{ position:relative; width:100%; overflow:hidden; border-radius:14px; background:var(--jum-primary-dark); }
.jum-slider-track{ display:flex; width:100%; min-height:520px; transition:transform .6s cubic-bezier(.16,.84,.44,1); }
.jum-slide{ flex:0 0 100%; width:100%; position:relative; display:grid; grid-template-columns:1.1fr 1fr; }
.jum-slide--no-photo{ grid-template-columns:1fr; }
.jum-slide-photo{ background-size:cover; background-position:center; background-color:var(--jum-primary-dark); min-height:100%; }
.jum-slide-content{
  background:var(--jum-bg); color:var(--jum-line-title); display:flex; flex-direction:column; justify-content:center;
  padding:48px clamp(64px,6vw,84px) 64px clamp(24px,4vw,60px); border-left:6px solid var(--jum-accent);
}
.jum-slide--no-photo .jum-slide-content{ border-left:0; border-top:6px solid var(--jum-accent); }
.jum-slide-content > p{ margin:0 0 8px; }
.jum-event-when--slide{ display:flex; flex-wrap:wrap; gap:4px 14px; margin-bottom:6px; }
.jum-event-when--slide .jum-event-date{ font-size:1.05rem; }
.jum-slide-title{ font-family:var(--jum-font-heading); font-size:clamp(1.7rem,3vw,2.5rem); font-weight:600; color:var(--jum-line-title); margin:4px 0 12px; line-height:1.12; }
.jum-slide-title a{ color:inherit; text-decoration:none; }
.jum-slide-excerpt{ color:var(--jum-line-excerpt); font-size:1rem; line-height:1.55; margin-bottom:14px!important; max-width:46ch; }
.jum-slide-content .jum-event-actions{ margin-top:10px; }
.jum-slide-content .jum-rsvp-form{ max-width:420px; }

.jum-slider-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px; border-radius:50%;
  border:0; cursor:pointer; background:rgba(43,29,20,.55); color:#fff; font-size:1.8rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .2s ease;
}
.jum-slider-arrow:hover{ background:var(--jum-primary-dark); }
.jum-slider-arrow:focus-visible{ outline:3px solid var(--jum-accent); outline-offset:2px; }
.jum-slider-prev{ left:16px; }
.jum-slider-next{ right:16px; }
.jum-slider-dots{ position:absolute; bottom:20px; right:clamp(24px,4vw,60px); z-index:3; display:flex; gap:8px; }
.jum-slider-dot{ width:10px; height:10px; border-radius:50%; border:0; padding:0; cursor:pointer; background:color-mix(in srgb,var(--jum-primary) 30%,#fff); transition:background .2s ease, transform .2s ease; }
.jum-slider-dot.is-active{ background:var(--jum-accent); transform:scale(1.25); }

@media (max-width:760px){
  .jum-slider-track{ min-height:0; }
  .jum-slide{ grid-template-columns:1fr; grid-template-rows:220px auto; }
  .jum-slide--no-photo{ grid-template-rows:auto; }
  .jum-slide-content{ border-left:0; border-top:6px solid var(--jum-accent); padding:28px 22px 56px; }
  .jum-slider-arrow{ top:110px; width:40px; height:40px; }
  .jum-slider-dots{ left:50%; right:auto; transform:translateX(-50%); }
  .jum-event-body{ padding:20px; }
}

@media (prefers-reduced-motion:reduce){
  .jum-btn,.jum-event-card,.jum-slider-track{ transition:none; }
  .jum-event-card:hover{ transform:none; }
}

/* ---------- Banner slider: [jum_events_slider style="banner"] ---------- */
.jum-slider--banner{border-radius:0;background:var(--jum-primary-dark)}
.jum-slider--banner .jum-slider-track{min-height:0}
.jum-banner{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:clamp(460px,62vw,720px);padding:clamp(56px,8vw,96px) clamp(56px,8vw,120px) clamp(72px,9vw,110px);
  color:#fff;text-decoration:none;
  background-color:var(--jum-primary-dark);background-image:var(--jum-banner-photo,linear-gradient(135deg,var(--jum-primary),var(--jum-primary-dark)));
  background-size:cover;background-position:center}
.jum-banner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(28,18,12,.25) 0%,rgba(28,18,12,.5) 50%,rgba(28,18,12,.8) 100%)}
a.jum-banner,a.jum-banner:hover,a.jum-banner:visited{color:#fff;text-decoration:none}
a.jum-banner:hover .jum-banner-title{text-decoration:underline;text-decoration-color:var(--jum-accent);text-decoration-thickness:2px;text-underline-offset:10px}
.jum-banner-in{max-width:900px}
.jum-banner-in > p{margin:0}
.jum-banner-sub{font-family:var(--jum-font-heading);font-style:italic;font-size:clamp(20px,2.2vw,28px);color:var(--jum-accent-soft);margin-bottom:6px!important}
.jum-banner-title{font-family:var(--jum-font-heading);font-weight:300;font-size:clamp(44px,8vw,112px);line-height:1;letter-spacing:-.015em;color:#fff;margin:0 0 .25em;text-shadow:0 2px 36px rgba(0,0,0,.4)}
.jum-banner-when{font-size:clamp(17px,1.7vw,21px);font-weight:600;letter-spacing:.02em;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.jum-banner-where{font-size:clamp(15px,1.4vw,18px);opacity:.88;margin-top:4px!important;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.jum-banner-btn,.jum-banner-btn:visited{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin-top:28px;padding:12px 34px;
  background:#fff;color:var(--jum-primary-dark)!important;border:1.5px solid #fff;font-family:var(--jum-font-body,inherit);font-weight:700;font-size:15px;letter-spacing:.06em;text-decoration:none!important;transition:background .2s,color .2s}
.jum-banner-btn:hover{background:transparent;color:#fff!important}
.jum-banner-btn:focus-visible,a.jum-banner:focus-visible{outline:3px solid var(--jum-accent);outline-offset:-6px}
.jum-slider--banner .jum-slider-dots{left:50%;right:auto;transform:translateX(-50%);bottom:24px}
.jum-slider--banner .jum-slider-dot{background:rgba(255,255,255,.45)}
.jum-slider--banner .jum-slider-dot.is-active{background:#fff}
.jum-slider--banner .jum-slider-arrow{top:50%;background:transparent;border:1.5px solid rgba(255,255,255,.7);font-size:1.6rem}
.jum-slider--banner .jum-slider-arrow:hover{background:rgba(255,255,255,.15)}
@media (max-width:760px){
  .jum-banner{min-height:520px;padding:64px 52px 84px}
  .jum-slider--banner .jum-slider-arrow{top:50%;width:38px;height:38px}
  .jum-slider--banner .jum-slider-prev{left:8px}
  .jum-slider--banner .jum-slider-next{right:8px}
}
