/* ============================================================
   SATORI EVENTS — FLAGSHIP EVENT TEMPLATE
   ------------------------------------------------------------
   One template. Applied by Elementor Theme Builder to the
   flagship event categories only. Every other event keeps
   the standard template untouched.

   Every section below maps to a field Eventin already
   provides. No custom fields are required.

   Field map
     Hero pill ......... event category
     Hero title ........ event title
     Hero facts ........ date, time, timezone, venue
     Banner ............ featured image
     About ............. description (rich text)
     Programme ......... schedule builder
     Speakers .......... speakers
     Questions ......... FAQ
     Tickets ........... tickets
     Closing ........... static, with date and venue merged in
   ============================================================ */

:root{
  /* Direction A palette, unchanged */
  --bg:            #F7F3EA;
  --bg-alt:        #F1EBDB;
  --surface:       #FFFFFF;
  --footer-bg:     #EFE8D9;

  --plum:          #59376F;
  --plum-deep:     #3A2150;
  --plum-hover:    #4A2D5E;
  --orchid:        #9265AD;
  --gold:          #C7A14C;
  --gold-deep:     #9E7B2C;
  --gold-hover:    #BB9540;

  --ink:           #34253B;
  --muted:         #736679;
  --line:          #E9E1D2;
  --line-soft:     #EFEADF;

  /* Flagship ground */
  --ground:      #2E1B3D;
  --ground-warm: #3A2150;
  --figure:      #F4EFE4;
  --figure-dim:  #C9BCD1;
  --rule:        rgba(244,239,228,.16);

  --font-display: 'Fraunces', Georgia, serif;
  --font-sans:    'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', Menlo, monospace;

  --container: 1200px;
  --gutter: clamp(20px, 4vw, 32px);
  --section-y: clamp(60px, 8vw, 104px);

  --r-sm:12px; --r-md:16px; --r-lg:22px; --r-pill:100px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-sans); font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:var(--plum); text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:400; color:var(--plum-deep); letter-spacing:-.01em; line-height:1.14; margin:0; }
p{ margin:0; }
button{ font-family:inherit; }
:focus-visible{ outline:2.5px solid var(--orchid); outline-offset:3px; border-radius:4px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--section-y); }
.ground{ background:var(--ground); color:var(--figure); }
.ground--warm{ background:var(--ground-warm); }
.ground h1,.ground h2,.ground h3,.ground h4{ color:var(--figure); }

.gold-rule{ width:74px; height:2px; background:var(--gold); border:0; margin:0; }

/* Buttons */
.btn{
  --py:14px; --px:26px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-sans); font-size:15px; font-weight:600; line-height:1;
  padding:var(--py) var(--px); border:1.5px solid transparent; border-radius:var(--r-pill);
  cursor:pointer; text-decoration:none;
  transition:background .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.btn:hover{ transform:translateY(-1px); }
.btn--gold{ background:var(--gold); color:var(--plum-deep); font-weight:700; }
.btn--gold:hover{ background:var(--gold-hover); color:var(--plum-deep); }
.btn--ghost{ background:transparent; color:var(--figure); border-color:var(--rule); }
.btn--ghost:hover{ border-color:var(--figure); color:var(--figure); }
.btn--lg{ --py:17px; --px:32px; font-size:16.5px; }
.btn--block{ display:flex; width:100%; }

/* Category pill — Eventin category */
.pill{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:600; letter-spacing:.06em;
  padding:7px 15px; border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--figure) 12%, transparent);
  border:1px solid var(--rule); color:var(--figure);
}
.pill i{ width:7px; height:7px; border-radius:50%; background:var(--gold); }

/* ------------------------------------------------------------
   HERO — title, category, date, time, venue
   ------------------------------------------------------------ */
