/* Glensara Events — [ge_hero_slider] */

.ge-hero-slider{ position:relative; width:100%; min-height:var(--ge-hero-height,100svh);
  overflow:hidden; background:var(--ge-bg-dark); isolation:isolate; }
.ge-hero-slider__viewport{ position:relative; width:100%; min-height:inherit; }

.ge-hero-slide{ position:absolute; inset:0; display:flex; align-items:center;
  min-height:var(--ge-hero-height,100svh); opacity:0; visibility:hidden;
  transition:opacity .9s var(--ge-ease), visibility .9s var(--ge-ease); }
.ge-hero-slide.is-active{ position:relative; opacity:1; visibility:visible; z-index:1; }

.ge-hero-slider--slide .ge-hero-slide{ transform:translateX(8%);
  transition:opacity .7s var(--ge-ease), transform .7s var(--ge-ease), visibility .7s var(--ge-ease); }
.ge-hero-slider--slide .ge-hero-slide.is-active{ transform:none; }
.ge-hero-slider--slide .ge-hero-slide.is-leaving{ transform:translateX(-8%); }

.ge-hero-slide__media{ position:absolute; inset:0; overflow:hidden; background:var(--ge-bg-dark); z-index:-1; }
.ge-hero-slide__img{ width:100%; height:100%; object-fit:cover; }
.ge-hero-slider--kenburns .ge-hero-slide.is-active .ge-hero-slide__img{ animation:ge-kenburns 18s var(--ge-ease) forwards; }
@keyframes ge-kenburns{ from{ transform:scale(1); } to{ transform:scale(1.08); } }

.ge-hero-slide__media::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,var(--ge-overlay-strong) 0%,transparent 35%,transparent 55%,var(--ge-overlay-strong) 100%),
             linear-gradient(90deg,var(--ge-overlay-strong) 0%,transparent 62%); }
.ge-hero-slide[data-overlay="light"] .ge-hero-slide__media::after{ opacity:.55; }
.ge-hero-slide[data-overlay="medium"] .ge-hero-slide__media::after{ opacity:.8; }
.ge-hero-slide[data-overlay="heavy"] .ge-hero-slide__media::after{ opacity:1; }
.ge-hero-slide--center .ge-hero-slide__media::after,
.ge-hero-slide--right .ge-hero-slide__media::after{
  background:linear-gradient(180deg,var(--ge-overlay-strong) 0%,transparent 35%,transparent 55%,var(--ge-overlay-strong) 100%),
             linear-gradient(0deg,var(--ge-overlay) 0%,var(--ge-overlay) 100%); }

.ge-hero-slide__inner{ position:relative; z-index:1; width:100%;
  padding-block:calc(84px + 48px) 48px; display:flex; flex-direction:column;
  align-items:flex-start; max-width:var(--ge-container); margin:0 auto; padding-inline:var(--ge-pad); }
.ge-hero-slide--center .ge-hero-slide__inner{ align-items:center; text-align:center; }
.ge-hero-slide--right .ge-hero-slide__inner{ align-items:flex-end; text-align:right; }

.ge-hero-slide__eyebrow{ margin-bottom:12px; }
.ge-hero-slide__title{ font-family:var(--ge-font-heading); font-size:clamp(2.5rem,6vw,4.5rem);
  line-height:.95; letter-spacing:.02em; text-transform:uppercase; color:var(--ge-text-light);
  max-width:18ch; margin:0 0 24px; }
.ge-hero-slide--center .ge-hero-slide__title{ max-width:22ch; }
.ge-hero-slide__subtitle{ font-family:var(--ge-font-body); font-size:clamp(1rem,1.4vw,1.1875rem);
  line-height:1.6; color:var(--ge-text); max-width:52ch; margin:0 0 48px; }
.ge-hero-slide__actions{ display:flex; flex-wrap:wrap; gap:12px; }

.ge-hero-slide__eyebrow,.ge-hero-slide__title,.ge-hero-slide__subtitle,.ge-hero-slide__actions{
  opacity:0; transform:translateY(18px); }
.ge-hero-slide.is-active .ge-hero-slide__eyebrow,
.ge-hero-slide.is-active .ge-hero-slide__title,
.ge-hero-slide.is-active .ge-hero-slide__subtitle,
.ge-hero-slide.is-active .ge-hero-slide__actions{
  opacity:1; transform:none; transition:opacity .7s var(--ge-ease), transform .7s var(--ge-ease); }
