/* ============================================================================
   ORION Events — LIGHT THEME (ORION corporate design system)
   Re-skins index.php + event-details.php from the dark "starfield" theme to the
   bright ORION look (white, warm-grey, ORION red, Open Sans + Montserrat).

   HOW TO INSTALL  (no risk to the Bingo / order / checkout pages):
   1) Copy this file to:  assets/css/orion-events-light.css
   2) In src/html/html-header.php, AFTER the existing orion-events.css <link>, add:
        <link rel="stylesheet" href="/assets/css/orion-events-light.css">
   3) On the TWO public pages only, add the class to the <body> tag:
        index.php          ->  <body class="oe-light">
        event-details.php  ->  <body class="oe-light">
      (Leave bingo-play.php / order-*.php / checkout.php bodies unchanged.)
   4) Optional markup tweaks (see junie-prompt.md): portrait event hero, and
      deleting the inline dark #oeEventForm <style> block in index.php.

   Everything below is scoped under `body.oe-light`, so it overrides the dark
   rules by specificity and never affects the other pages.
   ============================================================================ */

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700&family=Open+Sans:wght@400;700&display=swap");

:root {
  --nav-h: 112px;
  --content-max: 1240px;
  --content-pad: 32px;
}

@media (max-width: 991.98px) {
  :root {
    --nav-h: 106px;
  }
}

html {
  scroll-behavior: smooth;
}

body.oe-light :target,
body.oe-light section[id],
body.oe-light div[id] {
  scroll-margin-top: var(--nav-h);
}

body.oe-light {
  /* ---- ORION design tokens (scoped) ---- */
  --c-brand: #d60846;        /* ORION red */
  --c-brand-ink: #b50639;    /* hover/pressed red */
  --c-night: #00496f;        /* nightblue accent */
  --c-azure: #cde6f6;        /* soft blue surface */
  --c-pink: #f4d0d9;         /* soft pink surface */
  --c-green: #458221;        /* buy CTA */
  --c-green-ink: #549e28;
  --c-green-tint: #e7f7e0;
  --ink-strong: #333333;
  --ink: #444444;
  --muted: #76756f;
  --line: #e2dfdd;
  --line-soft: #efece9;
  --border-strong: #a09e9a;
  --tint: #f6f4f2;
  --card: #ffffff;
  --f-body: "Open Sans", Arial, Helvetica, sans-serif;
  --f-display: "Montserrat", "Open Sans", Arial, sans-serif;
  --fs-btn: 17px;
  --fs-label: 13px;
  --tilt: -5deg;
  --r-sm: 5px; --r-md: 10px; --r-lg: 16px; --r-pill: 999px;
  --sh-xs: 0 1px 2px rgba(29,27,28,.06);
  --sh-sm: 0 2px 8px rgba(29,27,28,.07);
  --sh-md: 0 6px 18px rgba(29,27,28,.10);
  --sh-lg: 0 14px 38px rgba(29,27,28,.14);
  --ring: 0 0 0 3px rgba(214,8,70,.30);

  /* ---- base ---- */
  background: #ffffff;
  color: var(--ink);
  font-family: var(--f-body);
  font-weight: 400;
  line-height: 1.6;
}
body.oe-light ::selection { background: var(--c-brand); color: #fff; }

/* Kill the dark atmospheric background entirely. */
body.oe-light .starfield,
body.oe-light .stars { display: none !important; }

body.oe-light h1, body.oe-light h2, body.oe-light h3,
body.oe-light h4, body.oe-light h5, body.oe-light h6 {
  font-family: var(--f-display); font-weight: 300; color: var(--ink-strong);
}
body.oe-light a { color: var(--c-brand); }

/* ============================ NAV ============================ */
body.oe-light nav {
  background: #fff;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border-bottom: 1px solid var(--line);
  padding: 18px max(var(--content-pad), calc((100vw - var(--content-max)) / 2 + var(--content-pad))) 13px;
}

/* ============================ ORDER PAGES ============================ */

body.oe-light .order-page,
body.oe-light .order-checkout-page {
  padding-top: 40px;
  padding-bottom: 80px;
}

body.oe-light .order-header {
  border-bottom: 1px solid var(--line);
}

body.oe-light .order-title {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--c-brand);
}

body.oe-light .order-product {
  border-bottom: 1px solid var(--line);
}

body.oe-light .order-product-name {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--ink-strong);
  transition: color 0.2s;
}

body.oe-light .product-detail-trigger:hover .order-product-name,
body.oe-light .product-detail-trigger:focus .order-product-name {
  color: var(--c-brand);
}

body.oe-light .order-product-meta {
  font-family: var(--f-body);
  color: var(--muted);
  opacity: 1;
}

body.oe-light .order-product-price {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--ink-strong);
}

body.oe-light .qty-stepper {
  border: 1px solid var(--border-strong);
  background: var(--tint);
}

body.oe-light .qty-minus,
body.oe-light .qty-plus {
  border: 1px solid var(--border-strong);
  color: var(--ink-strong);
}

body.oe-light .qty-minus:hover,
body.oe-light .qty-plus:hover {
  background: var(--c-azure);
  color: var(--c-night);
  border-color: var(--c-night);
}

body.oe-light .qty-input {
  color: var(--ink-strong);
  font-family: var(--f-display);
  font-weight: 700;
}

body.oe-light .order-total {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--ink-strong);
}

body.oe-light .order-total-vat {
  color: var(--muted);
}

/* Checkout Page Light Theme */
body.oe-light .checkout-summary {
  background: var(--tint);
  border: 1px solid var(--line);
  color: var(--ink);
}

body.oe-light .checkout-section-title {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--c-night);
}

body.oe-light .checkout-summary-row {
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--f-body);
}

body.oe-light .checkout-summary-name {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--ink-strong);
}

body.oe-light .checkout-summary-total {
  border-top: 1px solid var(--border-strong);
  color: var(--c-brand);
  font-family: var(--f-display);
  font-weight: 700;
}

body.oe-light .checkout-summary-vat {
  color: var(--muted);
}

body.oe-light .checkout-field-label {
  color: var(--c-night);
  font-weight: 700;
}

body.oe-light .checkout-input,
body.oe-light .checkout-select {
  background: #fff;
  border: 1px solid var(--border-strong);
  color: var(--ink-strong);
  font-family: var(--f-body);
}

body.oe-light .checkout-input:focus {
  border-color: var(--c-brand);
}

body.oe-light .checkout-readonly-row {
  border-bottom: 1px solid var(--line);
}

body.oe-light .checkout-readonly dt {
  color: var(--muted);
}

body.oe-light .checkout-readonly dd {
  color: var(--ink-strong);
}

body.oe-light .checkout-checkbox {
  color: var(--ink);
}

body.oe-light .checkout-subform {
  background: var(--c-azure);
  padding: 20px;
  border-radius: var(--r-md);
  margin-top: 16px;
}

body.oe-light .checkout-subform-title {
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--c-night);
  margin-bottom: 16px;
}

body.oe-light .choices__inner {
  background: #fff !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--ink-strong) !important;
  border-radius: 4px !important;
}

body.oe-light .choices__list--single .choices__item {
  color: var(--ink-strong) !important;
}

body.oe-light .order-reset-btn {
  background: transparent;
  border: 1px solid var(--border-strong);
  color: var(--ink);
  padding: 10px 18px;
  border-radius: var(--r-sm);
  font-family: var(--f-body);
  font-weight: 700;
  font-size: var(--fs-btn);
  cursor: pointer;
  transition: all .25s;
}

body.oe-light .order-reset-btn:hover {
  background: var(--tint);
  border-color: var(--muted);
}

/* Modal adjustments */
body.oe-light .bingo-modal__panel {
  background: #fff;
  color: var(--ink);
}