.event-hero{ padding-block:clamp(48px,7vw,92px) clamp(44px,6vw,76px); }
.hero__pill{ margin-bottom:26px; }
.hero__title{
  font-family:var(--font-display); font-weight:300;
  font-size:clamp(42px,7vw,84px); line-height:1;
  letter-spacing:-.032em; color:var(--figure);
  margin:0; max-width:15ch; text-wrap:balance;
}
.hero__meta{
  display:flex; flex-wrap:wrap; gap:12px 46px;
  margin-top:clamp(32px,4vw,48px); padding-top:26px;
  border-top:1px solid var(--rule);
}
.satori-present-text {
    text-transform: uppercase;
    font-size: 20px;
	letter-spacing: 2px;
	margin-bottom: 10px;
}
.hero__item{ display:flex; flex-direction:column; gap:5px; }
.hero__k{ font-size:12.5px; letter-spacing:.09em; text-transform:lowercase; color:var(--figure-dim); }
.hero__v{ font-size:16px; font-weight:600; color:var(--figure); }
.hero__cta{ margin-top:clamp(30px,4vw,42px); display:flex; flex-wrap:wrap; gap:13px; align-items:center; }
.hero__from{ font-size:14.5px; color:var(--figure-dim); }
.hero__from b{ color:var(--figure); font-weight:600; }

