.engage{--engage-bg:#0b100d;--engage-cream:#ede9dd;--engage-gold:#b2a76f;--engage-heading-font:Impact,'Arial Narrow',sans-serif;background:var(--engage-bg);color:var(--engage-cream);font-family:Arial,Helvetica,sans-serif;line-height:1.6;width:100%;box-sizing:border-box}
.engage *{box-sizing:border-box}.engage [hidden]{display:none!important}.engage a{color:inherit}.engage h1,.engage h2,.engage h3{font-family:var(--engage-heading-font);font-weight:700;line-height:1.08;color:inherit;margin:0 0 .6em;overflow-wrap:anywhere}.engage h1,.engage h2{text-transform:uppercase}.engage h2{font-size:clamp(1.8rem,3vw,2.7rem)}.engage h3{font-size:clamp(1.5rem,2.2vw,2.5rem)}.engage p{margin:0 0 1rem}.engage-listing{padding:clamp(24px,4vw,64px)}.engage-heading{text-align:center;margin-bottom:22px}.engage .engage-eyebrow{text-transform:uppercase;font-size:.85rem;letter-spacing:.07em;color:var(--engage-gold);font-weight:700}.engage-filters{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:28px}.engage-filters fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:7px;min-width:0}.engage-filters legend{font-size:.75rem;color:var(--engage-cream);text-align:center;margin-bottom:6px}.engage-filters button{border:1px solid transparent;border-radius:0;background:var(--engage-cream);color:#11170f;min-height:44px;padding:10px 18px;cursor:pointer;font:700 .85rem Arial,sans-serif}.engage-filters button[aria-pressed=true]{background:var(--engage-gold)}.engage a:focus-visible,.engage button:focus-visible{outline:3px solid #fff;outline-offset:4px}.engage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.engage-program .engage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.engage-card{position:relative;isolation:isolate;background:var(--engage-brand,#373b2c);min-width:0;min-height:420px;aspect-ratio:0.53;overflow:hidden}.engage-program .engage-card{aspect-ratio:.78}.engage-card__link{display:flex;position:relative;width:100%;height:100%;align-items:flex-end;text-decoration:none!important}.engage-card__image{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;object-position:center;z-index:-2;transition:transform .35s ease}.engage-card__link:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(10,14,9,.35) 50%,rgba(10,14,9,.94) 100%);z-index:-1}.engage-card__link:hover .engage-card__image{transform:scale(1.035)}.engage-card__body{padding:24px 18px;width:100%;color:#fff}.engage-card__body p{font-size:.85rem;margin-bottom:.4rem}.engage-card--brand .engage-card__link{align-items:center;text-align:center}.engage-card--brand .engage-card__link:after{background:rgba(5,9,6,.62)}.engage-card--brand h3{text-transform:uppercase}.engage-card--brand .engage-eyebrow{display:block;margin-bottom:24px;color:var(--engage-cream)}.engage-footer{text-align:center;margin:28px 0 0!important}.engage .engage-button{display:inline-block;border:1px solid currentColor;border-radius:0;padding:13px 22px;text-decoration:none;font-weight:700;text-transform:uppercase;font-size:.85rem;line-height:1.4;min-height:44px}.engage .engage-button:hover{background:var(--engage-cream);color:#11170f}.engage .engage-button--solid{background:var(--engage-gold);border-color:var(--engage-gold);color:#10150e}.engage-empty{text-align:center;padding:28px}.engage-hero{position:relative;isolation:isolate;min-height:640px;height:80vh;max-height:1050px;display:flex;align-items:flex-end;background:#30342b;overflow:hidden}.engage-hero__image{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:-2}.engage-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.04)),linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.engage-hero__body{padding:clamp(28px,5vw,90px);max-width:900px}.engage-hero h1{font-size:clamp(3rem,7vw,7.5rem)}.engage-hero .engage-button{margin-top:18px}.engage-detail{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:clamp(28px,6vw,100px);padding:clamp(28px,5vw,90px);align-items:start}.engage-prose{font-size:1.06rem}.engage-prose p{margin-bottom:1.3em}.engage-prose img{max-width:100%;height:auto}.engage-facts{background:var(--engage-cream);color:#0b100d;padding:clamp(24px,3vw,48px)}.engage-facts h2{font-size:2rem}.engage-facts dl{border-top:3px solid var(--engage-gold);padding-top:20px}.engage-facts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.engage-facts dd{margin:0 0 20px;font-weight:700;font-size:1.05rem}.engage-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.engage-card{min-height:560px}}
@media(max-width:1100px){.engage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.engage-card{aspect-ratio:.68;min-height:360px}}
@media(max-width:760px){.engage-grid,.engage-program .engage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.engage-detail{grid-template-columns:1fr}.engage-hero{min-height:520px;height:70vh}.engage-card{min-height:320px}.engage-filters{gap:12px}}
@media(max-width:460px){.engage-grid,.engage-program .engage-grid{grid-template-columns:1fr}.engage-card,.engage-program .engage-card{aspect-ratio:.8;min-height:380px}.engage-filters button{padding:10px 12px}.engage-hero__image{object-position:60% center}}
@media(prefers-reduced-motion:reduce){.engage-card__image{transition:none}.engage-card__link:hover .engage-card__image{transform:none}}

/* Let the enclosing Elementor container set the front-page side spacing. */
.engage.engage-stream {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: var(--engage-stream-gutter, 0px);
}

/* Program: the Elementor section supplies the existing festival background. */
.engage.engage-program { background: transparent; padding-inline: clamp(16px, 2vw, 32px); }
.engage-program .engage-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.engage-program .engage-card { aspect-ratio: .53; }
@media(max-width:1100px) {
  .engage-program .engage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .engage-program .engage-card { aspect-ratio: .68; }
}
@media(max-width:760px) { .engage-program .engage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:460px) {
  .engage-program .engage-grid { grid-template-columns: 1fr; }
  .engage-program .engage-card { aspect-ratio: .8; }
}

/* Keep the event date close to the artist name in both listings. */
.engage .engage-card--event .engage-card__body h3 { margin-bottom: .18em; }
.engage .engage-card--event .engage-card__body h3 + p { margin-top: 0; }

/* Artist information: reference-style patterned section and compact fact panel. */
.engage .engage-detail {
  position: relative;
  isolation: isolate;
  display: block;
  padding: clamp(48px, 6vw, 120px) clamp(24px, 4.3vw, 90px);
  background: #090b09;
}
.engage-detail__background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  pointer-events: none;
  z-index: -2;
}
.engage .engage-detail::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .18);
  z-index: -1;
  pointer-events: none;
}
.engage-detail__inner {
  width: 100%;
  max-width: 1840px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 450px);
  column-gap: clamp(48px, 10vw, 230px);
  align-items: center;
}
.engage .engage-prose { max-width: 980px; font-size: 1rem; line-height: 1.65; }
.engage .engage-intro-title { font-size: clamp(1.6rem, 2vw, 2.15rem); margin: 0 0 18px; }
.engage .engage-back { margin: 34px 0 0; }
.engage .engage-back .engage-button { font-family: var(--engage-heading-font); letter-spacing: .035em; }
.engage .engage-facts {
  width: 100%;
  max-width: 450px;
  justify-self: end;
  padding: clamp(32px, 3.2vw, 60px) clamp(28px, 2.4vw, 46px);
  background: #eae6da;
  color: #10140e;
}
.engage .engage-facts h2 { font-size: clamp(1.8rem, 2.1vw, 2.5rem); margin: 0; }
.engage .engage-facts h2::after { content: ''; display: block; width: 72px; height: 3px; margin-top: 25px; background: var(--engage-gold); }
.engage .engage-facts dl { border: 0; padding: 0; margin: 28px 0 0; display: grid; gap: 20px; }
.engage .engage-fact-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 18px; align-items: center; }
.engage .engage-fact-row dt { margin: 0; color: var(--engage-gold); }
.engage .engage-fact-row svg { display: block; width: 30px; height: 30px; }
.engage .engage-fact-row dd { margin: 0; font-family: var(--engage-heading-font); font-size: clamp(1rem, 1.2vw, 1.25rem); font-weight: 700; line-height: 1.35; text-transform: uppercase; overflow-wrap: anywhere; }
@media(max-width:900px) {
  .engage-detail__inner { grid-template-columns: 1fr; gap: 36px; }
  .engage .engage-facts { justify-self: start; }
}