.ge-hero-slide.is-active .ge-hero-slide__title{ transition-delay:.12s; }
.ge-hero-slide.is-active .ge-hero-slide__subtitle{ transition-delay:.22s; }
.ge-hero-slide.is-active .ge-hero-slide__actions{ transition-delay:.32s; }

.ge-hero-slider__nav{ position:absolute; top:50%; z-index:3; display:grid; place-items:center;
  width:54px; height:54px; margin-top:-27px; font-size:1.125rem; color:var(--ge-gold);
  background:var(--ge-overlay); border:1px solid var(--ge-border); border-radius:var(--ge-radius-pill);
  cursor:pointer; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:background var(--ge-transition), border-color var(--ge-transition), color var(--ge-transition); }
.ge-hero-slider__nav:hover{ background:var(--ge-gold); border-color:var(--ge-gold); color:var(--ge-bg-dark); }
.ge-hero-slider__nav--prev{ left:clamp(12px,3vw,32px); }
.ge-hero-slider__nav--next{ right:clamp(12px,3vw,32px); }

.ge-hero-slider__footer{ position:absolute; left:50%; bottom:clamp(20px,4vh,48px); transform:translateX(-50%);
  z-index:3; display:flex; align-items:center; justify-content:space-between; gap:var(--ge-gap);
  width:100%; max-width:var(--ge-container); padding:0 var(--ge-pad); }
.ge-hero-slider__dots{ display:flex; align-items:center; gap:10px; }
.ge-hero-slider__dot{ position:relative; width:44px; height:3px; padding:0; background:rgba(255,255,255,.25);
  border:0; border-radius:var(--ge-radius-pill); cursor:pointer; overflow:hidden; transition:background var(--ge-transition); }
.ge-hero-slider__dot-fill{ position:absolute; inset:0; width:0; background:var(--ge-gold); border-radius:inherit; }
.ge-hero-slider__dot[aria-selected="true"] .ge-hero-slider__dot-fill{ width:100%; }
.ge-hero-slider__count{ margin:0; font-family:var(--ge-font-heading); font-size:1.25rem;
  letter-spacing:.02em; color:var(--ge-text-muted); }
.ge-hero-slider__count-current{ color:var(--ge-gold); }

.ge-hero-slider__progress{ position:absolute; left:0; bottom:0; z-index:3; width:100%; height:2px; background:var(--ge-border); }
.ge-hero-slider__progress span{ display:block; width:0; height:100%; background:var(--ge-gradient-gold); }

.ge-hero-slider--single .ge-hero-slider__nav,
.ge-hero-slider--single .ge-hero-slider__footer,
.ge-hero-slider--single .ge-hero-slider__progress{ display:none; }

/* ── Mobile ───────────────────────────────────────────────────────────── */

@media (max-width:767px){
  /* On touch, swipe + dots are enough; the side arrows crowd the headline. */
  .ge-hero-slider__nav{ display:none; }

  .ge-hero-slide__inner{ padding-block:90px 84px; }

  .ge-hero-slide__title{ font-size:clamp(2rem,8.5vw,2.75rem); max-width:none; }
  .ge-hero-slide--center .ge-hero-slide__title,
  .ge-hero-slide--right .ge-hero-slide__title{ max-width:none; }

  .ge-hero-slide__subtitle{ font-size:1rem; max-width:42ch; margin-bottom:28px; }

  /* Buttons go full-ish width and stack cleanly. */
  .ge-hero-slide__actions{ width:100%; }
  .ge-hero-slide__actions .ge-btn{ flex:1 1 42%; justify-content:center; }

  /* Dots + counter sit just above the bottom edge with side padding. */
  .ge-hero-slider__footer{ bottom:18px; padding:0 16px; gap:14px; }
  .ge-hero-slider__count{ font-size:1rem; }
  .ge-hero-slider__dot{ width:30px; }
}

@media (max-width:420px){
  .ge-hero-slide__actions .ge-btn{ flex:1 1 100%; }
  .ge-hero-slide__eyebrow{ font-size:11px; }
}

@media (prefers-reduced-motion: reduce){
  .ge-hero-slider--kenburns .ge-hero-slide.is-active .ge-hero-slide__img{ animation:none; }
  .ge-hero-slide,.ge-hero-slide__eyebrow,.ge-hero-slide__title,.ge-hero-slide__subtitle,.ge-hero-slide__actions{
    transition:none; transform:none; opacity:1; }
  .ge-hero-slide:not(.is-active){ opacity:0; }
}