body.oe-light .bingo-modal__title {
  color: var(--c-brand);
}
body.oe-light nav {
  position: relative;
}
body.oe-light nav .brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
body.oe-light nav .brand a {
  display: inline-block;
  line-height: 0;
  border-bottom: 0;
  text-decoration: none;
}
body.oe-light nav .brand img { height: 64px; }
body.oe-light nav .brand-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 5px 8px;
  border-radius: var(--r-sm);
  background: var(--c-brand);
  color: #fff;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  transform: translateY(-6px);
}
body.oe-light nav ul { gap: 28px; }
body.oe-light nav a {
  font-family: var(--f-body);
  font-size: var(--fs-btn);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 700;
  color: var(--ink);
  opacity: 1;
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
  transition: color .25s, border-color .25s;
}
body.oe-light nav a:hover { color: var(--c-brand); border-bottom-color: var(--c-brand); }
body.oe-light nav .brand a:hover {
  border-bottom-color: transparent;
  text-decoration: none;
}
body.oe-light .nav-cta {
  padding: 10px 18px;
  background: var(--c-brand);
  border-radius: var(--r-sm);
  color: #fff !important;
  border-bottom: 0;
  font-weight: 700;
  font-size: var(--fs-btn);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  text-decoration: none;
}
body.oe-light .nav-cta:hover { background: var(--c-brand-ink); color: #fff !important; }
body.oe-light .nav-burger { display: none; }
body.oe-light .mobile-menu { display: none; }

/* Desktop (>940px): the inline nav links ARE the menu — the burger and the
   mobile dropdown must never show here. !important defeats any stray rule
   that leaves them visible and crams/wraps the nav. */
@media (min-width: 941px) {
  body.oe-light nav ul.nav-links { display: flex; }
  body.oe-light .nav-burger { display: none !important; }
  body.oe-light .mobile-menu { display: none !important; }
}

/* ============================ HERO ============================ */
body.oe-light .eyebrow,
body.oe-light .section-label,
body.oe-light .event-details .ed-eyebrow,
body.oe-light .event-details .ed-section-label,
body.oe-light .event-details .deep-card .kicker,
body.oe-light .event-details .status-chip,
body.oe-light .event-details .booking-detail-list .label {
  font-family: var(--f-body);
  font-weight: 700;
  text-transform: uppercase;
}
body.oe-light .eyebrow,
body.oe-light .section-label,
body.oe-light .event-details .ed-eyebrow,
body.oe-light .event-details .ed-section-label {
  font-size: 16px;
  letter-spacing: 0.08em;
  color: var(--c-brand);
}
body.oe-light .eyebrow { animation: none; opacity: 1; margin-bottom: 18px; gap: 10px; }
body.oe-light .eyebrow::before,
body.oe-light .section-label::before {
  content: ""; width: 24px; height: 2px; background: var(--c-brand);
}
body.oe-light .section-label::before { border-radius: 2px; }

body.oe-light h1.headline {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--ink-strong);
  margin-bottom: 28px;
  animation: none; opacity: 1;
}
body.oe-light h1.headline em { font-style: italic; font-weight: 300; color: var(--c-brand); }
body.oe-light h1.headline .red { color: var(--c-brand); font-weight: 700; font-style: normal; white-space: nowrap; }

body.oe-light .lede { color: var(--muted); font-size: 19px; animation: none; opacity: 1; }
body.oe-light .lede.show { opacity: 1; }
body.oe-light .cta-row {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  animation: none;
  opacity: 1;
}