/* Distinguish the editable introduction heading from the description. */
.engage .engage-prose .engage-intro-title { color: var(--engage-gold); }
.engage .engage-prose__text { color: var(--engage-cream); }
.engage .engage-prose__text p,
.engage .engage-prose__text p span { color: var(--engage-cream) !important; }
/* Pasted lead text may be marked as a heading or carry theme colours. */
.engage .engage-prose__text > :first-child,
.engage .engage-prose__text > :first-child span {
  color: var(--engage-cream) !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
}
.engage .engage-prose__text > :first-child { margin-top: 0; margin-bottom: 1.3em; }

/* The existing overlay header sits over the image, with no separate band. */
.engage.engage-single { padding-top: 0; }

/* A shallower artist hero, closer to the programme page proportions. */
.engage.engage-single .engage-hero {
  height: auto;
  min-height: clamp(460px, 38vw, 720px);
  max-height: none;
}
.engage.engage-single .engage-hero__image { object-position: center top; }
.engage.engage-single .engage-hero__body {
  padding-block: clamp(32px, 3vw, 56px);
}
.engage.engage-single .engage-hero h1 { margin-bottom: .3em; }
@media(max-width:760px) {
  .engage.engage-single .engage-hero { min-height: 460px; }
  .engage.engage-single .engage-hero__image { object-position: 60% top; }
}

/* Menu clearance belongs inside the image, above the hero text. */
.engage.engage-single .engage-hero__body {
  padding-top: max(clamp(32px, 3vw, 56px), var(--engage-menu-space, 160px));
}
@media(max-width:760px) {
  .engage.engage-single .engage-hero__body {
    padding-top: max(32px, min(var(--engage-menu-space, 160px), 100px));
  }
}

.engage-ticket-button { display: inline-block; padding: 14px 24px; background: #b2a76f; color: #10150e; font-family: Impact, 'Arial Narrow', sans-serif; font-size: 1rem; line-height: 1.4; text-transform: uppercase; text-decoration: none; border: 1px solid #b2a76f; }
.engage-ticket-button:hover { background: #ede9dd; color: #10150e; }
.engage-ticket-button:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }

/* Shared desktop content edge for the artist hero and article. */
@media(min-width:761px) {
  .engage.engage-single { --engage-detail-gutter: clamp(24px, 4.3vw, 90px); }
  .engage.engage-single .engage-detail { padding-inline: var(--engage-detail-gutter); }
  .engage.engage-single .engage-hero__body {
    width: calc(100% - var(--engage-detail-gutter) - var(--engage-detail-gutter));
    max-width: 1840px;
    margin-inline: auto;
    padding-inline: 0;
  }
  .engage.engage-single .engage-hero__image { object-position: center top; }
}

/* Article copy stays uniform, including pasted headings and bold markup.
   The separate introduction title and facts retain their own typography. */
.engage .engage-prose__text,
.engage .engage-prose__text :is(p, span, strong, b, em, a, li, div, h1, h2, h3, h4, h5, h6) {
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  color: var(--engage-cream) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
