
/* =========================================================
   EVENT PAGE — FULL CSS (scoped & safe for other sections)
   ========================================================= */

/* ===== Event Hero ===== */
.event-hero{
  position: relative;             /* ⬅ anchors absolute children */
  height: 90vh;
  display: flex; align-items: center;
  color: #fff;
  overflow: hidden;
  max-width:100%; margin: 0 auto;
}
.event-hero .sub {
  color:#e5e7eb;
  max-width:60ch;
  margin: 0 0 1.5rem;
  font-size:.92rem;
  line-height:1.6;
}

/* --- Pure-JS background slider --- */
.event-bg{
  position:absolute; inset:0;
  overflow:hidden;
  z-index:-2;           /* sits under overlay + content */
}
.event-bg-slide{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:0;
  transform: scale(1.05);
  transition: opacity .6s ease, transform 1.2s ease;
}
.event-bg-slide.is-active{
  opacity:1;
  transform: scale(1);
}

/* Overlay over background */
.event-hero-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(10,36,73,.85) 0%,
    rgba(10,36,73,.70) 45%,
    rgba(10,36,73,.25) 75%,
    rgba(10,36,73,0) 100%
  );
  z-index: -1;
}

/* Base: keep text tidy and centered by default */
.event-hero-inner{
  max-width: min(720px, 100%);
  margin: 0;
  padding: clamp(1.25rem, 5vw, 3rem) 1rem;
  text-align: left;
}

/* Desktop only: apply the offset */
@media (min-width: 1100px){
  .event-hero-inner{ margin-left: 15%; }
}

/* Tablet: smaller nudge (optional) */
@media (min-width: 768px) and (max-width: 1099.98px){
  .event-hero-inner{ margin-left: 4%; }
}

/* Mobile: remove the offset completely */
@media (max-width: 767.98px){
  .event-hero-inner{
    margin-left: 0;
    padding: 1rem;
  }
  .event-hero .event-nav {
    display: none !important;
  }
}

.event-eyebrow{
  font-weight: 800;
  letter-spacing: .4px;
  color: var(--accent);
  margin-bottom: .4rem;
}

.event-title{
  font-size: clamp(2.2rem, 6vw, 3.8rem);
  line-height: 1.05;
  font-weight: 900;
  margin: 0 0 .8rem;
}
.event-title .accent{ color: var(--accent); }

.event-meta{
  list-style: none;
  padding: 0;
  margin: 0 0 1.2rem;
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.4rem;
  color: #e5e7eb;
}
.event-meta i{
  margin-right: .45rem;
  color: var(--accent);
}

.event-cta{ display: flex; gap: .75rem; }

@media (max-width: 640px){
  .event-hero{ min-height: 64vh; }
  .event-cta{ flex-wrap: wrap; }
}

/* --- Pagination dots (pure JS populates .hero-dots) --- */
.event-hero .hero-dots{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  display:flex; gap:8px;
  z-index:5;
}
.event-hero .hero-dot{
  width:10px; height:10px; border-radius:50%;
  background:#fff; opacity:.5; cursor:pointer;
  border:none; padding:0;
}
.event-hero .hero-dot.is-active{ opacity:1; }

/* --- Autoplay circular progress + 0/1/2/3 marks --- */
.event-hero .event-autoplay{
  position:absolute;
  right:16px; bottom:16px;
  width:72px; height:72px;
  z-index:5;
}
.event-hero .autoplay-progress{
  position:absolute;
  inset:12px; /* leave room for the marks outside */
  display:flex; align-items:center; justify-content:center;
  font-weight:600;
  color:var(--primary);
}
.event-hero .autoplay-progress svg{
  --progress: 0;
  position:absolute; inset:0;
  width:100%; height:100%;
  stroke-width:4px;
  stroke:var(--primary);
  fill:none;
  stroke-dasharray:125.6;
  stroke-dashoffset: calc(125.6px * (1 - var(--progress)));
  transform: rotate(-90deg);
  opacity:.9;
}
.event-hero .autoplay-progress .ap-time{
  position:relative;
  font-size:12px;
}

/* Marks around the ring */
.event-hero .ap-marks{
  position:absolute; inset:0;
  pointer-events:none;
  font-weight:700; color:var(--primary);
}
.event-hero .apmark{
  position:absolute;
  font-size:12px; line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.5);
}
/* Top (0), Right (1), Bottom (2), Left (3) */
.event-hero .apmark--0{ top:-2px; left:50%; transform:translate(-50%,-50%); }
.event-hero .apmark--1{ top:50%; right:-2px; transform:translate(50%,-50%); }
.event-hero .apmark--2{ bottom:-2px; left:50%; transform:translate(-50%,50%); }
.event-hero .apmark--3{ top:50%; left:-2px; transform:translate(-50%,-50%); }

/* arrows */
.event-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:999px;
  border:2px solid rgba(255,255,255,.7);
  background:rgba(255,255,255,.12);
  color:#514545;
  backdrop-filter: blur(2px);
  display:grid; place-items:center;
  font-size:22px;
  cursor:pointer;
  z-index:1;
}
.event-nav:hover{ background:rgba(255,255,255,.18); }
.event-nav--prev{ left:30px; }
.event-nav--next{ right:30px; }