/* Buttons */
body.oe-light .orion-btn-primary,
body.oe-light .orion-btn-secondary,
body.oe-light .event-details .ed-btn-primary {
  border-radius: var(--r-sm);
  font-family: var(--f-body);
  font-weight: 700;
  font-size: var(--fs-btn);
  letter-spacing: 0;
  text-transform: none;
}
body.oe-light .orion-btn-primary {
  background: var(--c-brand); color: #fff;
  padding: 15px 26px; min-height: 48px;
  box-shadow: none;
}
body.oe-light .orion-btn-primary:hover {
  background: var(--c-brand-ink); transform: translateY(-1px);
  box-shadow: var(--sh-md);
}
body.oe-light .orion-btn-secondary {
  background: transparent; color: var(--ink);
  border: 1px solid var(--border-strong, #a09e9a);
  padding: 15px 26px; min-height: 48px;
}
body.oe-light .orion-btn-secondary:hover {
  background: var(--tint); border-color: var(--muted); color: var(--ink);
  transform: translateY(-1px);
}
body.oe-light .orion-btn-secondary .arrow { transition: transform 0.3s; }
body.oe-light .orion-btn-secondary:hover .arrow { transform: translateX(4px); }

/* Hero side art — keep the constellation art readable on a warm panel */
body.oe-light .hero-art {
  background: linear-gradient(150deg, #caa18f 0%, #9c6f6b 48%, #6f5160 100%);
  border: 0; border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
  animation: none; opacity: 1;
}
@media (min-width: 992px) {
  body.oe-light .hero-art { transform: none; }
}
body.oe-light .hero {
  max-width: var(--content-max);
  margin: 0 auto;
  padding-top: 56px;
  padding-left: var(--content-pad);
  padding-right: var(--content-pad);
}
body.oe-light .hero-art::before {
  background: radial-gradient(circle at 70% 30%, rgba(255,255,255,.18) 0%, transparent 45%);
}
body.oe-light .hero-art-meta { color: rgba(255,255,255,.8); }

/* ============================ MARQUEE ============================ */
body.oe-light .marquee {
  background: var(--ink-strong);
  border-top: 0; border-bottom: 0;
}
body.oe-light .marquee-track {
  font-family: var(--f-display); font-style: normal; font-weight: 300;
  color: #fff; font-size: 22px;
}
body.oe-light .marquee-track span { color: #fff; }
body.oe-light .marquee-track span::after { content: "»"; color: var(--c-brand); font-weight: 700; }

/* ============================ SECTION HEADINGS ============================ */
body.oe-light .section-heading {
  font-family: var(--f-display); font-weight: 300; color: var(--ink-strong);
  letter-spacing: -0.015em;
}
body.oe-light .section-heading em { font-style: italic; color: var(--c-brand); }
body.oe-light .section-intro { color: var(--muted); opacity: 1; }

/* ============================ ABOUT ============================ */
body.oe-light .about-layout__image {
  background: linear-gradient(150deg, #caa18f, #6f5160);
  padding: 0; border-radius: var(--r-lg);
  box-shadow: var(--sh-md); filter: none; opacity: 1;
}
@media (min-width: 992px) {
  body.oe-light .about-layout__media {
    justify-content: flex-end;
    margin-right: 0;
  }
}
body.oe-light .about-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--sh-xs);
  transition: box-shadow .3s, transform .3s, border-color .3s;
}
body.oe-light .about-card:hover { border-color: var(--line); transform: translateY(-3px); box-shadow: var(--sh-md); }
body.oe-light .about-card .num { font-family: var(--f-display); font-weight: 700; font-size: 16px; color: var(--c-brand); }
body.oe-light .about-card h3 {
  font-family: var(--f-display);
  font-weight: 300;
  color: var(--ink-strong);
  min-height: 2.2em;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
body.oe-light .about-card h3 em { font-style: normal; font-weight: 700; color: var(--c-brand); }
body.oe-light .about-card p { color: var(--muted); opacity: 1; }

/* ============================ TOPICS / EVENT LIST ============================ */
body.oe-light .topics-section { background: none; }
body.oe-light .topic-item {
  grid-template-columns: auto 1fr auto;
  column-gap: 28px;
  background: var(--card);
  border: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px 26px;
  margin-bottom: 14px;
  box-shadow: var(--sh-xs);
  transition: box-shadow .3s, transform .3s, border-color .3s;
}
body.oe-light .topic-item:hover { padding-left: 26px; transform: translateY(-2px); box-shadow: var(--sh-md); }
body.oe-light .topic-item:hover h4 { color: var(--c-brand); }

/* Signature tilted red date block */
body.oe-light .topic-date {
  width: 74px; margin-right: 0;
  background: var(--c-brand); color: #fff;
  border-radius: var(--r-sm);
  padding: 10px 6px; text-align: center; line-height: 1;
  transform: rotate(var(--tilt)); box-shadow: var(--sh-sm);
}
body.oe-light .topic-date .day { font-family: var(--f-display); font-weight: 700; font-size: 30px; color: #fff; }
body.oe-light .topic-date .month { font-family: var(--f-display); font-weight: 700; font-size: 12px; letter-spacing: .14em; color: #fff; opacity: 1; margin-top: 4px; }
body.oe-light .topic-item:hover .topic-date .day { color: #fff; }

body.oe-light .topic-venue-badge {
  border: 0; background: var(--tint); color: var(--ink);
  opacity: 1; font-family: var(--f-body); font-weight: 700; font-size: 11px; letter-spacing: .04em;
}
body.oe-light .topic-venue-badge::before { background: var(--c-brand); }
body.oe-light .topic-venue-badge--date-changed { background: var(--c-brand); color: #fff; }
body.oe-light .topic-venue-badge--date-changed::before { background: #fff; box-shadow: none; }

body.oe-light .topic-content h4 { font-family: var(--f-display); font-weight: 400; color: var(--ink-strong); }
body.oe-light .topic-content h4 em { color: var(--c-brand); }
body.oe-light .topic-content p { color: var(--muted); opacity: 1; }
body.oe-light .topic-meta { color: var(--muted); opacity: 1; font-size: var(--fs-label); }
body.oe-light .topic-meta strong { font-family: var(--f-display); font-style: normal; color: var(--ink-strong); font-size: 15px; }
body.oe-light .topic-date-pill { display: none; }

/* Venue toggle (segmented) */
body.oe-light .topic-filter-bar { justify-content: flex-start; }
body.oe-light .venue-toggle { border: 1px solid var(--line); background: var(--tint); }
body.oe-light .venue-toggle button {
  color: var(--muted); opacity: 1; font-family: var(--f-body); font-weight: 700; font-size: var(--fs-label); letter-spacing: .02em;
}
body.oe-light .venue-toggle button:hover { color: var(--ink); }
body.oe-light .venue-toggle button.active { background: var(--c-brand); color: #fff; }
body.oe-light .filter-btn { border: 1px solid var(--line); background: var(--tint); color: var(--ink); }
body.oe-light .filter-btn:hover { background: var(--tint); border-color: var(--c-brand); color: var(--c-brand); }

/* ============================ LOCATIONS ============================ */
body.oe-light .locations-grid {
  padding-top: 4px;
  padding-bottom: 8px;
}
body.oe-light .location-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
}
body.oe-light .location-card::before { display: none; }
body.oe-light .location-card:hover { border-color: var(--line); transform: translateY(-3px); box-shadow: var(--sh-md); }
body.oe-light .location-card .city { font-family: var(--f-body); font-weight: 700; font-size: 14px; color: var(--muted); letter-spacing: .16em; }
body.oe-light .location-card h3 { font-family: var(--f-display); font-weight: 300; color: var(--ink-strong); }
body.oe-light .location-card h3 em { font-style: italic; color: var(--c-brand); }
body.oe-light .location-detail { color: var(--muted); }
body.oe-light .location-detail svg { color: var(--c-brand); }
body.oe-light .location-detail strong { font-family: var(--f-body); font-weight: 700; color: var(--ink-strong); letter-spacing: .04em; opacity: 1; }
body.oe-light .location-detail a { color: var(--muted); }
body.oe-light .location-detail a:hover { color: var(--c-brand); }
body.oe-light .location-detail .address-note {
  display: block;
  width: fit-content;
  margin-top: 6px;
  padding: 3px 9px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--tint);
  color: var(--ink);
  font-style: normal;
  line-height: 1.3;
}
body.oe-light .location-detail .maps-link { color: var(--c-brand); }
body.oe-light .location-detail .maps-link svg { color: var(--c-brand); }
body.oe-light .location-detail .maps-link:hover { color: var(--c-brand-ink); opacity: 1; }
body.oe-light .location-card .next-event {
  border-top: 1px solid var(--line);
  text-decoration: none;
  transition: background 0.3s ease, border-color 0.3s ease;
}
body.oe-light .location-card .next-event:hover {
  border-top-color: var(--c-brand);
}
body.oe-light .location-card .next-event:hover .next-event-date {
  color: var(--c-brand);
}
body.oe-light .next-event-label { font-size: 14px; color: var(--muted); opacity: 1; }
body.oe-light .next-event-date {
  font-family: var(--f-display);
  font-style: normal;
  font-weight: 700;
  color: var(--c-night);
  transition: color 0.3s ease;
}

/* ============================ FAQ ============================ */
body.oe-light .faq-item,
body.oe-light .faq-item.accordion-item {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 0;
  margin-bottom: 12px;
}
body.oe-light .faq-question,
body.oe-light .faq-question.accordion-button {
  font-family: var(--f-display); font-weight: 400; color: var(--ink-strong);
  padding: 22px 26px;
}
body.oe-light .faq-question:hover { color: var(--c-brand); }
body.oe-light .faq-icon {
  border: 0; background: var(--tint); color: var(--c-brand); width: 30px; height: 30px; font-size: 20px;
}
body.oe-light .accordion-button:not(.collapsed) .faq-icon { background: var(--c-brand); color: #fff; transform: rotate(45deg); }
body.oe-light .faq-answer,
body.oe-light .faq-answer.accordion-body { color: var(--muted); opacity: 1; padding: 0 26px 22px; }

/* ============================ HOST A TALK ============================ */
body.oe-light .host-section { background: none; }
body.oe-light .host-lede { color: var(--muted); opacity: 1; }

body.oe-light .host-offer-col {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  backdrop-filter: none;
}
body.oe-light .host-offer-col:nth-child(2) { background: var(--tint); border-color: var(--line); }
body.oe-light .host-offer-title {
  font-family: var(--f-display); font-style: normal; font-weight: 700; font-size: 1.25rem;
  color: var(--c-brand); border-bottom: 1px solid var(--line);
}
/* Bullets -> thin horizontal dividers (no dots, full-width text) */
body.oe-light .host-offer-list { gap: 0; }
body.oe-light .host-offer-list li {
  padding: 11px 0 11px; border-top: 1px solid var(--line);
  color: var(--ink);
}
body.oe-light .host-offer-list li:first-child { border-top: 0; padding-top: 0; }
body.oe-light .host-offer-list li::before { display: none; }

/* Host form -> light card */
body.oe-light .host-form {
  background: var(--tint);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
body.oe-light .host-form::before { display: none; }
body.oe-light .host-form-header h3 { font-family: var(--f-display); font-weight: 300; color: var(--ink-strong); }
body.oe-light .host-form-header h3 em { font-style: italic; color: var(--c-brand); }
body.oe-light .host-form-header p { color: var(--muted); opacity: 1; }
/* ============================ LOGIN PAGE ============================ */
body.oe-light { margin: 0; }
body.oe-light .login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  box-sizing: border-box;
}
body.oe-light .login-card {
  width: 100%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
body.oe-light .login-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 15px;
  color: var(--c-brand);
  text-decoration: none;
}
body.oe-light .login-back:hover { color: var(--c-brand-ink); }
body.oe-light .login-back .chev { font-size: 17px; line-height: 1; }
body.oe-light .login-head { display: flex; flex-direction: column; gap: 16px; }
body.oe-light .login-head img {
  display: block;
  height: auto;
  width: auto;
  max-width: 150px;
}
body.oe-light .login-head h1 {
  margin: 0;
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 30px;
  line-height: 1.1;
  color: var(--ink-strong);
}
body.oe-light .login-form { display: flex; flex-direction: column; gap: 18px; }
body.oe-light .login-form .form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
body.oe-light .login-form .form-field input { width: 100%; box-sizing: border-box; padding: 0 14px; }
body.oe-light .login-form .orion-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 4px;
  border: 0;
  cursor: pointer;
}
body.oe-light .form-field label { font-family: var(--f-body); font-weight: 700; color: var(--ink-strong); letter-spacing: .02em; text-transform: none; font-size: var(--fs-label); opacity: 1; }
body.oe-light .form-field input,
body.oe-light .form-field textarea,
body.oe-light .form-field select,
body.oe-light #oeEventForm .form-control,
body.oe-light #oeEventForm .form-select {
  background: #fff;
  border: 1px solid var(--border-strong, #a09e9a);
  border-radius: var(--r-sm);
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
  font-family: var(--f-body); font-weight: 400; font-size: 15px;
  min-height: 44px;
}
body.oe-light .form-field input::placeholder,
body.oe-light .form-field textarea::placeholder,
body.oe-light #oeEventForm .form-control::placeholder { color: var(--muted); font-style: normal; opacity: 1; }
body.oe-light .form-field input:focus,
body.oe-light .form-field textarea:focus,
body.oe-light .form-field select:focus,
body.oe-light #oeEventForm .form-control:focus,
body.oe-light #oeEventForm .form-select:focus {
  outline: none;
  border-color: var(--c-brand);
  background: #fff;
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
  box-shadow: var(--ring);
}
/* Neutralise the inline "has-value" azure tint from index.php on light bg */
body.oe-light #oeEventForm .form-control.has-value,
body.oe-light #oeEventForm .form-select.has-value {
  background: #fff;
  border-color: var(--border-strong, #a09e9a);
  color: var(--ink) !important;
}
body.oe-light .form-fineprint { color: var(--muted); opacity: 1; }
/* Locked venue (i) info button */
body.oe-light #oeEventForm .oe-venue-hardcoded {
  position: relative;
}
body.oe-light #oeEventForm .oe-venue-hardcoded .form-control {
  padding-right: 52px;
}
body.oe-light #oeEventForm .oe-venue-info-btn { border-color: var(--c-night); color: var(--c-night); }
body.oe-light #oeEventForm .oe-venue-info-btn {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 0 0 auto;
  border: 1px solid var(--c-night);
  border-radius: 50%;
  background: transparent;
  font-family: var(--f-body);
  font-style: italic;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
body.oe-light #oeEventForm .oe-venue-info-btn:hover { background: var(--c-night); color: #fff; }

/* ============================ FOOTER ============================ */
body.oe-light footer {
  background: var(--ink);
  border-top: 0;
  color: rgba(255,255,255,.8);
}
body.oe-light .footer-brand p { color: rgba(255,255,255,.78); opacity: 1; }
body.oe-light .footer-col h5 { font-family: var(--f-body); font-weight: 700; color: #fff; letter-spacing: .04em; }
body.oe-light .footer-col a, body.oe-light .footer-col p { color: rgba(255,255,255,.8); opacity: 1; }
body.oe-light .footer-col a:hover { color: #fff; }
body.oe-light .footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.55); }
body.oe-light .footer-bottom a { color: rgba(255,255,255,.7); }
body.oe-light .footer-bottom a:hover { color: #fff; }

body.oe-light .marquee,
body.oe-light .marquee-wrap { overflow: hidden; }

@media (max-width: 980px){
  /* Trim the oversized top gap that clears the desktop navbar */
  body.oe-light .hero { padding-left: 20px; padding-right: 20px; padding-top: 56px; }
  body.oe-light .mb-7 { margin-bottom: 56px !important; }
  /* Kill Bootstrap gutters so the image edges line up with the text edges */
  body.oe-light .hero .row { --bs-gutter-x: 0; row-gap: 28px; }
  body.oe-light h1.headline { font-size: clamp(34px, 8vw, 48px); line-height: 1.1; }

  /* HERO image: AFTER the text, full width, portrait 3:4.
     The wrapper owns the portrait box so the base aspect-ratio/size rules can't fight it. */
  body.oe-light .hero .hero-art.d-none {
    display: block !important; order: 0; position: relative;
    width: 100%; aspect-ratio: 3 / 4 !important;
    overflow: hidden; border-radius: var(--r-lg);
  }
  body.oe-light .hero .hero-art .hero-image,
  body.oe-light .hero .hero-art img {
    position: absolute; inset: 0;
    width: 100% !important; height: 100% !important; display: block;
    object-fit: cover; aspect-ratio: auto !important; border-radius: 0;
  }

  /* ABOUT image: AFTER the text (override base order:-1), full width, portrait 3:4 */
  body.oe-light .about-layout { grid-template-columns: 1fr; gap: 28px; }
  body.oe-light .about-layout__media {
    order: 0; margin: 0; min-height: 0;
    justify-content: stretch; align-items: stretch;
  }
  body.oe-light .about-layout__image {
    width: 100%; max-width: none; height: auto; display: block;
    aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--r-lg);
    opacity: 1; filter: none;
  }
  body.oe-light .about-layout__text { min-height: 0; }
  body.oe-light .reveal { opacity: 1 !important; transform: none !important; }

  body.oe-light .about-carousel { overflow: visible; }
  body.oe-light .about-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 940px){
  body.oe-light nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-left: 20px;
    padding-right: 20px;
    overflow-x: clip;
  }

  body.oe-light nav ul.nav-links,
  body.oe-light nav .nav-cta,
  body.oe-light nav .brand-badge { display: none; }

  body.oe-light .nav-burger {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 0 9px;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: #fff;
    cursor: pointer;
    flex: 0 0 auto;
  }
  body.oe-light .nav-burger span {
    height: 2px;
    width: 100%;
    background: var(--ink-strong);
    border-radius: 2px;
    transition: transform .25s, opacity .2s;
  }
  body.oe-light .nav-burger.is-open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
  body.oe-light .nav-burger.is-open span:nth-child(2){ opacity: 0; }
  body.oe-light .nav-burger.is-open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

  body.oe-light .mobile-menu {
    background: #fff;
    border-top: 1px solid var(--line);
    animation: oe-menu-in .26s ease;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 30;
  }
  body.oe-light .mobile-menu.is-open { display: block; }
  body.oe-light .mobile-menu ul {
    display: block;
    flex-direction: column;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 8px 24px 18px;
  }
  /* Override base `nav ul li:not(:last-child){display:none}` (<=768px), which
     otherwise hides every mobile-menu link except the last (FAQ). */
  body.oe-light .mobile-menu li { display: block; border-bottom: 1px solid var(--line); }
  body.oe-light .mobile-menu li:last-child { border-bottom: 0; }
  body.oe-light .mobile-menu a {
    display: block;
    padding: 15px 2px;
    color: var(--ink);
    font-family: var(--f-body);
    font-weight: 700;
    font-size: 18px;
    text-decoration: none;
  }
  body.oe-light .mobile-menu a:hover { color: var(--c-brand); }
}

@media (max-width: 820px){
  body.oe-light #about,
  body.oe-light #about-cards,
  body.oe-light .topics-section,
  body.oe-light #locations,
  body.oe-light #host-talk,
  body.oe-light #faq { padding-left: 0; padding-right: 0; }

  body.oe-light .locations-carousel { overflow: visible; margin-left: 0; margin-right: 0; }
  body.oe-light .locations-carousel .simplebar-content { display: block; }
  body.oe-light .locations-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
    grid-template-columns: none;
    padding: 0;
  }
  body.oe-light .locations-grid > .location-card {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
    scroll-snap-align: none;
  }
  body.oe-light .location-card { padding: 32px 26px; }
  body.oe-light .location-card .next-event { align-items: baseline; gap: 18px; }
  body.oe-light .next-event-label { white-space: nowrap; }

  body.oe-light .host-grid { row-gap: 32px; }
}

@media (max-width: 560px){
  body.oe-light :where(.hero, #about .wrap, #about-cards .wrap, .topics-section .wrap,
    #locations .wrap, #host-talk .wrap, #faq .wrap) {
    padding-left: 20px;
    padding-right: 20px;
  }
  body.oe-light .cta-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  body.oe-light .cta-row .orion-btn-primary,
  body.oe-light .cta-row .orion-btn-secondary {
    width: 100%;
    justify-content: center;
  }
  body.oe-light .about-grid { grid-template-columns: 1fr; }
  body.oe-light .topic-item { grid-template-columns: 1fr; gap: 12px; }
  body.oe-light .topic-date { display: none; }
  body.oe-light .topic-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
  }
  body.oe-light .topic-content h4 { margin: 0; }
  body.oe-light .topic-content p { margin: 0; }
  body.oe-light .topic-date-pill {
    display: flex;
    width: max-content;
    align-items: center;
    background: var(--c-brand);
    color: #fff;
    font-family: var(--f-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 6px 13px;
    border-radius: var(--r-pill);
  }
  body.oe-light .topic-meta { grid-column: 1 / -1; }
}

@keyframes oe-menu-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

/* ============================================================================
   EVENT DETAILS PAGE
   ============================================================================ */

body.oe-light .event-details {
  padding-top: 28px;
}

/* Full-width cover banner. Two layouts supported:
   (A) RECOMMENDED — wrap the existing .cover-frame + .event-header in
       <div class="ed-hero">…</div>  (image sits above the title).
   (B) FALLBACK (no markup change) — .cover-banner/.cover-frame styles below. */
body.oe-light .event-details .ed-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  max-width: var(--content-max);
  margin: 28px auto 0;
  align-items: start;
  padding: 0 var(--content-pad);
  box-sizing: border-box;
}
body.oe-light .event-details .body-grid {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--content-pad);
  box-sizing: border-box;
}
body.oe-light .event-details .body-section {
  padding-bottom: 0;
}
body.oe-light .event-details .ed-hero .cover-frame {
  position: relative;
  aspect-ratio: 21 / 9;
  width: 100%;
  max-width: none;
  border: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: linear-gradient(150deg, #caa18f, #6f5160);
}
body.oe-light .event-details .ed-hero .cover-frame img,
body.oe-light .event-details .ed-hero .cover-frame video,
body.oe-light .event-details .ed-hero .cover-frame .cover-fallback {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 1.2s ease;
}
body.oe-light .event-details .ed-hero .cover-frame video.video-secondary {
  position: absolute;
  top: 0;
  left: 0;
}
body.oe-light .event-details .ed-hero .cover-frame video.is-fading {
  opacity: 0;
}
body.oe-light .event-details .cover-frame .cover-fahne {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 10;
}
body.oe-light .event-details .cover-frame .orion-info-fahne {
  display: inline-block;
  transform: rotate(-5deg);
  background: var(--c-brand);
  color: #fff;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  letter-spacing: .02em;
  padding: 12px 18px;
  border-radius: var(--r-sm);
  box-shadow: 0 6px 18px -8px rgba(0,0,0,.5);
  white-space: nowrap;
}
body.oe-light .event-details .ed-hero .event-header {
  padding: 0;
  margin: 0;
  justify-self: start;
  width: 60%;
  max-width: none;
}
@media (max-width: 760px) {
  body.oe-light .event-details .ed-hero { gap: 28px; margin-top: 28px; }
  body.oe-light .event-details .ed-hero .cover-frame { aspect-ratio: 4 / 3; max-width: none; }
  body.oe-light .event-details .ed-hero .event-header { width: 100%; max-width: 100%; }
}
/* Fallback when .ed-hero is NOT used */
body.oe-light .event-details .cover-banner { max-width: 360px; margin: 150px 0 0 32px; padding: 0; }
body.oe-light .event-details .cover-frame {
  aspect-ratio: 3 / 4;
  border: 0; border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
  background: linear-gradient(150deg, #caa18f, #6f5160);
}

body.oe-light .event-details .ed-eyebrow {
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--c-brand);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
body.oe-light .event-details .ed-eyebrow::before { background: var(--c-brand); }
body.oe-light .event-details .ed-eyebrow .sep { color: var(--muted); }
body.oe-light .event-details .status-chip {
  border: 0; background: var(--c-green-tint); color: var(--c-green);
  font-size: var(--fs-label);
  letter-spacing: .04em;
  padding: 5px 12px;
  border-radius: 999px;
}
body.oe-light .event-details .status-chip::before { background: var(--c-green); box-shadow: none; animation: none; }
body.oe-light .event-details h1.event-title {
  font-family: var(--f-display);
  font-weight: 300;
  font-style: normal;
  font-size: clamp(30px, 4.4vw, 40px);
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--ink-strong);
  width: 100%;
  max-width: none;
  margin: 0 0 14px;
}
body.oe-light .event-details .event-lead {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.6;
  color: var(--ink);
  opacity: 1;
  width: 100%;
  max-width: none;
  margin: 0;
}

body.oe-light .event-details .body-content {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.7;
  color: var(--ink);
  opacity: 1;
}
body.oe-light .event-details .body-content p {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.7;
  color: var(--ink);
  opacity: 1;
}
body.oe-light .event-details .body-content h2,
body.oe-light .event-details .body-content h3 { font-family: var(--f-display); font-style: normal; color: var(--ink-strong); }
body.oe-light .event-details .body-content em { color: var(--muted); }
body.oe-light .event-details .body-content em.callout {
  background: var(--tint); border-left: 2px solid var(--c-brand);
  font-family: var(--f-display); color: var(--ink-strong); border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
body.oe-light .event-details .body-content ul li::before { color: var(--c-brand); }
body.oe-light .event-details .body-content a { color: var(--c-brand); border-bottom-color: rgba(214,8,70,.3); }
body.oe-light .event-details .body-content a:hover { border-bottom-color: var(--c-brand); }

body.oe-light .event-details .ed-tag {
  border: 0; background: var(--c-pink); color: var(--c-brand-ink); opacity: 1;
  font-family: var(--f-body); font-weight: 700;
  font-size: var(--fs-label);
  letter-spacing: .04em;
  padding: 6px 14px;
  border-radius: 999px;
}
body.oe-light .event-details .ed-tag:hover { background: var(--c-pink); color: var(--c-brand-ink); }
body.oe-light .event-details .ed-section-label {
  color: var(--c-brand);
  font-size: var(--fs-label);
  letter-spacing: .08em;
}
body.oe-light .event-details .ed-section-label::before { content: ""; width: 24px; height: 2px; background: var(--c-brand); border-radius: 2px; }

/* Booking card */
body.oe-light .event-details .booking-card {
  background: var(--tint);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 28px;
  position: sticky;
  top: 100px;
  box-shadow: var(--sh-sm);
}
body.oe-light .event-details .booking-card::before { display: none; }
body.oe-light .event-details .booking-card .price {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 40px;
  line-height: 1;
  color: var(--c-brand);
}
body.oe-light .event-details .booking-card .currency {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 18px;
  color: var(--c-brand);
}
body.oe-light .event-details .booking-card .price-note {
  color: var(--muted);
  opacity: 1;
  font-family: var(--f-body);
  font-size: 14px;
}
/* "Køb billet" = commerce action -> ORION green buy button */
body.oe-light .event-details .ed-btn-primary {
  background: var(--c-green); color: #fff;
  width: 100%;
}
body.oe-light .event-details .ed-btn-primary:hover { background: var(--c-green-ink); box-shadow: var(--sh-md); }
body.oe-light .event-details .booking-detail-list { border-top: 1px solid var(--line); }
body.oe-light .event-details .booking-detail-list li { border-bottom: 1px solid var(--line-soft); }
body.oe-light .event-details .booking-detail-list svg { color: var(--c-brand); }
body.oe-light .event-details .booking-detail-list .label {
  color: var(--muted);
  opacity: 1;
  font-size: 12px;
  letter-spacing: .08em;
}
body.oe-light .event-details .booking-detail-list .value { font-family: var(--f-display); font-weight: 400; color: var(--ink-strong); }
body.oe-light .event-details .booking-detail-list .value--datetime {
  margin-top: 6px;
}
body.oe-light .event-details .booking-detail-list .value--datetime .dt-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.oe-light .event-details .booking-detail-list .value--datetime .dt-label {
  color: var(--ink-strong);
  opacity: 1;
}
body.oe-light .event-details .booking-detail-list .value a { color: var(--c-brand); border-bottom-color: rgba(214,8,70,.3); }
body.oe-light .event-details .add-to-calendar-toggle { border: 1px solid var(--line); color: var(--c-night); font-family: var(--f-body); font-weight: 700; letter-spacing: 0; text-transform: none; font-size: var(--fs-btn); }
body.oe-light .event-details .add-to-calendar-toggle:hover { border-color: var(--c-brand); color: var(--c-brand); }
body.oe-light .event-details .add-to-calendar-options a { color: var(--ink); border: 1px solid var(--line); border-radius: var(--r-sm); font-family: var(--f-body); letter-spacing: 0; text-transform: none; opacity: 1; font-size: var(--fs-btn); }
body.oe-light .event-details .add-to-calendar-options a:hover { background: #fff; border-color: var(--c-brand); color: var(--c-brand); }

/* Organizer + venue cards */
body.oe-light .event-details .deep-section {
  padding-top: 0;
  background: none;
}
body.oe-light .event-details .deep-grid {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--content-pad);
  box-sizing: border-box;
  align-items: start;
}
body.oe-light .event-details .deep-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--sh-xs, 0 1px 2px rgba(0,0,0,.04));
  padding: 32px;
  overflow: hidden;
}
body.oe-light .event-details .deep-card::before,
body.oe-light .event-details .deep-card::after {
  display: none;
  content: none;
}
body.oe-light .event-details .deep-card .kicker {
  font-size: 12px;
  letter-spacing: .14em;
  color: var(--muted);
}
body.oe-light .event-details .deep-card h3 {
  font-family: var(--f-display);
  font-weight: 300;
  font-style: normal;
  font-size: 28px;
  line-height: 1.15;
  color: var(--ink-strong);
  margin: 8px 0 12px;
}
body.oe-light .event-details .deep-card .description {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.6;
}
body.oe-light .event-details .deep-card .meta-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
}
body.oe-light .event-details .deep-card .meta-list li {
  display: flex;
  gap: 11px;
  align-items: center;
  font-size: 14px;
  color: var(--muted);
}
body.oe-light .event-details .deep-card .meta-list li:first-child { align-items: flex-start; }
body.oe-light .event-details .deep-card .meta-list span { color: var(--muted); }
body.oe-light .event-details .deep-card .meta-list svg {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--c-brand);
  margin-top: 2px;
}
body.oe-light .event-details .deep-card .meta-list a {
  color: var(--c-brand);
  text-decoration: none;
}
body.oe-light .event-details .deep-card .meta-list a:hover { text-decoration: underline; }

