/* What’s On family — shared Engage foundations, not a site header replacement.
   Scoped to plugin components so Elementor owns the surrounding live site. */
:is(.koi-events,.koi-event-single,.koi-highlights,.koi-events-calendar,.koi-next-event,.koi-discover-nav) {
  font-family:var(--engage-font);
  font-size:var(--engage-text);
  line-height:var(--engage-leading);
}
:is(.koi-events,.koi-event-single,.koi-highlights,.koi-events-calendar) :is(input,select,button) {font-family:inherit}
:is(.koi-events,.koi-event-single,.koi-highlights,.koi-events-calendar) :is(h1,h2,h3,h4) {font-family:inherit;overflow-wrap:anywhere}
:is(.koi-events,.koi-event-single,.koi-highlights,.koi-events-calendar,.koi-discover-nav) :is(a,button,input,select,summary):focus-visible {outline:3px solid var(--engage-blue);outline-offset:3px;box-shadow:0 0 0 6px white}
.koi-discover-nav {display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:.5rem;border:1px solid var(--engage-line);border-radius:var(--engage-radius-card);background:var(--engage-mist)}
.koi-discover-nav a {display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.5rem 1.25rem;border-radius:999px;color:var(--engage-navy);text-decoration:none;font-weight:700;box-sizing:border-box}
.koi-discover-nav a:hover {background:white}
.koi-discover-nav a[aria-current="page"] {background:var(--engage-navy);color:white}
.koi-events,.koi-highlights {position:static;left:auto;transform:none;width:100%;max-width:var(--engage-content);margin:0 auto var(--engage-section-space)}
.koi-events__intro {position:relative;isolation:isolate;min-height:23rem;padding:clamp(2.25rem,6vw,5rem);overflow:hidden;border:0;border-radius:2.5rem 2.5rem 7rem 2.5rem;background:var(--engage-navy);box-shadow:none}
.koi-events__intro-copy {position:relative;z-index:2;max-width:48rem}
.koi-events__hero-word {position:absolute;z-index:0;left:-.035em;bottom:-.24em;color:rgb(255 255 255 / 5.5%);font-size:clamp(10rem,25vw,25rem);font-weight:950;letter-spacing:-.085em;line-height:.8;white-space:nowrap;pointer-events:none;user-select:none}
.koi-events__hero-orbit {--engage-orbit-line:rgb(91 198 204 / 26%);--engage-orbit-inner:rgb(0 92 151 / 18%);top:clamp(-4.5rem,-3vw,-2rem);right:clamp(-7.5rem,-5vw,-4rem);width:clamp(14.6rem,27vw,23rem);opacity:.78;animation-duration:22s}
.koi-events__hero-orbit::after {animation-duration:18s}
.koi-events__heading {max-width:14ch;margin:0;font-size:clamp(2.8rem,6vw,5.6rem);font-weight:700;letter-spacing:-.055em;line-height:.96}
.koi-events__intro-copy > p {max-width:60ch;margin:1rem 0 0;color:#dbe7ef;font-size:clamp(1.05rem,2vw,1.2rem)}
.koi-events__intro .koi-events__trust-line {display:flex;flex-wrap:wrap;gap:.55rem 1.25rem;margin-top:1.35rem;color:#fff;font-size:.875rem;font-weight:700}
.koi-events__trust-line span {display:inline-flex;align-items:center;gap:.5rem}
.koi-events__trust-line span::before {width:.58rem;height:.58rem;border-radius:50%;background:var(--engage-aqua);content:""}
.koi-events__hero-actions {display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.65rem}
.koi-events__hero-action {display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.1rem;border:1px solid rgb(255 255 255 / 48%);border-radius:var(--engage-radius-control);color:white;text-decoration:none;font-weight:700;transition:background var(--engage-motion),border-color var(--engage-motion),transform var(--engage-motion)}
.koi-events__hero-action:hover {border-color:white;background:rgb(255 255 255 / 10%);transform:translateY(-1px)}
.koi-events__hero-action--primary {border-color:var(--engage-aqua);background:var(--engage-aqua);color:var(--engage-navy)}
.koi-events__hero-action--primary:hover {border-color:#8fdee2;background:#8fdee2}
.koi-events__eyebrow,.koi-highlights__eyebrow {font-size:.875rem;letter-spacing:.1em;color:var(--engage-aqua);margin-bottom:.5rem}
.koi-events__eyebrow::before,.koi-highlights__eyebrow::before {background:var(--engage-aqua)}
.koi-events-filter {margin:1.5rem 0;padding:1.5rem;border:1px solid var(--engage-line);border-radius:var(--engage-radius-card);background:white;box-shadow:none}
.koi-events-filter :is(input[type="search"],select),.koi-highlights-filter select {min-height:48px;border-radius:var(--engage-radius-control);font-size:1rem;min-width:0;max-width:100%}
.koi-events-filter :is(label,legend),.koi-events-filter__more summary small,.koi-highlights-filter label {font-size:.875rem}
.koi-events-filter__choices label {min-height:44px;display:inline-flex;align-items:center}
.koi-events-filter__choices {gap:.5rem}
.koi-events-filter__choice-input:checked + label:not(.koi-organiser-choice) {background:var(--engage-navy);border-color:var(--engage-navy);color:white}
.koi-organiser-choice {min-height:44px}
.koi-events-filter__more summary {min-height:44px;align-content:center}
.koi-events-filter__apply {display:flex;justify-content:flex-end;margin-top:1rem}
.koi-events__button,.koi-highlights-filter button {min-height:48px;border-radius:var(--engage-radius-control);font-size:1rem;background:var(--engage-navy);color:white}
.koi-events__results-bar {align-items:start;gap:1rem}
.koi-events__results-bar :is(h2,h3),.koi-events__ongoing > :is(h2,h3) {margin:0;color:var(--engage-navy);font-size:clamp(1.625rem,3vw,2.25rem);letter-spacing:-.025em}
.koi-discover-archive-note {max-width:65ch;font-size:1rem;color:var(--engage-muted);font-weight:400}
.koi-discover-archive-note a {color:var(--engage-blue);text-underline-offset:.2em}
.koi-event-card {border-radius:var(--engage-radius-card);box-shadow:0 4px 16px rgb(23 42 70 / 5%)}
.koi-event-card__media {aspect-ratio:16/9}
.koi-event-card__title {font-size:1.375rem;line-height:1.2}
.koi-event-card__status,.koi-event-card__academic-period,.koi-event-card__organiser {font-size:.875rem}
.koi-event-card__meta dd {font-size:.9375rem}
#primary.koi-event-single-page,.ast-page-builder-template .site .site-content #primary.koi-event-single-page {width:min(var(--engage-content),calc(100% - 2 * var(--engage-gutter)));margin-inline:auto;padding:0 0 clamp(3rem,6vw,5rem)}
.koi-event-single__hero {min-height:0;border-radius:2.25rem 2.25rem 5.5rem 2.25rem;background:var(--engage-navy);box-shadow:none}
.koi-event-single__hero-copy {padding:clamp(1.5rem,3vw,2.5rem);justify-content:flex-start}
.koi-event-single__hero h1 {font-size:clamp(2rem,3.5vw,3rem);font-weight:700;line-height:1.1;letter-spacing:-.03em}
.koi-event-single__header-labels {gap:.5rem}
.koi-event-single__header-labels > span {font-size:.875rem;line-height:1.35}
.koi-event-single--upcoming .koi-event-single__hero .koi-event-card__status {color:var(--engage-navy)}
.koi-event-single .koi-event-poster__art > span {background:var(--engage-navy);color:white;font-size:.75rem}
.koi-event-single__quick-facts dt {font-size:.75rem;color:var(--engage-aqua)}
.koi-event-single__quick-facts dd {font-size:1rem}
.koi-event-sessions--compact :is(strong,time) {font-size:.875rem;line-height:1.4}
.koi-event-sessions--compact strong span {font-size:.75rem}
.koi-event-single__layout {gap:clamp(1.5rem,4vw,3rem);margin-top:2.5rem}
.koi-event-single__content {font-size:1.0625rem;line-height:1.65}
.koi-event-single__content :is(p,ul,ol) {max-width:65ch}
.koi-event-single__section-label {font-size:.875rem;color:var(--engage-blue)}
.koi-event-single__details {position:static;border-radius:var(--engage-radius-card);padding:1.5rem;box-shadow:none;scroll-margin-top:8rem}
.koi-event-single__details :is(dt,.koi-event-single__action-note) {font-size:.875rem}
.koi-event-single__details dd {font-size:1rem}
.koi-event-single :is(.koi-event-key-points,.koi-event-speaker,.koi-event-video,.koi-event-organisation) {border-radius:var(--engage-radius-card)}
.koi-event-single :is(.koi-event-single__register,.koi-event-single__directions,.koi-event-single__details-link) {min-height:48px;font-size:1rem;border-radius:var(--engage-radius-control)}
.koi-event-single :is(.koi-event-poster__image,.koi-event-poster img) {object-fit:contain}
.koi-event-single--past .koi-event-single__hero {background:var(--engage-navy)}
.koi-highlights__hero {min-height:0;border-radius:var(--engage-radius-panel);background:var(--engage-navy);box-shadow:none}
.koi-highlights__hero:not(:has(.koi-highlights__mosaic)) {grid-template-columns:1fr}
.koi-highlights__hero-copy {padding:2rem}
.koi-highlights__hero h1 {font-size:var(--engage-h1);font-weight:700;line-height:1.08}
.koi-highlights__hero-copy > p {max-width:65ch;font-size:1.0625rem}
.koi-highlights-filter {padding:1.5rem;border:1px solid var(--engage-line);border-radius:var(--engage-radius-card);box-shadow:none}
.koi-highlights__impact {border-radius:var(--engage-radius-card)}
.koi-highlight-card {border-radius:var(--engage-radius-card);box-shadow:0 4px 16px rgb(23 42 70 / 5%)}
.koi-events-calendar {box-shadow:none}
.koi-events-calendar__tabs {flex-wrap:wrap;overflow:visible}
.koi-events-calendar__tabs button,.koi-events-calendar__date-nav a {min-height:44px;font-size:.9375rem}
.koi-events-calendar__tabs button {flex:1 1 auto;min-width:0}
.koi-events-calendar__preview {border-radius:var(--engage-radius-card)}
.koi-discover-page-heading {font-size:var(--engage-h1);color:var(--engage-navy);margin:0 0 1.5rem}
@media(max-width:800px) {
  .koi-event-single__hero,.koi-event-single__layout {grid-template-columns:minmax(0,1fr)}
  .koi-events__grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px) {
  .koi-discover-nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem}
  .koi-discover-nav a {padding:.5rem;font-size:.875rem}
  .koi-events__intro {min-height:0;padding:2rem 1.25rem 3rem;border-radius:2rem 2rem 5rem 2rem}
  .koi-events__hero-word {font-size:clamp(9rem,40vw,14rem)}
  .koi-events__hero-orbit {top:-4rem;right:-8rem;width:17rem;opacity:.55}
  .koi-events__heading {font-size:clamp(2.5rem,13vw,4rem)}
  .koi-events__hero-actions {display:grid;grid-template-columns:minmax(0,1fr)}
  .koi-events__hero-action {width:100%}
  .koi-highlights__hero-copy,.koi-events-filter,.koi-highlights-filter {padding:1.25rem}
  .koi-events__grid {grid-template-columns:minmax(0,1fr)}
  .koi-events__results-bar {flex-wrap:wrap}
  .koi-events-filter__more-grid {grid-template-columns:minmax(0,1fr)}
  .koi-events-filter__search-row {grid-template-columns:minmax(0,1fr)}
  .koi-event-single__quick-facts {grid-template-columns:minmax(0,1fr)}
  .koi-events-filter__apply .koi-events__button {width:100%}
}
@media(prefers-reduced-motion:reduce) {
  :is(.koi-events,.koi-event-single,.koi-highlights,.koi-events-calendar) * {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