@media (max-width:640px){
  .event-nav{
    width:38px; height:38px; font-size:20px;
    top:45%;
  }
}

/* ===== Event Intro (Countdown + Highlights) ===== */
.event-intro{
  background:#fff;
  padding: clamp(1rem, 2.25rem) 1rem;
}
.event-intro__inner{ max-width:1100px; margin:0 auto; }

/* Countdown strip */
.cd-strip{
  display:flex; align-items:center; justify-content:center;
  gap:.75rem;
  background:#0a24490a;
  border:1px solid #0a244922;
  border-radius:14px;
  padding:.75rem 1rem;
}
.cd-box{
  background:#fff; border:1px solid #e5e7eb;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
  border-radius:12px; padding:.65rem .9rem; min-width:70px;
  text-align:center;
}
.cd-num{ font-weight:900; font-size:1.3rem; color:var(--primary); }
.cd-label{ font-size:.72rem; color:#6b7280; text-transform:uppercase; letter-spacing:.04em; }
.cd-sep{ color:#cbd5e1; font-weight:800; }

@media (max-width:560px){
  .cd-strip{ gap:.5rem; padding:.6rem .75rem; }
  .cd-box{ min-width:64px; padding:.55rem .7rem; }
  .cd-num{ font-size:1.15rem; }
}

/* Two-column content */
.intro-grid{
  display:grid; grid-template-columns: 1.05fr .95fr; gap:1.5rem; align-items:center;
}
@media (max-width:900px){ .intro-grid{ grid-template-columns:1fr; } }

/* Photos (legacy collage kept if needed) */
.intro-photos{
  display:grid; grid-template-columns: 1fr 1fr; gap:.8rem; position:relative;
}
.intro-photos img{
  width:100%; height:180px; object-fit:cover;
  border-radius:14px;
  box-shadow:0 10px 22px rgba(0,0,0,.10);
}
.intro-photos img:nth-child(1){ transform:translateY(10px); }
.intro-photos img:nth-child(2){ transform:translateY(-10px); }
.intro-photos img:nth-child(3){ transform:translateY(-6px); }
.intro-photos img:nth-child(4){ transform:translateY(8px); }

@media (max-width:560px){ .intro-photos img{ height:150px; } }

/* Copy */
.eyebrow{
  color:var(--accent); font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  margin:0 0 .3rem;
}
.intro-title{
  font-size: clamp(1.6rem, 3.6vw, 2.2rem);
  line-height:1.1; margin:.2rem 0 .6rem; color:var(--primary); font-weight:900;
}
.intro-sub{ color:#374151; margin:0 0 .8rem; }

.intro-points{
  list-style:none; padding:0; margin:0 0 1rem; color:#374151;
  display:grid; gap:.45rem;
}
.intro-points i{ color:var(--accent); margin-right:.5rem; }

.btn{ display:inline-block; font-weight:700; border-radius:999px; padding:.8rem 1.15rem; border:2px solid transparent; }
.btn--ghost{ background:transparent; color:var(--primary); border-color:#cbd5e1; }
.btn--ghost:hover{ background:#f3f4f6; }

/* ===== Quad photo cluster with center badge ===== */
.event-photo-cluster{
  position: relative;
  width: 100%;
  max-width: 720px;
  margin: 1.25rem 0;
}
.epc-grid{
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  padding: 16px;               /* space so the center can overlap nicely */
}
.epc-img{
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
/* gentle offsets */
.epc-1{ transform: translate(-4px,  2px); }
.epc-2{ transform: translate( 6px, -2px); }
.epc-3{ transform: translate( 2px,  4px); }
.epc-4{ transform: translate(-2px, -4px); }

.epc-center {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 120px; height: 120px;
  border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  background: #fff;
  box-shadow: 0 16px 36px rgba(0,0,0,.18);
  padding: 14px;
  z-index: 1;
  font-weight: 700;
}
/* loader ring effect */
.epc-center::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 4px solid transparent;
  border-top-color: #FF3D00;
  border-right-color: #06b6d4;
  border-bottom-color: #ec4899;
  border-left-color: #7c3aed;
  animation: spin 1.2s linear infinite;
  z-index: -1;
}
@keyframes spin { 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }

.epc-day { font-weight: 800; font-size: .95rem; color: var(--primary, #0a2449); line-height:1.05; }
.epc-time{ margin-top:.2rem; font-weight:700; font-size:.9rem; color: var(--accent, #fea106); }

/* Responsive tweaks */
@media (max-width: 900px){
  .event-photo-cluster{ max-width: 100%; }
  .epc-grid{ gap:12px; padding:10px; }
  .epc-center{ width:96px; height:96px; padding:10px; }
  .epc-day{ font-size:.85rem; }
  .epc-time{ font-size:.8rem; }
  .event-intro{ padding: 1.5rem; }
  .intro-copy{ padding: 0 0.5rem; }
  .epc-grid{ gap: 10px; padding: 0.3rem; }
  .intro-grid{ gap:0rem; }
}

/* ===================================================================== */
/* Schedule */
.schedule{ background:#f8fafc; padding: clamp(1.2rem, 3vw, 2rem) 1rem; }
.sched-inner{ max-width:1100px; margin:0 auto; }
.sched-head{ margin-bottom:1rem; }
.sched-title{
  margin:.15rem 0 .75rem;
  color:var(--primary);
  font-weight:900;
  font-size:clamp(1.4rem, 3.2vw, 2.1rem);
}

/* tabs */
.sched-tabs{
  display:flex; gap:.5rem; flex-wrap:wrap;
  pointer-events: none;   /* 🚫 no clicks */
  cursor: text;           /* normal text cursor */
  text-decoration: none;
  user-select: text;      /* allow text selection */
}
.sched-tab{
  background:#e5e7eb; color:#111; border:0;
  padding:.55rem .9rem; border-radius:999px; font-weight:800;
}
.sched-tab small{ font-weight:700; opacity:.8; margin-left:.25rem; }
.sched-tab.is-active{ background:var(--primary); color:#fff; }
.sched-tab[disabled]{ opacity:.5; cursor:not-allowed; }

/* grid of cards */
.sched-grid{
  display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:1rem;
}
@media (max-width:800px){ .sched-grid{ grid-template-columns:1fr; } }

/* card */
.sched-card{
  position:relative;
  display:grid; grid-template-columns: 140px 1fr;
  gap:1rem; padding: .9rem;
  background:#fff; border-radius:16px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
@media (max-width:520px){ .sched-card{ grid-template-columns:110px 1fr; } }

.sched-thumb{
  width:100%; height:100%;
  aspect-ratio: 1 / 1; object-fit:cover; border-radius:12px;
}
.sched-body h3{
  margin:.15rem 0 .35rem;
  font-weight:900; color:var(--primary);
  font-size:1.05rem;
}
.sched-body p{ margin:0 0 .5rem; color:#374151; line-height:1.45; font-size:.95rem; }
.sched-meta{ display:flex; flex-wrap:wrap; gap:.6rem 1rem; color:#6b7280; font-size:.9rem; }
.sched-meta i{ color:var(--accent); margin-right:.35rem; }

/* corner CTA button */
.sched-go{
  position:absolute; right:.8rem; bottom:.8rem;
  width:38px; height:38px; border-radius:12px 12px 12px 0;
  display:grid; place-items:center;
  background:var(--accent); color:#111; font-weight:900;
  box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.sched-go:hover{ filter:brightness(.95); transform: translateY(-1px); }

@media (max-width:500px){ .sched-grid{ gap:.6rem; } }

/* ================================= Guests ===================================== */
.speakers{
  padding: clamp(0.5rem, 5vw, 1rem) 1rem;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--primary) 70%, #3b82f6 0%) 0%,
    var(--primary) 100%);
  color:#fff;
}
.speakers-inner{ max-width:1000px; margin:0 auto; text-align:center; }
.speakers .eyebrow{ font-weight:700; font-size:.9rem; color:#ffe9ff; opacity:.9; margin:0 0 .3rem; }
.speakers-title{
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 800; margin: 0 0 1.5rem;
}
.speakers-grid{
  list-style:none; padding:0; margin:0 auto;
  display:grid; gap:1.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1000px;
}
.speaker-card{
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 20px;
  padding: 1.2rem 1rem 1.4rem;
  box-shadow: 0 14px 24px rgba(0,0,0,.16);
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  backdrop-filter: blur(6px);
}
.speaker-photo{
  width: 140px; height:140px; object-fit:cover;
  border-radius:50%; border:4px solid #fff;
  box-shadow:0 10px 20px rgba(0,0,0,.25);
}
.speaker-card figcaption{ display:flex; flex-direction:column; align-items:center; gap:.2rem; }
.speaker-card strong{ font-weight:700; font-size:1rem; }
.speaker-card small{ color:#e5e7eb; opacity:.85; font-size:.85rem; }

@media (max-width:840px){
  .speakers{ padding: 1rem 0rem; }

  .speakers-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 0rem;
    align-items: stretch;   /* NEW — allows even height without forcing it */
  }

  .speakers-grid > li{
    display: flex;
    align-items: stretch;   /* NEW */
  }

  .speaker-card{
    padding:.9rem;
    border-radius:16px;
    margin:1rem;
    /* REMOVE height:100%; → no more exaggerated height */
    flex: 1;                /* NEW — makes cards match height naturally */
  }

  .speaker-photo{
    width: 120px;
    height:140px;
  }

  .speaker-card strong{ font-size:.95rem; }
  .speaker-card small{ font-size:.8rem; }
}


/* ================================= Pricing (Tickets) ============================ */
.pricing{
  background:#f8fafc;
  padding: clamp(1.5rem, 5vw, 3rem) 1rem;
  border-top: 3px solid var(--accent);
}
.pricing-inner{
  max-width:1100px; margin:0 auto;
  display:grid; gap:1.5rem; grid-template-columns: 1.1fr 1.4fr;
  align-items:center;
}
.pricing-left .eyebrow{ color:var(--accent); font-weight:800; letter-spacing:.3px; margin:0 0 .25rem; }
.pricing-title{ font-size:clamp(1.6rem,4vw,2.2rem); margin:.1rem 0 .5rem; color:var(--primary); font-weight:900; }
.pricing-title span{ color:var(--accent); }
.pricing-sub{ color:#4b5563; max-width:45ch; }

.pricing-cards{
  display:grid; gap:1rem;
  grid-template-columns: repeat(2, minmax(0,1fr));
}
.price-card{
  background:#fff; border:1px solid #e5e7eb;
  border-radius:16px; padding:1rem;
  box-shadow:0 10px 20px rgba(0,0,0,.06);
  display:flex; flex-direction:column; gap:.75rem;
}
.price-card--highlight{
  background: linear-gradient(180deg, #ff4da0 0%, #ff6bb2 60%, #ff7ac5 100%);
  color:#fff; border-color:transparent;
}
.price-card--highlight .pc-old{ color:rgba(255,255,255,.8); }
.price-card--highlight .pc-badge{ background:#fff; color:#ff2e86; }

.pc-head{ display:flex; justify-content:space-between; align-items:center; }
.pc-plan{ font-weight:800; color:inherit; }
.pc-badge{
  font-size:.75rem; font-weight:800;
  background:#fff0; color:#0a2449;
  border:2px solid currentColor; border-radius:999px;
  padding:.25rem .55rem;
}
.pc-price{ display:flex; align-items:baseline; gap:.5rem; }
.pc-old{ text-decoration:line-through; color:#94a3b8; font-weight:700; }
.pc-new{ font-size:clamp(1.4rem,3.5vw,2rem); font-weight:900; color:inherit; }
.pc-list{ margin:.25rem 0 .5rem; padding-left:1rem; color:inherit; }
.pc-list li{ margin:.25rem 0; list-style:"✔  "; opacity:.9; }
.pc-cta{ align-self:flex-start; }

@media (max-width:900px){
  .pricing-inner{ grid-template-columns:1fr; }
  .pricing-cards{ grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}

/* Phones & small tablets */
@media (max-width: 640px){
  .sched-go{ display: none; }
  .pricing{ padding: 1rem .75rem; }
  .pricing-inner{ grid-template-columns: 1fr; }
  .pricing-title{
    font-size: clamp(1.2rem, 5.2vw, 1.6rem);
    margin: .05rem 0 .4rem;
  }
  .pricing-sub{
    font-size: .9rem; line-height: 1.4; max-width: 38ch;
  }
  .pricing-cards{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
  }
  .price-card{ padding: .75rem; border-radius: 12px; gap: .5rem; }
  .pc-head{ gap: .5rem; }
  .pc-plan{ font-size: .95rem; }
  .pc-badge{ font-size: .7rem; padding: .2rem .5rem; border-width: 2px; }
  .pc-price{ gap: .35rem; }
  .pc-old{ font-size: .85rem; }
  .pc-new{ font-size: clamp(1.1rem, 4.6vw, 1.4rem); line-height: 1.1; }
  .pc-list{ font-size: .9rem; margin: .2rem 0 .4rem; padding-left: .9rem; }
  .pc-list li{ margin: .2rem 0; }
  .pc-plan, .pc-badge, .pc-list{
    overflow-wrap: anywhere; word-break: break-word; hyphens: auto;
  }
  .pc-cta{ width: 100%; }
}

/* Extra-small phones */
@media (max-width: 400px){
  .pricing-cards{ grid-template-columns: 1fr; gap: .65rem; }
  .price-card{ padding: .65rem; }
  .pc-plan{ font-size: .9rem; }
  .pc-new{ font-size: 1.2rem; }
  .pc-list{ font-size: .85rem; }
}

/* ===================== Ticket Sales Closed Styles ===================== */
.pc-cta.is-disabled,
.js-open-payment.is-disabled {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.55;
  filter: grayscale(0.2);
  transform: none !important;
}
.pc-cta.is-disabled:hover,
.js-open-payment.is-disabled:hover,
.pc-cta.is-disabled:focus,
.js-open-payment.is-disabled:focus {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}
#tickets.sales-closed .pricing-title span::after {
  content: " ";
  font-size: 0.85em;
  font-weight: 600;
  opacity: 0.9;
}
#tickets.sales-closed .pc-badge,
#tickets.sales-closed .pc-old,
#tickets.sales-closed .pc-new { opacity: 0.45; }
#tickets.sales-closed .pc-new { text-decoration: line-through; }
#tickets.sales-closed .price-card{ position: relative; }
#tickets.sales-closed .price-card::after{
  content: "Sales closed";
  position: absolute; inset: 0;
  background: rgba(17, 17, 17, 0.35);
  color: #fff; display: grid; place-items: center;
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
  opacity: 0; transition: opacity .25s ease; border-radius: inherit;
  pointer-events: none;
}
#tickets.sales-closed .price-card:hover::after{ opacity: 1; }
.cd-ended .cd-num { opacity: 0.6; filter: grayscale(0.25); }
.cd-ended .cd-label { opacity: 0.7; }
.pc-cta.is-disabled:focus-visible,
.js-open-payment.is-disabled:focus-visible {
  outline: 2px dashed rgba(0,0,0,0.35);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  #tickets.sales-closed .price-card::after { transition: none; }
}

/* Past status label (optional) */
.event-hero .event-eyebrow.is-past {
  background: #222;
  color: #ff8a8a;
  border: 1px solid rgba(255,138,138,.35);
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  width: 200px;
}

/* ===== Light public event-page refinement ===== */
.event-hero-inner{position:relative;z-index:2}
.event-hero .event-eyebrow{display:inline-flex;align-items:center;width:auto!important;padding:.3rem .68rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(8,27,54,.7);box-shadow:0 8px 22px rgba(0,0,0,.14);backdrop-filter:blur(7px);font-size:.78rem;text-transform:uppercase}
.event-title{text-shadow:0 4px 22px rgba(0,0,0,.25)}
.event-meta{gap:.55rem;margin-bottom:1.35rem}
.event-meta li{display:inline-flex;align-items:center;min-height:35px;padding:.38rem .62rem;border:1px solid rgba(255,255,255,.17);border-radius:9px;background:rgba(7,29,58,.38);backdrop-filter:blur(5px);font-size:.82rem}
.event-meta i{margin-right:.4rem}
.event-cta .btn{box-shadow:0 10px 24px rgba(0,0,0,.2);transition:transform .18s ease,box-shadow .18s ease}
.event-cta .btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(0,0,0,.26)}
.event-intro{padding-top:clamp(1.8rem,4vw,3rem);padding-bottom:clamp(2rem,4vw,3.4rem)}
.intro-copy .eyebrow,.sched-head .eyebrow,.speakers .eyebrow{letter-spacing:.08em;text-transform:uppercase}
.sched-card{border:1px solid #e3eaf2;box-shadow:0 10px 25px rgba(10,36,73,.07);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.sched-card:hover{transform:translateY(-3px);border-color:#ccd9e7;box-shadow:0 16px 32px rgba(10,36,73,.11)}
.sched-thumb{box-shadow:0 5px 14px rgba(10,36,73,.12)}
.speaker-card{transition:transform .2s ease,border-color .2s ease,background .2s ease}
.speaker-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.09)}
.price-card{border-color:#dde6ef;box-shadow:0 12px 26px rgba(10,36,73,.07)}
@media(max-width:767.98px){
  .event-hero-inner{padding:1rem 1rem 1.35rem}
  .event-hero .event-eyebrow{font-size:.69rem}
  .event-meta{gap:.42rem}
  .event-meta li{min-height:32px;padding:.31rem .5rem;font-size:.75rem}
  .event-cta{gap:.55rem}
  .event-cta .btn{min-height:48px;padding:.7rem 1rem}
  .schedule{padding:1.6rem .75rem}
  .sched-card{padding:.75rem;border-radius:14px}
}

/* Mobile guest and ticket consistency */
@media(max-width:640px){
  .speakers{padding:2.35rem .8rem 2.7rem}
  .speakers-title{margin-bottom:1.25rem}
  .speakers-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  .speakers-grid>li{display:flex;min-width:0}
  .speaker-card{box-sizing:border-box;width:100%;min-width:0;height:100%;margin:0;padding:1rem .7rem 1.05rem;border-radius:16px}
  .speaker-photo{display:block;width:96px!important;height:96px!important;aspect-ratio:1/1;border:3px solid #fff;object-fit:cover;object-position:center;border-radius:50%!important}
  .speaker-card figcaption{min-width:0}
  .speaker-card strong{max-width:100%;overflow-wrap:anywhere;font-size:.86rem;line-height:1.3}
  .speaker-card small{font-size:.72rem;line-height:1.35}

  .pricing{padding:2.35rem .85rem 2.7rem}
  .pricing-inner{gap:1.15rem}
  .pricing-cards{grid-template-columns:1fr!important;gap:.85rem}
  .price-card{position:relative;overflow:hidden;padding:1.05rem!important;border:1px solid #dde6ef;border-radius:16px!important;gap:.72rem!important;box-shadow:0 12px 28px rgba(10,36,73,.09)}
  .price-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}
  .price-card--highlight:before{background:#fff}
  .pc-head{align-items:flex-start}
  .pc-plan{font-size:1rem!important;line-height:1.3}
  .pc-badge{flex:0 0 auto;font-size:.68rem!important}
  .pc-price{align-items:center;gap:.5rem}
  .pc-old{font-size:.83rem!important}
  .pc-new{font-size:1.55rem!important}
  .pc-list{display:grid;gap:.32rem;margin:.05rem 0 .4rem!important;padding-left:1.05rem!important;font-size:.86rem!important;line-height:1.4}
  .pc-list li{margin:0!important}
  .pc-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:.1rem;text-align:center}
  #tickets.sales-closed .price-card:after{opacity:0}
  #tickets.sales-closed .pc-cta{background:#e8edf3!important;border-color:#d8e0e9!important;color:#65758a!important;box-shadow:none!important}
}

/* Refined event schedule */
.schedule{position:relative;overflow:hidden;padding:clamp(2.6rem,5vw,4.2rem) 1rem;background:linear-gradient(180deg,#f7faff 0%,#eef4f9 100%)}
.schedule:before{content:"";position:absolute;right:-130px;top:-170px;width:330px;height:330px;border:1px solid rgba(10,36,73,.06);border-radius:50%;pointer-events:none}
.sched-inner{position:relative;z-index:1}
.sched-head{max-width:720px;margin:0 auto 1.65rem;text-align:center}
.sched-head .eyebrow{display:inline-flex;align-items:center;justify-content:center;margin:0 0 .55rem;padding:.33rem .65rem;border:1px solid #f0c267;border-radius:999px;background:#fff7e6;color:#9a5d00;font-size:.7rem;font-weight:850}
.sched-title{margin:0 0 .85rem;font-size:clamp(1.65rem,3.4vw,2.35rem);line-height:1.15;letter-spacing:-.025em}
.sched-tabs{justify-content:center}
.sched-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .85rem;border:1px solid rgba(10,36,73,.16);background:#fff;box-shadow:0 5px 14px rgba(10,36,73,.06);font-size:.78rem}
.sched-tab.is-active{border-color:var(--primary);background:var(--primary);box-shadow:0 8px 18px rgba(10,36,73,.18)}
.sched-grid{gap:1rem}
.sched-card{grid-template-columns:125px minmax(0,1fr);align-items:stretch;height:178px;min-height:178px;padding:.8rem;border-radius:15px;background:#fff}
.sched-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 4px 4px 0;background:var(--accent)}
.sched-thumb{height:100%;min-height:132px;aspect-ratio:auto;border-radius:11px}
.sched-body{display:flex;flex-direction:column;min-width:0;padding:.15rem .2rem}
.sched-body h3{margin:0 0 .35rem;font-size:1.05rem;line-height:1.3}
.sched-body p{display:-webkit-box;overflow:hidden;margin:0 0 .65rem;color:#53657a;font-size:.95rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.sched-meta{margin-top:auto;gap:.4rem;font-size:.9rem}
.sched-meta span{display:inline-flex;align-items:center;padding:.32rem .45rem;border:1px solid #e1e9f1;border-radius:7px;background:#f7fafd;color:#52657b}
.sched-meta i{margin-right:.3rem}
.sched-go{right:.65rem;bottom:.65rem;width:32px;height:32px;border-radius:9px 9px 9px 0;font-size:.8rem;opacity:.9}
@media(max-width:800px){
  .schedule{padding:2.6rem .85rem 3rem}
  .sched-head{margin-bottom:1.35rem}
  .sched-title{font-size:clamp(1.18rem,5.7vw,1.45rem);white-space:nowrap;letter-spacing:-.04em}
  .sched-grid{gap:.75rem}
  .sched-card{grid-template-columns:105px minmax(0,1fr);height:166px;min-height:166px;padding:.68rem}
  .sched-thumb{min-height:116px}
  .sched-body h3{font-size:1.05rem}
  .sched-body p{margin-bottom:.48rem;font-size:.95rem}
  .sched-meta{gap:.3rem;font-size:.78rem}
  .sched-meta span{padding:.27rem .38rem}
}
@media(max-width:420px){
  .schedule{padding-right:.65rem;padding-left:.65rem}
  .sched-card{grid-template-columns:92px minmax(0,1fr)}
  .sched-thumb{min-height:110px}
  .sched-meta span{max-width:100%;overflow-wrap:anywhere}
}

@media(max-width:800px){
  .schedule{background:linear-gradient(180deg,#f8fbfe 0%,#edf3f8 100%)}
  .sched-head{padding:0 .25rem}
  .sched-head .eyebrow{margin-bottom:.65rem;padding:.4rem .78rem;box-shadow:0 5px 13px rgba(154,93,0,.08);font-size:.82rem}
  .sched-tabs{margin-top:.15rem}
  .sched-tab{padding:.58rem .85rem;border-radius:10px;box-shadow:0 7px 16px rgba(10,36,73,.1)}
  .sched-grid{gap:.85rem}
  .sched-card{border-color:#dbe5ef;box-shadow:0 12px 27px rgba(10,36,73,.1)}
  .sched-card:before{top:14px;bottom:14px;width:4px}
  .sched-thumb{border:1px solid #e2e9f1;box-shadow:0 7px 16px rgba(10,36,73,.14)}
  .sched-body{padding:.18rem .1rem .12rem .2rem}
  .sched-meta span{border-color:#dce6ef;background:#f3f7fb;color:#455b73}
}
@media(max-width:420px){
  .sched-head{margin-bottom:1.2rem}
  .sched-card{grid-template-columns:96px minmax(0,1fr);height:170px;min-height:170px;padding:.72rem}
  .sched-thumb{min-height:146px}
  .sched-meta{align-items:flex-start}
  .sched-meta span{padding:.28rem .36rem}
}

/* Mobile schedules: always show the complete description. */
@media(max-width:800px){
  .sched-card{height:auto!important;min-height:0!important}
  .sched-thumb{height:100%!important;min-height:145px;align-self:stretch}
  .sched-body p{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important}
  .sched-meta{margin-top:.35rem!important}
}
@media(max-width:420px){
  .sched-card{height:auto!important;min-height:0!important}
  .sched-thumb{min-height:150px}
}

/* Mobile schedule metadata: time and location always share one row. */
@media(max-width:800px){
  .sched-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem;width:100%}
  .sched-meta span{box-sizing:border-box;justify-content:flex-start;min-width:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
}
@media(max-width:420px){
  .sched-meta{font-size:.72rem}
  .sched-meta span{padding:.28rem .3rem}
}

/* Refined four-photo event cluster and center date badge. */
.event-photo-cluster{isolation:isolate;margin:1.5rem 0}
.epc-grid{gap:12px;padding:12px;border:1px solid #e1e9f1;border-radius:26px;background:linear-gradient(145deg,#f8fbfe,#eef4f9);box-shadow:0 18px 38px rgba(10,36,73,.1)}
.epc-img{box-sizing:border-box;border:4px solid #fff;border-radius:19px;box-shadow:0 10px 24px rgba(10,36,73,.14);transform:none!important;transition:transform .22s ease,box-shadow .22s ease}
.epc-img:hover{transform:translateY(-3px)!important;box-shadow:0 15px 30px rgba(10,36,73,.2)}
.epc-center{width:145px;height:145px;padding:13px;border:6px solid #fff;background:linear-gradient(145deg,#123d6c,#09264d);box-shadow:0 18px 40px rgba(5,27,55,.3),0 0 0 1px rgba(254,161,6,.38);color:#fff}
.epc-center:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.17);border-radius:50%;pointer-events:none}
.epc-center:after{inset:-7px;border:3px solid transparent;border-top-color:#fea106;border-right-color:#fff;border-bottom-color:#ffc766;border-left-color:#58a6e7;animation:spin 3.4s linear infinite;z-index:-1}
.epc-day{position:relative;color:#fff;font-size:1.12rem;letter-spacing:.01em}
.epc-time{position:relative;margin-top:.38rem;padding:.3rem .52rem;border-radius:999px;background:rgba(255,255,255,.1);color:#ffb632;font-size:.88rem;letter-spacing:.02em}
@media(max-width:900px){
  .event-photo-cluster{margin:1.15rem auto 1.4rem}
  .epc-grid{gap:8px;padding:8px;border-radius:20px}
  .epc-img{border-width:3px;border-radius:15px}
  .epc-center{width:116px;height:116px;padding:9px;border-width:5px}
  .epc-center:after{inset:-6px}
  .epc-day{font-size:1rem}
  .epc-time{margin-top:.28rem;padding:.24rem .42rem;font-size:.76rem}
}
@media(max-width:420px){
  .epc-grid{gap:6px;padding:6px;border-radius:17px}
  .epc-img{border-width:2px;border-radius:13px}
  .epc-center{width:106px;height:106px;border-width:4px}
  .epc-day{font-size:.92rem}
  .epc-time{font-size:.7rem}
}
@media(prefers-reduced-motion:reduce){.epc-img{transition:none}}


:root{ --accent:#fea106; --hec-arrow:44px; --hec-dot:10px; }

.hero-ec{ 
  position:relative; 
  height:88vh; 
  min-height:520px; 
  overflow:hidden; 
  background:#000; 
  color:#fff; 
}

.hero-ec__bg{
  position:absolute; inset:0; width:130%; left:-15%;
  background-size:cover; background-position:center;
  transition:transform .7s cubic-bezier(.22,.61,.36,1), background-image .3s ease;
  will-change:transform, background-image; z-index:0;
}
.hero-ec__overlay{ 
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(7,12,26,.78)0%,rgba(7,12,26,.7)40%,rgba(7,12,26,.25)80%,rgba(7,12,26,0)100%);
}

.hero-ec__slides{
  position:relative; height:100%; z-index:2;
  display:grid; grid-auto-flow:column; grid-auto-columns:100%;
  transition:transform .65s cubic-bezier(.22,.61,.36,1); will-change:transform;
}
.hero-ec__slide{ display:flex; align-items:center; min-width:100%; }

.hero-ec__container{ 
  max-width:1100px; 
  margin-left: clamp(4rem, 10vw, 12rem);
  padding: clamp(3rem,8vw,6rem) 1rem 8.5rem; 
  cursor:pointer; 
}

.hec-eyebrow{ color:var(--accent); font-weight:800; margin-bottom:.5rem; letter-spacing:.4px; }
.hec-highlight{ color:var(--accent); }
.hec-sub{ color:#e5e7eb; max-width:60ch; margin:0 0 1.5rem; line-height:1.55; }
h1{ font-size:clamp(2.1rem,5vw,3.4rem); margin:.25rem 0 1rem; font-weight:800; line-height:1.1; }

/* ===== Buttons row (no flex) ===== */
.hec-actions{
  display: inline-grid;
  grid-auto-flow: column;
  gap: .75rem;
  align-items: center;
}
.hec-actions .btn{ margin-right: 0; }

.btn{ 
  display:inline-block; 
  font-weight:700; 
  border-radius:999px;
  padding:.9rem 1.25rem; 
  text-decoration:none; 
  border:2px solid transparent; 
}
.btn.btn--solid{ background:var(--accent); color:#111; }
.btn.btn--ghost{ border-color:rgba(255,255,255,.5); color:#fff; background:transparent; }
.btn.btn--ghost:hover{ background:rgba(255,255,255,.12); }
.btn.btn--solid:hover{ filter:brightness(.95); }

.hero-ec__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:var(--hec-arrow); height:var(--hec-arrow);
  display:grid; place-items:center; border-radius:50%;
  background:rgba(0,0,0,.3); color:#fff; cursor:pointer; z-index:3; border:1px solid rgba(255,255,255,.35);
  user-select:none;
}
.hero-ec__prev{ left:12px; }
.hero-ec__next{ right:12px; }
.hero-ec__dots{ 
  position:absolute; left:50%; transform:translateX(-50%); bottom:16px; 
  display:flex; gap:8px; z-index:3; 
}
.hero-ec__dot{ 
  width:var(--hec-dot); height:var(--hec-dot); border-radius:50%; 
  background:#fff; opacity:.55; cursor:pointer; border:0; 
}
.hero-ec__dot[aria-current="true"]{ background:var(--accent); opacity:1; }

.feature-ec-cards{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom: -64px;
  display:grid; grid-template-columns: repeat(4, minmax(200px, 1fr));
  gap:16px; z-index:4; width:min(1100px, 92vw);
}
.feature-ec-card{
  background:#0b1224; color:#fff; border:1px solid rgba(255,255,255,.08);
  border-radius:16px; padding:16px 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.feature-ec-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.feature-ec-icon{ font-size:1.25rem; opacity:.9; }
.feature-ec-num{ font-weight:800; color:var(--accent); opacity:.95; }
.feature-ec-card h3{ margin:.25rem 0 .35rem; font-size:1.05rem; }
.feature-ec-card p{ margin:0; color:#d7dbe6; font-size:.95rem; line-height:1.45; }

/* Responsive */
@media (max-width:960px){
  :root{ --hec-arrow:40px; --hec-dot:12px; }
}
@media (max-width:560px){
  .hero-ec__nav{ display:none; }
  .hero-ec__container{ margin-left: clamp(1.25rem, 6vw, 3rem); padding-bottom: 6rem; }
  .feature-ec-cards{ position:static; transform:none; width:100%; padding:20px 16px 0; }

  .hec-actions{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: .6rem;
    width:100%;
    max-width:460px;
  }
  .hero-ec .btn{
    padding:.8rem .55rem;
    font-size:.82rem;
    white-space:nowrap;
    text-align:center;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .hero-ec__slides,.hero-ec__bg{ transition:none !important; }
}

/* Final light refinement: keep after legacy event rules. */
.event-hero-inner{position:relative;z-index:2}
.event-hero .event-eyebrow,.event-hero .event-eyebrow.is-past{display:inline-flex;width:auto!important;padding:.3rem .68rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(8,27,54,.7);box-shadow:0 8px 22px rgba(0,0,0,.14);backdrop-filter:blur(7px);font-size:.78rem;text-transform:uppercase}
.event-title{text-shadow:0 4px 22px rgba(0,0,0,.25)}
.event-meta{gap:.55rem;margin-bottom:1.35rem}
.event-meta li{display:inline-flex;align-items:center;min-height:35px;padding:.38rem .62rem;border:1px solid rgba(255,255,255,.17);border-radius:9px;background:rgba(7,29,58,.38);backdrop-filter:blur(5px);font-size:.82rem}
.event-meta i{margin-right:.4rem}
.event-cta .btn{box-shadow:0 10px 24px rgba(0,0,0,.2);transition:transform .18s ease,box-shadow .18s ease}
.event-cta .btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(0,0,0,.26)}
.event-intro{padding-top:clamp(1.8rem,4vw,3rem);padding-bottom:clamp(2rem,4vw,3.4rem)}
.intro-copy .eyebrow,.sched-head .eyebrow,.speakers .eyebrow{letter-spacing:.08em;text-transform:uppercase}
.sched-card{border:1px solid #e3eaf2;box-shadow:0 10px 25px rgba(10,36,73,.07);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.sched-card:hover{transform:translateY(-3px);border-color:#ccd9e7;box-shadow:0 16px 32px rgba(10,36,73,.11)}
.sched-thumb{box-shadow:0 5px 14px rgba(10,36,73,.12)}
.speaker-card{transition:transform .2s ease,border-color .2s ease,background .2s ease}
.speaker-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.09)}
.price-card{border-color:#dde6ef;box-shadow:0 12px 26px rgba(10,36,73,.07)}
@media(max-width:767.98px){
  .event-hero-inner{padding:1rem 1rem 1.35rem}
  .event-hero .event-eyebrow,.event-hero .event-eyebrow.is-past{font-size:.69rem}
  .event-meta{gap:.42rem}
  .event-meta li{min-height:32px;padding:.31rem .5rem;font-size:.75rem}
  .event-cta{gap:.55rem}
  .event-cta .btn{min-height:48px;padding:.7rem 1rem}
  .schedule{padding:1.6rem .75rem}
  .sched-card{padding:.75rem;border-radius:14px}
}