/* Mobile sticky booking bar */
body.oe-light .event-details .mobile-booking-bar {
  background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -4px 18px rgba(29,27,28,.08);
}
body.oe-light .event-details .mobile-booking-bar .price-mini { font-family: var(--f-display); color: var(--ink-strong); }
body.oe-light .event-details .mobile-booking-bar .price-mini .lbl { color: var(--muted); opacity: 1; }
body.oe-light .event-details .mobile-booking-bar .ed-btn-primary { background: var(--c-green); }

/* event-not-found splash */
body.oe-light .event-not-found .section-heading { color: var(--ink-strong); }
body.oe-light .event-not-found .section-heading em { color: var(--c-brand); }

/* ============================================================================
   SHARED MODALS (contact / success / availability / venue-info)
   These are defined inline in html-footer.php with azure surfaces; here we just
   harmonise the typography to the ORION system. Surfaces stay light.
   ============================================================================ */
body.oe-light .contact-modal-inner h3,
body.oe-light .contact-success-inner h3,
body.oe-light .oe-availability-inner h3 { font-family: var(--f-display); font-weight: 300; }
body.oe-light .contact-modal-inner h3 em,
body.oe-light .contact-success-inner h3 em { font-style: italic; color: var(--c-brand); }
body.oe-light .contact-modal-inner .city,
body.oe-light .contact-success-inner .city { font-family: var(--f-body); font-weight: 700; letter-spacing: .14em; color: var(--c-brand); }
body.oe-light .contact-form label { font-family: var(--f-body); font-weight: 700; letter-spacing: .02em; text-transform: none; }