/* Banner — featured image */
.banner .frame{ position:relative; width:100%; aspect-ratio:21/9; overflow:hidden; background:#E9E6DC; }
@media (max-width:760px){ .banner .frame{ aspect-ratio:3/2; } }
.frame__ph{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:8px;
  background:color-mix(in srgb, var(--plum) 7%, #E9E6DC);
  background-image:repeating-linear-gradient(135deg,
    color-mix(in srgb, var(--plum) 13%, transparent) 0,
    color-mix(in srgb, var(--plum) 13%, transparent) 1px,
    transparent 1px, transparent 11px);
  color:color-mix(in srgb, var(--plum) 55%, #7c7c72);
}
.frame__ring{ width:32px; height:32px; border-radius:50%; border:1.5px solid currentColor; display:flex; align-items:center; justify-content:center; }
.frame__ring i{ width:10px; height:10px; border-radius:50%; background:currentColor; }
.frame__label{ font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.frame__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; color:transparent; font-size:0; }
/* an empty src must not render Chrome's broken image glyph */
.frame__img[src=""],.slot__face img[src=""]{ display:none; }

/* ------------------------------------------------------------
   ABOUT — the Eventin description field.
   Everything Conor writes lands here as one rich text block,
   so the typography has to carry it.
   ------------------------------------------------------------ */
/* .about__inner{ max-width:66ch; } */
.about__inner h2{
  font-weight:300; font-size:clamp(26px,3.4vw,40px);
  line-height:1.12; letter-spacing:0.024em; margin:0 0 24px !important; text-wrap:balance;
}
.rte > *:first-child{ margin-top:0; }
.rte p{ font-size:17px; line-height:1.78; margin:0 0 20px; color:var(--ink); }
.rte p:last-child{ margin-bottom:0; }
.rte h2{ font-weight:300; font-size:clamp(24px,3vw,34px); line-height:1.14; letter-spacing:-.022em; margin:46px 0 18px; }
.rte h3{ font-weight:400; font-size:22px; margin:38px 0 14px; }
.rte h4{ font-weight:600; font-size:17px; font-family:var(--font-sans); color:var(--plum); margin:30px 0 10px; }
.rte strong{ color:var(--plum-deep); font-weight:600; }
.rte ul,.rte ol{ margin:0 0 22px; padding:0 0 0 2px; list-style:none; }
.rte ol{ counter-reset:rte; }
.rte li{ font-size:16.5px; line-height:1.6; padding:9px 0 9px 26px; border-bottom:1px solid var(--line); position:relative; }
.rte ul li::before{ content:""; position:absolute; left:2px; top:19px; width:8px; height:1.5px; background:var(--gold); }
.rte ol li{ counter-increment:rte; }
.rte ol li::before{ content:counter(rte); position:absolute; left:0; top:9px; font-family:var(--font-display); color:var(--gold); font-size:15px; }
.rte blockquote{
  margin:34px 0; padding:2px 0 2px 26px; border-left:2px solid var(--gold);
}
.rte blockquote p{
  font-family:var(--font-display); font-weight:300;
  font-size:clamp(20px,2.3vw,26px); line-height:1.42;
  letter-spacing:-.016em; color:var(--plum-deep); margin:0;
}

/* ------------------------------------------------------------
   PROGRAMME — the Eventin schedule builder
   ------------------------------------------------------------ */
.prog__head{ max-width:56ch; margin-bottom:clamp(34px,4.5vw,54px); }
.prog__head h2{ font-weight:300; font-size:clamp(26px,3.4vw,40px); line-height:1.12; letter-spacing:0.024em; margin:0 0 16px !important; }
.prog__head p{ color:var(--figure-dim); font-size:16.5px; line-height:1.7; margin:0; }

/* Day tabs — Eventin multi day schedule */
.days{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:clamp(26px,3vw,38px) !important; }
.day-tab{
  font-size:14px; font-weight:600; padding:10px 18px;
  border-radius:var(--r-pill); border:1px solid var(--rule);
  background:transparent; color:var(--figure-dim); cursor:pointer;
  transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.day-tab[aria-selected="true"]{ background:var(--gold); border-color:var(--gold); color:var(--plum-deep); }

.slot{ border-top:1px solid var(--rule); }
.slot:last-of-type{ border-bottom:1px solid var(--rule); }
.slot__btn{
  width:100%; background:none; border:0; cursor:pointer; text-align:left; color:inherit;
  display:grid; grid-template-columns:150px minmax(0,1fr) auto;
  gap:clamp(14px,3vw,32px); align-items:center;
  padding:clamp(20px,2.6vw,30px) 0;
}

.slot__btn:hover {
	background-color:rgb(46,27,61, 0.9) !important;
}

.slot__btn:active {
	background-color:transparent !important;
}
.slot__time{
  font-family:var(--font-mono); font-size:13px; letter-spacing:.01em;
  color:var(--gold); align-self:start; padding-top:5px;
}
.slot__title{
  display:block; font-family:var(--font-display); font-weight:300;
  font-size:clamp(20px,2.5vw,29px); line-height:1.2; letter-spacing:-.02em;
  color:var(--figure); margin:0 0 8px; text-wrap:balance;
}
.slot__where{ display:block; font-size:13.5px; color:var(--figure-dim); }
.slot__faces{ display:flex; align-items:center; gap:-6px; margin-top:11px; }
.slot__face{
  width:30px; height:30px; border-radius:50%; overflow:hidden;
  border:1.5px solid var(--ground); margin-right:-8px; position:relative;
  background:color-mix(in srgb, var(--figure) 18%, transparent);
}
.slot__face img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.slot__names{ font-size:13.5px; color:var(--figure-dim); margin-left:16px; }
.slot__sign{
  width:34px; height:34px; border:1px solid var(--rule); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative;
  transition:background .3s var(--ease), border-color .3s var(--ease);
}
.slot__sign::before,.slot__sign::after{ content:""; position:absolute; background:var(--figure); transition:transform .3s var(--ease), opacity .3s var(--ease); }
.slot__sign::before{ width:12px; height:1.4px; }
.slot__sign::after{ width:1.4px; height:12px; }
.slot[data-open="true"] .slot__sign{ background:var(--gold); border-color:var(--gold); }
.slot[data-open="true"] .slot__sign::before,
.slot[data-open="true"] .slot__sign::after{ background:var(--ground); }
.slot[data-open="true"] .slot__sign::after{ opacity:0; }

.slot__body{ overflow:hidden; max-height:0; transition:max-height .45s var(--ease); }
.slot[data-open="true"] .slot__body{ max-height:900px; }
.slot__inner{
  display:grid; grid-template-columns:150px minmax(0,1fr);
  gap:clamp(14px,3vw,32px); padding:0 0 clamp(26px,3.5vw,40px);
}
.slot__inner p{ color:var(--figure-dim); font-size:16px; line-height:1.72; margin:0; max-width:62ch; }

@media (max-width:720px){
  .slot__btn{ grid-template-columns:1fr auto; }
  .slot__time{ grid-column:1 / -1; padding-top:0; margin-bottom:4px; }
  .slot__inner{ grid-template-columns:1fr; }
  .slot__inner > div:first-child{ display:none; }
}

/* ------------------------------------------------------------
   SPEAKERS — the Eventin speakers field
   ------------------------------------------------------------ */
/* .people{ display:grid; grid-template-columns:repeat(auto-fit,minmax(216px,1fr)); gap:clamp(20px,3vw,34px); } */
.people{ display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:clamp(20px,3vw,34px); }
.person__shot{ position:relative; width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:var(--r-md); margin-bottom:16px; background:#E9E6DC; }
.person__name{ font-family:var(--font-display); font-weight:400; font-size:20px; line-height:1.2; margin:0 0 5px; }
.person__role{ font-size:13.5px; line-height:1.5; color:var(--gold-deep); margin:0 0 11px; }
.person__social{ display:flex; gap:9px; }
.person__social a{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:var(--plum);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.person__social a:hover{ background:var(--plum); color:var(--figure); }

/* ------------------------------------------------------------
   QUESTIONS — the Eventin FAQ field
   ------------------------------------------------------------ */
.qa{ max-width:78ch; }
.q{ border-bottom:1px solid var(--line); }
.q:first-child{ border-top:1px solid var(--line); }
.q__btn{
  width:100%; background:none; border:0; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:22px 0; color:var(--plum-deep);
  font-family:var(--font-display); font-weight:400; font-size:19px; line-height:1.35;
}
.q__btn:hover {
	background-color: transparent !important;
	color: var(--plum-deep) !important;
	box-shadow: none !important;
}

.q__btn:active {
	background-color: transparent !important;
	color: var(--plum-deep) !important;
	box-shadow: none !important;
}
.q__sign{ position:relative; width:15px; height:15px; flex-shrink:0; }
.q__sign::before,.q__sign::after{ content:""; position:absolute; left:0; top:7px; width:15px; height:1.5px; background:var(--gold); transition:transform .3s var(--ease); }
.q__sign::after{ transform:rotate(90deg); }
.q[data-open="true"] .q__sign::after{ transform:rotate(0deg); }
.q__body{ overflow:hidden; max-height:0; transition:max-height .4s var(--ease); }
.q[data-open="true"] .q__body{ max-height:400px; }
.q__body p{ font-size:16.5px; line-height:1.7; color:var(--muted); margin:0; padding:0 0 24px; max-width:64ch; }

/* ------------------------------------------------------------
   TICKETS — the Eventin tickets field
   ------------------------------------------------------------ */
.tix{ display:grid; grid-template-columns:repeat(auto-fit,minmax(224px,1fr)); gap:18px; }
.tix__card{
  display:flex; flex-direction:column;
  background:color-mix(in srgb, var(--figure) 6%, transparent);
  border:1px solid var(--rule); border-radius:var(--r-md);
  padding:26px 24px 24px;
}
.tix__card--feature{ border-color:var(--gold); background:color-mix(in srgb, var(--gold) 9%, transparent); }
.tix__name{ font-family:var(--font-display); font-weight:400; font-size:20px; color:var(--figure); margin:0; }
.tix__avail{ font-size:13px; color:var(--figure-dim); margin:5px 0 0; }
.tix__price{ font-family:var(--font-display); font-weight:300; font-size:36px; line-height:1; letter-spacing:-.02em; color:var(--figure); margin:18px 0 0; }
.tix__price small{ display:block; font-family:var(--font-sans); font-size:13px; color:var(--figure-dim); letter-spacing:0; margin-top:7px; }
.tix__list{ list-style:none; margin:15px 0 0; padding:0; }
.tix__list li{ font-size:14px; line-height:1.55; color:var(--figure-dim); padding:6px 0 6px 15px; position:relative; }
.tix__list li::before{ content:""; position:absolute; left:0; top:14px; width:7px; height:1.4px; background:var(--gold); }
.tix__end{ margin-top:auto; padding-top:20px; }
.tix__note{ font-size:15px; color:var(--figure-dim); margin:26px 0 0; max-width:64ch; line-height:1.65; }

/* ------------------------------------------------------------
   CLOSING — static template copy, event data merged in
   ------------------------------------------------------------ */
.closing{ padding-block:clamp(66px,9vw,116px); text-align:center; }
.closing .gold-rule{ margin:0 auto 32px; }
.closing h2{
  font-family:var(--font-display); font-weight:300;
  font-size:clamp(29px,4.4vw,52px); line-height:1.08; letter-spacing:0.028em;
  color:var(--figure); margin:0 auto 22px !important; max-width:18ch; text-wrap:balance; margin-bottom: 22px !important;
}
.closing p{ font-size:16.5px; line-height:1.7; color:var(--figure-dim); margin:0 auto 32px; max-width:46ch; }

/* ------------------------------------------------------------
   STICKY BOOKING BAR
   ------------------------------------------------------------ */
.bookbar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:color-mix(in srgb, var(--ground) 95%, transparent);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-top:1px solid var(--rule);
  transform:translateY(100%); transition:transform .4s var(--ease);
}
.bookbar[data-show="true"]{ transform:none; }
.bookbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:14px; }
.bookbar__t{ font-family:var(--font-display); font-weight:400; font-size:17px; color:var(--figure); margin:0; overflow:hidden; text-overflow:ellipsis; }
.bookbar__m{ font-size:13px; color:var(--figure-dim); margin:2px 0 0; }
@media (max-width:560px){ 
	.bookbar__m{ display:none; }
}

@media (max-width: 830px ) {
	.bookbar__inner { align-items: flex-start; flex-direction: column;}
	.bookbar__inner .btn--gold { align-self: flex-start;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .btn:hover{ transform:none; }
}


/* ------------------------------------------------------------
   HEADER AND FOOTER
   In WordPress these are separate Elementor templates and
   already exist. Included here so the preview is realistic.
   ------------------------------------------------------------ */
/* .site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 90%, transparent);
  -webkit-backdrop-filter:saturate(140%) blur(10px); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header__in{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo{ display:inline-flex; align-items:center; gap:13px; }
.logo__text{ display:flex; flex-direction:column; line-height:1; }
.logo__name{ font-family:var(--font-display); font-weight:500; font-size:23px; letter-spacing:-.01em; color:var(--plum); }
.logo__name em{ font-style:normal; font-weight:400; color:var(--gold); }
.logo__strap{ font-size:9.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--orchid); margin-top:7px; }
.nav{ display:flex; align-items:center; gap:28px; }
.nav a:not(.btn){ font-size:14.5px; font-weight:500; color:#46503F; }
.nav a:not(.btn):hover{ color:var(--plum-deep); }
@media (max-width:900px){ .nav{ display:none; } }

.site-footer{ background:var(--footer-bg); border-top:1px solid var(--line); padding-bottom:78px; }
.site-footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:44px; padding-block:56px 30px; }
.site-footer p{ font-size:14.5px; line-height:1.65; color:var(--muted); max-width:320px; margin-top:16px; }
.fcol h4{ font-family:var(--font-display); font-weight:500; font-size:16px; color:var(--plum-deep); margin:0 0 13px; }
.fcol a{ display:block; font-size:14.5px; color:var(--muted); padding:4px 0; }
.fcol a:hover{ color:var(--plum); }
.fcol span{ display:block; font-size:14px; color:#9A9684; font-style:italic; padding-top:6px; }
.site-footer__end{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:22px; border-top:1px solid var(--line); }
.site-footer__end *{ font-size:13px; color:#8A8775; }
@media (max-width:880px){ .site-footer__grid{ grid-template-columns:1fr; gap:32px; } } */

/* ------------------------------------------------------------
   SATORI INTEGRATION — keeps the supplied flagship CSS measurements
   ------------------------------------------------------------ */
.person__link{ display:block; color:inherit; text-decoration:none; }
.person__link:hover{ color:inherit; }
.person__social a{ text-decoration:none; }
.person__social a svg{ width:14px; height:14px; display:block; }

/* Tickets intentionally mirror the supplied .tix design: compact cards,
   source typography and source spacing. */
.tickets-section .prog__head{ max-width:56ch; margin-bottom:clamp(34px,4.5vw,54px); }
.tickets-section .prog__head h2{ font-weight:300; font-size:clamp(26px,3.4vw,40px); line-height:1.12; letter-spacing:-.024em; margin:0 0 16px; }
.tickets-section .prog__head p{ color:var(--figure-dim); font-size:16.5px; line-height:1.7; max-width:none; }
.satori-ticket-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(224px,1fr)); gap:18px; align-items:stretch; }
.satori-ticket-card{ display:flex; flex-direction:column; background:color-mix(in srgb,var(--figure) 6%,transparent); border:1px solid var(--rule); border-radius:var(--r-md); padding:26px 24px 24px; color:var(--figure); }
.satori-ticket-card--featured{ border-color:var(--gold); background:color-mix(in srgb,var(--gold) 9%,transparent); }
.satori-ticket-card__top h3{ font-family:var(--font-display); font-weight:400; font-size:20px; color:var(--figure); margin:0; line-height:1.2; }
.satori-ticket-card__availability{ font-size:13px; color:var(--figure-dim); margin:5px 0 0; line-height:1.5; display: flex; gap: 7px; }
.satori-ticket-card__price{ font-family:var(--font-display); font-weight:300; font-size:36px; line-height:1; letter-spacing:-.02em; color:var(--figure); margin:18px 0 0; }
.satori-ticket-card__benefits{ list-style:none; margin:0; padding:0; }
.satori-ticket-card__benefits li{ font-size:14px; line-height:1.55; color:var(--figure-dim); padding:6px 0 6px 15px; position:relative; }
.satori-ticket-card__benefits li::before{ content:""; position:absolute; left:0; top:14px; width:7px; height:1.4px; background:var(--gold); }
.satori-ticket-card__select{ margin-top:auto; width:100%; display:flex; align-items:center; justify-content:center; font-family:var(--font-sans); font-size:15px; font-weight:600; line-height:1; padding:14px 26px; border:1.5px solid var(--rule); border-radius:var(--r-pill); background:transparent; color:var(--figure); cursor:pointer; text-decoration:none; transition:background .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease); }
.satori-ticket-card__select:hover{ transform:translateY(-1px); border-color:var(--figure); color:var(--figure); background-color: var(--gold) !important; color: var(--plum-deep) !important; box-shadow: none !important; }
.spacer { margin-bottom: 20px !important; }
.satori-ticket-card__select:active { background-color: var(--glod) !important; color: var(--plum-deep) !important;}
.satori-ticket-card--featured .satori-ticket-card__select{ background:var(--gold); border-color:var(--gold); color:var(--plum-deep); font-weight:700; }
.satori-ticket-card--featured .satori-ticket-card__select:hover{ background:var(--gold-hover); border-color:var(--gold-hover); color:var(--plum-deep); }
.satori-ticket-card.is-selected{ border-color:var(--gold); }
.tickets-note{ font-size:15px; color:var(--figure-dim); margin:26px 0 0; max-width:64ch; line-height:1.65; }

/* Real Eventin purchase form stays mounted but invisible. The design cards above
   trigger its native purchase action with quantity 1; no popup is used. */
.satori-ticket-native{ position:absolute; left:-10000px; top:0; width:min(900px,100vw); max-width:900px; height:1px; overflow:visible; opacity:0; pointer-events:none; z-index:-1; }
.satori-ticket-native .etn-single-event-ticket-wrap{ display:block!important; margin:0!important; }
.satori-ticket-native--fallback{ position:static; width:auto; height:auto; max-width:none; overflow:visible; opacity:1; pointer-events:auto; z-index:auto; }

@media(max-width:640px){
  .satori-ticket-grid{ grid-template-columns:1fr; }
}

/* Ticket status/date details — preserves the existing ticket-card design. */
.satori-ticket-card__heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap; margin: 0 0 16px !important;}
.satori-ticket-card__status{display:inline-flex;align-items:center;min-height:22px;padding:4px 9px;border-radius:999px;font-family:var(--font-sans);font-size:10px;font-weight:600;line-height:1;letter-spacing:.01em;white-space:nowrap}
/* .satori-ticket-card__status--onsale{background:rgba(100,220,155,.14);color:#9de9bd}
.satori-ticket-card__status--scheduled{background:rgba(105,160,255,.16);color:#b5ceff}
.satori-ticket-card__status--expired{background:rgba(255,255,255,.08);color:var(--figure-dim)}
.satori-ticket-card__status--soldout{background:rgba(232,108,108,.15);color:#ffb0b0} */
.satori-ticket-card__date{font-size:12px;color:var(--figure-dim);margin:7px 0 0;line-height:1.45; display: flex; gap: 7px;}
.satori-ticket-card__date svg { width; 17px; height:17px;}
.satori-ticket-card--disabled{opacity:.78}
.satori-ticket-card--disabled .satori-ticket-card__select{cursor:not-allowed;opacity:.55}

.satori-ticket-card__status--onsale {
  background: rgba(100, 220, 155, .14) !important;
  color: #9de9bd !important;
}

.satori-ticket-card__status--scheduled {
  background: rgba(105, 160, 255, .16) !important;
  color: #b5ceff !important;
}

.satori-ticket-card__status--expired {
  background: rgba(180, 45, 55, .20) !important;
  color: #ff9fa5 !important;
  border: 1px solid rgba(220, 70, 80, .25) !important;
}

.satori-ticket-card__status--soldout {
  background: rgba(232, 108, 108, .15) !important;
  color: #ffb0b0 !important;
}


/* ============================================================
   EVENT GALLERY
   ============================================================ */
.event-gallery{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 8%, rgba(199,161,76,.10), transparent 28%),
    var(--bg);
}
.event-gallery__head{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);
  gap:clamp(28px,6vw,90px);
  align-items:end;
  margin-bottom:clamp(34px,5vw,58px);
}
.event-gallery__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  color:var(--gold-deep);
  font:600 11px/1 var(--font-mono);
  letter-spacing:.13em;
  text-transform:uppercase;
}
.event-gallery__eyebrow::before{
  content:"";
  width:30px;
  height:1px;
  background:var(--gold);
}
.event-gallery__head h2{
  font-size:clamp(42px,5.2vw,70px);
  letter-spacing:-.035em;
}
.event-gallery__intro{max-width:500px;justify-self:end}
.event-gallery__intro p{
  color:var(--muted);
  font-size:clamp(16px,1.5vw,19px);
  line-height:1.7;
}
.event-gallery__grid{
  display:grid;
  grid-template-columns:1.05fr .95fr 1fr;
  grid-auto-rows:clamp(190px,19vw,285px);
  gap:clamp(12px,1.5vw,20px);
}
.event-gallery__item{
  position:relative;
  display:block;
  min-width:0;
  min-height:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:var(--r-lg);
  background:var(--bg-alt);
  cursor:zoom-in;
  box-shadow:0 12px 35px rgba(58,33,80,.08);
  isolation:isolate;
}
.event-gallery__item--tall{grid-row:span 2}
.event-gallery__item--wide{grid-column:span 2}
.event-gallery__item--accent{background:var(--plum-deep)}
.event-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .75s var(--ease),filter .55s var(--ease);
}
.event-gallery__item::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,transparent 38%,rgba(31,16,42,.66) 100%);
  opacity:.55;
  transition:opacity .45s var(--ease);
}
.event-gallery__overlay{
  position:absolute;
  left:clamp(14px,2vw,24px);
  right:clamp(14px,2vw,24px);
  bottom:clamp(14px,2vw,24px);
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#fff;
  font-size:13px;
  font-weight:600;
  opacity:.94;
}
.event-gallery__overlay i{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  font-style:normal;
  font-size:18px;
  transition:background .35s ease,color .35s ease,transform .35s ease;
}
.event-gallery__item:hover img,
.event-gallery__item:focus-visible img{transform:scale(1.055);filter:saturate(1.06)}
.event-gallery__item:hover::after,
.event-gallery__item:focus-visible::after{opacity:.82}
.event-gallery__item:hover .event-gallery__overlay i,
.event-gallery__item:focus-visible .event-gallery__overlay i{
  background:#fff;color:var(--plum-deep);transform:rotate(45deg);
}

