.events-page {
  --event-navy: #101b33;
  --event-pink: #e30558;
  color: var(--event-navy);
}
.event-hero {
  background: var(--event-navy);
  color: #fff;
  padding: clamp(2rem, 6vw, 5rem) max(1.25rem, calc((100vw - 1160px) / 2));
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.events-page .event-hero h1 {
  color: #fff;
  font-size: clamp(2.2rem, 4.5vw, 4rem);
  line-height: 1.08;
  margin: 1rem 0;
  overflow-wrap: anywhere;
}
.event-hero a:not(.event-button) {
  color: #fff;
}
.event-hero img {
  width: 100%;
  max-height: 560px;
  object-fit: contain;
}
.event-brand {
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.event-main {
  max-width: 1160px;
  margin: auto;
  padding: 3rem 1.25rem;
}
.event-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
}
.event-copy {
  white-space: pre-line;
  overflow-wrap: anywhere;
}
.event-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.8rem 1.2rem;
  background: var(--event-pink, #e30558);
  color: #fff !important;
  font: inherit;
  font-weight: 700;
  border: 0;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
}
.event-button:hover {
  filter: brightness(0.92);
  transform: translateY(-1px);
}
.event-button:disabled {
  opacity: 0.6;
  cursor: wait;
}
.event-booking {
  scroll-margin-top: 110px;
  background: #f4f5f8;
  padding: 1.5rem;
  border-radius: 12px;
}
.event-booking label,
.event-private label {
  display: grid;
  gap: 0.4rem;
  margin: 1rem 0;
}
.event-booking input,
.event-booking select,
.event-private input {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0.65rem;
  border: 1px solid #8992a2;
  border-radius: 6px;
  font: inherit;
  background: #fff;
  color: #101b33;
}
.event-booking fieldset {
  border: 0;
  border-top: 1px solid #cbd0d9;
  margin: 1rem 0;
  padding: 1rem 0;
}
.event-booking .event-agree {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
}
.event-agree input {
  width: 22px;
  min-height: 22px;
  flex: none;
}
.event-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.event-presets button {
  min-width: 48px;
  min-height: 48px;
  background: #fff;
  border: 1px solid #8992a2;
  border-radius: 6px;
  font: inherit;
  cursor: pointer;
}
.event-presets button[aria-pressed="true"] {
  background: #101b33;
  color: #fff;
}
.event-error {
  padding: 1rem;
  border-left: 4px solid #e30558;
  background: #fff0f5;
  color: #79032b;
}
.event-directory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.event-directory article {
  border-bottom: 1px solid #cbd0d9;
  padding-bottom: 2rem;
}
.event-directory img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.event-directory h2 {
  font-size: 1.5rem;
}
.event-private {
  font-family: Arial, sans-serif;
  background: #f4f5f8;
  color: #101b33;
  margin: 0;
  padding: 1rem;
  line-height: 1.5;
}
.event-private main {
  max-width: 900px;
  margin: auto;
  background: white;
  padding: clamp(1rem, 4vw, 2.5rem);
}
.event-private .brand-logo {
  width: 220px;
  max-width: 80%;
  height: auto;
}
.event-private .ticket-image {
  width: 100%;
  height: auto;
}
.event-private a {
  color: #a70043;
}
.event-private li {
  margin: 1rem 0;
}
.event-private .event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1.5rem 0;
}
.events-page :focus-visible,
.event-private :focus-visible {
  outline: 3px solid #d8b45b;
  outline-offset: 3px;
}
.event-hero > div {
  animation: event-in 0.35s ease-out;
}
.event-button {
  transition:
    transform 0.15s,
    filter 0.15s;
}
@keyframes event-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 760px) {
  .event-hero,
  .event-layout,
  .event-directory {
    grid-template-columns: 1fr;
  }
  .event-hero {
    gap: 1.5rem;
  }
  .event-hero img {
    max-height: 420px;
  }
  .event-layout {
    gap: 2rem;
  }
  .event-main {
    padding-top: 2rem;
  }
  .event-booking {
    padding: 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .event-hero > div {
    animation: none;
  }
  .event-button {
    transition: none;
    transform: none;
  }
}

.events-page .event-hero p {
  color: #fff;
}

/* FND Connect Live: the same wordmark, diagonal stage line and photographic
   treatment continue across the public page, social artwork and print. */
.events-page { background:#faf9f6; }
.live-hero { position:relative; isolation:isolate; overflow:hidden; background:#101b33; color:white; min-height:640px; }
.live-hero__image { position:absolute; inset:0 0 0 auto; width:78%; height:100%; object-fit:cover; object-position:center; z-index:-3; }
.live-hero__shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,#101b33 4%,rgba(16,27,51,.94) 27%,rgba(16,27,51,.35) 70%,rgba(16,27,51,.15)); }
.live-hero::after { content:""; position:absolute; top:-10%; bottom:-10%; right:27%; width:4px; background:#e30558; transform:rotate(18deg); z-index:-1; }
.live-hero__inner { max-width:1240px; margin:auto; padding:2rem 2.5rem 3rem; animation:event-in .5s ease-out; }
.live-back { display:inline-block; color:white!important; font-size:.875rem; margin-bottom:1.5rem; text-decoration:none; }
.live-wordmark { display:flex; flex-direction:column; width:max-content; max-width:100%; color:white; }
.live-wordmark__name { font-size:clamp(1rem,2.4vw,1.6rem); font-weight:800; letter-spacing:.22em; line-height:1.2; }
.live-wordmark__live { font-family:Arial,Helvetica,sans-serif; font-size:clamp(7rem,14vw,12rem); font-weight:950; font-style:italic; letter-spacing:-.075em; line-height:.85; margin:.08em .12em .12em -.04em; }
.live-wordmark__live > span { color:#e30558; }
.events-page .live-hero h1 { font-size:clamp(1.9rem,3.8vw,3.35rem); max-width:700px; color:white; margin:.25em 0 .55em; line-height:1.06; letter-spacing:-.025em; text-transform:uppercase; overflow-wrap:anywhere; }
.events-page .live-hero p { color:white; max-width:650px; }
.live-hero__when { font-size:clamp(1rem,1.8vw,1.2rem); line-height:1.65; margin-bottom:1.4rem; }
.live-hero__price { display:inline-block; margin-left:1rem; font-weight:600; }
.live-cta { border-radius:3px; gap:2rem; padding:1rem 1.4rem; }
.live-cta span { transition:transform .2s; }
.live-cta:hover span { transform:translate(3px,-3px); }
.live-ribbon { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem 3rem; padding:1.15rem; background:#e30558; color:white; font-size:1rem; font-weight:700; letter-spacing:.025em; }
.event-main { max-width:1240px; padding:5rem 2.5rem; }
.event-layout { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:6rem; align-items:start; }
.events-page .live-eyebrow { color:#a80040; font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.17em; margin:0 0 1rem; }
.events-page .live-story > h2 { font-size:clamp(2.8rem,4.5vw,4rem); line-height:1.05; letter-spacing:-.04em; margin:0 0 1.5rem; }
.live-intro { font-size:1.17rem; line-height:1.8; margin-bottom:2.5rem; }
.live-highlights { list-style:none; margin:1.2rem 0 3rem; padding:0; }
.live-highlights li { display:flex; gap:1.5rem; padding:1.1rem 0; border-top:1px solid #d6d5d4; font-weight:600; line-height:1.5; }
.live-highlights li > span:first-child { color:#ae0042; font-size:.8rem; padding-top:.2rem; font-weight:800; }
.live-venue { padding:2rem 0; border-top:3px solid #101b33; border-bottom:1px solid #d6d5d4; margin-bottom:2rem; }
.events-page .live-venue h2 { font-size:2rem; margin:0 0 1rem; letter-spacing:-.02em; }
.live-venue a,.live-help a { color:#9e003b; font-weight:700; }
.live-terms { border-bottom:1px solid #d6d5d4; padding:1.5rem 0; }
.live-terms summary { cursor:pointer; font-weight:700; }
.live-help { font-size:.9rem; margin-top:1.5rem; }
.event-booking { background:white; border-radius:0; border-top:6px solid #e30558; padding:2.5rem; box-shadow:0 14px 60px #101b330b; }
.events-page .event-booking h2 { font-size:2.5rem; margin:0; letter-spacing:-.04em; }
.live-ticket-price strong { font-size:2rem; }
.event-booking form > p { font-size:.875rem; }
.event-booking .event-button { width:100%; }
.event-booking fieldset legend { padding-right:.75rem; font-weight:700; }
.live-signoff { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:4rem max(2.5rem,calc((100vw - 1160px)/2)); background:#101b33; color:white; }
.live-signoff .live-wordmark__live { font-size:7rem; }
.live-signoff .live-wordmark__name { font-size:1rem; }
.events-page .live-signoff p { color:white; font-size:clamp(1.4rem,2.8vw,2.25rem); line-height:1.3; font-weight:700; }
.live-directory-title { font-size:2.6rem; margin-bottom:2rem; }
.event-directory img { aspect-ratio:4/3; transition:transform .25s; }
.event-directory article > a:first-child { display:block; overflow:hidden; }
.event-directory article > a:hover img { transform:scale(1.025); }
@media(min-width:1000px) { .live-story > .live-eyebrow { position:sticky; top:100px; width:max-content; background:#faf9f6; padding:.4rem 0; z-index:1; } }
@media(max-width:760px) {
  .live-hero { min-height:0; }
  .live-hero__inner { padding:1.5rem 1.25rem 2rem; }
  .live-hero__image { width:100%; object-position:65% center; }
  .live-hero__shade { background:linear-gradient(90deg,rgba(16,27,51,.9),rgba(16,27,51,.62)); }
  .live-hero::after { right:15%; opacity:.6; }
  .live-back { margin-bottom:1.6rem; }
  .live-wordmark__live { font-size:7.5rem; }
  .live-hero__price { margin-left:.75rem; font-size:.875rem; }
  .live-ribbon { gap:.4rem 1rem; font-size:.8rem; }
  .event-main { padding:3rem 1.25rem; }
  .event-layout { grid-template-columns:1fr; gap:2rem; }
  .event-booking { padding:1.5rem; }
  .live-signoff { flex-direction:column; align-items:flex-start; padding:3rem 1.25rem; }
  .live-signoff p { margin:0; }
}
@media(prefers-reduced-motion:reduce) {
  .live-hero__inner { animation:none; }
  .live-cta span,.event-directory img { transition:none; }
  .event-directory article > a:hover img { transform:none; }
}

/* Supplied brush-lettered master identity. The logo itself is never redrawn. */
.live-hero { background:#fff; color:#00234d; min-height:690px; }
.live-hero__image { width:76%; object-position:60% center; }
.live-hero__shade { background:linear-gradient(90deg,#fff 0%,#fff 36%,rgba(255,255,255,.88) 43%,rgba(255,255,255,0) 72%); }
.live-hero::after { right:32%; width:10px; transform:rotate(17deg); opacity:.9; }
.live-hero__inner { padding-top:1.3rem; padding-bottom:2.5rem; }
.live-back { color:#00234d!important; margin-bottom:.5rem; }
.live-wordmark { width:360px; max-width:100%; display:block; }
.live-hero:not(.live-hero--directory) { min-height:560px; }
.live-wordmark > img { display:block; width:100%; height:auto; }
.live-master-crop { overflow:hidden; aspect-ratio:1310 / 710; background:#fff; }
.live-master-crop img { display:block; width:110.534%; max-width:none; height:auto; transform:translate(-4.834%,-15.654%); }
.events-page .live-hero .live-event-title { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.events-page .live-hero .live-party-headline { color:#00234d; font-size:clamp(1.6rem,2.7vw,2.5rem); font-weight:850; line-height:1.05; letter-spacing:-.035em; margin:.65rem 0 1rem; }
.live-party-headline em { color:#e30558; font-style:normal; }
.events-page .live-hero .live-hero__when { color:#00234d; font-size:1rem; font-weight:600; max-width:500px; }
.live-hero__price { color:#00234d; }
.live-hero .live-status { color:#00234d; }
.live-ribbon { justify-content:space-around; text-transform:uppercase; font-size:.9rem; letter-spacing:.04em; padding:1.5rem max(1.25rem,calc((100vw - 1160px)/2)); }
.live-ribbon span { flex:1; text-align:center; min-width:130px; }
.live-ribbon span + span { border-left:1px solid #ffffff75; padding-left:1rem; }
.live-story > h2 { text-transform:uppercase; font-style:italic; }
.live-signoff .live-wordmark { width:220px; }
.live-signoff { background:#f5f4f1; }
.events-page .live-signoff p { color:#00234d; }
.live-hero--directory .live-wordmark { width:540px; }
.events-page .live-hero--directory h1 { color:#00234d; max-width:560px; font-size:2.5rem; }
@media(max-width:760px) {
 .live-hero { min-height:0; padding-bottom:210px; }
 .live-hero__inner { padding:1rem 1.25rem 1.8rem; }
 .live-wordmark { width:260px; }
 .live-hero:not(.live-hero--directory) { min-height:0; }
 .live-hero__image { width:100%; height:310px; top:auto; bottom:0; object-position:center 40%; }
 .live-hero__shade { background:linear-gradient(180deg,#fff 0%,#fff 58%,rgba(255,255,255,.97) 64%,rgba(255,255,255,0) 84%); }
 .live-hero::after { top:auto; height:240px; bottom:-45px; right:8%; width:8px; }
 .live-hero .live-hero__when { max-width:330px; }
 .live-ribbon { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding:1.25rem; font-size:.75rem; }
 .live-ribbon span { min-width:0; }
 .live-ribbon span + span { border:0; padding:0; }
 .live-signoff .live-wordmark { width:200px; }
}
.live-party-callout { background:#101b33; color:#fff; padding:4.5rem max(1.25rem,calc((100vw - 1160px)/2)); }
.events-page .live-party-callout > p { color:#fff; }
.live-party-callout > p:first-child { font-size:.8rem; letter-spacing:.17em; text-transform:uppercase; font-weight:750; }
.events-page .live-party-callout h2 { font-size:clamp(2.1rem,5vw,4.5rem); line-height:1.05; color:white; margin:1rem 0 1.5rem; text-transform:uppercase; font-weight:900; letter-spacing:-.04em; }
.live-party-callout h2 em { color:#ff448a; font-style:italic; }
.live-party-callout a { display:inline-block; color:white; padding:.75rem 0; text-underline-offset:.4em; font-weight:650; }
@media(max-width:760px) { .live-party-callout { padding:2.5rem 1.25rem; } }

/* The supplied clear logo sits directly on the stage image, without a white plate. */
.live-hero { background:#101b33; color:#fff; }
.live-hero__shade { background:linear-gradient(90deg,#101b33 0%,rgba(16,27,51,.96) 32%,rgba(16,27,51,.67) 49%,rgba(16,27,51,.06) 78%); }
.live-back { color:#fff!important; }
.events-page .live-hero .live-party-headline,
.events-page .live-hero .live-hero__when,
.live-hero__price,
.events-page .live-hero--directory h1,
.events-page .live-hero .live-status { color:#fff; }
.live-party-headline em { color:#ff448a; }
.live-master-crop { background:transparent; aspect-ratio:1350 / 735; }
.live-master-crop img { width:107.26%; transform:translate(-3.453%,-15.193%); }
.live-signoff { background:#101b33; }
.events-page .live-signoff p { color:#fff; }
@media(max-width:760px) {
 .live-hero__shade { background:linear-gradient(180deg,#101b33 0%,#101b33 56%,rgba(16,27,51,.96) 64%,rgba(16,27,51,0) 87%); }
}

/* The purchase panel is part of the Live identity, with a single clear checkout flow. */
.events-page .event-booking.live-booking { padding:0; border:0; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 16px 60px #101b3319; }
.live-booking__header { position:relative; padding:2rem; background:#101b33; border-bottom:5px solid #e30558; color:#fff; }
.live-booking__header .live-wordmark { width:160px; margin-bottom:1rem; }
.events-page .live-booking__header h2 { color:#fff; font-size:2.4rem; line-height:1.05; letter-spacing:-.035em; margin:.6rem 0 1rem; }
.events-page .live-booking__header p { color:#fff; }
.events-page .live-booking__kicker { font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700; color:#ff91ba; margin:0; }
.live-booking__event { font-size:.9rem; line-height:1.6; }
.live-booking__price { display:flex; align-items:center; gap:1rem; margin-top:1.3rem; padding-top:1rem; border-top:1px solid #ffffff30; }
.live-booking__price strong { font-size:2.6rem; line-height:1; }
.live-booking__price span { font-size:.8rem; line-height:1.5; }
.live-booking__body { padding:2rem; }
.live-booking__step { display:flex; align-items:center; gap:.7rem; margin:2.25rem 0 1rem; }
.live-booking__step:first-of-type { margin-top:0; }
.live-booking__step > span { display:grid; place-items:center; width:30px; height:30px; flex:none; background:#fff0f6; color:#a80040; border-radius:50%; font-size:.75rem; font-weight:800; }
.events-page .live-booking__step h3 { font-size:1.2rem; line-height:1.3; letter-spacing:-.015em; margin:0; color:#101b33; }
.events-page .live-booking__hint { font-size:.875rem; line-height:1.6; color:#4c5870; margin:0 0 1rem; }
.live-booking .event-presets { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem; }
.live-booking .event-presets button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.1rem; min-width:0; min-height:104px; padding:.65rem .25rem; border:2px solid #dce0e8; border-radius:10px; background:#fff; color:#101b33; transition:border-color .15s,background .15s; }
.live-booking .event-presets button:hover { border-color:#e30558; }
.live-booking .event-presets strong { font-size:1.6rem; line-height:1.1; }
.live-booking .event-presets span { font-size:.8rem; }
.live-booking .event-presets small { font-size:.72rem; font-weight:700; margin-top:.3rem; }
.live-booking .event-presets button[aria-pressed="true"] { border-color:#e30558; background:#fff0f6; color:#9c003b; }
.live-booking label { font-size:.9rem; font-weight:650; color:#101b33; }
.live-booking label input:not([type="checkbox"]) { margin-top:.15rem; padding:.85rem .9rem; min-height:52px; border:1px solid #bac2d0; border-radius:8px; font-weight:400; font-size:1rem; line-height:1.4; }
.live-booking input:focus { border-color:#e30558; outline:2px solid #e3055830; outline-offset:2px; }
.live-booking__quantity[hidden] { display:none!important; }
.live-booking fieldset.live-guest { position:relative; background:#f5f6f9; border:0; border-radius:10px; margin:1.4rem 0; padding:1rem; min-width:0; }
.live-booking .live-guest legend { font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.055em; color:#101b33; padding:0 .25rem; }
.live-guest__copy { display:block; margin:0 0 .5rem auto; border:0; background:transparent; color:#a80040; text-decoration:underline; text-underline-offset:3px; cursor:pointer; font:inherit; font-size:.8rem; min-height:32px; }
.live-booking .live-guest label { margin:.5rem 0 1rem; }
.live-booking details.live-guest__email { border:0; box-shadow:none; padding:0; background:transparent; }
.live-booking .live-guest__email summary { font-size:.8rem; font-weight:500; color:#4c5870; padding:.45rem 0; cursor:pointer; }
.live-guest__email[open] summary { margin-bottom:.6rem; }
.live-booking .event-agree { gap:.7rem; margin:1.5rem 0; font-size:.8rem; line-height:1.6; font-weight:400; }
.live-booking .event-agree input { margin-top:.2rem; accent-color:#e30558; }
.live-booking .event-agree a { color:#9c003b; text-underline-offset:2px; }
.live-booking__checkout { padding:1.25rem; background:#101b33; border-radius:10px; }
.events-page .live-booking__breakdown { color:#d4dce8; font-size:.8rem; margin:0 0 .4rem; }
.events-page .live-booking__total { color:#fff; font-size:1.6rem; margin:0 0 1rem; line-height:1.3; }
.live-booking__checkout .event-button { gap:.5rem; font-size:.95rem; padding:1rem .5rem; border-radius:6px; }
.events-page .live-booking__secure { color:#d4dce8; text-align:center; font-size:.75rem; margin:.8rem 0 0; }
.events-page .live-booking__delivery { color:#536078; font-size:.8rem; line-height:1.65; margin:1rem 0 0; }
@media(max-width:760px) { .live-booking__header,.live-booking__body { padding:1.5rem; } .live-booking .event-presets { gap:.35rem; } .live-booking__checkout { padding:1rem; } }
@media(prefers-reduced-motion:reduce) { .live-booking .event-presets button { transition:none; } }