/* ============================ FESTIVAL HERO (full-bleed photo) ============================ */
body.oe-light .fest-hero{ position:relative; min-height:clamp(560px,82vh,780px); overflow:hidden; }
body.oe-light .fest-hero__bg{ position:absolute; inset:0; background:url("/files/landing/1/20250702_095544_49E821.jpeg") center 36% / cover no-repeat; }
body.oe-light .fest-hero__scrim{ position:absolute; inset:0; background:
  linear-gradient(to top, rgba(20,16,18,.55) 0%, rgba(20,16,18,0) 52%),
  linear-gradient(100deg, rgba(20,16,18,.86) 0%, rgba(20,16,18,.64) 34%, rgba(20,16,18,.24) 62%, rgba(20,16,18,0) 100%); }
body.oe-light .fest-hero__inner{ position:relative; z-index:2; }
body.oe-light .fest-hero__badge{ background:#ee7203; font-size:14px; letter-spacing:.08em; border-radius:var(--r-sm); transform:rotate(var(--tilt)); box-shadow:var(--sh-sm); }
body.oe-light .fest-hero__title{ font-size:clamp(42px,6.6vw,86px); line-height:1.0; letter-spacing:-.02em; max-width:15ch; text-shadow:0 2px 26px rgba(0,0,0,.3); }
body.oe-light .fest-hero__title em{ font-style:italic; font-weight:700; color:#fff; }
body.oe-light .fest-hero__lede{ color:rgba(255,255,255,.94); font-size:clamp(17px,1.5vw,21px); line-height:1.55; max-width:580px; text-shadow:0 1px 10px rgba(0,0,0,.28); }
body.oe-light .fest-hero__lede strong{ font-weight:700; color:#fff; }
body.oe-light .fest-hero__cta a,
body.oe-light .fest-hero__cta button{ display:inline-flex; align-items:center; justify-content:center; border-radius:var(--r-sm); font-family:var(--f-body); font-weight:700; font-size:var(--fs-btn); padding:15px 26px; min-height:52px; text-decoration:none; transition:transform .25s, box-shadow .25s, background .25s, color .25s; border:0; }
body.oe-light .fest-hero__cta button{ cursor:pointer; }
body.oe-light .fest-hero__cta a .arrow,
body.oe-light .fest-hero__cta button .arrow{ transition:transform .3s; }
body.oe-light .fest-hero__cta a:hover .arrow,
body.oe-light .fest-hero__cta button:hover .arrow{ transform:translateX(4px); }
body.oe-light .fest-hero__btn--light{ background:#fff; color:var(--ink-strong); }
body.oe-light .fest-hero__btn--light:hover{ transform:translateY(-1px); box-shadow:var(--sh-md); }
body.oe-light .fest-hero__btn--dark{ background:var(--ink); color:#fff; }
body.oe-light .fest-hero__btn--dark:hover{ background:var(--ink-strong); transform:translateY(-1px); box-shadow:var(--sh-md); }
@media (max-width:560px){ body.oe-light .fest-hero__cta{ flex-direction:column; align-items:stretch; } body.oe-light .fest-hero__cta a, body.oe-light .fest-hero__cta button{ width:100%; } }

body.oe-light .fest-hero__logo{ width:auto; display:block; }
body.oe-light .fest-hero__logo--orion{ height:38px; }
body.oe-light .fest-hero__logo--sex{ height:38px; }
body.oe-light .fest-hero__x{ font-size:26px; color:rgba(255,255,255,.6); line-height:1; }
@media (max-width:560px){ body.oe-light .fest-hero__logo--orion{ height:32px; } body.oe-light .fest-hero__logo--sex{ height:32px; } }
body.oe-light .modal-backdrop.show{ z-index: 20000; }
body.oe-light .fest-hero-modal{ z-index: 20010; }
body.oe-light .lg-container,
body.oe-light .lg-outer{
  --lg-icon-color:#000000;
  --lg-icon-hover-color:#000000;
  --lg-icon-bg:transparent;
  --lg-icon-hover-bg:transparent;
  --lg-next-prev-bg:transparent;
  --lg-next-prev-color:#000000;
  --lg-next-prev-hover-color:#000000;
  --lg-toolbar-bg:rgba(255,255,255,.94);
  --lg-backdrop-opacity:1;
}
body.oe-light .lg-backdrop{ background:#ffffff; }
body.oe-light .lg-outer{ background:#ffffff; color:var(--ink-strong); }
body.oe-light .lg-toolbar{ background:rgba(255,255,255,.94); }
body.oe-light .lg-toolbar .lg-icon,
body.oe-light .lg-actions .lg-next,
body.oe-light .lg-actions .lg-prev,
body.oe-light .lg-sub-html,
body.oe-light .lg-counter{ color:var(--ink-strong); }
body.oe-light .lg-next,
body.oe-light .lg-prev,
body.oe-light .lg-actions .lg-next,
body.oe-light .lg-actions .lg-prev{
  color:#000000 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  opacity:1 !important;
}
body.oe-light .lg-next:hover,
body.oe-light .lg-prev:hover,
body.oe-light .lg-actions .lg-next:hover,
body.oe-light .lg-actions .lg-prev:hover{
  color:#000000 !important;
  background:transparent !important;
  opacity:1 !important;
}
body.oe-light .lg-next::before,
body.oe-light .lg-prev::before,
body.oe-light .lg-next::after,
body.oe-light .lg-prev::after,
body.oe-light .lg-actions .lg-next::before,
body.oe-light .lg-actions .lg-prev::before,
body.oe-light .lg-actions .lg-next::after,
body.oe-light .lg-actions .lg-prev::after{
  color:#000000 !important;
  opacity:1 !important;
}
body.oe-light .lg-sub-html{ background:rgba(255,255,255,.94) !important; }
body.oe-light .lg-thumb-outer{ background:#f6f4f2 !important; }
body.oe-light .lg-thumb-item{ border-color:#d8d4d1; }
body.oe-light .lg-thumb-item:hover,
body.oe-light .lg-thumb-item.active{ border-color:var(--c-brand); }

/* ============================ FESTIVAL TIPS ============================ */
body.oe-light .fest-tips__eyebrow{ font-size:13px; letter-spacing:.08em; }
body.oe-light .fest-tips__eyebrow::before{ content:""; width:24px; height:2px; background:var(--c-brand); border-radius:2px; }
body.oe-light .fest-tips__heading{ font-size:clamp(32px,4.4vw,56px); line-height:1.03; letter-spacing:-.015em; max-width:16ch; }
body.oe-light .fest-tips__heading em{ font-style:italic; font-weight:700; color:var(--c-brand); }
body.oe-light .fest-tips__lede{ font-size:18px; max-width:620px; }
body.oe-light .fest-tips__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); }
body.oe-light .fest-tips__card{ border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--sh-xs); transition:box-shadow .3s, transform .3s; }
body.oe-light .fest-tips__card:hover{ box-shadow:var(--sh-md); transform:translateY(-3px); }
body.oe-light .fest-tips__num{ flex:none; width:56px; height:56px; font-size:28px; border-radius:var(--r-sm); transform:rotate(var(--tilt)); box-shadow:var(--sh-sm); }
body.oe-light .fest-tips__title{ font-size:21px; line-height:1.15; }
body.oe-light .fest-tips__body{ line-height:1.65; }

/* ============================ HVEM ER VI ============================ */
body.oe-light .fest-about__eyebrow{ font-size:13px; letter-spacing:.08em; }
body.oe-light .fest-about__eyebrow::before{ content:""; width:24px; height:2px; background:var(--c-brand); border-radius:2px; }
body.oe-light .fest-about__heading{ font-size:clamp(30px,4vw,52px); line-height:1.05; letter-spacing:-.015em; max-width:18ch; }
body.oe-light .fest-about__heading em{ font-style:italic; font-weight:700; color:var(--c-brand); }
body.oe-light .fest-about__lede{ font-size:18px; max-width:620px; }
body.oe-light .fest-about__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); }
body.oe-light .fest-about__card{ border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--sh-xs); }
body.oe-light .fest-about__kicker{ font-size:12px; letter-spacing:.08em; }
body.oe-light .fest-about__name{ font-size:28px; }
body.oe-light .fest-about__body{ line-height:1.65; }

/* ============================ SAMMEN VIL VI ============================ */
body.oe-light .fest-together__wrap{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }
body.oe-light .fest-together__eyebrow{ font-size:13px; letter-spacing:.08em; }
body.oe-light .fest-together__eyebrow::before{ content:""; width:24px; height:2px; background:var(--c-brand); border-radius:2px; }
body.oe-light .fest-together__statement{ font-size:clamp(26px,3vw,42px); line-height:1.22; }
body.oe-light .fest-together__statement em{ font-style:italic; font-weight:700; color:var(--c-brand); }
body.oe-light .fest-together__frame{ position:relative; max-width:440px; aspect-ratio:3/4; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); }
body.oe-light .fest-together__frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
body.oe-light .es-factbox{
  width:100%;
  max-width:560px;
  background:#f6f4f2;
  border:1px solid #e2dfdd;
  border-radius:16px;
  padding:clamp(32px,3.5vw,44px) clamp(28px,3vw,40px);
}
body.oe-light .es-eyebrow{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
body.oe-light .es-rule{ width:24px; height:2px; background:#d60846; }
body.oe-light .es-eyebrow-text{
  font-family:var(--f-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#d60846;
}
body.oe-light .es-group-title{
  font-family:var(--f-display);
  font-weight:300;
  color:#333;
  font-size:clamp(24px,2.4vw,30px);
  line-height:1.15;
  margin:0 0 14px;
}
body.oe-light .es-group-title + .es-list{ margin-top:0; }
body.oe-light .es-list + .es-group-title{ margin-top:34px; }
body.oe-light .es-list{ list-style:none; margin:0; padding:0; }
body.oe-light .es-list li{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 0;
  border-top:1px solid #efece9;
  color:#444;
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.5;
}
body.oe-light .es-list li i{
  color:#d60846;
  font-size:15px;
  width:20px;
  text-align:center;
  flex:none;
}
body.oe-light .es-list li.es-li-top{ align-items:baseline; }
body.oe-light .es-list li.es-li-top i{ position:relative; top:3px; }
body.oe-light .es-list li small{
  display:block;
  color:#76756f;
  font-size:13px;
}
@media (max-width: 991px){
  body.oe-light .es-factbox{ max-width:none; }
}
@media (max-width: 767px){
  body.oe-light .es-factbox{ padding:28px 24px; }
}

/* ============================ VIND / KONKURRENCE ============================ */
body.oe-light .fest-vind__wrap{ max-width:720px; }
body.oe-light .fest-vind__eyebrow{ font-size:13px; letter-spacing:.1em; color:rgba(255,255,255,.85); }
body.oe-light .fest-vind__heading{ font-size:clamp(32px,4.8vw,62px); line-height:1.04; }
body.oe-light .fest-vind__heading em{ font-style:italic; font-weight:700; color:#fff; }
body.oe-light .fest-vind__lede{ color:rgba(255,255,255,.92); font-size:clamp(17px,1.5vw,20px); line-height:1.55; max-width:560px; }
body.oe-light .fest-vind__btn{ display:inline-flex; align-items:center; justify-content:center; background:#fff; color:var(--ink-strong); border-radius:var(--r-sm); font-family:var(--f-body); font-weight:700; font-size:var(--fs-btn); padding:15px 26px; min-height:52px; text-decoration:none; transition:transform .25s, box-shadow .25s; }
body.oe-light .fest-vind__btn:hover{ transform:translateY(-1px); box-shadow:var(--sh-md); }
@media (max-width:560px){ body.oe-light .fest-vind__btn{ width:100%; } }

@media (max-width:560px){
  body.oe-light .fest-tips__grid,
  body.oe-light .fest-about__grid{ grid-template-columns:minmax(0,1fr); }
}

/* ============================ FACT SLIDER ============================ */
body.oe-light .fact-slider{
  background:#fff;
}
body.oe-light .fact-slider__container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding-left:32px;
  padding-right:32px;
}
body.oe-light .fact-slider__header{
  gap:24px;
  margin-bottom:40px;
  flex-wrap:wrap;
}
body.oe-light .fact-slider__title{
  font-family:var(--f-display);
  font-weight:700;
  color:#00496f;
  font-size:clamp(30px, 4.2vw, 48px);
  line-height:1.08;
  letter-spacing:-.01em;
  max-width:18ch;
}
body.oe-light .fact-slider__arrows{ flex-shrink:0; }
body.oe-light .fact-slider__arrow{
  width:50px;
  height:50px;
  border-radius:999px;
  border:1px solid #e2dfdd;
  background:#fff;
  color:#00496f;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
  transition:color .3s ease, border-color .3s ease;
}
body.oe-light .fact-slider__arrow:hover{
  color:#d60846;
  border-color:#d60846;
}
body.oe-light .fact-slider__arrow:disabled{
  color:#b8b4b1;
  border-color:#e2dfdd;
  cursor:not-allowed;
}
body.oe-light .fact-slider__arrow:disabled:hover{
  color:#b8b4b1;
  border-color:#e2dfdd;
}
body.oe-light .fact-slider__track{
  display:flex;
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
body.oe-light .fact-slider__track::-webkit-scrollbar{ display:none; }
body.oe-light .fact-slider__slide{
  flex:0 0 calc((100% - ((var(--fact-slider-cols, 3) - 1) * 24px)) / var(--fact-slider-cols, 3));
  min-width:300px;
  scroll-snap-align:start;
}
body.oe-light .fact-slider__card{
  background:#f6f4f2;
  border:none;
  border-radius:10px;
  box-shadow:none;
}
body.oe-light .fact-slider__card-body{ padding:34px 32px; }
body.oe-light .fact-slider__card--plain{
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
}
body.oe-light .fact-slider__card--plain .fact-slider__card-body{ padding:0; }
body.oe-light .fact-slider__num{
  width:48px;
  height:48px;
  margin-bottom:26px;
  border-radius:999px;
  border:1.5px dashed #d60846;
  color:#d60846;
  font-family:var(--f-display);
  font-weight:700;
  font-size:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
body.oe-light .fact-slider__icon{
  margin-bottom:20px;
  color:#00496f;
  font-size:28px;
  line-height:1;
}
body.oe-light .fact-slider__card-title{
  margin:0 0 14px;
  font-family:var(--f-display);
  font-weight:700;
  font-size:21px;
  line-height:1.2;
  color:#00496f;
}
body.oe-light .fact-slider__card-body-text{
  font-family:var(--f-body);
  font-weight:400;
  font-size:15.5px;
  line-height:1.65;
  color:#76756f;
}
@media (max-width: 991px){
  body.oe-light .fact-slider__slide{ flex-basis:calc((100% - 24px) / 2); }
}
@media (max-width: 767px){
  body.oe-light .fact-slider__container{ padding-left:20px; padding-right:20px; }
  body.oe-light .fact-slider__slide{ flex-basis:100%; }
}

/* ============================ CLOSING BAND ============================ */
body.oe-light .fest-outro{ border:0; }
body.oe-light .fest-outro__tagline{ font-size:clamp(28px,3.4vw,44px); line-height:1.28; max-width:640px; text-wrap:balance; }
body.oe-light .fest-outro__tagline em{ font-style:normal; font-weight:700; color:var(--c-brand); }
body.oe-light .fest-outro__follow{ display:flex; gap:48px; flex-wrap:wrap; justify-content:center; margin-top:32px; }
body.oe-light .fest-outro__label{ display:block; margin-bottom:12px; font-family:var(--f-body); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:#fff; }
body.oe-light .fest-outro__links{ display:flex; gap:10px; justify-content:center; }
body.oe-light .fest-outro__links a{ display:inline-flex; align-items:center; padding:9px 16px; border:1px solid rgba(255,255,255,.22); border-radius:var(--r-pill); color:#fff; font-family:var(--f-body); font-weight:700; font-size:14px; text-decoration:none; transition:border-color .25s, background .25s; }
body.oe-light .fest-outro__links a:hover{ border-color:#fff; background:rgba(255,255,255,.08); }

/* ============================ DESIGN-SYSTEM UTILITIES (ORION light) ============================
   Unprefixed, Bootstrap-style helpers mapped to ORION tokens. Scoped under body.oe-light so they
   never leak to bingo / order / checkout. !important so a helper beats an equally-specific
   component rule by source order. Steps 0-5 are stock Bootstrap and are NOT redefined here. */

/* extended spacing scale (house scale: 6=64, 7=80, 8=96) */
body.oe-light .m-6  { margin: 64px !important; }
body.oe-light .mt-6 { margin-top: 64px !important; }
body.oe-light .mb-6 { margin-bottom: 64px !important; }
body.oe-light .ms-6 { margin-left: 64px !important; }
body.oe-light .me-6 { margin-right: 64px !important; }
body.oe-light .mx-6 { margin-left: 64px !important; margin-right: 64px !important; }
body.oe-light .my-6 { margin-top: 64px !important; margin-bottom: 64px !important; }

body.oe-light .m-7  { margin: 80px !important; }
body.oe-light .mt-7 { margin-top: 80px !important; }
body.oe-light .mb-7 { margin-bottom: 80px !important; }
body.oe-light .ms-7 { margin-left: 80px !important; }
body.oe-light .me-7 { margin-right: 80px !important; }
body.oe-light .mx-7 { margin-left: 80px !important; margin-right: 80px !important; }
body.oe-light .my-7 { margin-top: 80px !important; margin-bottom: 80px !important; }

body.oe-light .m-8  { margin: 96px !important; }
body.oe-light .mt-8 { margin-top: 96px !important; }
body.oe-light .mb-8 { margin-bottom: 96px !important; }
body.oe-light .ms-8 { margin-left: 96px !important; }
body.oe-light .me-8 { margin-right: 96px !important; }
body.oe-light .mx-8 { margin-left: 96px !important; margin-right: 96px !important; }
body.oe-light .my-8 { margin-top: 96px !important; margin-bottom: 96px !important; }

body.oe-light .p-6  { padding: 64px !important; }
body.oe-light .pt-6 { padding-top: 64px !important; }
body.oe-light .pb-6 { padding-bottom: 64px !important; }
body.oe-light .ps-6 { padding-left: 64px !important; }
body.oe-light .pe-6 { padding-right: 64px !important; }
body.oe-light .px-6 { padding-left: 64px !important; padding-right: 64px !important; }
body.oe-light .py-6 { padding-top: 64px !important; padding-bottom: 64px !important; }

body.oe-light .p-7  { padding: 80px !important; }
body.oe-light .pt-7 { padding-top: 80px !important; }
body.oe-light .pb-7 { padding-bottom: 80px !important; }
body.oe-light .ps-7 { padding-left: 80px !important; }
body.oe-light .pe-7 { padding-right: 80px !important; }
body.oe-light .px-7 { padding-left: 80px !important; padding-right: 80px !important; }
body.oe-light .py-7 { padding-top: 80px !important; padding-bottom: 80px !important; }

body.oe-light .p-8  { padding: 96px !important; }
body.oe-light .pt-8 { padding-top: 96px !important; }
body.oe-light .pb-8 { padding-bottom: 96px !important; }
body.oe-light .ps-8 { padding-left: 96px !important; }
body.oe-light .pe-8 { padding-right: 96px !important; }
body.oe-light .px-8 { padding-left: 96px !important; padding-right: 96px !important; }
body.oe-light .py-8 { padding-top: 96px !important; padding-bottom: 96px !important; }

/* named structural spacing */
body.oe-light .py-section       { padding-top: clamp(56px,8vw,104px) !important; padding-bottom: clamp(56px,8vw,104px) !important; }
body.oe-light .py-section-tight { padding-top: clamp(48px,6vw,76px) !important; padding-bottom: clamp(48px,6vw,76px) !important; }
body.oe-light .gap-section      { gap: clamp(36px,5vw,72px) !important; }
body.oe-light .wrap { max-width: var(--content-max) !important; margin-right: auto !important; margin-left: auto !important; padding-right: var(--content-pad) !important; padding-left: var(--content-pad) !important; }

/* font family */
body.oe-light .ff-display { font-family: var(--f-display) !important; }
body.oe-light .ff-body    { font-family: var(--f-body) !important; }

/* text color */
body.oe-light .text-brand      { color: var(--c-brand) !important; }
body.oe-light .text-ink        { color: var(--ink) !important; }
body.oe-light .text-ink-strong { color: var(--ink-strong) !important; }
body.oe-light .text-muted      { color: var(--muted) !important; } /* scoped override of Bootstrap text-muted */

/* background color */
body.oe-light .bg-brand     { background-color: #d60846 !important; }
body.oe-light .bg-nightblue { background-color: #00496f !important; }
body.oe-light .bg-warmgrey  { background-color: #333333 !important; }
body.oe-light .bg-cupcake   { background-color: #f4d0d9 !important; }
body.oe-light .bg-hellgrau  { background-color: #f6f4f2 !important; }
body.oe-light .bg-azure     { background-color: #cde6f6 !important; }

/* compatibility aliases */
body.oe-light .bg-ink   { background-color: #333333 !important; }
body.oe-light .bg-tint  { background-color: #f4d0d9 !important; }
body.oe-light .bg-card  { background-color: var(--card) !important; }
body.oe-light .bg-white { background-color: #ffffff !important; }

.oe-banner {
  margin: 1.5rem 0;
}

.oe-banner a {
  display: block;
}

.oe-banner__img {
  display: block;
  width: 100%;
  height: auto;
}

.oe-banner__img--mobile {
  display: none;
}

@media (max-width: 720px) {
  .oe-banner__img--desktop {
    display: none;
  }

  .oe-banner__img--mobile {
    display: block;
  }
}