/* Professional gallery lightbox */
.gallery-lightbox{
	margin-top:80px;
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,4vw,50px);
  background:rgba(25,14,34,.94);
  backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease;
}
.gallery-lightbox[data-open="true"]{
  opacity:1;visibility:visible;pointer-events:auto;
}
.gallery-lightbox__content{
  width:min(1100px,calc(100vw - 130px));
  max-height:calc(100vh - 90px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
.gallery-lightbox__content img{
  width:auto;
  max-width:100%;
  max-height:calc(100vh - 145px);
  object-fit:contain;
  border-radius:var(--r-md);
  box-shadow:0 30px 90px rgba(0,0,0,.45);
}
.gallery-lightbox__content p{color:#fff;text-align:center;font-size:14px;opacity:.82}
.gallery-lightbox__close,
.gallery-lightbox__prev,
.gallery-lightbox__next{
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  transition:background .25s ease,transform .25s ease;
	padding: 0px !important;
}
.gallery-lightbox__close{
  top:20px;right:24px;width:48px;height:48px;border-radius:50%;
  font-size:30px;line-height:1;
}
.gallery-lightbox__prev,
.gallery-lightbox__next{
  top:50%;width:48px;height:48px;border-radius:50%;
  transform:translateY(-50%);font:400 34px/1 var(--font-display);
}
.gallery-lightbox__prev{left:24px}.gallery-lightbox__next{right:24px}
.gallery-lightbox__close:hover,
.gallery-lightbox__prev:hover,
.gallery-lightbox__next:hover{background:rgba(255,255,255,.18)}
@media (max-width:800px){
  .event-gallery__head{grid-template-columns:1fr;align-items:start;gap:18px}
  .event-gallery__intro{justify-self:start}
  .event-gallery__grid{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:clamp(180px,38vw,270px);
  }
  .event-gallery__item--tall{grid-row:span 2}
  .event-gallery__item--wide{grid-column:span 2}
  .gallery-lightbox__content{width:calc(100vw - 34px);max-height:calc(100vh - 120px)}
  .gallery-lightbox__prev{left:9px}.gallery-lightbox__next{right:9px}
  .gallery-lightbox__prev,.gallery-lightbox__next{width:40px;height:40px;font-size:29px}
}
@media (max-width:520px){
  .event-gallery__head h2{font-size:42px}
  .event-gallery__grid{
    grid-template-columns:1fr;
    grid-auto-rows:clamp(230px,67vw,340px);
    gap:12px;
  }
  .event-gallery__item,.event-gallery__item--tall,.event-gallery__item--wide{
    grid-column:auto;grid-row:auto;
  }
  .event-gallery__item--tall{grid-row:span 2}
  .event-gallery__item--wide{grid-column:auto}
  .gallery-lightbox{padding:12px}
  .gallery-lightbox__content{width:100%}
  .gallery-lightbox__content img{max-height:calc(100vh - 160px);border-radius:12px}
  .gallery-lightbox__close{top:12px;right:12px;width:42px;height:42px}
}
@media (prefers-reduced-motion:reduce){
  .event-gallery__item img,.event-gallery__overlay i,.gallery-lightbox{transition:none}
}

body.satori-gallery-open{overflow:hidden}
