.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, 44vw, 840px);
  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;
}

/* Per-event image framing. Defaults preserve the earlier layout. */
.engage .engage-card--event { background: #0b100d; }
.engage .engage-card--event .engage-card__image {
  object-fit: var(--engage-card-fit, cover);
  object-position: var(--engage-card-position, 50% 50%);
}
.engage.engage-single .engage-hero { background: #0b100d; }
.engage.engage-single .engage-hero__image {
  object-fit: var(--engage-desktop-fit, cover);
  object-position: var(--engage-desktop-position, 50% 0%);
}
@media(max-width:760px) {
  .engage.engage-single .engage-hero__image {
    object-fit: var(--engage-mobile-fit, cover);
    object-position: var(--engage-mobile-position, 60% 0%);
  }
}

.engage .engage-card__link:hover .engage-card__image[style*="--engage-card-fit:contain"] { transform: none; }

.engage .engage-facts-fallback { margin:28px 0 0; font-size:1.1rem; line-height:1.6; }

.engage .engage-card__teaser { font-weight:400; line-height:1.45; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.engage .engage-card__teaser + .engage-card__schedule { margin-top:.55rem; }

/* News: photo cards on the front page, a separate editorial article layout. */
.engage.engage-news{background:#f2efe6;color:#0b100d;padding:48px 0}
.engage-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.engage-news-card{position:relative;isolation:isolate;aspect-ratio:1.2;background:#30392f;overflow:hidden}
.engage-news-card>a{display:flex;height:100%;align-items:flex-end;text-decoration:none!important;color:#fff}
.engage-news-card img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:-2}
.engage-news-card>a:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.8));z-index:-1}
.engage-news-card__text{padding:24px 20px;width:100%}
.engage-news-card h3{text-transform:uppercase;font-size:clamp(1.4rem,2vw,2.3rem)}
.engage-news-card p{font-size:1rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0}
.engage-news a:focus-visible,.engage-news-article a:focus-visible{outline:3px solid #b2a76f;outline-offset:3px}
.engage-news-pages ul{display:flex;list-style:none;gap:18px;justify-content:center;padding:24px;flex-wrap:wrap}
.engage.engage-news-article{background:#f2efe6;color:#10150e;padding:clamp(190px,20vw,300px) 5% 80px}
.engage-news-article__header,.engage-news-copy{width:100%;max-width:1040px;margin-inline:auto}
.engage-news-article h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:18px 0 24px}
.engage-news-article .engage-news-intro{font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.5;font-weight:400;margin-bottom:22px}
.engage-news-article time{font-size:.85rem;color:#54584f}
.engage-news-figure{max-width:1040px;margin:32px auto 40px}
.engage-news-figure img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;background:#e4e0d5}
.engage-news-figure figcaption{color:#54584f;font-size:.85rem;padding-top:10px;line-height:1.5;white-space:pre-line}
.engage-news-copy{font-size:1.08rem;line-height:1.8}.engage-news-copy p{margin-bottom:1.4em}
.engage-news-copy img{max-width:100%;height:auto}.engage-news-copy h2{margin-top:1.5em;font-size:2rem}
.engage-news-back{border-top:1px solid #c9c5b8;padding-top:24px;margin-top:48px!important}
@media(max-width:900px){.engage-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.engage-news-grid{grid-template-columns:1fr}.engage-news-card{aspect-ratio:1.2}.engage.engage-news-article{padding-top:190px}.engage-news-card h3{font-size:1.8rem}}

/* A dark masthead keeps the existing white festival navigation readable. */
.engage.engage-news-article{--engage-news-header-height:max(240px,var(--engage-news-menu-space,160px));background:linear-gradient(#0b100d 0 var(--engage-news-header-height),#f2efe6 var(--engage-news-header-height));padding-top:calc(var(--engage-news-header-height) + 56px)}
@media(max-width:600px){.engage.engage-news-article{--engage-news-header-height:180px;padding-top:calc(var(--engage-news-header-height) + 40px)}}

.engage-news-card img{object-fit:var(--engage-news_card-fit,cover);object-position:var(--engage-news_card-position,50% 50%)}
.engage-news-figure img{height:auto;aspect-ratio:1040/620;object-fit:var(--engage-news_article-fit,contain);object-position:var(--engage-news_article-position,50% 50%)}

/* Temporary editorial card, replaced automatically by the third news item. */
.engage-news-card--follow{display:flex;align-items:center;background:#ded8bf;color:#10150e;border:1px solid #b2a76f}
.engage-news-card--follow .engage-news-card__text{padding:clamp(24px,3vw,48px)}
.engage-news-card--follow .engage-eyebrow{display:block;color:#595333;margin-bottom:24px}
.engage-news-card--follow h3{font-size:clamp(1.8rem,3vw,3rem)}
.engage-news-card--follow p{display:block;overflow:visible;line-height:1.65}
@media(min-width:601px) and (max-width:900px){.engage-news-card--follow{grid-column:1/-1;aspect-ratio:auto;min-height:220px}}

/* News CTA sits on a light surface; do not inherit Elementor's light link color. */
.engage.engage-news .engage-footer a.engage-button,
.engage.engage-news .engage-footer a.engage-button:visited {
  color: #0b100d !important;
  background-color: transparent !important;
  border: 1px solid #0b100d !important;
  text-decoration: none;
}
.engage.engage-news .engage-footer a.engage-button:hover,
.engage.engage-news .engage-footer a.engage-button:focus-visible {
  color: #0b100d !important;
  background-color: #b2a76f !important;
  border-color: #0b100d !important;
}
.engage.engage-news .engage-footer a.engage-button:focus-visible {
  outline: 2px solid #0b100d;
  outline-offset: 4px;
}

/* Archive cards fill the grid from the left over the shared festival background. */
.engage.engage-news-archive{padding:clamp(28px,4vw,64px);background-color:#0b100d;color:#ede9dd;background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}
.engage-news-archive .engage-heading{margin-bottom:32px}
.engage-news-archive .engage-news-grid{width:100%;max-width:none;margin-inline:0}

.engage-news-card--community{background:#b2a76f;border-color:#b2a76f}
@media(min-width:601px) and (max-width:900px){.engage-news-grid .engage-news-card--follow{grid-column:auto;aspect-ratio:1.2;min-height:0}.engage-news-grid .engage-news-card--follow:last-child{grid-column:1/-1;aspect-ratio:auto;min-height:220px}}

/* Flex children must shrink to the card, including on Safari and with large text. */
.engage .engage-card__link { min-width:0; max-width:100%; }
.engage .engage-card__body {
  flex:1 1 0%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.engage .engage-card__body p,
.engage .engage-card__body h3,
.engage .engage-card__body .engage-eyebrow {
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
