@font-face {
  font-family: 'FarbeGrotesk';
  src: url('../fonts/FarbeGrotesk.woff2') format('woff2');
  font-weight: 400 900;
  font-style: normal;
  font-display: block;
}

:root {
  --font-display-spacing-wide: 0.011em;
  --font-display-spacing-medium: 0.009em;
  --font-display-spacing-small: 0.007em;
  --bg: #edf1f6;
  --surface: rgba(255,255,255,.76);
  --surface-strong: rgba(255,255,255,.92);
  --text: #0f172a;
  --muted: #667085;
  --line: rgba(15,23,42,.08);
  --blue: #18b7e8;
  --red: #ff1a1a;
  --blue-dark: #0b89b2;
  --venue-main: #06122f;
  --venue-off: #64748b;
  --venue-service: #f59e0b;
  --shadow: 0 24px 60px rgba(15, 23, 42, 0.10);
  --radius: 28px;
  --radius-sm: 18px;
  --container: 1280px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Roboto', system-ui, sans-serif;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background:
    radial-gradient(circle at 15% 15%, rgba(24,183,232,.09), transparent 24%),
    radial-gradient(circle at 85% 14%, rgba(255,26,26,.10), transparent 20%),
    linear-gradient(180deg, #f7f8fb 0%, #eef1f5 44%, #e9edf2 100%);
}
body.menu-open {
  overflow: hidden;
}
:where(
  a,
  button,
  input,
  select,
  textarea,
  summary,
  [role="button"],
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 2px solid rgba(24,183,232,.8);
  outline-offset: 3px;
}
@media (min-width: 761px) {
  body.menu-open { overflow: visible; }
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.ui-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-block;
  vertical-align:middle;
}
.ui-icon--sm{
  width:16px;
  height:16px;
  flex-basis:16px;
}
.meta-inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.container { width: min(calc(100% - 40px), var(--container)); margin: 0 auto; }
.narrow { width: min(calc(100% - 40px), 900px); margin: 0 auto; }
.narrow-list { width: min(calc(100% - 40px), 980px); margin: 0 auto; }
.section { padding: 76px 0; }
.section-soft { background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,.12)); border-top: 1px solid rgba(255,255,255,.4); border-bottom: 1px solid rgba(15,23,42,.04); }
.section-overlap { margin-top: -48px; position: relative; z-index: 3; }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; color: rgba(15,23,42,.62); font-size: .78rem; font-weight: 700; }
.brand-display, .brand-display-small, .section-title, .page-hero h1, .card h3, .listing-item h2 {
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
}
.brand-display { font-size: clamp(3.2rem, 7vw, 6rem); line-height: .92; letter-spacing: var(--font-display-spacing-medium); }
.brand-display-small { font-size: clamp(1.45rem, 2vw, 1.9rem); line-height: 1.02; letter-spacing: var(--font-display-spacing-small); }
.section-title { font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: .96; letter-spacing: var(--font-display-spacing-small); margin: 10px 0 0; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(22px);
  background: rgba(255,255,255,.72);
  border-bottom: 1px solid rgba(15,23,42,.06);
}
.site-header.is-search-open{
  background:rgba(255,255,255,.84);
}
.site-header.is-menu-open{
  background:rgba(255,255,255,.9);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height: 74px; padding: 8px 0; }
.brand { display:flex; align-items:center; gap:16px; min-width: 0; flex-shrink:0; }
.brand-logo { width: 212px; max-width: min(28vw, 212px); height: auto; }
.brand-mark {
  width: 46px; height: 46px; border-radius: 50%;
  display:grid; place-items:center; font-weight:900; color:white;
  background: linear-gradient(135deg, var(--red), var(--blue));
  box-shadow: 0 8px 22px rgba(24,183,232,.26);
}
.brand-copy { display:none; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:18px; flex:1 1 auto; min-width:0; }
.nav-link {
  color:#223;
  font-weight:700;
  font-size:1.38rem;
  position:relative;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  letter-spacing:var(--font-display-spacing-small);
  transition:color .22s ease, transform .22s ease, opacity .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.nav-link:hover { color: var(--blue-dark); transform:translateY(-1px); }
.nav-link--program {
  padding: 10px 2px 12px;
  color: var(--blue-dark);
}
.nav-link--program::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(24,183,232,.18), rgba(24,183,232,.92), rgba(24,183,232,.18));
  transform:scaleX(.72);
  transform-origin:center;
  opacity:.95;
  transition:transform .22s ease, opacity .22s ease, box-shadow .22s ease;
  box-shadow:0 8px 18px rgba(24,183,232,.18);
}
.nav-link--program:hover{
  color:var(--blue);
}
.nav-link--program:hover::after{
  transform:scaleX(1);
  opacity:1;
  box-shadow:0 10px 22px rgba(24,183,232,.24);
}
.nav-link--current{
  color:var(--blue-dark);
}
.nav-link--current::before{
  content:'';
  position:absolute;
  left:50%;
  bottom:-9px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:currentColor;
  transform:translateX(-50%);
  opacity:.72;
}
.nav-link--program.nav-link--current{
  color:#087aa4;
}
.nav-link--program.nav-link--current::before{
  bottom:-11px;
  opacity:.82;
}
.menu-item-visitor-page,
.mobile-nav-link--visitor {
  color:#415164;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(244,247,250,.94));
  border:1px solid rgba(15,23,42,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.mobile-nav-link--visitor{
  border-color:rgba(24,183,232,.24);
  background:linear-gradient(135deg, rgba(232,247,253,.98), rgba(255,255,255,.98));
  color:#35607e;
  box-shadow:0 8px 18px rgba(24,183,232,.08), inset 0 1px 0 rgba(255,255,255,.98);
}
.header-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.lang-switch, .menu-toggle, .header-icon-button {
  position: relative;
  border: 1px solid var(--line); background: rgba(255,255,255,.82); color: var(--text);
  border-radius: 999px; padding: 10px 14px; font-weight: 700; cursor: pointer;
}
.lang-switch{
  min-width:48px;
  justify-content:center;
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:1rem;
  letter-spacing:var(--font-display-spacing-small);
}
.menu-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  padding:0;
}
.menu-toggle--mobile{display:none}
.menu-toggle__bars{
  display:grid;
  gap:4px;
  width:16px;
  height:14px;
}
.menu-toggle__bars span{
  display:block;
  width:16px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .24s cubic-bezier(.22,1,.36,1), opacity .18s ease;
}
.menu-toggle.is-active .menu-toggle__bars span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}
.menu-toggle.is-active .menu-toggle__bars span:nth-child(2){
  opacity:0;
}
.menu-toggle.is-active .menu-toggle__bars span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}
.header-icon-button { width: 42px; height: 42px; display:inline-flex; align-items:center; justify-content:center; padding: 0; font-size: 1rem; }
.header-icon-button .ui-icon{width:18px;height:18px}
.header-icon-link--favourite .ui-icon{width:20px;height:20px}
.header-icon-link--favourite{
  color:#d3264b;
}
.header-icon-link--favourite:hover{
  color:#b9133b;
}
@media (hover: hover) and (pointer: fine) {
  .header-actions [data-tooltip]::before,
  .header-actions [data-tooltip]::after {
    position: absolute;
    left: 50%;
    z-index: 100;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, 4px);
    transition: opacity .16s ease, transform .16s ease;
  }

  .header-actions [data-tooltip]::before {
    content: attr(data-tooltip);
    top: calc(100% + 10px);
    width: max-content;
    max-width: 180px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(15,23,42,.94);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0;
    text-align: center;
    box-shadow: 0 12px 24px rgba(15,23,42,.18);
  }

  .header-actions [data-tooltip]::after {
    content: "";
    top: calc(100% + 5px);
    border: 5px solid transparent;
    border-bottom-color: rgba(15,23,42,.94);
  }

  .header-actions [data-tooltip]:hover::before,
  .header-actions [data-tooltip]:hover::after,
  .header-actions [data-tooltip]:focus-visible::before,
  .header-actions [data-tooltip]:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
.header-social{position:relative}
.header-social-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 40px rgba(15,23,42,.14);
  backdrop-filter:blur(18px);
}
.header-social-menu[hidden]{
  display:none !important;
}
.header-social-link,
.mobile-social-link{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.86);
  color:#111827;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
}
.header-social-link:hover,
.mobile-social-link:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:rgba(15,23,42,.18);
  color:var(--blue-dark);
}
.header-social-link .ui-icon,
.mobile-social-link .ui-icon{width:17px;height:17px}
.mobile-menu-wrap{
  position:relative;
}
.header-search-wrap {
  padding:0 0 12px;
  opacity:0;
  transform:translateY(-10px);
  transition:opacity .24s ease, transform .3s cubic-bezier(.22,1,.36,1);
}
.header-search-wrap.is-open{
  opacity:1;
  transform:translateY(0);
}
.header-search-form { display:flex; gap:12px; align-items:center; background: rgba(255,255,255,.88); border:1px solid var(--line); border-radius: 20px; padding: 12px; box-shadow: var(--shadow); }
.header-search-field{flex:1 1 auto;min-width:0}
.header-search-input { width:100%; border:0; background:transparent; font:inherit; padding: 6px 8px; min-width: 0; }
.header-search-input:focus { outline:none; }
.header-search-submit { padding: 12px 16px; }
.search-suggest-field{position:relative}
.search-suggest-panel{
  position:absolute;
  z-index:60;
  top:calc(100% + 10px);
  left:0;
  right:0;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.12);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 60px rgba(15,23,42,.18);
  backdrop-filter:blur(18px);
}
.search-suggest-panel[hidden]{display:none !important}
.search-suggest-list{display:grid;padding:6px}
.search-suggest-item,
.search-suggest-all{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px;
  border-radius:13px;
  border:1px solid transparent;
  color:#111827;
  text-decoration:none;
  transition:background .16s ease,transform .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.search-suggest-item:hover,
.search-suggest-all:hover{
  background:#f4f7fb;
  transform:translateY(-1px);
}
.search-suggest-item.is-active,
.search-suggest-all.is-active{
  background:rgba(24,183,232,.08);
  border-color:rgba(24,183,232,.24);
  box-shadow:inset 3px 0 0 rgba(24,183,232,.55), 0 8px 18px rgba(15,23,42,.06);
  transform:translateY(-1px);
}
.search-suggest-item__badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  min-height:26px;
  padding:4px 9px;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  line-height:1;
}
.search-suggest-item--events .search-suggest-item__badge{background:#d3264b}
.search-suggest-item--artists .search-suggest-item__badge{background:#185abc}
.search-suggest-item--venues .search-suggest-item__badge{background:#047857}
.search-suggest-item--news .search-suggest-item__badge{background:#9a3412}
.search-suggest-item--pages .search-suggest-item__badge{background:#374151}
.search-suggest-item__body{display:grid;gap:4px;min-width:0}
.search-suggest-item__body strong{
  overflow:hidden;
  color:inherit;
  font-weight:800;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.search-suggest-item__meta{
  overflow:hidden;
  color:#64748b;
  font-size:.9rem;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.search-suggest-status{
  padding:15px 18px;
  color:#64748b;
  font-size:.95rem;
}
.search-suggest-all{
  justify-content:center;
  margin:0 6px 6px;
  border-top:1px solid rgba(15,23,42,.06);
  border-radius:13px;
  color:#185abc;
  font-weight:800;
}
.search-suggest-shortcuts{display:grid;gap:10px;padding:10px}
.search-suggest-shortcuts__section{display:flex;flex-wrap:wrap;gap:8px}
.search-suggest-shortcuts__title{
  flex:1 0 100%;
  color:#64748b;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
}
.search-suggest-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(15,23,42,.1);
  border-radius:999px;
  background:#fff;
  color:#1f2937;
  font-size:.9rem;
  font-weight:800;
  text-decoration:none;
}
.search-suggest-chip:hover,
.search-suggest-chip.is-active{
  background:#f4f7fb;
  border-color:rgba(24,90,188,.22);
  color:#185abc;
}
.mobile-menu {
  border-top: 1px solid rgba(16,24,40,.06);
  opacity:0;
  transform:translateY(-12px);
  transition:opacity .24s ease, transform .32s cubic-bezier(.22,1,.36,1);
}
.mobile-menu.is-open {
  opacity:1;
  transform:translateY(0);
}
.mobile-menu-inner { display:flex; flex-direction:column; padding: 14px 0 16px; gap: 10px; }
.mobile-menu-group { display:grid; gap: 6px; }
.mobile-nav-link {
  position:relative;
  display:block;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.84);
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:1rem;
  line-height:1.18;
  letter-spacing:var(--font-display-spacing-small);
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease;
}
.mobile-nav-link:hover { background: rgba(24,183,232,.06); transform:translateY(-1px); }
.mobile-nav-link--program{
  background:rgba(255,255,255,.84);
  border-color:rgba(15,23,42,.08);
  color:var(--blue-dark);
  box-shadow:none;
}
.mobile-nav-link--program::after{
  content:'';
  position:absolute;
  left:12px;
  right:12px;
  bottom:6px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(24,183,232,.16), rgba(24,183,232,.9), rgba(24,183,232,.16));
}
.mobile-nav-link--current{
  border-color:rgba(11,137,178,.18);
  background:linear-gradient(180deg, rgba(244,250,253,.96), rgba(255,255,255,.92));
  color:var(--blue-dark);
}
.mobile-nav-link--current::before{
  content:'';
  position:absolute;
  left:12px;
  right:12px;
  bottom:6px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(11,137,178,.18), rgba(11,137,178,.88), rgba(11,137,178,.18));
  opacity:.82;
}
.mobile-nav-link--program.mobile-nav-link--current{
  border-color:rgba(24,183,232,.3);
  box-shadow:none;
}
.mobile-menu-socials{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
@media (prefers-reduced-motion: reduce){
  .hero-date,
  .hero-title{
    opacity:1;
    filter:none;
    transform:none;
    animation:none;
  }
}
@media (max-width: 760px){
  .home-hero{
    min-height: 72vh;
  }

  .hero-stage{
    min-height: 72vh;
    padding: 96px 0 44px;
    align-items: center;
  }

  .hero-content{
    width: min(100%, 92vw);
    transform: translateY(-34px);
  }

  .mobile-menu-inner{
    padding:10px 0 12px;
    gap:8px;
  }

  .mobile-menu-group{
    gap:5px;
  }

  .hero-date{
    font-size: clamp(3rem, 13vw, 4.5rem);
    line-height: .92;
  }

  .hero-title{
    margin-top: 10px;
    font-size: clamp(1.1rem, 4.8vw, 1.45rem);
    line-height: .98;
  }
}
html[lang="en"] .desktop-nav{gap:16px}
html[lang="en"] .menu-item-visitor-page{padding:10px 16px}
@media (max-width: 1380px){
  .desktop-nav{gap:14px}
  .nav-link{font-size:1.2rem}
  .header-actions{gap:8px}
}
@media (max-width: 1280px){
  .brand-logo{width:188px}
  .desktop-nav{gap:12px}
  .nav-link{font-size:1.08rem}
}
.glass-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
  border-radius: var(--radius);
}
.home-hero { position: relative; min-height: 88vh; display: flex; align-items: center; overflow: hidden; }
.hero-media { position: absolute; inset: 0; overflow:hidden; }
.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform:scale(1.035);
}
.hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(7,12,26,.10) 0%, rgba(7,12,26,.04) 38%, rgba(7,12,26,.18) 100%),
    linear-gradient(90deg, rgba(7,12,26,.08) 0%, rgba(7,12,26,.03) 36%, rgba(7,12,26,.10) 100%);
}
.hero-stage {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 88vh;
  padding: 128px 0 96px;
}
.hero-content {
  width: min(100%, 960px);
  margin: 0 auto;
  text-align: center;
  color: #fff;
}
.hero-date,
.hero-title{
  opacity:0;
  filter:blur(10px);
  will-change:transform, opacity, filter;
}
.hero-date {
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size: clamp(3.6rem, 9vw, 7.2rem);
  line-height: .9;
  letter-spacing: var(--font-display-spacing-medium);
  text-shadow: 0 18px 44px rgba(7,12,26,.28);
  transform:translate3d(0,32px,0) scale(.985);
  animation:heroReveal .95s cubic-bezier(.22,1,.36,1) .08s forwards;
}
.hero-title {
  margin: 14px 0 0;
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: .96;
  letter-spacing: var(--font-display-spacing-small);
  text-transform: uppercase;
  text-shadow: 0 12px 34px rgba(7,12,26,.28);
  transform:translate3d(0,24px,0);
  animation:heroReveal .95s cubic-bezier(.22,1,.36,1) .28s forwards;
}
@keyframes heroReveal{
  0%{
    opacity:0;
    transform:translate3d(0,32px,0) scale(.985);
    filter:blur(10px);
  }
  65%{
    opacity:1;
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
    filter:blur(0);
  }
}
.home-kpi-band{
  position:relative;
  z-index:3;
  width:100%;
  margin-top:-1px;
  padding:12px 0 14px;
  background:#081327;
  color:#f4efe6;
  border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.home-kpi-band__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  text-align:center;
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(1.18rem, 2.2vw, 1.7rem);
  line-height:1.1;
  letter-spacing:var(--font-display-spacing-small);
  text-transform:uppercase;
}
html[lang="en"] .home-kpi-band:not(.home-kpi-band--closing) .home-kpi-band__inner{
  font-size:clamp(1.02rem, 1.7vw, 1.44rem);
}
.home-kpi-band__item{white-space:nowrap}
.home-kpi-band__value{
  display:inline-block;
  min-width:1.5ch;
}
.home-kpi-band__separator{
  color:rgba(244,239,230,.42);
  font-size:.95em;
}
.home-kpi-band--closing{
  margin-top:0;
  background:#0c1934;
}
.home-kpi-band__inner--closing{
  font-size:clamp(1.18rem, 2.2vw, 1.7rem);
}
.home-kpi-band__item--desktop,
.home-kpi-band__separator--desktop{
  display:inline-flex;
}
.hero-lead { font-size: 1.18rem; color: #344054; line-height: 1.7; max-width: 44rem; margin-top: 18px; }
.hero-theme { font-weight: 700; margin-top: 18px; }
.hero-actions { display:flex; flex-wrap:wrap; gap: 12px; margin-top: 28px; }
.hero-actions--home{
  justify-content:center;
}
.hero-actions--home .button-ghost{
  color:#0f172a;
}
.button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 14px 18px; border-radius: 999px; font-weight:700; border:1px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:disabled{
  cursor:wait;
  opacity:.88;
}
.button.is-loading{
  position:relative;
}
.button.is-loading::after{
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid currentColor;
  border-right-color:transparent;
  display:inline-block;
  animation:button-spin .7s linear infinite;
}
.button .ui-icon{width:16px;height:16px;flex-basis:16px}
.button-primary { background: linear-gradient(135deg, var(--blue-dark), var(--blue)); color:white; box-shadow: 0 12px 30px rgba(24,183,232,.22); }
.button-soft { background: linear-gradient(135deg, #ff5d5d, var(--red)); color:white; box-shadow: 0 12px 30px rgba(255,26,26,.18); }
.button-ghost { background: rgba(255,255,255,.84); border-color: var(--line); }
.button[data-favorite-toggle],
.button[data-clear-favorites],
.button[data-shared-program-add-all],
.button.my-program-card__remove-action,
.button.my-tickets-card__programme-toggle{
  background:linear-gradient(135deg, #ff5d5d, var(--red));
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 30px rgba(255,26,26,.18);
}
.button[data-ticket-click],
.ticket-cta-form .button,
.button.my-program-card__buy-action,
.button.my-program-card__ticket-action,
.button.my-tickets-card__qr{
  background:linear-gradient(135deg, var(--blue-dark), var(--blue));
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 30px rgba(24,183,232,.22);
}
.button[data-share-modal-open],
.button[data-share-my-program]{
  background:rgba(255,255,255,.84);
  border-color:var(--line);
  color:var(--text);
  box-shadow:none;
}
.button-static,
.button[aria-disabled="true"]{
  cursor: default;
  pointer-events: none;
  box-shadow: none;
  transform: none;
  opacity: 1;
}
@keyframes button-spin{
  to{transform:rotate(360deg)}
}
.hero-media img{
  transform:scale(1.01);
}
.badge-row { display:flex; flex-wrap:wrap; gap: 8px; margin-top: 12px; }
.soft-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.84);
  color:#213046;
  font-size:.84rem;
  font-weight:700;
  line-height:1.1;
  text-align:center;
  vertical-align:middle;
}
.soft-badge--headliner {
  background:rgba(254,0,0,.08);
  border-color:rgba(254,0,0,.22);
  color:#b40000;
}
.soft-badge--genre {
  background:rgba(0,198,254,.1);
  border-color:rgba(0,198,254,.22);
  color:#086f8d;
}
.soft-badge--programme-off {
  background:rgba(100,116,139,.08);
  border-color:rgba(100,116,139,.16);
  color:#5f6b7c;
  font-weight:700;
}
.section-head { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom: 28px; }
.text-link { font-weight: 700; color: var(--blue-dark); }
.cards-grid { display:grid; gap: 18px; }
.programme-cards-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-cards-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.programme-card {
  position: relative; overflow: hidden; display: block; transition: transform .22s ease, box-shadow .22s ease;
}
.programme-card-link-overlay{position:absolute;inset:0;z-index:2;border-radius:inherit}
.programme-card-body{position:relative;padding: 20px 20px 22px;pointer-events:none; }
.programme-card-media { aspect-ratio: 16 / 10; background: #dbe6f4; overflow: hidden; }
.programme-card-media img { width: 100%; height: 100%; object-fit: cover; }
.programme-card-media-fallback {
  display: grid; place-items: center;
  background: radial-gradient(circle at 30% 20%, rgba(24,183,232,.2), transparent 32%), linear-gradient(135deg, rgba(24,183,232,.16), rgba(255,26,26,.16));
}
.programme-card-media-label { font-family: 'FarbeGrotesk', 'Roboto', sans-serif; font-size: 1.4rem; letter-spacing: var(--font-display-spacing-small); opacity: .7; }
.card-meta-row { display:flex; gap:10px; flex-wrap:wrap; color: var(--muted); font-size: .92rem; }
.card-meta-row > span{display:inline-flex;align-items:center;gap:6px}
.programme-card-title { margin: 12px 0 0; line-height: 1.02; }
.programme-card-artist{
  margin-top:8px;
  font-family:'FarbeGrotesk','Roboto',sans-serif;
  font-size:1rem;
  line-height:1.14;
  letter-spacing:.01em;
  color:#475467;
}
.badge-row--programme{margin-top:16px;align-items:flex-start}
.venue-pill {
  display:inline-flex; align-items:center; gap:8px; padding: 8px 12px; border-radius: 999px;
  background: rgba(15,23,42,.06); border:1px solid rgba(15,23,42,.08); color:#111827; font-weight:700; font-size:.88rem; line-height:1.2;
}
.venue-pill--map-category{
  gap:6px;
}
.venue-pill--map-category::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:#06122f;
}
.venue-list-item--main .venue-pill--map-category::before{
  background:var(--venue-main);
}
.venue-list-item--off .venue-pill--map-category::before{
  background:var(--venue-off);
}
.venue-list-item--festival-service .venue-pill--map-category::before{
  background:var(--venue-service);
}
.venue-pill--link{position:relative;z-index:3;text-decoration:none;pointer-events:auto}
.venue-pill--link:hover{background:rgba(15,23,42,.1)}
.programme-card-price { margin-top: 18px; display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ticket-cta-form { display:inline-flex; margin:0; }
.ticket-cta-form .button { width:auto; }
.ticket-availability {
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:.82rem;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.01em;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.8);
  color:#0f172a;
}
.ticket-availability--available {
  background:rgba(12,166,120,.1);
  border-color:rgba(12,166,120,.18);
  color:#0b6b4d;
}
.ticket-availability--low {
  background:rgba(245,158,11,.12);
  border-color:rgba(245,158,11,.22);
  color:#9a5b00;
}
.ticket-availability--upcoming {
  background:rgba(24,183,232,.10);
  border-color:rgba(24,183,232,.22);
  color:#087aa4;
}
.ticket-availability--soldout {
  background:rgba(148,163,184,.16);
  border-color:rgba(100,116,139,.18);
  color:#475569;
}
.ticket-availability--assigned {
  background:rgba(239,68,68,.10);
  border-color:rgba(239,68,68,.22);
  color:#991b1b;
}
.ticket-availability--ended {
  background:rgba(148,163,184,.16);
  border-color:rgba(100,116,139,.18);
  color:#475569;
}
.ticket-availability--hero {
  align-self:center;
}
.muted { color: var(--muted); }
.two-col-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.feature-grid { align-items: stretch; }
.feature-card { padding: 30px; }
.feature-card p { color: #344054; line-height: 1.75; }
.feature-card-accent { background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(24,183,232,.10)); }
.news-card { padding: 0; overflow: hidden; }
.news-card-body { padding: 24px; }
.news-card p { color: #344054; line-height: 1.7; }
.programme-card-media,
.news-card__image-wrap,
.artist-card__media,
.module-person-card__media,
.my-program-card__media,
.venue-list-item__media,
.module-gallery-card__media,
.module-offer-card__media,
.module-photo-gallery-card{
  position:relative;
  isolation:isolate;
}

.programme-card-media::after,
.news-card__image-wrap::after,
.artist-card__media::after,
.module-person-card__media::after,
.my-program-card__media::after,
.venue-list-item__media::after,
.module-gallery-card__media::after,
.module-offer-card__media::after,
.module-photo-gallery-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.18), rgba(255,255,255,0) 42%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(15,23,42,.08));
  opacity:.8;
}

.programme-card-media img,
.news-card__image,
.artist-card__media img,
.module-person-card__media img,
.my-program-card__media img,
.venue-list-item__media img,
.module-gallery-card__media img,
.module-offer-card__media img,
.module-photo-gallery-card img{
  filter:saturate(1.03) contrast(1.02) brightness(.995);
}
.page-hero h1 { font-size: clamp(2.6rem, 5vw, 4.4rem); margin: 10px 0 0; line-height: .98; letter-spacing: var(--font-display-spacing-medium); font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif; }
.page-lead { font-size: 1.14rem; color: #344054; line-height: 1.7; }
.prose { padding: 34px; font-size: 1.05rem; line-height: 1.82; }
.prose h2, .prose h3, .prose h4 { line-height: 1.12; margin-top: 1.7em; font-family: 'FarbeGrotesk', 'Roboto', sans-serif; }
.filter-bar { display:flex; flex-wrap:wrap; align-items:end; gap: 12px; padding: 14px; margin-top: 18px; }
.filter-bar label { display:flex; flex-direction:column; gap:8px; font-weight:700; }
.filter-bar input[type="date"] { padding: 12px 14px; border-radius: 14px; border:1px solid var(--line); background:white; }
.filter-pills{min-width:240px;display:grid;gap:10px;border:0;padding:0;margin:0}
.filter-pills legend{padding:0;margin:0}
.filter-pills legend span{font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(18,18,18,.62);margin-bottom:2px;display:block}
.filter-pills__list{display:flex;flex-wrap:wrap;gap:8px}
.filter-pill{position:relative;display:inline-flex;align-items:center}
.filter-pill input{position:absolute;opacity:0;pointer-events:none}
.filter-pill span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border-radius:999px;border:1px solid rgba(15,23,42,.1);background:rgba(255,255,255,.9);font-size:.9rem;line-height:1.15;font-weight:700;color:#223;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.filter-pill.is-selected span,
.filter-pill input:checked + span{background:rgba(0,198,254,.1);border-color:rgba(0,198,254,.28);box-shadow:inset 0 0 0 1px rgba(0,198,254,.12);color:#0b6f8c}
.filter-pills--compact{min-width:0}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.newsletter-signup{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
  gap:28px;
  padding:28px 0 24px;
}
.newsletter-signup--overlay{
  grid-template-columns:1fr;
  justify-items:center;
  align-items:center;
  width:100%;
  max-width:860px;
  margin:0 auto;
  text-align:center;
}
.newsletter-signup__title{
  margin:0;
  max-width:none;
  color:#0f172a;
  font-size:clamp(1.5rem, 2.6vw, 2.6rem);
  line-height:0.98;
}
.home-venues-band{
  position:relative;
  margin:0;
  background:
    radial-gradient(circle at top left, rgba(24,183,232,.14), transparent 24%),
    linear-gradient(180deg, #eef4f8 0%, #d9e6ef 100%);
  overflow:hidden;
}
.homepage-video-band{
  position:relative;
  width:100%;
  margin:0;
  background:#06122f;
  overflow:hidden;
  border-top:1px solid rgba(6,18,47,.08);
  border-bottom:1px solid rgba(6,18,47,.08);
}
.homepage-video-band::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(6,18,47,.14), rgba(6,18,47,.02) 45%, rgba(6,18,47,.18)),
    linear-gradient(90deg, rgba(6,18,47,.16), rgba(6,18,47,0) 52%, rgba(6,18,47,.16));
}
.homepage-video-band__video{
  display:block;
  width:100%;
  height:clamp(320px, 52.941vw, 920px);
  min-height:320px;
  object-fit:cover;
  object-position:center;
  background:#06122f;
}
.home-venues-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 12% 18%, rgba(6,18,47,.18), transparent 0 18%),
    radial-gradient(circle at 88% 12%, rgba(24,183,232,.18), transparent 0 16%),
    linear-gradient(180deg, rgba(6,18,47,.04), rgba(6,18,47,0));
  pointer-events:none;
}
.home-venues-band__overlay{
  position:relative;
  position:absolute;
  top:20px;
  right:min(32px, 4vw);
  z-index:1;
  display:grid;
  gap:12px;
  justify-items:end;
}
.home-venues-band__legend{
  padding:10px 12px;
  border-radius:18px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 12px 30px rgba(15,23,42,.12);
}
.home-venues-band__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  text-decoration:none;
  box-shadow:0 12px 26px rgba(6,18,47,.22);
}
.home-venues-band__map{
  position:relative;
  z-index:0;
  width:100%;
  min-height:500px;
  overflow:hidden;
  border-top:1px solid rgba(6,18,47,.08);
  border-bottom:0;
}
.newsletter-signup__lead{
  margin:10px auto 0;
  max-width:36rem;
  color:#344054;
  line-height:1.45;
  font-size:.94rem;
}
.newsletter-signup__form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 12px;
  align-items:center;
  align-content:start;
  width:min(100%, 540px);
  justify-items:center;
}
.newsletter-signup__field{
  width:100%;
}
.newsletter-signup__field input{
  width:100%;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.94);
  color:var(--text);
  font:inherit;
  font-size:.95rem;
}
.newsletter-signup__field input:focus{
  outline:none;
  border-color:rgba(24,183,232,.45);
  box-shadow:0 0 0 4px rgba(24,183,232,.12);
}
.newsletter-signup__consent{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  grid-column:1 / -1;
  gap:8px;
  color:#475467;
  font-size:.82rem;
  line-height:1.4;
  text-align:left;
  max-width:540px;
}
.newsletter-signup__consent input{
  margin-top:2px;
}
.newsletter-signup__consent a{
  color:var(--blue-dark);
  font-weight:700;
}
.newsletter-signup__submit{
  justify-self:center;
  min-height:44px;
  padding:10px 16px;
  font-size:.88rem;
  white-space:nowrap;
}
.site-footer {
  position: relative; color: white; background: #101828; overflow: hidden; padding: 0 0 56px;
}
.chatbot-widget{
  position:fixed;
  left:auto;
  top:auto;
  right:20px;
  bottom:var(--chatbot-bottom-offset, 24px);
  z-index:90;
  width:min(calc(100vw - 24px), 400px);
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  pointer-events:none;
}
.chatbot-widget[hidden]{display:none !important}
.chatbot-widget__backdrop{
  display:none;
}
.chatbot-widget:not(.is-panel-visible){
  width:auto;
}
.chatbot-widget:not(.is-panel-visible) .chatbot-widget__launcher{
  position:fixed;
  right:20px;
  bottom:var(--chatbot-bottom-offset, 24px);
  margin-left:0;
}
.chatbot-widget__launcher{
  margin-left:auto;
  min-height:58px;
  padding:0 18px;
  display:inline-flex;
  align-items:center;
  gap:12px;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg, #101828, #0b89b2);
  color:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.28);
  cursor:pointer;
  pointer-events:auto;
}
.chatbot-widget__launcher:hover{transform:translateY(-1px)}
.chatbot-widget__launcher-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.14);
}
.chatbot-widget__launcher-text{font-weight:800;letter-spacing:.01em}
.chatbot-widget__panel{
  margin-top:0;
  padding:18px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.82);
  display:flex;
  flex-direction:column;
  opacity:0;
  visibility:hidden;
  pointer-events:auto;
  transform:translateY(16px) scale(.96);
  transform-origin:bottom right;
  transition:opacity .24s ease, transform .28s cubic-bezier(.22, 1, .36, 1), margin-top .28s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .28s;
  will-change:transform, opacity;
}
.chatbot-overlay-open{
  overflow:hidden;
}
@media (min-width: 761px) {
  .chatbot-overlay-open{ overflow: visible; }
}
.chatbot-widget.is-panel-visible .chatbot-widget__panel{
  visibility:visible;
  transition:opacity .24s ease, transform .28s cubic-bezier(.22, 1, .36, 1), margin-top .28s cubic-bezier(.22, 1, .36, 1), visibility 0s linear 0s;
}
.chatbot-widget.is-open .chatbot-widget__panel{
  margin-top:14px;
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.chatbot-widget.is-closing .chatbot-widget__panel{
  visibility:visible;
}
.chatbot-widget__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.chatbot-widget__title{
  display:block;
  font-family:'FarbeGrotesk','Roboto',sans-serif;
  font-size:1.28rem;
  line-height:1;
  color:#0f172a;
}
.chatbot-widget__subtitle{
  margin:6px 0 0;
  color:#667085;
  font-size:.9rem;
  line-height:1.45;
}
.chatbot-widget__close{
  width:38px;
  height:38px;
  border:none;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  color:#0f172a;
  font-size:1.45rem;
  line-height:1;
  cursor:pointer;
}
.chatbot-widget__quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}
.chatbot-chip{
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.1);
  background:rgba(255,255,255,.94);
  color:#213046;
  font-size:.84rem;
  font-weight:700;
  cursor:pointer;
}
.chatbot-chip:hover{
  border-color:rgba(24,183,232,.28);
  color:#0b6f8c;
}
.chatbot-widget__messages{
  max-height:min(48vh, 460px);
  overflow:auto;
  display:grid;
  flex:1 1 auto;
  min-height:0;
  gap:12px;
  padding:4px 2px 6px;
}
.chatbot-message{display:flex}
.chatbot-message--user{justify-content:flex-end}
.chatbot-message__bubble{
  max-width:88%;
  padding:12px 14px;
  border-radius:18px;
  background:#f4f7fb;
  border:1px solid rgba(15,23,42,.08);
  color:#0f172a;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}
.chatbot-message--assistant .chatbot-message__bubble{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,247,252,.96));
}
.chatbot-message--user .chatbot-message__bubble{
  background:linear-gradient(135deg, var(--blue-dark), var(--blue));
  color:#fff;
  border-color:transparent;
}
.chatbot-message__bubble p{margin:0;line-height:1.55}
.chatbot-message__bubble p + p{margin-top:.8rem}
.chatbot-message__sources{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.chatbot-source-link{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  border:1px solid rgba(15,23,42,.08);
  color:#0b6f8c;
  font-size:.8rem;
  font-weight:700;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
  line-height:1.35;
}
.chatbot-message__disclaimer{
  display:block;
  margin-top:10px;
  color:#667085;
  line-height:1.45;
}
.chatbot-widget__form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  margin-top:14px;
}
.chatbot-widget__input{
  width:100%;
  min-height:52px;
  max-height:140px;
  resize:vertical;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  font:inherit;
  color:var(--text);
}
.chatbot-widget__input:focus{
  outline:none;
  border-color:rgba(24,183,232,.45);
  box-shadow:0 0 0 4px rgba(24,183,232,.12);
}
.chatbot-widget__submit{align-self:end;min-height:52px}
.chatbot-widget.is-loading .chatbot-widget__submit{opacity:.72}
.chatbot-typing{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:20px;
}
.chatbot-typing span{
  width:8px;
  height:8px;
  border-radius:999px;
  background:#98a2b3;
  animation:chatbotTyping 1.1s infinite ease-in-out;
}
.chatbot-typing span:nth-child(2){animation-delay:.14s}
.chatbot-typing span:nth-child(3){animation-delay:.28s}
@keyframes chatbotTyping{
  0%,80%,100%{transform:translateY(0);opacity:.45}
  40%{transform:translateY(-3px);opacity:1}
}
.survey-prompt-widget{
  position:fixed;
  right:22px;
  bottom:calc(var(--chatbot-bottom-offset, 24px) + 76px);
  z-index:88;
  opacity:0;
  transform:translateY(12px) scale(.96);
  pointer-events:none;
  transition:opacity .22s ease,transform .24s cubic-bezier(.22,1,.36,1),bottom .22s ease;
}
.survey-prompt-widget[hidden]{display:none !important}
.survey-prompt-widget.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.survey-prompt-widget.is-open{
  transform:none;
}
.survey-prompt-widget__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg, var(--red), #ff7a59);
  color:#fff;
  box-shadow:0 16px 36px rgba(179,30,45,.26);
  cursor:pointer;
  transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease;
}
.survey-prompt-widget__button:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(179,30,45,.3)}
.survey-prompt-widget__button:focus-visible{outline:2px solid rgba(255,26,26,.45);outline-offset:3px}
.survey-prompt-widget__icon{width:26px;height:26px}
.survey-prompt-modal[hidden]{display:none !important}
.survey-prompt-modal__backdrop{
  position:fixed;
  inset:0;
  border:none;
  padding:0;
  background:rgba(15,23,42,.24);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
}
.survey-prompt-modal__dialog{
  position:fixed;
  right:20px;
  bottom:calc(var(--chatbot-bottom-offset, 24px) + 146px);
  width:min(calc(100vw - 32px), 390px);
  padding:22px;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(255,255,255,.86);
  color:#0f172a;
  box-shadow:0 26px 64px rgba(15,23,42,.22);
  opacity:0;
  transform:translateY(12px) scale(.97);
  transform-origin:bottom right;
  transition:opacity .2s ease,transform .24s cubic-bezier(.22,1,.36,1),bottom .22s ease;
}
.survey-prompt-widget.is-open .survey-prompt-modal__dialog{
  opacity:1;
  transform:translateY(0) scale(1);
}
.survey-prompt-modal__close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:none;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  color:#0f172a;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}
.survey-prompt-modal__icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(179,30,45,.1);
  color:var(--red);
  margin-bottom:14px;
}
.survey-prompt-modal__eyebrow{margin:0 42px 8px 0;color:var(--red)}
.survey-prompt-modal__title{
  margin:0 42px 10px 0;
  font-family:'FarbeGrotesk','Roboto',sans-serif;
  font-size:1.45rem;
  line-height:1.05;
  letter-spacing:0;
}
.survey-prompt-modal__text{
  margin:0 0 18px;
  color:#475467;
  line-height:1.55;
}
.survey-prompt-modal__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.survey-prompt-modal__dismiss{
  border:none;
  background:transparent;
  color:#667085;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  padding:8px 2px;
}
.survey-prompt-modal__dismiss:hover{color:#0f172a}
@media (max-width:760px){
  .survey-prompt-widget{
    right:16px;
    bottom:calc(var(--chatbot-bottom-offset, 14px) + 76px);
  }
  .survey-prompt-widget__button{width:54px;height:54px}
  .survey-prompt-modal__dialog{
    left:12px;
    right:12px;
    bottom:calc(var(--chatbot-bottom-offset, 14px) + 138px);
    width:auto;
    padding:18px;
    border-radius:22px;
  }
  .survey-prompt-modal__actions{
    flex-direction:column;
    align-items:stretch;
  }
  .survey-prompt-modal__actions .button{
    width:100%;
    justify-content:center;
  }
  .survey-prompt-modal__dismiss{text-align:center}
}
@media print{.survey-prompt-widget{display:none !important}}
.footer-image-wrap {
  position: relative;
  overflow: hidden;
  background:#fff;
  padding:28px 0 24px;
}
.footer-image-wrap--flush-top{
  padding-top:0;
}
.footer-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
}
.footer-newsletter-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}
.footer-newsletter{
  width:min(100%, 1320px);
  padding:0 24px;
}
.footer-grid { display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 20px; margin-top: 36px; }
.footer-brand { max-width: 420px; }
.footer-logo { width: 250px; max-width: 100%; margin-bottom: 16px; }
.footer-organisers{max-width:32rem}
.footer-grid h3, .footer-grid h4 { margin-top: 0; font-family: 'FarbeGrotesk', 'Roboto', sans-serif; }
.footer-grid ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.footer-grid a { color: rgba(255,255,255,.84); }
.footer-grid a:hover { color: white; }
.muted-light { color: rgba(255,255,255,.66); }
@media (max-width: 1180px) {
  .desktop-nav { display:none; }
  .header-social{display:none}
  .menu-toggle--mobile{display:inline-flex}
  .hero-stage, .two-col-grid, .footer-grid, .newsletter-signup { grid-template-columns: 1fr; }
  .programme-cards-grid, .news-cards-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .container { width: min(calc(100% - 24px), var(--container)); }
  .section { padding: 48px 0; }
  .header-inner { gap:10px; min-height: 78px; }
  .brand-logo { width: 170px; }
  .header-actions{gap:6px}
  .header-icon-button{width:38px;height:38px}
  .lang-switch{min-width:44px;padding:8px 10px}
  .menu-toggle{width:42px;height:42px}
  .home-hero { min-height: 82svh; }
  .hero-stage { min-height: 82svh; padding: 72px 0; align-items: center; }
  .hero-content{padding:0 12px; margin-top:0}
  .hero-date { font-size: clamp(2.8rem, 12.2vw, 4.6rem); }
  .hero-title { font-size: clamp(1.12rem, 4.7vw, 1.65rem); }
  .home-kpi-band{padding:10px 0 12px}
  .home-kpi-band__inner{
    gap:10px 14px;
    font-size:clamp(1rem, 4.8vw, 1.2rem);
    line-height:1.2;
  }
  .home-kpi-band__inner--closing{
    font-size:clamp(1rem, 4.5vw, 1.2rem);
  }
  .home-kpi-band__item--desktop,
  .home-kpi-band__separator--desktop{
    display:none;
  }
  .home-kpi-band__separator{display:none}
  .programme-cards-grid, .news-cards-grid { grid-template-columns: 1fr; }
  .section-head { flex-direction: column; align-items: flex-start; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .newsletter-signup{padding:20px 0;gap:16px}
  .newsletter-signup__title{max-width:none}
  .newsletter-signup__form{grid-template-columns:1fr;gap:10px;width:100%}
  .newsletter-signup__submit{justify-self:stretch}
  .newsletter-signup__consent{justify-content:flex-start}
  .newsletter-signup__lead{font-size:.95rem;max-width:32rem}
  .home-venues-band{margin:0}
  .home-venues-band__overlay{top:14px;right:14px}
  .home-venues-band__map{min-height:360px}
  .mobility-card__cta{display:inline-flex}
  .footer-image-wrap { padding:20px 0 18px; }
  .footer-newsletter-wrap{align-items:flex-start;padding-top:0}
  .footer-newsletter{padding:0 14px}
  .chatbot-widget{
    left:auto;
    right:14px;
    bottom:var(--chatbot-bottom-offset, 14px);
    width:auto;
  }
  .chatbot-widget:not(.is-panel-visible) .chatbot-widget__launcher{
    right:14px;
    bottom:var(--chatbot-bottom-offset, 14px);
  }
  .chatbot-widget__launcher{
    width:66px;
    min-width:66px;
    min-height:66px;
    padding:0;
    justify-content:center;
  }
  .chatbot-widget__launcher-text{display:none}
  .chatbot-widget__launcher-icon{
    width:52px;
    height:52px;
  }
  .chatbot-widget.is-panel-visible{
    width:min(calc(100vw - 24px), 420px);
  }
  .chatbot-widget__panel{
    padding:14px;
    border-radius:22px;
    max-height:calc(100dvh - 24px);
  }
  .chatbot-widget__form{grid-template-columns:1fr}
  .chatbot-widget__submit{width:100%}
  .chatbot-message__bubble{max-width:94%}
}
@media (prefers-reduced-motion: reduce) {
  .chatbot-widget__panel{
    transition:none;
  }
}
@media (max-width: 640px) {
  .chatbot-widget{
    left:auto;
    right:14px;
    bottom:var(--chatbot-bottom-offset, 14px);
    width:auto;
  }
  .chatbot-widget:not(.is-panel-visible) .chatbot-widget__launcher{
    left:auto;
    right:14px;
    bottom:var(--chatbot-bottom-offset, 14px);
  }
  .chatbot-widget.is-panel-visible{
    inset:0;
    width:100vw;
    max-width:none;
    display:block;
    pointer-events:auto;
  }
  .chatbot-widget.is-panel-visible .chatbot-widget__backdrop{
    display:block;
    position:fixed;
    inset:0;
    border:none;
    padding:0;
    margin:0;
    background:rgba(15,23,42,.18);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    pointer-events:auto;
  }
  .chatbot-widget__launcher{
    margin-left:0;
  }
  .chatbot-widget__panel{
    position:fixed;
    left:12px;
    right:12px;
    top:12px;
    bottom:12px;
    width:auto;
    max-height:none;
    border-radius:26px;
    box-shadow:0 26px 60px rgba(15,23,42,.24);
    transform:translateY(24px) scale(.98);
    transform-origin:bottom center;
  }
  .chatbot-widget__header{
    position:sticky;
    top:0;
    z-index:2;
    margin:-2px -2px 12px;
    padding:2px 2px 0;
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
  }
  .chatbot-widget__quick-actions{
    overflow:auto;
    max-height:min(24dvh, 180px);
    align-content:flex-start;
  }
  .chatbot-widget__messages{
    max-height:none;
  }
  .chatbot-widget__form{
    position:sticky;
    bottom:0;
    z-index:2;
    margin:12px -2px -2px;
    padding:10px 2px 2px;
    background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98));
  }
  .home-venues-band__overlay{
    position:relative;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    z-index:2;
    justify-items:stretch;
    padding:12px;
    background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(238,244,248,.96));
  }
  .home-venues-band__legend{
    justify-content:center;
  }
  .home-venues-band__cta{
    width:100%;
  }
  .home-venues-band__map{min-height:280px}
}

/* =========================
   Static pages / news
   ========================= */

.container--narrow{
    max-width: 920px;
}

.content-hero{
    position: relative;
    padding: 4.5rem 0 2rem;
    overflow: hidden;
}

.content-hero--compact{
    padding-bottom: 1rem;
}

.content-hero--programme{
    padding-bottom: .65rem;
    overflow: visible;
}

.content-hero--image::before{
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(180deg, rgba(243,246,250,0.86) 0%, rgba(243,246,250,0.94) 60%, rgba(243,246,250,1) 100%),
        var(--content-hero-bg);
    background-size: cover;
    background-position: center;
    opacity: 1;
}

.content-hero__inner{
    position: relative;
    z-index: 1;
    max-width: 900px;
    padding: 2rem 0 1rem;
}

.content-hero__inner--article{
    max-width: 1100px;
}

.content-hero__title{
    margin: 0;
    font-size: clamp(2.8rem, 6vw, 5.25rem);
    line-height: 0.92;
    letter-spacing: var(--font-display-spacing-wide);
    text-transform: uppercase;
}

.content-hero__perex{
    margin-top: 1.35rem;
    max-width: 760px;
    font-size: 1.12rem;
    line-height: 1.75;
    color: rgba(15, 23, 42, 0.82);
}

.ticket-thank-you-hero .content-hero__inner{
    max-width: 980px;
}

.ticket-thank-you-grid{
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 20px;
    align-items: stretch;
}

.ticket-thank-you-card{
    padding: 28px 32px;
}

.ticket-thank-you-card--main{
    background:
        linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(255,247,236,.92) 100%);
}

.ticket-thank-you-card p{
    margin: 14px 0 0;
    color: var(--muted);
    line-height: 1.65;
}

.ticket-thank-you-meta{
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 22px;
}

.ticket-thank-you-meta span{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
}

@media (max-width: 820px){
    .ticket-thank-you-grid{
        grid-template-columns: 1fr;
    }

    .ticket-thank-you-card{
        padding: 22px;
    }
}

.my-program-hero__inner{
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 28px;
    align-items: start;
}

.my-program-hero__copy{
    min-width: 0;
}

.my-program-hero-actions{
    display: grid;
    grid-template-columns: minmax(230px, 1.24fr) repeat(3, minmax(118px, .72fr));
    gap: 10px;
    width: min(100%, 700px);
    margin-top: 20px;
    align-items: stretch;
}

.my-program-hero-actions__browse{
    width: auto;
    min-height: 52px;
}

.my-program-hero-actions__tools{
    display: contents;
}

.my-program-hero-actions__tools .button{
    min-height: 52px;
    padding-inline: 16px;
    box-shadow: none;
}

.my-program-hero-actions__clear{
    grid-column: 1 / -1;
    justify-self: end;
    min-height: 40px;
    padding: 8px 14px;
    color: #6b7280;
    background: rgba(255,255,255,.5);
    box-shadow: none;
    font-size: .86rem;
}

.my-program-hero-actions__clear:hover{
    color: #b42318;
    border-color: rgba(244,63,94,.28);
    background: rgba(255,255,255,.78);
}

.my-program-sync-card--hero{
    margin: 0;
    padding: 22px 24px;
    align-self: start;
    grid-template-columns: 1fr;
    gap: 16px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(255,255,255,.78);
    box-shadow: 0 18px 40px rgba(15,23,42,.08);
}

.eyebrow{
    display: inline-block;
    margin-bottom: 1rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, 0.55);
}

.meta-row{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.meta-row__date{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size: 0.92rem;
    color: rgba(15, 23, 42, 0.62);
}

.content-shell{
    padding: 1.5rem 0 5rem;
}

.content-card{
    background: rgba(255,255,255,0.74);
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-radius: 2rem;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(16px);
}

.content-card--rich{
    padding: 2.25rem 2.4rem;
}

.content-card--article{
    padding-top: 2rem;
    width: 100%;
}

.survey-shell{padding-top:clamp(28px,5vw,72px)}
.survey-layout{max-width:980px}
.survey-card,.survey-thanks{display:grid;gap:28px}
.survey-intro{padding-bottom:8px;border-bottom:1px solid var(--line)}
.survey-form{display:grid;gap:34px}
.survey-hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.survey-section{display:grid;gap:18px}
.survey-section__head{display:grid;grid-template-columns:42px 1fr;gap:16px;align-items:start}
.survey-section__head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--blue-dark);color:#fff;font-weight:800}
.survey-section__head h2{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.05}
.survey-section__head p{margin:8px 0 0;color:var(--muted)}
.survey-questions{display:grid;gap:18px}
.survey-question{margin:0;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;gap:14px}
.survey-question legend{padding:0;font-weight:800;font-size:18px;line-height:1.25;color:var(--ink)}
.survey-question legend span{color:var(--red);margin-left:4px}
.survey-question input[type="text"],.survey-question input[type="email"],.survey-question textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font:inherit;background:#fff}
.survey-question textarea{resize:vertical}
.survey-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.survey-options label,.survey-scale__item{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fbfaf7;cursor:pointer}
.survey-options input,.survey-scale input{accent-color:var(--red)}
.survey-other{margin-top:2px}
.survey-scale__hint{margin:0 0 2px;color:var(--muted);font-size:14px;line-height:1.35}
.survey-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.survey-scale__item{justify-content:center;min-height:52px}
.survey-scale__item span{font-weight:800}
.survey-scale__labels{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:13px}
.survey-alert,.survey-error{border-radius:14px;background:#fff1f0;color:#9f1d18;border:1px solid #ffd6d2;padding:12px 14px}
.survey-error{font-size:14px}
.survey-question.has-error{border-color:#ff9a90}
.survey-submit{display:flex;justify-content:flex-end;padding-top:4px}

@media (max-width:720px){
    .survey-section__head{grid-template-columns:1fr}
    .survey-options{grid-template-columns:1fr}
    .survey-scale{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
    .survey-scale__item{min-height:46px;padding:10px 6px;border-radius:12px;gap:5px}
    .survey-scale__item input{width:16px;height:16px}
    .survey-submit .button{width:100%}
}

.wysiwyg--festival{
    font-size: 1.08rem;
    line-height: 1.84;
    color: rgba(15, 23, 42, 0.92);
}

.wysiwyg--festival > *:first-child{
    margin-top: 0;
}

.wysiwyg--festival > *:last-child{
    margin-bottom: 0;
}

.wysiwyg--festival h2,
.wysiwyg--festival h3,
.wysiwyg--festival h4{
    margin: 2.2rem 0 0.75rem;
    line-height: 1.02;
    letter-spacing: var(--font-display-spacing-small);
    text-transform: uppercase;
    color: #06122f;
}

.wysiwyg--festival h2{
    font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.wysiwyg--festival h3{
    font-size: clamp(1.25rem, 2vw, 1.7rem);
}

.wysiwyg--festival h4{
    font-size: 1.05rem;
    letter-spacing: 0.02em;
}

.wysiwyg--festival p{
    margin: 0 0 1rem;
}

.wysiwyg--festival ul,
.wysiwyg--festival ol{
    margin: 0.4rem 0 1.25rem 1.25rem;
    padding: 0;
}

.wysiwyg--festival li{
    margin-bottom: 0.45rem;
}

.wysiwyg--festival strong{
    color: #06122f;
}

.wysiwyg--festival a{
    color: #0b8dcc;
    text-decoration: none;
    border-bottom: 1px solid rgba(11,141,204,0.22);
}

.wysiwyg--festival a:hover{
    border-color: rgba(11,141,204,0.55);
}

.wysiwyg--festival a.button,
.wysiwyg--festival a.button-primary,
.wysiwyg--festival a.button-soft,
.wysiwyg--festival a.button-ghost{
    color: #fff;
    border-bottom: 0;
}

.wysiwyg--festival a.button-ghost{
    color: var(--text);
}

.wysiwyg--festival blockquote{
    margin: 1.5rem 0;
    padding: 1rem 1.2rem;
    border-left: 4px solid #0b8dcc;
    background: linear-gradient(135deg, rgba(11,141,204,0.06), rgba(244,66,91,0.05));
    border-radius: 1rem;
}

.wysiwyg--festival figure{
    max-width: 100%;
}

.wysiwyg--festival img{
    max-width: 100%;
    height: auto !important;
}

.wysiwyg--festival figure img{
    width: 100%;
    height: auto !important;
}


.faq-intro{
    margin: 0 0 1.5rem;
    color: rgba(15, 23, 42, 0.72);
    font-size: 1rem;
    max-width: 62ch;
}

.faq-accordion{
    display: grid;
    gap: 0.9rem;
    margin-top: 1.4rem;
}

.faq-item{
    position: relative;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.5rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.94), rgba(255,255,255,0.82)),
        linear-gradient(135deg, rgba(24,183,232,0.08), rgba(255,26,26,0.05));
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    transition: border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}

.faq-item:hover{
    border-color: rgba(255, 26, 26, 0.16);
    box-shadow: 0 22px 54px rgba(15, 23, 42, 0.08);
}

.faq-item[open]{
    border-color: rgba(255, 26, 26, 0.2);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.09);
}

.faq-item > summary{
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
    font-family: 'FarbeGrotesk','Roboto',sans-serif;
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    line-height: 1.04;
    letter-spacing: -0.01em;
    color: #06122f;
}

.faq-item > summary::-webkit-details-marker{
    display: none;
}

.faq-item > summary::after{
    content: '+';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.86);
    color: var(--red);
    font-family: 'Roboto', sans-serif;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1;
    transition: transform .24s ease, background .24s ease, border-color .24s ease;
}

.faq-item[open] > summary::after{
    content: '–';
    transform: rotate(180deg);
    background: rgba(255, 26, 26, 0.08);
    border-color: rgba(255, 26, 26, 0.16);
}

.faq-item__answer{
    padding: 0 1.35rem 1.25rem;
    color: rgba(15, 23, 42, 0.8);
    font-size: 1rem;
    line-height: 1.78;
}

.faq-item__answer > *:first-child{
    margin-top: 0;
}

.faq-item__answer > *:last-child{
    margin-bottom: 0;
}

.faq-item__answer a{
    color: #0b8dcc;
    border-bottom: 1px solid rgba(11,141,204,0.22);
}

.faq-item__answer a:hover{
    border-color: rgba(11,141,204,0.55);
}

@media (max-width: 640px){
    .faq-accordion{
        gap: 0.75rem;
    }

    .faq-item{
        border-radius: 1.2rem;
    }

    .faq-item > summary{
        padding: 1rem 1rem;
        font-size: 1.05rem;
    }

    .faq-item > summary::after{
        width: 2rem;
        height: 2rem;
        font-size: 1.2rem;
    }

    .faq-item__answer{
        padding: 0 1rem 1rem;
        font-size: 0.96rem;
        line-height: 1.7;
    }
}

.news-grid--full{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
}

.news-card--large{
    min-height: 100%;
}

.news-card__image-wrap{
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid rgba(15,23,42,0.06);
}

.news-card__image{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.text-link{
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.8rem;
    color: #0b8dcc;
    font-weight: 700;
}

@media (max-width: 900px){
    .content-hero{
        padding-top: 3.25rem;
    }

    .content-card--rich{
        padding: 1.5rem 1.25rem;
        border-radius: 1.4rem;
    }

    .wysiwyg--festival{
        font-size: 1rem;
        line-height: 1.75;
    }

    .detail-partner-support__text{
        font-size: 1rem;
        line-height: 1.75;
    }

    .news-grid--full{
        grid-template-columns: 1fr;
    }
}


/* ===== FIXES: mobile menu + display font on static pages/news ===== */

.mobile-menu[hidden] {
  display: none !important;
}

.mobile-menu {
  display: none;
}

.site-header.is-menu-open .mobile-menu {
  display: block;
}

.mobile-menu.is-open {
  display: block;
}

@media (max-width:1180px){
  .mobile-menu{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    bottom:auto;
    z-index:240;
    background:linear-gradient(180deg, rgba(255,255,255,.9), rgba(244,247,250,.96));
    backdrop-filter:blur(22px);
    min-height:calc(100dvh - 76px);
    max-height:calc(100dvh - 76px);
    padding-top:6px;
    overflow:auto;
    overscroll-behavior:contain;
    border-top:1px solid rgba(15,23,42,.06);
  }
  .mobile-menu-inner{
    padding:6px 0 calc(14px + env(safe-area-inset-bottom));
    gap:8px;
  }
  .mobile-menu-group{
    gap:6px;
  }
  .mobile-nav-link{
    min-height:42px;
    padding:9px 12px;
    border-radius:14px;
    box-shadow:0 10px 22px rgba(15,23,42,.05);
    font-size:.95rem;
  }
  .mobile-menu-socials{
    padding-top:0;
    gap:7px;
  }
  .mobile-social-link{
    width:34px;
    height:34px;
  }
}

@media (min-width: 1181px) {
  .mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    border-top: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,250,252,.985));
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    box-shadow: 0 24px 44px rgba(15,23,42,.10), 0 1px 0 rgba(255,255,255,.82) inset;
    border-bottom: 1px solid rgba(15,23,42,.07);
    transform:translateY(-18px) scale(.985);
    transform-origin:top center;
  }
  .mobile-menu-inner{
    align-items:stretch;
    padding:16px 0 18px;
  }
  .mobile-menu-group{
    width:100%;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .mobile-menu-group--primary{
    display:none;
  }
  .mobile-menu-group--overflow{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:24px;
    flex-wrap:wrap;
    padding:0 4px;
  }
  .mobile-nav-link{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    font-size:1.12rem;
    box-shadow:none;
  }
  .mobile-nav-link--current{
    background:transparent;
    color:var(--blue-dark);
  }
  .mobile-nav-link--current::before{
    left:50%;
    top:auto;
    bottom:-8px;
    width:6px;
    height:6px;
    transform:translateX(-50%);
  }
  .mobile-nav-link--program{
    padding:8px 16px 10px;
    border:1px solid rgba(24,183,232,.22);
    border-radius:999px;
    background:linear-gradient(180deg, rgba(233,248,253,.96), rgba(255,255,255,.92));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.98), 0 10px 24px rgba(24,183,232,.10);
  }
  .mobile-nav-link--program::after{
    left:14px;
    right:14px;
    bottom:7px;
  }
  .mobile-nav-link--visitor{
    padding:8px 16px;
    border:1px solid rgba(15,23,42,.08);
    border-radius:999px;
    background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(244,247,250,.96));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  }
  .mobile-nav-link:hover{background:transparent;color:var(--blue-dark)}
  .mobile-nav-link--program.mobile-nav-link--current{
    box-shadow:inset 0 1px 0 rgba(255,255,255,.98), 0 14px 30px rgba(24,183,232,.14);
  }
  .mobile-menu-socials{
    margin-left:auto;
  }
  .mobile-menu.is-open .mobile-nav-link,
  .mobile-menu.is-open .mobile-social-link{
    animation:header-dropdown-item .42s cubic-bezier(.22,1,.36,1) both;
  }
  .mobile-menu.is-open .mobile-nav-link:nth-child(2){animation-delay:.03s}
  .mobile-menu.is-open .mobile-nav-link:nth-child(3){animation-delay:.06s}
  .mobile-menu.is-open .mobile-nav-link:nth-child(4){animation-delay:.09s}
  .mobile-menu.is-open .mobile-nav-link:nth-child(5){animation-delay:.12s}
  .mobile-menu.is-open .mobile-nav-link:nth-child(6){animation-delay:.15s}
}

@keyframes header-dropdown-item{
  from{
    opacity:0;
    transform:translateY(-8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.content-hero__title,
.wysiwyg--festival h2,
.wysiwyg--festival h3,
.wysiwyg--festival h4,
.news-card__title {
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
}


/* ===== Programme detail + programme list + venues map ===== */

.programme-day-tabs-shell{
  position: sticky;
  top: var(--programme-tabs-top, 90px);
  z-index: 18;
  margin-top: 0;
  background: rgba(245,245,247,.96);
  border-bottom: 1px solid rgba(15,23,42,.06);
  box-shadow: 0 8px 20px rgba(15,23,42,.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.programme-day-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 8px 0;
}

.programme-day-tabs-shell + .content-shell{
  padding-top: .85rem;
}

.programme-day-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.78);
  transition: all .2s ease;
}

.programme-day-tab__count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:rgba(15,23,42,.08);
  color:rgba(15,23,42,.72);
  font-size:.72rem;
  font-weight:800;
  line-height:1;
}

.programme-day-tab:hover {
  transform: translateY(-1px);
}

.programme-day-tab.is-empty:not(.is-active){
  color:rgba(15,23,42,.42);
  background:rgba(255,255,255,.46);
  border-color:rgba(15,23,42,.06);
  box-shadow:none;
}

.programme-day-tab.is-empty:not(.is-active) .programme-day-tab__count{
  background:rgba(15,23,42,.05);
  color:rgba(15,23,42,.38);
}

.programme-day-tab.is-empty:not(.is-active):hover{
  transform:none;
  background:rgba(255,255,255,.58);
}

.programme-day-tab.is-active {
  background: linear-gradient(135deg, var(--blue-dark), var(--blue));
  color: white;
  border-color: transparent;
  box-shadow: 0 12px 30px rgba(24,183,232,.22);
}

.programme-day-tab.is-active .programme-day-tab__count{
  background:rgba(255,255,255,.18);
  color:#fff;
}

.programme-ajax-loading [data-programme-results],
.programme-ajax-loading [data-programme-day-tabs-shell]{
  opacity:.62;
  pointer-events:none;
}

.filter-bar {
  position: relative;
}

.filter-mobile-header {
  position: static;
}

.filter-mobile-toggle {
  display: none;
  width: 100%;
  min-height: 40px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.1);
  background: rgba(255,255,255,.68);
  color: var(--text);
  font: inherit;
  font-weight: 600;
  font-size: .95rem;
  text-align: left;
  letter-spacing: .01em;
  backdrop-filter: blur(10px);
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.filter-mobile-toggle:hover {
  background: rgba(255,255,255,.85);
  border-color: rgba(15,23,42,.14);
}

.filter-mobile-toggle:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

.programme-filter-layout {
  display: grid;
  gap: 10px;
  width: 100%;
}

.programme-filter-row {
  display: grid;
  gap: 10px;
  align-items: start;
}

.programme-filter-row--top {
  grid-template-columns: minmax(220px, 1.05fr) minmax(220px, .95fr) minmax(280px, 1.2fr);
}

.programme-filter-row--bottom {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.programme-filter-row > * {
  min-width: 0;
}

.programme-filter-grid__stack {
  display: grid;
  gap: 10px;
  align-self: stretch;
}

.programme-filter-grid__stack label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-weight: 700;
}

.programme-filter-grid__genres .filter-pills__list {
  gap: 10px;
}

.programme-filter-reset {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.82);
  color: var(--text);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.programme-filter-reset .ui-icon{width:16px;height:16px}

.programme-filter-reset:hover {
  background: #fff;
  border-color: rgba(6,18,47,.24);
  transform: rotate(-20deg);
}

.programme-filter-reset:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

.programme-filter-grid__stack select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 10px 14px;
  padding-right: 34px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: white;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.artist-filter-bar {
  margin-top: 14px;
  padding: 14px 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.artist-filter-bar .filter-pills {
  min-width: 0;
  height: 100%;
}

@media (max-width: 760px) {
  .artist-filter-bar {
    grid-template-columns: 1fr;
  }
}

.filter-pills--age {
  min-width: 0;
}

.filter-pills--toggle {
  min-width: 0;
  padding: 12px 14px 14px;
  border-radius: 24px;
  border: 1px solid rgba(15,23,42,.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.72)),
    radial-gradient(circle at top right, rgba(24,183,232,.08), transparent 50%);
  box-shadow: 0 10px 26px rgba(15,23,42,.045);
}

.filter-pills--toggle .filter-pills__list {
  gap: 8px;
}

.filter-pills--toggle .filter-pill span {
  min-height: 40px;
  padding: 8px 14px;
  border-color: rgba(15,23,42,.08);
  background: rgba(255,255,255,.94);
  color: #334155;
  font-size: .88rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

.filter-pills--toggle .filter-pill.is-selected span,
.filter-pills--toggle .filter-pill input:checked + span {
  background: #111827;
  border-color: #111827;
  color: #fff;
  box-shadow: 0 8px 18px rgba(15,23,42,.14);
}

.filter-pills--toggle .filter-pill span:hover {
  border-color: rgba(15,23,42,.14);
  background: #fff;
}

.filter-pills--toggle .filter-pill.is-selected span:hover,
.filter-pills--toggle .filter-pill input:checked + span:hover {
  background: #111827;
  border-color: #111827;
  color: #fff;
}

.filter-pills--toggle.filter-pills--vertical .filter-pills__list {
  gap: 8px;
}

.filter-pills--toggle.filter-pills--vertical .filter-pill {
  width: 100%;
}

.filter-pills--toggle.filter-pills--vertical .filter-pill span {
  width: 100%;
  justify-content: flex-start;
}

.programme-accessibility-pills .filter-pills__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.programme-accessibility-pills.filter-pills--vertical .filter-pill {
  width: auto;
}

.programme-accessibility-pills.filter-pills--vertical .filter-pill span {
  width: 100%;
}

.filter-pills--toggle.filter-pills--compact {
  align-self: stretch;
}

.age-filter-card {
  display: grid;
  gap: 10px;
  padding: 10px 12px 12px;
  border-radius: 20px;
  border: 1px solid rgba(17, 24, 39, 0.08);
  background: rgba(255, 255, 255, 0.68);
}

.age-filter-presets {
  gap: 6px;
}

.age-filter-range {
  display: grid;
  gap: 10px;
}

.age-filter-range__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.age-filter-range__head strong {
  font-size: 0.95rem;
  line-height: 1.2;
}

.age-filter-range__summary {
  font-size: 0.86rem;
  color: rgba(18, 18, 18, 0.68);
}

.age-filter-range__labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.85rem;
  font-weight: 700;
  color: rgba(18, 18, 18, 0.72);
}

.age-filter-range__sliders {
  display: grid;
  gap: 12px;
}

.age-filter-range__slider {
  display: block;
}

.age-filter-range input[type="range"] {
  width: 100%;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  height: 10px;
  border-radius: 999px;
  border: 0;
  background: linear-gradient(90deg, rgba(24, 183, 232, 0.18) 0%, rgba(24, 183, 232, 0.18) 100%);
  outline: none;
}

.age-filter-range input[type="range"]::-webkit-slider-runnable-track {
  height: 10px;
  border-radius: 999px;
  background: transparent;
}

.age-filter-range input[type="range"]::-moz-range-track {
  height: 10px;
  border-radius: 999px;
  background: transparent;
  border: 0;
}

.age-filter-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  margin-top: -4px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: var(--blue);
  box-shadow: 0 4px 14px rgba(24, 183, 232, 0.28);
}

.age-filter-range input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: var(--blue);
  box-shadow: 0 4px 14px rgba(24, 183, 232, 0.28);
}

.filter-pills--vertical .filter-pills__list {
  flex-direction: column;
  align-items: flex-start;
}

.programme-day-group {
  margin-bottom: 2.25rem;
}

.programme-day-section {
  margin-bottom: 1.25rem;
}

.programme-day-section:last-child {
  margin-bottom: 0;
}

.programme-day-heading {
  margin: 0 0 1rem;
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: .95;
  letter-spacing: var(--font-display-spacing-small);
  text-transform: uppercase;
}

.section-head--compact {
  margin-bottom: 16px;
}

.section-title--small {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
}

.detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: 20px;
  align-items: start;
}

.detail-gallery {
  margin-top: 24px;
}

.detail-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.detail-gallery-item {
  overflow: hidden;
}

.detail-gallery-item img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.detail-info-card {
  padding: 24px;
  position: sticky;
  top: 108px;
}

.detail-list {
  display: grid;
  gap: 14px;
  margin: 18px 0 0;
}

.detail-list div {
  border-top: 1px solid rgba(15,23,42,.07);
  padding-top: 14px;
}

.detail-list dt {
  font-size: .86rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(15,23,42,.56);
  margin-bottom: 6px;
}

.detail-list dd {
  margin: 0;
  line-height: 1.6;
}

.detail-subtitle {
  margin: 22px 0 10px;
  font-family: 'FarbeGrotesk', 'Roboto', sans-serif;
  font-size: 1.35rem;
  letter-spacing: var(--font-display-spacing-small);
}

.detail-people-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.detail-people-list li {
  display: grid;
  gap: 2px;
}

.detail-people-list span {
  color: var(--muted);
}

.detail-map-wrap {
  margin-top: 20px;
}

.detail-map,
.venues-map {
  height: 340px;
  border-radius: 22px;
  overflow: hidden;
}

.venues-map-card--immersive .venues-map {
  height: 520px;
}

.venues-map {
  height: 450px;
}

.venues-map {
  height: 450px;
}

.venues-map-card {
  padding: 16px;
  margin-bottom: 20px;
}

.venues-map-card--immersive {
  position: relative;
  padding: 0;
  overflow: hidden;
}

.venues-map-card__head {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
}

.venues-list-grid {
  display: grid;
  gap: 18px;
}

.venue-list-item {
  overflow: hidden;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
}

.venue-list-item__body {
  padding: 24px;
}

.venue-list-item__media {
  position: relative;
  min-height: 100%;
  background: #dbe6f4;
}

.venue-list-item__media-link,
.venue-list-item__title-link{
  color:inherit;
  text-decoration:none;
}

.venue-list-item__media-link{
  display:block;
  height:100%;
}

.venue-list-item__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.venue-list-item__number {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #06122f;
  color: white;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(6,18,47,.2);
}
.venue-list-item--main .venue-list-item__number{
  background:var(--venue-main);
  box-shadow:0 10px 24px rgba(255,26,26,.24);
}
.venue-list-item--off .venue-list-item__number{
  background:var(--venue-off);
  box-shadow:0 10px 24px rgba(100,116,139,.22);
}
.venue-list-item--festival-service .venue-list-item__number{
  background:var(--venue-service);
  color:#111827;
  box-shadow:0 10px 24px rgba(245,158,11,.26);
}

.venue-meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.venue-link-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border:0;
  border-radius:999px;
  background:#0f172a;
  color:#fff;
  font-weight:700;
  font-size:.92rem;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
}

.mobile-directions-button{
  display:none;
  margin-top:12px;
}

.mobile-directions-button--inline{
  margin-top:0;
}

.venues-map-pin {
  background: none;
  border: 0;
}

.venues-map-pin span {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #06122f;
  color: #fff;
  font-size: .9rem;
  font-weight: 800;
  border: 2px solid #fff;
  box-shadow: 0 8px 20px rgba(6,18,47,.28);
}
.venues-map-pin--main span{
  background:var(--venue-main);
  box-shadow:0 8px 20px rgba(255,26,26,.3);
}
.venues-map-pin--off span{
  background:var(--venue-off);
  box-shadow:0 8px 20px rgba(100,116,139,.26);
}
.venues-map-pin--festival-service span{
  background:var(--venue-service);
  color:#111827;
  box-shadow:0 8px 20px rgba(245,158,11,.3);
}
.venues-map-pin--footer span{
  background:#fff;
  color:#111827;
  box-shadow:0 10px 22px rgba(15,23,42,.18);
}

.venue-map-popup {
  display: grid;
  gap: 10px;
  min-width: 180px;
}

.venue-map-popup__image {
  width: 100%;
  height: 92px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

.venue-map-popup__body {
  display: grid;
  gap: 6px;
}

.venue-map-popup__title {
  display: block;
  color: #0f172a;
  line-height: 1.3;
}

.venue-map-popup__meta {
  display: block;
  color: #475569;
  font-size: .92rem;
  line-height: 1.35;
}

.venue-map-popup__link {
  color: #0f172a;
  font-weight: 700;
  text-decoration: none;
}

.venue-map-popup__link:hover,
.venue-map-popup__link:focus-visible {
  text-decoration: underline;
}

.venue-map-popup__line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 24px;
  margin: 2px 3px 0 0;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(11, 137, 178, .28);
  color: #0f172a;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 3px 8px rgba(15, 23, 42, .12);
}

.venue-map-popup__line:hover,
.venue-map-popup__line:focus-visible {
  background: #e8f7fb;
  border-color: rgba(11, 137, 178, .58);
  color: #075f7e;
  text-decoration: none;
}

.venue-map-popup__button {
  display: none;
  width: fit-content;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.mobility-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}

.mobility-map-legend--overlay {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 670;
  max-width: min(420px, calc(100% - 36px));
  padding: 10px 12px;
  border-radius: 18px;
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .14);
}

.mobility-map-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  padding: 2px 4px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-size: .92rem;
  line-height: 1.2;
  text-align: left;
  transition: color .18s ease, opacity .18s ease, background-color .18s ease;
}

.mobility-map-legend__item:hover,
.mobility-map-legend__item:focus-visible {
  color: var(--ink);
  background: rgba(6, 18, 47, .06);
  outline: none;
}

.mobility-map-legend__item[aria-pressed="false"] {
  color: rgba(91, 110, 128, .62);
}

.mobility-map-legend__item[aria-pressed="false"] .mobility-map-dot {
  opacity: .34;
}

.mobility-map-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
}

.mobility-map-dot--festival {
  background: #06122f;
}
.mobility-map-dot--main {
  background: var(--venue-main);
}
.mobility-map-dot--off {
  background: var(--venue-off);
}
.mobility-map-dot--festival-service {
  background: var(--venue-service);
}

.mobility-map-dot--nextbike {
  background: #2456c5;
}

.mobility-map-dot--mhd {
  background: #c62828;
}

.mobility-map-dot--aed {
  background: #0f766e;
}

.mobility-map-pin {
  background: none;
  border: 0;
}

.mobility-map-pin span {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .22);
}

.mobility-map-pin--nextbike span {
  background: #2456c5;
}

.mobility-map-pin--mhd span {
  background: #c62828;
  border-radius: 6px;
}

.mobility-map-pin--aed span {
  background: #0f766e;
}

.mobility-map-pin svg {
  width: 14px;
  height: 14px;
  display: block;
  stroke: #fff;
  fill: none;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mobility-panel {
  display: grid;
  gap: 12px;
}

.mobility-panel__intro {
  margin: -6px 0 2px;
}

.mobility-card {
  display: grid;
  gap: 8px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid rgba(15, 23, 42, .08);
  background: rgba(255, 255, 255, .86);
}

.mobility-card--nextbike {
  background: linear-gradient(180deg, rgba(234, 251, 239, .96), rgba(255, 255, 255, .92));
}

.mobility-card--mhd {
  background: linear-gradient(180deg, rgba(255, 241, 241, .96), rgba(255, 255, 255, .92));
}

.mobility-card__eyebrow {
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}

.mobility-card__title {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.3;
}

.mobility-card__meta {
  margin: 0;
  color: #334155;
}

.mobility-line-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mobility-line-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  color: #0f172a;
  font-weight: 700;
  font-size: .86rem;
}

.mobility-line-badge--link {
  text-decoration: none;
}

.mobility-line-badge--link:hover,
.mobility-line-badge--link:focus-visible {
  border-color: rgba(11, 137, 178, .42);
  color: #0b89b2;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
}

.mobility-stop-item {
  display: grid;
  gap: 8px;
}

.mobility-stop-item__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mobility-departures-icon {
  display: inline-flex;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 999px;
  background: #fff;
  color: #0b89b2;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
}

.mobility-departures-icon .ui-icon {
  width: 18px;
  height: 18px;
}

.mobility-stop-item + .mobility-stop-item {
  padding-top: 12px;
  margin-top: 4px;
  border-top: 1px solid rgba(15, 23, 42, .08);
}

.mobility-card__cta {
  display: none;
}

.today-nearby-section {
  display: none;
}

.today-nearby-panel {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 20px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 16px 34px rgba(15, 23, 42, .08);
}

.today-nearby-panel__head {
  display: grid;
  gap: 14px;
}

.today-nearby-panel__button {
  width: 100%;
  justify-content: center;
}

.today-nearby-panel__button[disabled] {
  cursor: wait;
  opacity: .76;
}

.today-nearby-panel__status {
  margin: 0;
  line-height: 1.45;
}

.today-nearby-panel__grid {
  display: grid;
  gap: 12px;
}

.today-nearby-card {
  border-radius: 18px;
}

.today-nearby-stop {
  display: grid;
  gap: 8px;
}

.today-nearby-stop + .today-nearby-stop {
  padding-top: 12px;
  margin-top: 4px;
  border-top: 1px solid rgba(15, 23, 42, .08);
}

.today-nearby-card__cta {
  display: inline-flex;
}

.today-nearby-departures {
  display: grid;
  gap: 6px;
}

.today-nearby-departures__row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}

.today-nearby-departures__row--button {
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.today-nearby-departures__row--button:hover,
.today-nearby-departures__row--button:focus-visible {
  border-color: rgba(14, 165, 233, .38);
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
  outline: 0;
}

.today-nearby-departures__line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  font-weight: 800;
  line-height: 1;
}

.today-nearby-departures__line--link {
  text-decoration: none;
}

.today-nearby-departures__line--link:hover,
.today-nearby-departures__line--link:focus-visible {
  background: #0b89b2;
}

.today-nearby-departures__direction {
  min-width: 0;
  color: #1f2937;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.22;
}

.today-nearby-departures__time {
  color: #0f172a;
  font-weight: 800;
  white-space: nowrap;
}

.today-nearby-departures__empty {
  margin: 0;
  color: #475569;
  font-size: .9rem;
}

.today-nearby-departures__delay {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #fee2e2;
  color: #b91c1c;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .today-nearby-section {
    display: block;
    padding-top: 22px;
    padding-bottom: 10px;
  }

  .venue-map-popup__button {
    display: inline-flex;
  }

  .mobility-departures-icon {
    display: inline-flex;
  }

  .mobility-card__cta {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    margin-top: 4px;
  }
}

@media (max-width: 1100px) {
  .programme-filter-row--top,
  .programme-filter-row--bottom {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .programme-filter-row--top .filter-pills--age,
  .programme-filter-row--bottom > :nth-child(3):last-child {
    grid-column: 1 / -1;
  }

  .detail-grid {
    grid-template-columns: 1fr;
  }

  .detail-info-card {
    position: static;
    top: auto;
  }

  .venue-list-item {
    grid-template-columns: 1fr;
  }

  .venue-list-item__media {
    min-height: 240px;
  }

  .venue-cards-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .venue-cards-grid .venue-list-item__media{
    min-height:0;
  }
}

@media (max-width: 760px) {
  .programme-filter-row--top,
  .programme-filter-row--bottom {
    grid-template-columns: 1fr;
  }

  .content-hero[data-detail-view]{
    padding-bottom:1.45rem;
  }

  .content-hero[data-detail-view] .content-hero__inner--article{
    padding-top:1.25rem;
  }

  .content-hero[data-detail-view] .meta-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin-bottom:.9rem;
  }

  .content-hero[data-detail-view] .venue-pill,
  .content-hero[data-detail-view] .meta-row__date{
    justify-content:flex-start;
  }

  .content-hero[data-detail-view] .venue-pill{
    flex:1 1 100%;
    width:100%;
    min-height:40px;
    padding:8px 12px;
    border-color:rgba(15,23,42,.08);
    background:rgba(15,23,42,.06);
  }

  .content-hero[data-detail-view] .soft-badge{
    flex:0 1 auto;
    width:auto;
    min-height:34px;
    padding:7px 12px;
    font-size:.86rem;
    line-height:1.1;
  }

  .content-hero[data-detail-view] .meta-row__date{
    flex:1 1 100%;
    min-height:32px;
    padding:5px 2px;
    color:rgba(15,23,42,.66);
    font-size:.95rem;
    line-height:1.22;
  }

  .content-hero[data-detail-view] .hero-actions{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:9px;
    margin-top:16px !important;
  }

  .content-hero[data-detail-view] .hero-actions > .button,
  .content-hero[data-detail-view] .hero-actions > .ticket-cta-form,
  .content-hero[data-detail-view] .hero-actions > .ticket-cta-form > .button{
    width:100%;
  }

  .content-hero[data-detail-view] .hero-actions > .button,
  .content-hero[data-detail-view] .hero-actions > .ticket-cta-form > .button{
    min-height:52px;
    padding:10px 12px;
    border-radius:18px;
    font-size:.94rem;
    line-height:1.1;
    gap:7px;
    box-shadow:0 12px 28px rgba(15,23,42,.08);
    white-space:normal;
    text-align:center;
  }

  .content-hero[data-detail-view] .hero-actions .button .ui-icon,
  .content-hero[data-detail-view] .hero-actions .favorite-toggle__icon .ui-icon{
    width:18px;
    height:18px;
    flex-basis:18px;
  }

  .content-hero[data-detail-view] .favorite-detail-button{
    min-height:52px;
    background:linear-gradient(135deg, #ff5d5d, var(--red));
    box-shadow:0 16px 34px rgba(255,26,26,.18);
  }

  .content-hero[data-detail-view] .button-primary{
    background:linear-gradient(135deg, #0d91bd, #47bcea);
    box-shadow:0 16px 34px rgba(24,183,232,.18);
  }

  .content-hero[data-detail-view] .button-ghost{
    background:rgba(255,255,255,.78);
    border-color:rgba(15,23,42,.07);
    color:#111827;
  }

  .content-hero[data-detail-view] .ticket-availability--hero{
    grid-column:1 / -1;
    justify-self:center;
    min-height:32px;
    max-width:100%;
    padding:7px 13px;
    font-size:.86rem;
    background:rgba(233,248,253,.74);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }

  .programme-accessibility-pills .filter-pills__list {
    grid-template-columns: 1fr;
  }

  .age-filter-card {
    padding: 10px;
  }

  .filter-pills--toggle {
    padding: 12px;
    border-radius: 22px;
  }

  .age-filter-range__head {
    flex-direction: column;
    align-items: flex-start;
  }

  .detail-gallery-grid {
    grid-template-columns: 1fr;
  }

  .detail-map,
  .venues-map {
    height: 280px;
  }

  .mobility-map-legend--overlay {
    position: static;
    right: auto;
    top: auto;
    left: auto;
    bottom: auto;
    z-index: auto;
    max-width: none;
    margin: 12px 12px 0;
    justify-content: center;
    box-shadow: none;
  }

  .detail-grid--venue-mobile-info-first {
    display: flex;
    flex-direction: column;
  }

  .detail-grid--venue-mobile-info-first .detail-side {
    order: 1;
  }

  .detail-grid--venue-mobile-info-first .detail-main {
    order: 2;
  }
}


/* ===== Programme detail v2 / venues map / gallery lightbox ===== */

.programme-day-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}

.programme-day-group {
  margin-bottom: 2.25rem;
}

.programme-day-section {
  margin-bottom: 1.25rem;
}

.programme-day-section:last-child {
  margin-bottom: 0;
}

.programme-day-heading {
  margin: 0 0 1rem;
  font-family: 'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: .95;
  letter-spacing: var(--font-display-spacing-small);
  text-transform: uppercase;
}

.section-head--compact {
  margin-bottom: 16px;
}

.section-title--small {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
}

.detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: 20px;
  align-items: start;
}

.detail-main,
.detail-gallery,
.detail-grid > .detail-block {
  grid-column: 1;
}

.detail-side {
  grid-column: 2;
  grid-row: 1 / span 5;
}

.detail-block {
  margin-top: 24px;
}

.detail-gallery {
  margin-top: 24px;
}

.detail-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.detail-gallery-item {
  overflow: hidden;
  padding: 0;
  border: 0;
  cursor: pointer;
}

.detail-gallery-item img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.detail-info-card {
  padding: 24px;
  position: sticky;
  top: 108px;
}

.detail-off-programme-notice {
  margin: 0 0 1.35rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  color: #5f6b7c;
  font-size: 1rem;
  line-height: 1.68;
}

.detail-list {
  display: grid;
  gap: 14px;
  margin: 18px 0 0;
}

.detail-list div {
  border-top: 1px solid rgba(15,23,42,.07);
  padding-top: 14px;
}

.detail-list dt {
  font-size: .86rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(15,23,42,.56);
  margin-bottom: 6px;
}

.detail-list dd {
  margin: 0;
  line-height: 1.6;
}

.detail-subtitle {
  margin: 22px 0 10px;
  font-family: 'FarbeGrotesk', 'Roboto', sans-serif;
  font-size: 1.35rem;
  letter-spacing: var(--font-display-spacing-small);
}

.detail-people-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.detail-people-list li {
  display: grid;
  gap: 2px;
}

.detail-people-list span {
  color: var(--muted);
}

.detail-map-wrap {
  margin-top: 20px;
}

.detail-map,
.venues-map {
  height: 340px;
  border-radius: 22px;
  overflow: hidden;
}

.venues-map-card {
  padding: 16px;
  margin-bottom: 20px;
}

.venues-list-grid {
  display: grid;
  gap: 18px;
}

.venue-list-item {
  overflow: hidden;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
}

.venue-list-item__body {
  padding: 24px;
}

.venue-list-item__media {
  position: relative;
  min-height: 100%;
  background: #dbe6f4;
}

.venue-list-item__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.venue-list-item__number {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #06122f;
  color: white;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(6,18,47,.2);
}
.venue-list-item--main .venue-list-item__number{
  background:var(--venue-main);
  color:#fff;
  box-shadow:0 10px 24px rgba(6,18,47,.2);
}
.venue-list-item--off .venue-list-item__number{
  background:var(--venue-off);
  color:#fff;
  box-shadow:0 10px 24px rgba(100,116,139,.22);
}
.venue-list-item--festival-service .venue-list-item__number{
  background:var(--venue-service);
  color:#111827;
  box-shadow:0 10px 24px rgba(245,158,11,.26);
}
.venue-section-head{
  margin-top:36px;
}
.venue-list-item--support{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,255,.92));
}
.venue-meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.venues-map-pin {
  background: none;
  border: 0;
}

.venues-map-pin span {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #06122f;
  color: #fff;
  font-size: .9rem;
  font-weight: 800;
  border: 2px solid #fff;
  box-shadow: 0 8px 20px rgba(6,18,47,.28);
}
.venues-map-pin--main span{
  background:var(--venue-main);
  color:#fff;
  box-shadow:0 8px 20px rgba(6,18,47,.28);
}
.venues-map-pin--off span{
  background:var(--venue-off);
  color:#fff;
  box-shadow:0 8px 20px rgba(100,116,139,.26);
}
.venues-map-pin--festival-service span{
  background:var(--venue-service);
  color:#111827;
  box-shadow:0 8px 20px rgba(245,158,11,.3);
}

.lightbox[hidden] {
  display: none !important;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 120;
  background: rgba(6, 18, 47, .92);
  display: grid;
  grid-template-columns: 84px minmax(0,1fr) 84px;
  align-items: center;
  gap: 12px;
  padding: 32px;
}

.lightbox__stage {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  min-height: 0;
}

.lightbox__image {
  max-width: 100%;
  max-height: 86vh;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0,0,0,.34);
}

.lightbox--has-caption .lightbox__image {
  max-height: calc(86vh - 72px);
}

.lightbox__caption {
  max-width: min(760px, 100%);
  color: rgba(255,255,255,.92);
  font-size: .98rem;
  line-height: 1.45;
  text-align: center;
  text-wrap: balance;
}

.lightbox__caption[hidden] {
  display: none !important;
}

.lightbox__close,
.lightbox__nav {
  border: 0;
  background: rgba(255,255,255,.12);
  color: white;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
  backdrop-filter: blur(8px);
}

.lightbox__close {
  position: absolute;
  top: 22px;
  right: 22px;
}

.lightbox__nav--prev {
  justify-self: start;
}

.lightbox__nav--next {
  justify-self: end;
}

body.lightbox-open {
  overflow: hidden;
}

@media (max-width: 1100px) {
  .detail-grid {
    grid-template-columns: 1fr;
  }

  .detail-main,
  .detail-side,
  .detail-gallery,
  .detail-grid > .detail-block {
    grid-column: auto;
    grid-row: auto;
  }

  .detail-main {
    order: 1;
  }

  .detail-side {
    order: 2;
  }

  .detail-gallery {
    order: 3;
  }

  .detail-grid > .detail-block {
    order: 4;
  }

  .detail-info-card {
    position: static;
    top: auto;
  }

  .venue-list-item {
    grid-template-columns: 1fr;
  }

  .venue-list-item__media {
    min-height: 240px;
  }

  .venue-cards-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .venue-cards-grid .venue-list-item__media{
    min-height:0;
  }

  .venue-list-item__body {
    padding: 20px;
  }
}

@media (max-width: 760px) {
  .detail-gallery-grid {
    grid-template-columns: 1fr;
  }

  .detail-map,
  .venues-map {
    height: 280px;
  }

  .lightbox {
    grid-template-columns: minmax(0,1fr);
    gap: 0;
    padding: 8px;
  }

  .lightbox__stage {
    width: 100%;
    height: 100%;
    gap: 10px;
  }

  .lightbox__image {
    max-width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
    border-radius: 12px;
  }

  .lightbox--has-caption .lightbox__image {
    max-height: calc(100vh - 96px);
  }

  .lightbox__caption {
    max-width: calc(100vw - 28px);
    font-size: .9rem;
  }

  .lightbox__close,
  .lightbox__nav {
    width: 44px;
    height: 44px;
    font-size: 1.5rem;
  }

  .lightbox__close {
    top: 8px;
    right: 8px;
  }

  .lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
  }

  .lightbox__nav--prev {
    left: 8px;
  }

  .lightbox__nav--next {
    right: 8px;
  }
}


@media (max-width: 760px) {
  .programme-day-tabs-shell{
    top: var(--programme-tabs-top, 76px);
  }

  .programme-day-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding: 8px 0 8px;
    scrollbar-width: none;
  }

  .programme-day-tabs::-webkit-scrollbar{display:none}

  .programme-day-tab {
    flex: 0 0 auto;
  }

  .filter-bar {
    position: sticky;
    top: 132px;
    z-index: 17;
  }
}

.soft-badge--age{background:rgba(17,24,39,.08);border-color:rgba(17,24,39,.12);color:#111827}
.soft-badge--access{background:rgba(0,198,254,.1);border-color:rgba(0,198,254,.22);color:#0b6f8c}
.programme-card--headliner{box-shadow:0 18px 44px rgba(254,0,0,.12)}
.programme-card--headliner .programme-card-title{color:#111827}
.programme-time-divider{display:flex;align-items:center;gap:14px;margin:1.4rem 0 1rem}
.programme-time-divider::after{content:"";height:1px;flex:1 1 auto;background:linear-gradient(90deg,rgba(15,23,42,.16),rgba(15,23,42,.04))}
.programme-time-divider__label{display:inline-flex;align-items:center;padding:.28rem .7rem;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.08);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(15,23,42,.66);white-space:nowrap}
.view-switcher{display:flex;gap:10px;flex-wrap:wrap;padding:12px;margin:22px 0}
.view-switcher__item{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;text-decoration:none;color:inherit;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.72);white-space:nowrap;flex:0 0 auto}
.view-switcher__item .ui-icon{width:17px;height:17px}
.view-switcher__item.is-active{background:#111827;color:#fff;border-color:#111827}
.artist-cards-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.artist-card{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit}
.artist-card__media{aspect-ratio:16/10;background:#e5e7eb}
.artist-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.artist-card__body{padding:18px}
.detail-text-block{white-space:normal;line-height:1.75}
.detail-text-block + .detail-text-block{margin-top:1.5rem}
.detail-text-block br+br{content:""}
.detail-partner-support{display:grid;gap:1.1rem;margin:1.5rem 0}
.detail-partner-support__item{display:grid;gap:.8rem;padding-top:1.1rem;border-top:1px solid rgba(15,23,42,.08)}
.detail-partner-support__item:first-child{padding-top:0;border-top:0}
.detail-partner-support__text{margin:0;font-size:1.08rem;line-height:1.84;color:#1f2937}
.detail-partner-support__logo{display:inline-flex;align-items:center;justify-content:center;max-width:min(100%,320px);min-height:86px;padding:1rem 1.15rem;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.72));border:1px solid rgba(15,23,42,.08);box-shadow:0 10px 30px rgba(15,23,42,.05);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.detail-partner-support__logo img{display:block;max-width:100%;max-height:72px;width:auto;height:auto;object-fit:contain}
.detail-partner-support__logo:not(.detail-partner-support__logo--static):hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(15,23,42,.08)}
.video-embed-wrap{position:relative;padding-top:56.25%;overflow:hidden;border-radius:24px}
.video-embed-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.detail-grid--single{grid-template-columns:minmax(0,1fr)}
@media (max-width: 760px){
  .view-switcher{padding:10px}
  .view-switcher__item{width:100%;justify-content:center}
  .programme-time-divider{margin:1rem 0 .85rem}
  .programme-time-divider__label{font-size:.72rem;letter-spacing:.1em}
}


.venue-list-item--link{color:inherit;text-decoration:none}
.venue-list-item--link:hover .news-card__title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.venue-cards-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:16px;
}
@media (min-width: 900px){
  .venue-cards-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
.venue-cards-grid .venue-list-item{
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.venue-cards-grid .venue-list-item__media{
  aspect-ratio:16/10;
  min-height:0;
}
.venue-cards-grid .venue-list-item__media img{
  display:block;
}
.venue-cards-grid .venue-list-item__number{
  top:10px;
  left:10px;
  width:32px;
  height:32px;
  font-size:.82rem;
  box-shadow:0 8px 18px rgba(6,18,47,.18);
}
.venue-cards-grid .venue-list-item__body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  padding:16px;
}
.venue-cards-grid .news-card__title{
  margin:0;
  font-size:1.08rem;
  line-height:1.16;
}
.venue-cards-grid .muted{
  margin:.5rem 0 0;
  font-size:.86rem;
  line-height:1.35;
}
.venue-cards-grid .venue-meta-grid{
  margin-top:auto;
  padding-top:14px;
  gap:9px;
}
.venue-cards-grid .venue-pill{
  padding:6px 10px;
  font-size:.8rem;
}
.venue-cards-grid .text-link{
  font-size:.86rem;
  font-weight:700;
}
@media (min-width: 761px){
  .venues-map-card .mobility-map-legend--overlay{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    max-width:220px;
  }
}
@media (max-width: 760px){
  .venue-cards-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
  .venue-cards-grid .venue-list-item{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:10px 12px;
  }
  .venue-cards-grid .venue-list-item__media{
    width:42px;
    min-height:0;
    aspect-ratio:auto;
    background:transparent;
    overflow:visible;
  }
  .venue-cards-grid .venue-list-item__media::after{
    display:none;
  }
  .venue-cards-grid .venue-list-item__media img,
  .venue-cards-grid .programme-card-media-fallback{
    display:none;
  }
  .venue-cards-grid .venue-list-item__number{
    position:static;
    width:34px;
    height:34px;
    font-size:.86rem;
    box-shadow:none;
  }
  .venue-cards-grid .venue-list-item__body{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:0;
  }
  .venue-cards-grid .news-card__title{
    font-size:.98rem;
    line-height:1.18;
  }
  .venue-cards-grid .muted,
  .venue-cards-grid .text-link{
    display:none;
  }
  .venue-cards-grid .venue-meta-grid{
    display:flex;
    justify-content:flex-end;
    margin:0;
    padding:0;
  }
  .venue-cards-grid .venue-pill{
    white-space:nowrap;
  }
  .venue-cards-grid .venue-pill--map-category{
    width:34px;
    height:34px;
    padding:0;
    justify-content:center;
    font-size:0;
    gap:0;
  }
  .venue-cards-grid .venue-pill--map-category::before{
    width:10px;
    height:10px;
  }
}
@media (max-width: 430px){
  .venue-cards-grid .venue-list-item__body{
    grid-template-columns:1fr;
    gap:6px;
  }
  .venue-cards-grid .venue-meta-grid{
    justify-content:flex-start;
  }
}

.search-hero{overflow:visible}
.search-hero .content-hero__inner{display:grid;gap:16px}
.search-hero__inner{max-width:980px}
.search-hero-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;background:
  radial-gradient(circle at top right,rgba(24,183,232,.12),transparent 48%),
  linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.9))}
.search-hero-form__field{min-width:0}
.search-hero-form__input{width:100%;min-height:48px;border:1px solid rgba(15,23,42,.12);border-radius:14px;background:#fff;padding:0 14px;font:inherit;color:#1f2937}
.search-hero-form__button{min-height:48px}
.search-results-shell{display:grid;gap:18px}
.search-tabs{display:flex;flex-wrap:wrap;gap:8px}
.search-tabs__item{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#334155;padding:10px 14px;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.84);transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.search-tabs__item:hover{transform:translateY(-1px);background:#fff}
.search-tabs__item.is-active{background:#111827;color:#fff;border-color:#111827}
.search-tabs__count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(15,23,42,.09);font-size:.76rem;font-weight:700}
.search-tabs__item.is-active .search-tabs__count{background:rgba(255,255,255,.2)}
.search-section{padding:22px}
.search-section__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.search-section__summary{margin:0 0 14px}
.search-list{display:grid;gap:10px}
.search-events-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.search-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid rgba(15,23,42,.06)}
.search-item:first-child{border-top:0;padding-top:0}
.search-item__content{display:grid;gap:6px;min-width:0}
.search-item--event .search-item__main{align-items:center}
.search-item__main--event{display:flex;align-items:center;justify-content:flex-start;gap:14px}
.search-item__thumb{display:block;width:120px;height:76px;border-radius:14px;overflow:hidden;flex:0 0 120px;background:#e5e7eb}
.search-item__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.search-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(15,23,42,.06)}
.search-pagination__link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;min-width:38px;padding:0 12px;border-radius:999px;border:1px solid rgba(15,23,42,.12);text-decoration:none;color:#334155;background:#fff}
.search-pagination__link.is-active{background:#111827;color:#fff;border-color:#111827}
.search-recommendations{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.search-recommendations__item{text-decoration:none;color:#1f2937}
.search-correction{margin:10px 0 0;color:#475569;font-weight:700}
.search-correction a{color:#185abc}
@media (max-width: 760px) {
  .header-inner { min-height: 66px; padding: 6px 0; }
  .brand-logo { width: 156px; }
  .header-search-form { flex-direction: column; align-items: stretch; }
  .header-search-submit { width: 100%; }
  .search-hero-form{grid-template-columns:1fr}
  .search-suggest-panel{position:static;margin-top:10px}
  .search-suggest-item{align-items:flex-start;gap:10px}
  .search-suggest-item__badge{min-width:auto}
  .search-events-grid{grid-template-columns:1fr}
  .search-item__main--event{flex-direction:column;align-items:flex-start}
  .search-item__thumb{width:100%;height:176px}
  .filter-mobile-header {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .filter-mobile-toggle {
    display:block;
    margin-bottom:0;
    order: 1;
    flex: 1 1 auto;
    padding-right: 14px;
  }
  .programme-filter-reset {
    position: static;
    order: 2;
    flex: 0 0 auto;
    margin-left: auto;
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,.68);
    border-color: rgba(15,23,42,.1);
  }
  .filter-mobile-panel {
    margin-top: 10px;
  }
  .filter-bar:not(.is-open) .filter-mobile-panel { display:none; }
  .mobile-directions-button{
    display:inline-flex;
    width:100%;
  }
}
@media (min-width: 761px) and (max-width: 980px){
  .search-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


.header-icon-link{position:relative;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.favorites-counter{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.favorites-counter[hidden]{display:none!important}
.programme-card-shell{position:relative}
.favorite-toggle{position:absolute;top:14px;right:14px;z-index:4;width:42px;height:42px;border:none;border-radius:999px;background:linear-gradient(135deg, #ff5d5d, var(--red));backdrop-filter:blur(14px);box-shadow:0 14px 32px rgba(255,26,26,.18);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;color:#fff}
.favorite-toggle:hover{transform:translateY(-1px);box-shadow:0 18px 36px rgba(255,26,26,.24)}
.favorite-toggle.is-active{background:linear-gradient(135deg, #ff5d5d, var(--red));color:#fff}
.programme-card-shell > .favorite-toggle{background:rgba(255,255,255,.92);color:#111827;box-shadow:0 14px 32px rgba(15,23,42,.14)}
.programme-card-shell > .favorite-toggle:hover{box-shadow:0 18px 36px rgba(15,23,42,.2)}
.programme-card-shell > .favorite-toggle.is-active{background:#111827;color:#fff}
.favorite-toggle__icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.favorite-toggle__icon .ui-icon{width:20px;height:20px}
.favorite-toggle--inline{position:static;flex:0 0 auto;width:40px;height:40px;box-shadow:none;background:linear-gradient(135deg, #ff5d5d, var(--red));border:1px solid transparent;color:#fff}
.favorite-detail-button{display:inline-flex;align-items:center;gap:10px}
.share-modal{position:fixed;inset:0;z-index:135;display:grid;place-items:center;padding:24px}
.share-modal[hidden]{display:none !important}
.share-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.36);backdrop-filter:blur(8px)}
.share-modal__dialog{position:relative;z-index:1;width:min(100%,540px);padding:28px;background:rgba(255,255,255,.97)}
.share-modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:999px;font-size:1.4rem;line-height:1;cursor:pointer}
.share-modal__title{margin:10px 0 .35rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.9rem,3vw,2.5rem);line-height:.95}
.share-modal__lead{margin:0 0 1.2rem;color:#475467;line-height:1.6}
.share-modal__actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.share-option{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:14px 16px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:rgba(255,255,255,.9);font:inherit;color:inherit;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.share-option:hover{transform:translateY(-1px);background:#fff;border-color:rgba(24,183,232,.34);box-shadow:0 12px 24px rgba(15,23,42,.08)}
.share-option__icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:rgba(24,183,232,.12);color:#0b89b2;font-weight:800;flex:0 0 30px}
.share-modal__link-row{margin-top:14px}
.share-modal__input{width:100%;padding:14px 16px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:rgba(248,250,252,.95);font:inherit;color:#344054}
.share-modal__feedback{min-height:1.5em;margin:10px 0 0;color:#0b89b2;font-weight:600}
body.share-modal-open{overflow:hidden}
.mhd-departures-modal,.mhd-departure-detail-modal{position:fixed;inset:0;z-index:136;display:grid;place-items:center;padding:24px}
.mhd-departure-detail-modal{z-index:138}
.mhd-departures-modal[hidden]{display:none !important}
.mhd-departure-detail-modal[hidden]{display:none !important}
.mhd-departures-modal__backdrop,.mhd-departure-detail-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.4);backdrop-filter:blur(8px)}
.mhd-departures-modal__dialog{position:relative;z-index:1;width:min(100%,560px);max-height:min(720px,calc(100vh - 48px));overflow:auto;padding:28px;background:rgba(255,255,255,.98)}
.mhd-departure-detail-modal__dialog{position:relative;z-index:1;width:min(100%,920px);max-height:min(760px,calc(100vh - 48px));overflow:auto;padding:28px;background:rgba(255,255,255,.98)}
.mhd-departures-modal__close,.mhd-departure-detail-modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:999px;font-size:1.4rem;line-height:1;cursor:pointer}
.mhd-departure-detail-modal__body{display:grid;gap:14px}
.mhd-departures-modal__title{margin:8px 44px 8px 0;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.7rem,3vw,2.35rem);line-height:.98}
.mhd-departures-modal__status{margin:0 0 16px}
.mhd-departures-modal__list{display:grid;gap:8px}
.mhd-departures-modal__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:rgba(248,250,252,.94)}
.mhd-departures-modal__row--button{width:100%;font:inherit;text-align:left;cursor:pointer}
.mhd-departures-modal__row--button:hover,.mhd-departures-modal__row--button:focus-visible{border-color:rgba(14,165,233,.38);background:#fff;box-shadow:0 10px 22px rgba(15,23,42,.08);outline:0}
.mhd-departures-modal__line{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:30px;padding:0 10px;border-radius:999px;background:#0f172a;color:#fff;font-weight:800}
.mhd-departures-modal__line--link{text-decoration:none}
.mhd-departures-modal__line--link:hover,.mhd-departures-modal__line--link:focus-visible{background:#0b89b2}
.mhd-departures-modal__direction{min-width:0;color:#1f2937;font-weight:700;line-height:1.25}
.mhd-departures-modal__time-group{display:grid;justify-items:end;gap:3px}
.mhd-departures-modal__time{font-weight:800;color:#0f172a}
.mhd-departures-modal__delay{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:.72rem;font-weight:800;line-height:1;white-space:nowrap}
.mhd-departures-modal__detail{display:grid;gap:14px}
.mhd-departures-modal__back{justify-self:start;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#fff;padding:9px 14px;color:#0f172a;font-weight:800;cursor:pointer}
.mhd-departures-modal__back:hover,.mhd-departures-modal__back:focus-visible{border-color:rgba(14,165,233,.42);color:#0369a1;outline:0}
.mhd-departure-detail__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.mhd-departure-detail__title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:4px 0 0;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.45rem,2.6vw,2rem);line-height:1}
.mhd-departure-detail__line{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:34px;padding:3px 12px;border-radius:999px;background:#0f172a;color:#fff;font-family:'Roboto',sans-serif;font-size:1rem;font-weight:900;line-height:1}
.mhd-departure-detail__meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.mhd-departure-detail__meta span{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#eef6fb;color:#0f172a;font-size:.82rem;font-weight:800}
.mhd-departure-detail__map{min-height:360px;border:1px solid rgba(15,23,42,.1);border-radius:18px;overflow:hidden;background:#e2e8f0}
.mhd-departure-detail__legend{display:flex;flex-wrap:wrap;gap:10px 14px;color:#475569;font-size:.86rem;font-weight:800}
.mhd-departure-detail__legend span{display:inline-flex;align-items:center;gap:7px}
.mhd-route-key{display:inline-block;width:24px;height:4px;border-radius:999px;background:#0ea5e9}
.mhd-route-key--previous{background:#64748b}
.mhd-route-key--next{background:#0ea5e9}
.mhd-route-key--vehicle{width:12px;height:12px;background:#ef4444}
.mhd-departure-detail__note{margin:0;color:#64748b;font-size:.92rem}
.mhd-departure-detail__stops{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.mhd-departure-detail__stop{display:grid;gap:3px;padding:10px 12px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#fff}
.mhd-departure-detail__stop strong{color:#0f172a;font-size:.9rem;line-height:1.15}
.mhd-departure-detail__stop span{display:flex;align-items:center;gap:7px;color:#64748b;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.mhd-departure-detail__stop time{display:inline-flex;color:#0f172a;font-size:.9rem;font-weight:800;letter-spacing:0}
.mhd-departure-detail__stop--previous,.mhd-departure-detail__stop--passed{background:#f8fafc}
.mhd-departure-detail__stop--boarding{border-color:rgba(14,165,233,.45);background:#eff6ff}
.mhd-route-stop-pin{background:transparent;border:0}
.mhd-route-stop-pin span{display:block;width:14px;height:14px;border:3px solid #0ea5e9;border-radius:999px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.2)}
.mhd-route-stop-pin--previous span,.mhd-route-stop-pin--passed span{border-color:#64748b}
.mhd-route-stop-pin--boarding span{width:18px;height:18px;border-color:#0284c7;background:#e0f2fe}
.mhd-route-vehicle-pin{background:transparent;border:0}
.mhd-route-vehicle-pin span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:3px solid #fff;border-radius:999px;background:#ef4444;color:#fff;box-shadow:0 12px 28px rgba(185,28,28,.32)}
.mhd-route-vehicle-pin svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
body.mhd-departures-modal-open,body.mhd-departure-detail-modal-open{overflow:hidden}
.ticket-sale-notice-modal{position:fixed;inset:0;z-index:137;display:grid;place-items:center;padding:24px}
.ticket-sale-notice-modal[hidden]{display:none !important}
.ticket-sale-notice-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ticket-sale-notice-modal__dialog{position:relative;z-index:1;width:min(100%,540px);padding:30px;background:rgba(255,255,255,.98)}
.ticket-sale-notice-modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:999px;font-size:1.4rem;line-height:1;cursor:pointer}
.ticket-sale-notice-modal__title{margin:8px 48px 10px 0;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.9rem,3vw,2.55rem);line-height:.96}
.ticket-sale-notice-modal__message{margin:0;color:#344054;line-height:1.65}
.ticket-sale-notice-modal__countdown{display:grid;gap:4px;margin-top:18px;padding:16px 18px;border:1px solid rgba(255,59,48,.18);border-radius:20px;background:linear-gradient(180deg,rgba(255,245,244,.98),rgba(255,255,255,.92))}
.ticket-sale-notice-modal__countdown span{color:#667085;font-size:.9rem;font-weight:700}
.ticket-sale-notice-modal__countdown strong{font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(2rem,5vw,3rem);line-height:1;color:#ff3b30}
.ticket-sale-notice-modal__action{margin-top:20px;width:100%}
body.ticket-sale-notice-modal-open{overflow:hidden}
.search-item--with-favorite{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.search-item__main{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;color:inherit;flex:1 1 auto;padding:18px 0}
.my-program-empty{padding:34px;margin-bottom:24px}
.my-program-sync-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px;align-items:center;padding:28px 30px;margin-bottom:24px}
.my-program-sync-card{background:
  radial-gradient(circle at top right, rgba(24,183,232,.12), transparent 34%),
  linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  border:1px solid rgba(255,255,255,.65)}
.my-program-sync-card__copy{display:grid;gap:14px;align-self:stretch}
.my-program-sync-card__copy h2{margin:0;max-width:12ch;line-height:.94}
.my-program-sync-card__status{padding:16px 18px;border-radius:22px;background:rgba(15,23,42,.04);border:1px solid rgba(15,23,42,.06)}
.my-program-sync-card__status-label{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#667085}
.my-program-sync-card__status-label::before{content:"";width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,var(--blue-dark),var(--blue));box-shadow:0 0 0 5px rgba(24,183,232,.12)}
.my-program-sync-card__copy p,
.my-program-sync-card__status p{margin:0;line-height:1.55;color:#344054}
.my-program-sync-actions-head{display:flex;align-items:center;justify-content:flex-start;gap:14px;flex-wrap:wrap}
.my-program-sync-profile{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 14px 26px rgba(15,23,42,.08);max-width:100%}
.my-program-sync-profile[hidden]{display:none !important}
.my-program-sync-profile__avatar{width:38px;height:38px;border-radius:999px;object-fit:cover;display:block;box-shadow:0 8px 18px rgba(15,23,42,.12);border:2px solid rgba(255,255,255,.95);background:#e5e7eb}
.my-program-sync-profile__avatar[hidden]{display:none !important}
.my-program-sync-profile__avatar--fallback{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;background:linear-gradient(135deg,#06122f 0%,#18b7e8 100%);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.my-program-sync-profile__name{font-weight:700;color:#1f2937;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.my-program-sync-card__actions{display:grid;gap:14px;justify-items:start;align-self:stretch;padding:18px;border-radius:24px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.72);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.my-program-sync-card__actions [hidden]{display:none !important}
.my-program-sync-card__actions .muted{font-size:.95rem;line-height:1.55}
.my-program-sync-card__note{padding-top:2px;max-width:28ch}
.my-program-sync-card--hero .my-program-sync-card__copy{
  gap:10px;
}
.my-program-sync-card--hero{
  display:grid;
  grid-template-columns:1fr;
  align-items:start;
}
.my-program-sync-card--hero .my-program-sync-card__copy h2{
  max-width:none;
  font-size:clamp(1.45rem, 2vw, 1.9rem);
  line-height:1.02;
  letter-spacing:var(--font-display-spacing-small);
}
.my-program-sync-card--hero .my-program-sync-card__actions{
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
  gap:10px;
}
.my-program-sync-card--hero .my-program-sync-actions-head{
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.my-program-sync-card--hero .my-program-sync-profile{
  box-shadow:none;
  border-color:rgba(15,23,42,.06);
}
.my-program-sync-card--hero .my-program-sync-card__status{
  padding:0;
  border:0;
  border-radius:0;
  background:none;
}
.my-program-sync-card--hero .my-program-sync-card__status-label{
  margin-bottom:4px;
  font-size:.68rem;
}
.my-program-sync-card--hero .my-program-sync-card__status-label::before{
  width:8px;
  height:8px;
  box-shadow:0 0 0 4px rgba(24,183,232,.10);
}
.my-program-sync-card--hero .my-program-sync-card__status p{
  font-size:1rem;
  line-height:1.5;
}
.my-program-sync-card--hero .my-program-sync-card__note{
  max-width:none;
  font-size:.95rem;
  color:#667085;
}
.my-program-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 24px}
.my-program-toolbar__controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.my-program-recommendations-cta{display:grid;grid-template-columns:minmax(0,1.6fr) auto;gap:22px;align-items:center;padding:28px 30px;margin-top:28px}
.my-program-recommendations-cta p{margin:10px 0 0;line-height:1.65;color:#344054;max-width:68ch}
.my-program-recommendations-cta__copy{display:grid;gap:2px}
.my-program-recommendations-cta__copy h2{margin:0}
.my-program-recommendations-cta__actions{display:flex;justify-content:flex-end}
.my-program-map-card{display:grid;gap:18px;padding:26px 28px;margin-top:28px}
.my-program-map-card__head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.my-program-map-card__head h2{margin:0}
.my-program-map-card__head p{margin:8px 0 0}
.my-program-map-card__map{min-height:420px;border-radius:24px;overflow:hidden;border:1px solid rgba(15,23,42,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.my-program-map-pin span{background:#f5413b;box-shadow:0 10px 22px rgba(245,65,59,.24)}
.my-program-map-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.my-program-map-legend__item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:16px;background:rgba(248,250,252,.82);border:1px solid rgba(15,23,42,.07);color:#1f2937;text-align:left;text-decoration:none;cursor:pointer}
.my-program-map-legend__item:hover{background:#fff}
.my-program-map-legend__number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:999px;background:#f5413b;color:#fff;font-size:.82rem;font-weight:900;box-shadow:0 8px 18px rgba(245,65,59,.18)}
.my-program-map-legend__copy{display:grid;gap:2px;min-width:0}
.my-program-map-legend__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}
.my-program-map-legend__copy small{color:#64748b;font-size:.78rem;font-weight:700}
.my-program-ai-card{display:grid;gap:14px;padding:24px 26px;align-self:stretch}
.my-program-ai-card p{margin:0;line-height:1.6;color:#344054}
.my-program-ai-summary{display:grid;gap:14px;padding:26px 28px;margin-bottom:24px}
.my-program-ai-summary p{margin:0;line-height:1.72;color:#344054}
.my-program-ai-summary .wysiwyg p{margin:0 0 18px;line-height:1.72;color:#344054}
.my-program-ai-summary .wysiwyg p:last-child{margin-bottom:0}
.my-program-ai-summary .wysiwyg strong{font-weight:800;color:#0f172a}
.my-program-ai-summary .wysiwyg a,
.my-program-ai-summary .text-link{display:inline;margin:0;vertical-align:baseline}
.my-program-ai-summary .text-link{font-weight:800}
.my-program-ai-summary .text-link:hover{transform:none}
.my-program-ai-meta{display:flex;flex-wrap:wrap;gap:10px}
.my-program-ai-note{display:grid;gap:10px;margin-top:16px;padding:14px 16px;border-radius:18px;background:rgba(15,23,42,.04);border:1px solid rgba(15,23,42,.07)}
.my-program-ai-note p{margin:0;line-height:1.58;color:#334155}
.my-program-ai-note__chips{display:flex;flex-wrap:wrap;gap:8px}
.my-program-recommendations-cards-shell{max-width:none}
.my-program-recommendations-cards-shell .programme-cards-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.my-program-processing{display:flex;gap:10px;align-items:center;margin-top:6px}
.my-program-processing span{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--blue-dark),var(--blue));opacity:.24;animation:my-program-processing 1.2s ease-in-out infinite}
.my-program-processing span:nth-child(2){animation-delay:.15s}
.my-program-processing span:nth-child(3){animation-delay:.3s}
@keyframes my-program-processing{0%,80%,100%{transform:translateY(0);opacity:.24}40%{transform:translateY(-4px);opacity:.9}}
.my-program-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px;border-radius:999px;background:rgba(255,255,255,.84);border:1px solid rgba(15,23,42,.08);box-shadow:0 16px 28px rgba(15,23,42,.08)}
.my-program-toggle__item{position:relative;display:inline-flex;align-items:center}
.my-program-toggle__item input{position:absolute;opacity:0;pointer-events:none}
.my-program-toggle__item span{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:999px;font-size:.95rem;line-height:1.1;font-weight:700;color:#334155;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.my-program-toggle__item.is-selected span,
.my-program-toggle__item input:checked + span{background:#111827;color:#fff;box-shadow:0 12px 24px rgba(15,23,42,.16)}
.my-program-days{display:grid;gap:30px}
.my-program-list{display:grid;gap:14px}
.my-program-transfer{position:relative;border:1px solid rgba(15,23,42,.08);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 12px 24px rgba(15,23,42,.05)}
.my-program-transfer::before{content:"";position:absolute;left:18px;top:0;bottom:0;width:3px;border-radius:999px;background:rgba(148,163,184,.45)}
.my-program-transfer--ok::before{background:rgba(16,185,129,.9)}
.my-program-transfer--tight::before{background:rgba(245,158,11,.9)}
.my-program-transfer--warning::before{background:rgba(239,68,68,.9)}
.my-program-transfer--ok{border-color:rgba(16,185,129,.16);background:rgba(244,253,249,.76)}
.my-program-transfer--tight{border-color:rgba(245,158,11,.18);background:rgba(255,251,235,.82)}
.my-program-transfer--warning{border-color:rgba(239,68,68,.18);background:rgba(254,242,242,.82)}
.my-program-transfer[open]{background:rgba(255,255,255,.8)}
.my-program-transfer__summary-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px 15px 32px;list-style:none;cursor:pointer}
.my-program-transfer__summary-line::-webkit-details-marker{display:none}
.my-program-transfer__summary-main{display:grid;gap:3px;min-width:0}
.my-program-transfer__eyebrow{font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#64748b}
.my-program-transfer__route{font-size:.95rem;font-weight:700;color:#0f172a;line-height:1.32}
.my-program-transfer__summary{color:#475569;font-weight:600;font-size:.86rem;line-height:1.4}
.my-program-transfer__chevron{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(15,23,42,.08);color:#334155;font-size:1rem;font-weight:700;transition:transform .18s ease}
.my-program-transfer[open] .my-program-transfer__chevron{transform:rotate(45deg)}
.my-program-transfer__panel{display:grid;gap:10px;padding:0 18px 15px 32px}
.my-program-transfer__detail{margin:0;color:#64748b;line-height:1.5;font-size:.9rem}
.my-program-transfer__metrics{display:flex;flex-wrap:wrap;gap:8px}
.my-program-transfer__metric{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(15,23,42,.07);font-size:.84rem;font-weight:700;color:#334155}
.my-program-transfer__metric .ui-icon{width:16px;height:16px}
.my-program-transfer__button{justify-self:start;padding:10px 14px;font-size:.88rem;box-shadow:none}
.my-program-transfer__button .ui-icon{width:16px;height:16px}
.my-program-card{display:grid;grid-template-columns:220px 1fr;gap:0;overflow:hidden}
.shared-program-shell{display:grid;gap:18px}
.shared-program-card.is-added{opacity:.76}
.shared-program-card.is-added .my-program-card__media img{filter:saturate(.72)}
.my-program-card__media{min-height:180px;background:#eef2ff}
.my-program-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.my-program-card__body{padding:22px 24px 24px}
.my-program-card__body .event-accessibility-row{margin-top:10px}
.my-program-card__utility{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.my-program-card__directions-action{display:none;box-shadow:none}
.my-program-card__actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}
.my-program-card__primary-action{width:auto}
.my-program-card__quick-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.my-program-card__quick-actions .ticket-cta-form{display:inline-flex;margin:0}
.my-program-card__quick-actions .ticket-cta-form .button{width:auto}
.my-program-card__icon-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:auto;
  min-height:46px;
  padding:.72rem 1rem;
  border-radius:999px;
  box-shadow:none;
}
.my-program-card__icon-action .ui-icon,
.my-program-card__icon-action .favorite-toggle__icon{
  width:19px;
  height:19px;
}
.my-program-card__directions-action.my-program-card__icon-action{
  display:none;
}
.my-program-card__buy-action{
  color:#fff;
  background:linear-gradient(135deg, var(--blue-dark), var(--blue));
  border-color:transparent;
  box-shadow:0 12px 26px rgba(24,183,232,.18);
}
.my-program-card__ticket-action{
  color:#fff;
  background:linear-gradient(135deg, var(--blue-dark), var(--blue));
  border-color:transparent;
  box-shadow:0 12px 26px rgba(24,183,232,.18);
}
@media (max-width: 980px){.my-program-hero__inner{grid-template-columns:1fr}}
@media (max-width: 1280px){.my-program-recommendations-cards-shell .programme-cards-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width: 1080px){.my-program-recommendations-cards-shell .programme-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width: 820px){.my-program-sync-card,.my-program-card,.my-program-recommendations-cta{grid-template-columns:1fr}.my-program-sync-card__copy h2{max-width:none}.my-program-sync-actions-head{align-items:flex-start;flex-direction:column}.my-program-sync-profile__name{max-width:none}.my-program-card__media{min-height:160px}.my-program-card__body{padding:18px 18px 20px}.my-program-card__body .card-meta-row{gap:8px 14px}.my-program-card__utility{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;margin-top:12px}.my-program-card__utility--split{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.my-program-card__utility--directions-only{justify-content:flex-start}.my-program-card__directions-action{display:inline-flex;padding:9px 12px;font-size:.88rem;justify-self:end}.my-program-card__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.my-program-card__primary-action{grid-column:1/-1}.my-program-card__actions>.button,.my-program-card__actions>.ticket-cta-form,.my-program-card__actions>.ticket-cta-form>.button,.my-program-recommendations-cta__actions>.button{width:100%}.my-program-card__remove-action{justify-content:center}.my-program-ai-card,.my-program-ai-summary,.my-program-recommendations-cta{padding:20px}.my-program-recommendations-cta__actions{justify-content:flex-start}.my-program-recommendations-cards-shell .programme-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 820px){.my-program-map-card{padding:20px}.my-program-map-card__map{min-height:320px;border-radius:18px}}
@media (max-width: 820px){
  .my-program-card__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:16px;
  }
  .my-program-card__primary-action{
    grid-column:auto;
    min-height:58px;
  }
  .my-program-card__quick-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .my-program-card__quick-actions .ticket-cta-form{
    display:contents;
  }
  .my-program-card__icon-action,
  .my-program-card__quick-actions .ticket-cta-form,
  .my-program-card__quick-actions .ticket-cta-form .button{
    width:100%;
  }
  .my-program-card__icon-action{
    display:inline-flex;
    min-height:52px;
    padding:10px 12px;
    border-radius:18px;
    justify-content:center;
    justify-items:center;
  }
  .my-program-card__icon-action > span:not(.favorite-toggle__icon),
  .my-program-card__icon-action [data-favorite-label]{
    position:static;
    width:auto;
    height:auto;
    overflow:visible;
    clip:auto;
    white-space:normal;
    font-size:.9rem;
    line-height:1.15;
  }
  .my-program-card__directions-action.my-program-card__icon-action{
    display:inline-flex;
    padding:10px 12px;
    font-size:1rem;
    justify-self:stretch;
  }
}
@media (max-width: 760px){
  .my-program-hero-actions{
    grid-template-columns:1fr;
    gap:10px;
  }
  .my-program-hero-actions__browse{
    min-height:58px;
  }
  .my-program-hero-actions__tools{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .my-program-hero-actions__tools .button{
    min-height:54px;
    padding:9px 8px;
    border-radius:18px;
    flex-direction:column;
    gap:5px;
    font-size:.9rem;
    line-height:1.12;
  }
  .my-program-hero-actions__clear{
    grid-column:1;
    width:100%;
    min-height:46px;
    justify-self:stretch;
    justify-content:center;
    border-radius:18px;
  }
}
@media (max-width: 760px){.my-program-toolbar{margin:0 0 20px}.my-program-toolbar__controls{display:grid;gap:12px;width:100%}.my-program-toggle{display:grid;grid-template-columns:1fr;justify-items:stretch;border-radius:24px}.my-program-toggle__item span{width:100%}.my-program-list{gap:12px}.my-program-transfer{border-radius:18px}.my-program-transfer::before{left:14px}.my-program-transfer__summary-line{padding:13px 14px 14px 26px;align-items:flex-start}.my-program-transfer__panel{padding:0 14px 14px 26px}.my-program-transfer__route{font-size:.92rem}.my-program-transfer__summary{font-size:.83rem}.my-program-transfer__button{width:100%;justify-content:center}}
@media print{
  .site-header,.site-footer,.hero-actions,.favorite-toggle,.menu-toggle,.header-search-wrap,.mobile-menu,.lang-switch,[data-clear-favorites],[data-print-my-program],.my-program-toolbar{display:none !important}
  body{background:#fff}
  .site-shell,.content-shell,.container{max-width:none !important;width:100% !important;padding:0 !important;margin:0 !important}
  .glass-card,.my-program-card{box-shadow:none !important;border:1px solid #ddd !important;background:#fff !important}
  .content-hero{padding:0 0 12px !important;background:none !important}
  .content-hero__title{font-size:40px !important;line-height:1.02 !important;margin-bottom:12px !important}
  .content-hero__perex{font-size:16px !important;line-height:1.45 !important;max-width:none !important}
  .content-shell{padding-top:0 !important}
  .my-program-days{gap:16px !important}
  .my-program-day{break-inside:avoid;page-break-inside:avoid;margin-bottom:12px !important}
  .my-program-list{gap:10px !important}
  .my-program-card{grid-template-columns:150px 1fr !important;page-break-inside:avoid;break-inside:avoid}
  .my-program-card__media{min-height:110px !important}
  .my-program-card__body{padding:14px 16px 16px !important}
  .programme-day-heading{font-size:24px !important;line-height:1.08 !important;margin-bottom:8px !important}
  .programme-card-title{font-size:20px !important;line-height:1.08 !important;margin:8px 0 6px !important}
  .card-meta-row,.muted,.eyebrow{font-size:12px !important;line-height:1.35 !important}
  .ui-icon{width:16px;height:16px;flex-basis:16px}
  .ui-icon--sm{width:14px;height:14px;flex-basis:14px}
  .my-program-card__actions,.button,[data-favorite-toggle],.button-soft,.button-primary,.button-ghost{display:none !important}
}

.page-tabs-shell{padding:0 0 1.25rem}
.page-tabs{display:flex;flex-wrap:wrap;gap:.75rem;border-top:1px solid rgba(15,23,42,.06);padding-top:1rem}
.page-tab{display:inline-flex;align-items:center;padding:.8rem 1rem;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.08);font-weight:700;color:#334155}
.page-tab.is-active,.page-tab:hover{background:rgba(255,26,26,.08);color:var(--red);border-color:rgba(255,26,26,.2)}
.page-module{margin-top:2rem;padding:1.75rem 1.5rem;border-radius:24px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow)}
.page-module__title{margin:0 0 .6rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.9rem,3vw,2.7rem);line-height:.95}
.page-module__subtitle{color:var(--muted);margin-bottom:1rem}
.module-people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.module-person-card{overflow:hidden;border-radius:22px;background:rgba(255,255,255,.88);border:1px solid rgba(15,23,42,.06)}
.module-person-card__media{aspect-ratio:1/1;background:#dde7f1}
.module-person-card__media img{width:100%;height:100%;object-fit:cover}
.module-person-card__body{padding:1rem}
.module-person-card__body h3{margin:0 0 .4rem;font-size:1.08rem}
.module-person-card__role{font-weight:700;color:var(--red);margin-bottom:.55rem}
.module-person-card__text{color:#475467;line-height:1.6;font-size:.96rem}
.module-person-card__link{display:inline-block;margin-top:.7rem;color:var(--blue-dark);font-weight:700}
.module-partner-tier+.module-partner-tier{margin-top:2.25rem}
.module-partner-tier__title{margin:0 0 1rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:1.3rem;letter-spacing:-.01em}
.module-partner-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.4rem 1.25rem;align-items:start}
.module-partner-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.85rem;min-height:100%;padding:.15rem .15rem 0;text-align:center;color:inherit;text-decoration:none;transition:transform .2s ease,opacity .18s ease}
.module-partner-card.is-static{cursor:default}
.module-partner-card__logo{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:138px;padding:1.15rem 1rem;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.66));border:1px solid rgba(15,23,42,.08);box-shadow:0 10px 30px rgba(15,23,42,.05), inset 0 1px 0 rgba(255,255,255,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden}
.module-partner-card__logo::before{content:'';position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.08));pointer-events:none}
.module-partner-card img{position:relative;z-index:1;max-width:100%;max-height:88px;width:auto;height:auto;object-fit:contain;filter:grayscale(1) contrast(1.02);opacity:.9;transition:filter .22s ease,opacity .22s ease,transform .22s ease}
.module-partner-card__name{display:block;font-size:.96rem;font-weight:700;line-height:1.35;color:#1f2937;text-wrap:balance}
.module-partner-tier--primary .module-partner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.7rem 1.5rem}
.module-partner-tier--primary .module-partner-card__logo{min-height:184px;padding:1.6rem 1.4rem;border-radius:26px}
.module-partner-tier--primary .module-partner-card img{max-height:108px}
.module-partner-tier--primary .module-partner-card__name{font-size:1.08rem}
.module-partner-tier--secondary .module-partner-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.55rem 1.35rem}
.module-partner-tier--secondary .module-partner-card__logo{min-height:158px;padding:1.3rem 1.15rem}
.module-partner-tier--secondary .module-partner-card img{max-height:96px}
.module-partner-tier--tertiary .module-partner-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem 1.25rem}
.module-partner-tier--tertiary .module-partner-card__logo{min-height:148px}
.module-partner-tier--tertiary .module-partner-card img{max-height:90px}
@media (hover: hover) {
    .module-partner-card:hover {
        transform: translateY(-2px);
    }
    .module-partner-card:hover .module-partner-card__logo {
        background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.78));
        border-color:rgba(255,26,26,.16);
        box-shadow:0 14px 34px rgba(15,23,42,.09), inset 0 1px 0 rgba(255,255,255,.65);
    }
    .module-partner-card:hover img {
        filter: grayscale(0);
        opacity: 1;
        transform: scale(1.04);
    }
    .module-partner-card.is-static:hover {
        transform:none;
    }
}
.module-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.module-gallery-card{position:relative;overflow:hidden;border-radius:22px;min-height:260px;background:#dbe6f4}
.module-gallery-card__media,.module-gallery-card__media img{width:100%;height:100%}
.module-gallery-card__media img{object-fit:cover}
.module-gallery-card__overlay{position:absolute;inset:0;display:flex;align-items:end;padding:1rem;background:linear-gradient(180deg,rgba(15,23,42,0) 30%,rgba(15,23,42,.6) 100%);color:#fff}
.module-gallery-card__overlay strong{font-size:1.35rem;line-height:1.05;font-family:'FarbeGrotesk','Roboto',sans-serif}
.module-offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.module-offer-card{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;border-radius:22px;background:rgba(255,255,255,.88);border:1px solid rgba(15,23,42,.06);align-self:start}
.module-offer-card__media{aspect-ratio:16/9;background:#dde7f1}
.module-offer-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.module-offer-card__body{display:grid;gap:.95rem;padding:1.15rem;align-content:start}
.module-offer-card__topline{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.module-offer-card__topline h3{margin:0;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:.95}
.module-offer-card__badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:.35rem .65rem;border-radius:999px;background:rgba(255,26,26,.08);border:1px solid rgba(255,26,26,.18);font-size:.8rem;font-weight:700;color:var(--red);white-space:nowrap}
.module-offer-card__text{color:#475467;line-height:1.65;font-size:.98rem}
.module-offer-card__meta{display:grid;gap:.75rem;margin:0}
.module-offer-card__meta div{display:grid;gap:.22rem}
.module-offer-card__meta dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:#64748b}
.module-offer-card__meta dd{margin:0;color:#0f172a;line-height:1.55}
.module-offer-card__actions{display:flex;flex-wrap:wrap;gap:.65rem;padding-top:.15rem;align-items:flex-start}
.module-offer-card__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1rem;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:#fff;color:#0f172a;text-decoration:none;font-weight:700;line-height:1.1;white-space:nowrap}
.module-file-list{display:grid;gap:.8rem}
.module-file-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border-radius:18px;background:rgba(255,255,255,.88);border:1px solid rgba(15,23,42,.06)}
.module-file-item__icon{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:999px;background:rgba(24,183,232,.12);font-size:1.2rem;font-weight:900;color:var(--blue-dark)}
.module-file-item__copy{display:grid;gap:.15rem}
.module-file-item__copy small{color:var(--muted)}
.module-file-card-grid{display:grid;grid-template-columns:repeat(auto-fill,136px);gap:1rem;align-items:start;justify-content:start}
.module-file-card{display:grid;overflow:hidden;border-radius:20px;background:rgba(255,255,255,.9);border:1px solid rgba(15,23,42,.08);color:inherit;text-decoration:none;box-shadow:0 14px 30px rgba(15,23,42,.06)}
.module-file-card__preview{display:block;aspect-ratio:3/4;background:linear-gradient(180deg,#eef6fb,#f8fbfd);border-bottom:1px solid rgba(15,23,42,.07);overflow:hidden}
.module-file-card__preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .78s cubic-bezier(.22,1,.36,1)}
.module-file-card__body{display:grid;gap:.35rem;padding:.85rem;align-content:start}
.module-file-card__body strong{display:grid;gap:.05rem;font-size:.94rem;line-height:1.22}
.module-file-card__body strong span{display:block}
.module-file-card__body small{color:var(--muted);line-height:1.45}
.module-file-card__action{margin-top:.25rem;color:var(--blue-dark);font-weight:800;font-size:.86rem}
.module-press-release-list{display:grid;gap:.85rem}
.module-press-release-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.1rem;border-radius:18px;background:rgba(255,255,255,.9);border:1px solid rgba(15,23,42,.07);box-shadow:0 10px 24px rgba(15,23,42,.045)}
.module-press-release-item__icon{width:2.6rem;height:2.6rem;display:grid;place-items:center;border-radius:999px;background:rgba(255,26,26,.08);color:var(--red)}
.module-press-release-item__copy{display:grid;gap:.18rem;min-width:0}
.module-press-release-item__copy strong{font-size:1.02rem;line-height:1.25;color:#111827}
.module-press-release-item__copy small{color:var(--muted);line-height:1.5}
.module-press-release-item__actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}
.module-press-release-item__button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.62rem .8rem;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.1);color:#111827;text-decoration:none;font-size:.84rem;font-weight:900;letter-spacing:.02em}
.module-press-release-item__button:first-child{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff}
@media (max-width: 1200px){.module-partner-grid{grid-template-columns:repeat(4,minmax(0,1fr));}.module-partner-tier--primary .module-partner-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.module-partner-tier--secondary .module-partner-grid,.module-partner-tier--tertiary .module-partner-grid,.module-partner-tier--standard .module-partner-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width: 980px){.module-people-grid,.module-gallery-grid,.module-offer-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.module-partner-grid,.module-partner-tier--primary .module-partner-grid,.module-partner-tier--secondary .module-partner-grid,.module-partner-tier--tertiary .module-partner-grid,.module-partner-tier--standard .module-partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 520px){.module-file-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.module-file-card__body{padding:.75rem}.module-file-card__body strong{font-size:.88rem}.module-file-card__action{font-size:.82rem}}
@media (max-width: 640px){.page-module{padding:1.25rem 1rem}.module-people-grid,.module-gallery-grid,.module-offer-grid,.module-partner-grid,.module-partner-tier--primary .module-partner-grid,.module-partner-tier--secondary .module-partner-grid,.module-partner-tier--tertiary .module-partner-grid,.module-partner-tier--standard .module-partner-grid{grid-template-columns:1fr}.module-partner-card__logo{min-height:132px}.module-partner-tier--primary .module-partner-card__logo,.module-partner-tier--secondary .module-partner-card__logo,.module-partner-tier--tertiary .module-partner-card__logo{min-height:148px}.module-press-release-item{grid-template-columns:auto minmax(0,1fr);align-items:start}.module-press-release-item__actions{grid-column:2;justify-content:flex-start}}


.content-hero__inner--page{max-width:960px}
.page-layout{display:grid;gap:2rem}
.page-rich-content{max-width:none;width:100%}
.contact-hub{display:grid;gap:1.6rem}
.contact-hub__intro{display:grid;gap:.5rem;max-width:760px}
.contact-hub__intro h2,.contact-organisers h2{margin:0;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.85rem,2.7vw,2.65rem);line-height:.96;text-transform:uppercase;color:#111827}
.contact-hub__intro p{margin:0;color:#475467;line-height:1.7;font-size:1rem}
.contact-mail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.contact-mail-card{position:relative;display:grid;align-content:start;gap:.6rem;min-height:188px;padding:1.15rem 1.2rem;border-radius:18px;background:rgba(255,255,255,.94);border:1px solid rgba(15,23,42,.09);color:#111827;text-decoration:none;overflow:hidden;box-shadow:0 10px 26px rgba(15,23,42,.045)}
.contact-mail-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:rgba(24,183,232,.55);pointer-events:none}
.contact-mail-card > *{position:relative;z-index:1}
.contact-mail-card__label{display:inline-flex;width:max-content;max-width:100%;align-items:center;min-height:28px;padding:.3rem .6rem;border-radius:999px;background:rgba(248,250,252,.9);border:1px solid rgba(15,23,42,.08);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.11em;color:#64748b}
.contact-mail-card strong{font-family:'Roboto',system-ui,sans-serif;font-size:clamp(1.08rem,1.45vw,1.35rem);line-height:1.18;color:#111827;word-break:break-word;text-transform:none}
.contact-mail-card p{margin:0;color:#344054;line-height:1.62}
.contact-mail-card__email{align-self:end;margin-top:auto;color:#0f172a;font-weight:800;text-decoration:underline;text-underline-offset:4px;word-break:break-word}
.contact-mail-card--primary{grid-column:span 2;min-height:170px;background:rgba(255,255,255,.96)}
.contact-mail-card--tickets{display:block;grid-column:span 2;min-height:0;padding:1.15rem 1.2rem}
.contact-mail-card--tickets .contact-mail-card__content{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.92fr);gap:1rem;align-items:end}
.contact-mail-card__links{display:grid;gap:.55rem;align-content:end}
.contact-mail-card__links a{display:inline-flex;width:max-content;max-width:100%;color:#0f172a;font-weight:800;text-decoration:underline;text-underline-offset:4px;word-break:break-word}
.contact-organisers{display:grid;gap:1rem;padding-top:.25rem}
.contact-organiser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.contact-organiser-card{display:grid;gap:.55rem;padding:1rem;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid rgba(15,23,42,.08)}
.contact-organiser-card h3{margin:0;font-family:'Roboto',system-ui,sans-serif;font-size:1rem;line-height:1.2;text-transform:uppercase;color:#111827}
.contact-organiser-card p{margin:0;color:#475467;line-height:1.6}

.reveal-on-scroll{
  opacity:0;
  transform:translate3d(0,var(--reveal-distance,28px),0) scale(var(--reveal-scale,.985));
  filter:blur(8px);
  transition:
    opacity .72s cubic-bezier(.22,1,.36,1),
    transform .72s cubic-bezier(.22,1,.36,1),
    filter .72s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:transform,opacity,filter;
}

.reveal-on-scroll.is-visible{
  opacity:1;
  transform:none;
  filter:none;
  will-change:auto;
}

.content-hero__inner > *{
  --reveal-distance:22px;
}

.page-module{
  --reveal-distance:34px;
}

.module-people-grid > *,
.module-gallery-grid > *,
.module-offer-grid > *,
.module-file-list > *,
.module-file-card-grid > *,
.module-photo-gallery-grid > *,
.cards-grid > *,
.venues-list-grid > *{
  --reveal-distance:24px;
}

@media (hover: hover){
  .button,
  .header-icon-button,
  .lang-switch,
  .search-tabs__item,
  .favorite-toggle,
  .share-option,
  .pagination__page,
  .pagination__link,
  .scroll-top-widget__button,
  .page-tab,
  .view-switcher__item,
  .programme-card,
  .news-card,
  .feature-card,
  .search-section,
  .my-program-card,
  .artist-card,
  .venue-list-item,
  .module-person-card,
  .module-gallery-card,
  .module-offer-card,
  .module-file-item,
  .module-file-card,
  .module-photo-gallery-card,
  .contact-mail-card,
  .text-link,
  .module-person-card__link,
  .module-offer-card__link{
    transition:
      transform .34s cubic-bezier(.22,1,.36,1),
      box-shadow .34s cubic-bezier(.22,1,.36,1),
      background .28s ease,
      border-color .28s ease,
      color .28s ease;
  }

  .button:hover,
  .header-icon-button:hover,
  .lang-switch:hover,
  .favorite-toggle:hover,
  .share-option:hover,
  .pagination__page:hover,
  .pagination__link:hover,
  .scroll-top-widget__button:hover{
    transform:translate3d(0,-3px,0) scale(1.02);
  }

  .search-tabs__item:hover{
    transform:translate3d(0,-2px,0) scale(1.012);
    box-shadow:0 12px 24px rgba(15,23,42,.08);
  }

  .page-tab:hover,
  .view-switcher__item:hover{
    transform:translate3d(0,-2px,0) scale(1.012);
    box-shadow:0 14px 28px rgba(15,23,42,.08);
  }

  .programme-card:hover,
  .news-card:hover,
  .feature-card:hover,
  .search-section:hover,
  .my-program-card:hover,
  .artist-card:hover,
  .venue-list-item:hover,
  .module-gallery-card:hover,
  .module-offer-card:hover,
  .module-file-item:hover,
  .module-file-card:hover,
  .module-photo-gallery-card:hover,
  .contact-mail-card:hover{
    transform:translate3d(0,-6px,0) scale(1.012);
    box-shadow:0 24px 48px rgba(15,23,42,.12);
  }

  .programme-card:hover .programme-card-media img,
  .news-card:hover .news-card__image,
  .module-gallery-card:hover .module-gallery-card__media img,
  .module-offer-card:hover .module-offer-card__media img,
  .module-file-card:hover .module-file-card__preview img,
  .module-photo-gallery-card:hover img,
  .my-program-card:hover .my-program-card__media img,
  .artist-card:hover .artist-card__media img,
  .venue-list-item:hover .venue-list-item__media img{
    transform:scale(1.035);
  }

  .text-link:hover,
  .module-person-card__link:hover,
  .module-offer-card__link:hover{
    transform:translateX(4px);
  }
}

.module-person-card__media,
.programme-card-media,
.news-card__image-wrap,
.my-program-card__media,
.module-gallery-card__media,
.module-offer-card__media,
.module-file-card__preview,
.artist-card__media,
.venue-list-item__media{
  overflow:hidden;
}

.module-person-card__media img,
.programme-card-media img,
.news-card__image,
.my-program-card__media img,
.module-gallery-card__media img,
.module-offer-card__media img,
.module-file-card__preview img,
.module-photo-gallery-card img,
.artist-card__media img,
.venue-list-item__media img{
  transition:transform .78s cubic-bezier(.22,1,.36,1);
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }

  .reveal-on-scroll{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }

  .button,
  .header-icon-button,
  .lang-switch,
  .nav-link,
  .nav-link::after,
  .header-social-link,
  .mobile-social-link,
  .mobile-nav-link,
  .search-tabs__item,
  .favorite-toggle,
  .share-option,
  .pagination__page,
  .pagination__link,
  .scroll-top-widget,
  .scroll-top-widget__button,
  .chatbot-widget__launcher,
  .chatbot-chip,
  .page-tab,
  .view-switcher__item,
  .programme-card,
  .news-card,
  .feature-card,
  .search-section,
  .my-program-card,
  .artist-card,
  .venue-list-item,
  .module-person-card,
  .module-gallery-card,
  .module-offer-card,
  .module-file-item,
  .module-file-card,
  .module-photo-gallery-card,
  .contact-mail-card,
  .text-link,
  .module-person-card__link,
  .module-offer-card__link,
  .module-person-card__media img,
  .programme-card-media img,
  .news-card__image,
  .my-program-card__media img,
  .module-gallery-card__media img,
  .module-offer-card__media img,
  .module-file-card__preview img,
  .module-photo-gallery-card img,
  .artist-card__media img,
  .venue-list-item__media img{
    transition:none !important;
    transform:none !important;
  }
}

.cookie-consent{position:fixed;left:0;right:0;bottom:20px;z-index:120;padding:0 20px}
.cookie-consent[hidden]{display:none !important}
.cookie-consent__card{width:min(100%,1080px);margin:0 auto;padding:22px 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8)}
.cookie-consent__copy{max-width:680px}
.cookie-consent__title{margin:0 0 .45rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.5rem,2.4vw,2rem);line-height:.96}
.cookie-consent__text{margin:0;color:#475467;line-height:1.6}
.cookie-consent__policy{display:inline-block;margin-top:.8rem;color:var(--blue-dark);font-weight:700}
.cookie-consent__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem}
.cookie-modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:24px;overflow:auto}
.cookie-modal[hidden]{display:none !important}
.cookie-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.32);backdrop-filter:blur(6px)}
.cookie-modal__dialog{position:relative;z-index:1;width:min(100%,720px);max-height:calc(100dvh - 48px);overflow:auto;padding:28px;background:rgba(255,255,255,.96)}
.cookie-modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:999px;font-size:1.4rem;line-height:1;cursor:pointer}
.cookie-modal__title{margin:0 0 .5rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(2rem,3vw,2.6rem);line-height:.94}
.cookie-modal__lead{margin:0 0 1.4rem;color:#475467;line-height:1.65}
.cookie-modal__rows{display:grid;gap:1rem}
.cookie-option{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-radius:20px;border:1px solid rgba(15,23,42,.08);background:rgba(248,250,252,.82)}
.cookie-option strong{display:block;margin-bottom:.3rem}
.cookie-option p{margin:0;color:#475467;line-height:1.55;font-size:.97rem}
.cookie-option__badge{display:inline-flex;align-items:center;justify-content:center;padding:.6rem .9rem;border-radius:999px;background:#111827;color:#fff;font-size:.86rem;font-weight:700;white-space:nowrap}
.cookie-switch{display:inline-flex;align-items:center}
.cookie-switch input{position:absolute;opacity:0;pointer-events:none}
.cookie-switch__track{position:relative;display:inline-flex;width:58px;height:34px;border-radius:999px;background:rgba(15,23,42,.12);transition:background .2s ease}
.cookie-switch__thumb{position:absolute;top:4px;left:4px;width:26px;height:26px;border-radius:999px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.16);transition:transform .2s ease}
.cookie-switch input:checked + .cookie-switch__track{background:linear-gradient(135deg,var(--blue-dark),var(--blue))}
.cookie-switch input:checked + .cookie-switch__track .cookie-switch__thumb{transform:translateX(24px)}
.cookie-modal__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.4rem}
body.cookie-modal-open{overflow:hidden}

.module-people-grid{gap:1.5rem}
.module-person-card{display:grid;justify-items:center;text-align:center;padding:0;background:transparent;border:none;box-shadow:none}
.module-person-card__media{width:min(100%,260px);aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#dde7f1;box-shadow:0 20px 50px rgba(15,23,42,.10);border:8px solid rgba(255,255,255,.6)}
.module-person-card__body{padding:.25rem .5rem 0;max-width:320px}
.module-person-card__body h3{margin:0 0 .5rem;font-family:'FarbeGrotesk','Roboto',sans-serif;font-size:clamp(1.6rem,2.3vw,2.2rem);line-height:.92;text-transform:uppercase;color:var(--red)}
.module-person-card__role{font-weight:400;color:#4b5563;font-size:1rem;line-height:1.55;margin-bottom:.5rem}
.module-person-card__text{color:#475467;line-height:1.6;font-size:.96rem}
.module-person-card__link{margin-top:.85rem;font-size:1.02rem;text-decoration:underline;text-underline-offset:3px}

@media (max-width: 980px){
  .cookie-consent__card{align-items:flex-start;flex-direction:column}
  .cookie-consent__actions{justify-content:flex-start}
  .contact-mail-card--tickets .contact-mail-card__content{grid-template-columns:1fr;align-items:start}
  .contact-organiser-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .cookie-consent{bottom:12px;padding:0 12px}
  .cookie-consent__card{padding:18px;border-radius:22px}
  .cookie-consent__actions,.cookie-modal__actions{width:100%}
  .cookie-consent__actions .button,.cookie-modal__actions .button{flex:1 1 100%}
  .cookie-modal{align-items:start;padding:12px}
  .cookie-modal__dialog{max-height:calc(100dvh - 24px);padding:20px 16px 16px;border-radius:24px}
  .cookie-modal__close{top:10px;right:10px;width:36px;height:36px;font-size:1.2rem}
  .cookie-modal__title{padding-right:42px;font-size:clamp(1.7rem,9vw,2rem)}
  .cookie-modal__lead{margin-bottom:1rem;line-height:1.5}
  .cookie-modal__rows{gap:.75rem}
  .cookie-option{align-items:flex-start}
  .cookie-option,.cookie-option.is-required{flex-direction:column}
  .cookie-option{gap:.75rem;padding:.85rem .9rem;border-radius:18px}
  .cookie-option p{line-height:1.45;font-size:.92rem}
  .share-modal{padding:12px}
  .share-modal__dialog{padding:22px 18px 18px;border-radius:24px}
  .share-modal__actions-grid{grid-template-columns:1fr}
  .mhd-departures-modal,.mhd-departure-detail-modal{padding:12px}
  .mhd-departures-modal__dialog{padding:22px 18px 18px;border-radius:24px}
  .mhd-departure-detail-modal__dialog{padding:22px 18px 18px;border-radius:24px}
  .mhd-departures-modal__row{grid-template-columns:auto minmax(0,1fr) auto}
  .mhd-departure-detail__head{display:grid;gap:10px}
  .mhd-departure-detail__meta{justify-content:flex-start}
  .mhd-departure-detail__map{min-height:300px;border-radius:16px}
  .mhd-departure-detail__stops{grid-template-columns:1fr}
  .ticket-sale-notice-modal{padding:12px}
  .ticket-sale-notice-modal__dialog{padding:24px 18px 18px;border-radius:24px}
  .ticket-sale-notice-modal__close{top:10px;right:10px;width:36px;height:36px;font-size:1.2rem}
  .ticket-sale-notice-modal__title{padding-right:42px;font-size:clamp(1.7rem,9vw,2.05rem)}
  .contact-mail-grid{grid-template-columns:1fr}
  .contact-mail-card,.contact-mail-card--primary,.contact-mail-card--tickets{grid-column:auto;min-height:0;padding:1rem}
  .contact-mail-card__label{font-size:.7rem;letter-spacing:.1em}
}
@media print{
  .cookie-consent,.cookie-modal,.share-modal,.mhd-departures-modal,.ticket-sale-notice-modal{display:none !important}
}


.programme-card--past,
.my-program-card.is-past,
.search-item--with-favorite.is-past{opacity:.72}
.programme-card--past .programme-card-media img,
.programme-card--past .programme-card-media-fallback,
.my-program-card.is-past .my-program-card__media img,
.my-program-card.is-past .programme-card-media-fallback{filter:grayscale(1)}
.programme-card--past:hover{transform:none;box-shadow:0 16px 34px rgba(15,23,42,.08)}
.event-status-ribbon{position:absolute;top:14px;left:-44px;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:160px;padding:8px 46px;transform:rotate(-38deg);transform-origin:center;background:#f59e0b;color:#fff;font-weight:800;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 12px 24px rgba(15,23,42,.18)}
.event-status-ribbon.is-cancelled{background:#ef4444}
.event-status-ribbon.is-changed{background:#f59e0b}
.event-status-ribbon.is-soldout{background:#b91c1c}
.event-status-ribbon.is-running{background:#16a34a}
.event-status-ribbon.is-past{background:#94a3b8}
.event-status-ribbon span{display:block;white-space:nowrap}
.event-status-note{margin-top:12px;padding:12px 14px;border-radius:16px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.7)}
.event-status-note p{margin:0;color:#475467;line-height:1.5}
.event-status-note.is-cancelled{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.18);color:#991b1b}
.event-status-note.is-changed{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.2);color:#9a5e00}
.event-status-note--compact{padding:10px 12px;border-radius:14px}
.event-status-note--compact p{font-size:.88rem;line-height:1.45}
.soft-badge--status.is-cancelled{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.18);color:#991b1b}
.soft-badge--status.is-changed{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.2);color:#9a5e00}
.today-status-bar{--today-status-peek:42px;position:fixed;left:0;right:0;bottom:0;z-index:82;pointer-events:none;padding:0;transition:transform .28s ease,opacity .28s ease}
.today-status-bar__peek,.today-status-bar__inner{pointer-events:auto;width:100%;max-width:none;background:#fff;backdrop-filter:blur(24px);border-top:1px solid rgba(185,28,28,.18);box-shadow:0 -18px 54px rgba(15,23,42,.18)}
.today-status-bar__peek{display:none;height:calc(var(--today-status-peek) + env(safe-area-inset-bottom));background:linear-gradient(90deg, #fff7f7 0, #fff 36%, #fff 100%);border-top:1px solid rgba(239,68,68,.32);box-shadow:0 -10px 30px rgba(15,23,42,.18)}
.today-status-bar__inner{padding:16px 24px calc(18px + env(safe-area-inset-bottom));transform:translateY(0);transition:transform .28s ease,opacity .28s ease}
.today-status-bar__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.today-status-bar__title{display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-weight:900;font-size:1.04rem;line-height:1.2;color:#0f172a}
.today-status-bar__count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 9px;border-radius:999px;background:#ef4444;color:#fff;font-size:.82rem;font-weight:900;line-height:1;box-shadow:0 8px 18px rgba(239,68,68,.24)}
.today-status-bar__toggle{display:inline-flex;align-items:center;gap:10px;border:none;background:transparent;color:#334155;font:inherit;font-size:1.04rem;font-weight:900;line-height:1.2;padding:8px 0;cursor:pointer}
.today-status-bar__toggle-icon{display:inline-block;width:11px;height:11px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg);margin-top:-5px;transition:transform .2s ease}
.today-status-bar__list{display:flex;flex-wrap:wrap;gap:12px}
.today-status-pill{display:flex;flex-direction:column;gap:4px;min-width:240px;max-width:100%;padding:12px 14px;border-radius:16px;text-decoration:none;color:#111827;background:rgba(15,23,42,.05);border:1px solid rgba(15,23,42,.08);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.today-status-pill strong{font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}
.today-status-pill span{font-weight:800;line-height:1.35}
.today-status-pill small{color:#334155;line-height:1.38}
.today-status-pill.is-cancelled{background:linear-gradient(135deg, rgba(254,226,226,.96), rgba(255,241,242,.94));border-color:rgba(239,68,68,.26);color:#991b1b}
.today-status-pill.is-changed{background:linear-gradient(135deg, rgba(254,243,199,.95), rgba(255,251,235,.94));border-color:rgba(245,158,11,.28);color:#854d0e}
.today-status-bar.is-collapsed{transform:translateY(calc(100% - var(--today-status-peek) - env(safe-area-inset-bottom)))}
.today-status-bar.is-collapsed .today-status-bar__inner{transform:translateY(0);opacity:1}
.today-status-bar.is-collapsed .today-status-bar__peek{display:block}
.today-status-bar.is-collapsed .today-status-bar__peek .today-status-bar__toggle{width:100%;height:var(--today-status-peek);padding:0 24px;color:#0f172a;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.today-status-bar.is-collapsed .today-status-bar__toggle-icon{transform:rotate(-135deg);margin-top:3px}
.today-status-bar.is-collapsed .today-status-bar__toggle--desktop{visibility:hidden}
@media (max-width:760px){.today-status-bar{--today-status-peek:54px}.today-status-bar__inner{padding:18px 14px calc(20px + env(safe-area-inset-bottom))}.today-status-bar__head{align-items:flex-start}.today-status-bar__title{font-size:1.08rem;line-height:1.12}.today-status-bar__list{max-height:38vh;overflow:auto;padding-bottom:2px}.today-status-pill{min-width:100%;padding:14px 14px}.today-status-pill span{font-size:1.04rem}.today-status-pill small{font-size:.98rem}.today-status-bar.is-collapsed .today-status-bar__peek .today-status-bar__toggle{padding:0 16px;font-size:1.02rem}.event-status-ribbon{left:-52px;top:12px;min-width:150px;font-size:.72rem}}
@media print{.today-status-bar{display:none !important}}
@media print{.chatbot-widget{display:none !important}}


.badge-row--news{margin:0 0 12px}
.soft-badge--featured{background:rgba(255,194,102,.2);border:1px solid rgba(210,140,32,.22);color:#9a5e00}
.soft-badge--news-category{background:rgba(24,183,232,.1);border:1px solid rgba(24,183,232,.14);color:var(--blue-dark)}
.news-card{position:relative;overflow:hidden}
.event-status-ribbon.is-draft{background:#64748b}
.event-status-ribbon.is-scheduled{background:#0ea5e9}
.news-card__link--stacked{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.news-card__image-wrap--home{aspect-ratio:16 / 9}
.news-card__title--home{margin-top:10px}
.news-card--featured{position:relative;border:1px solid rgba(255,194,102,.28);box-shadow:0 24px 60px rgba(210,140,32,.12), 0 18px 36px rgba(15,23,42,.08)}
.news-card--featured::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg, rgba(255,194,102,.55), rgba(24,183,232,.22), rgba(255,255,255,0));-webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.news-card--featured .news-card__title{color:#7a4200}
.content-shell--news-list{padding-top:.5rem}
.news-list-hero .content-hero__inner{max-width:980px}
.news-grid--full{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.news-card__link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.news-card__date{font-size:.92rem;color:rgba(15,23,42,.62);margin-bottom:.7rem}
.news-card__excerpt{margin-bottom:0}
.news-detail-hero .content-hero__inner{max-width:980px}
.news-detail-perex__text{
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:1.22rem;
  line-height:1.7;
  letter-spacing:0;
  color:#06122f;
  margin:0 0 1.25rem;
  max-width:none;
}
.content-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6rem}
.news-detail-hero--featured .content-hero__title{color:#7a4200}
.today-page{
  position:relative;
}
.today-page::before{
  content:"";
  position:fixed;
  inset:-12vh -15vw auto;
  height:58vh;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(circle at 18% 25%, rgba(24,183,232,.16), transparent 26%),
    radial-gradient(circle at 78% 20%, rgba(255,26,26,.11), transparent 22%),
    radial-gradient(circle at 58% 8%, rgba(255,255,255,.68), transparent 18%);
  filter:blur(18px);
}
.today-home-hero{
  min-height:84vh;
}
.today-home-hero__stage{
  justify-content:flex-start;
  align-items:flex-end;
  padding:140px 0 76px;
}
.today-home-hero__content{
  width:min(100%, 1120px);
  text-align:left;
}
.today-home-hero__eyebrow{
  color:rgba(255,255,255,.78);
}
.today-home-hero__title{
  margin-top:14px;
  max-width:980px;
  color:#fff;
}
.today-home-hero__lead{
  color:rgba(255,255,255,.86);
  max-width:760px;
}
.today-home-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.today-home-hero__actions{
  margin-top:30px;
}
.today-top-strip{
  padding:28px 0 18px;
}
.today-top-strip__grid{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(320px,.85fr);
  gap:20px;
  align-items:stretch;
}
.today-top-strip__info{
  padding:24px 26px;
}
.today-top-strip__info p{
  margin:0;
  color:#475467;
  line-height:1.72;
}
.today-top-strip__info p + p{
  margin-top:12px;
}
.today-hero{
  padding:5.2rem 0 2.8rem;
}
.today-hero.content-hero--image::before{
  background-image:
    linear-gradient(135deg, rgba(246,248,252,.92) 0%, rgba(245,248,252,.86) 34%, rgba(233,240,248,.94) 100%),
    radial-gradient(circle at 18% 18%, rgba(24,183,232,.12), transparent 26%),
    radial-gradient(circle at 82% 14%, rgba(255,26,26,.10), transparent 20%),
    var(--content-hero-bg);
}
.today-hero__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:24px;
  align-items:start;
}
.today-hero__copy{
  max-width:none;
  padding:2.2rem 0 1rem;
}
.today-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:1.5rem;
}
.today-hero__badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.78);
  box-shadow:0 16px 34px rgba(15,23,42,.06);
  backdrop-filter:blur(16px);
  color:#163047;
  font-size:.92rem;
  font-weight:700;
}
.today-hero__badge--nearby{
  display:none;
}
.today-hero__badge--weather{
  background:linear-gradient(135deg, rgba(233,248,252,.92), rgba(255,255,255,.86));
  color:#0b6f92;
}
.today-reference{
  margin-top:1.4rem;
  max-width:780px;
  padding:16px 18px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.72);
  background:rgba(255,255,255,.56);
  box-shadow:0 18px 44px rgba(15,23,42,.08);
  backdrop-filter:blur(16px);
}
.today-reference__label{
  margin-bottom:8px;
  color:#35506a;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.today-reference p{
  margin:0;
  color:#475467;
  line-height:1.65;
}
.today-reference--hero{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.24);
  box-shadow:0 18px 44px rgba(7,12,26,.18);
}
.today-reference--hero .today-reference__label,
.today-reference--hero p{
  color:rgba(255,255,255,.88);
}
.today-section-first{
  padding-top:34px;
}
.today-section-intro{
  max-width:760px;
  margin:12px 0 0;
  color:#475467;
  line-height:1.72;
}
.today-programme-grid{
  align-items:stretch;
}
.today-compact-columns{
  gap:24px;
}
.today-compact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.today-featured-grid{
  display:grid;
  grid-template-columns:1.3fr .9fr .9fr;
  gap:20px;
  align-items:start;
}
.today-featured-grid__item.is-primary{
  grid-column:span 2;
  grid-row:span 2;
}
.today-featured-grid__item.is-primary .programme-card-media{
  aspect-ratio:16 / 9;
}
.today-featured-grid__item.is-primary .programme-card-title{
  font-size:clamp(1.8rem, 2.8vw, 2.5rem);
}
.today-editorial-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr .95fr;
  gap:20px;
  align-items:start;
}
.today-editorial-grid__item.is-tall{
  grid-row:span 2;
}
.today-editorial-grid__item.is-tall .programme-card-media{
  aspect-ratio:4 / 5;
}
.today-dual-layout{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:24px;
  align-items:start;
}
.today-dual-layout--weather{
  align-items:stretch;
}
.today-stack-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.today-side-stack{
  display:grid;
  gap:18px;
}
.today-free-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.today-free-grid__item.is-wide{
  grid-column:span 2;
}
.today-free-grid__item.is-wide .programme-card-media{
  aspect-ratio:16 / 8;
}
.today-weather-card{
  position:relative;
  overflow:hidden;
  padding:28px;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.74);
  box-shadow:0 28px 64px rgba(15,23,42,.14);
  backdrop-filter:blur(18px);
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.8), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.82), rgba(245,248,252,.92));
}
.today-weather-card--compact{
  height:100%;
}
.today-weather-card::after{
  content:"";
  position:absolute;
  inset:auto -18% -34% auto;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.48), transparent 65%);
  pointer-events:none;
}
.today-weather-card--clear{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.8), transparent 28%),
    linear-gradient(145deg, rgba(236,248,255,.96), rgba(255,248,239,.94));
}
.today-weather-card--cloud{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.76), transparent 28%),
    linear-gradient(145deg, rgba(242,246,252,.96), rgba(233,238,246,.94));
}
.today-weather-card--rain{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.3), transparent 26%),
    linear-gradient(145deg, rgba(18,48,86,.96), rgba(48,89,136,.94));
  color:#f8fbff;
}
.today-weather-card--storm{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 26%),
    linear-gradient(145deg, rgba(39,31,73,.96), rgba(104,45,91,.94));
  color:#fff7fe;
}
.today-weather-card--rain .eyebrow,
.today-weather-card--storm .eyebrow,
.today-weather-card--rain .today-weather-card__summary span,
.today-weather-card--storm .today-weather-card__summary span,
.today-weather-card--rain .today-weather-card__footer,
.today-weather-card--storm .today-weather-card__footer,
.today-weather-card--rain .today-weather-stat small,
.today-weather-card--storm .today-weather-stat small{
  color:rgba(255,255,255,.74);
}
.today-weather-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.today-weather-card__title{
  margin:10px 0 0;
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(1.8rem, 3vw, 2.4rem);
  line-height:.94;
  letter-spacing:var(--font-display-spacing-small);
}
.today-weather-card__icon{
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  border-radius:24px;
  background:rgba(255,255,255,.42);
  border:1px solid rgba(255,255,255,.46);
}
.today-weather-card--rain .today-weather-card__icon,
.today-weather-card--storm .today-weather-card__icon{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.18);
}
.today-weather-card__icon-svg{
  width:40px;
  height:40px;
}
.today-weather-card__main{
  display:flex;
  align-items:flex-end;
  gap:16px;
  margin-top:1.8rem;
}
.today-weather-card__temperature{
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(4rem, 7vw, 5.4rem);
  line-height:.84;
  letter-spacing:var(--font-display-spacing-medium);
}
.today-weather-card__summary{
  display:grid;
  gap:6px;
  padding-bottom:8px;
}
.today-weather-card__summary strong{
  font-size:1.02rem;
}
.today-weather-card__summary span{
  color:#5a6779;
  line-height:1.45;
}
.today-weather-card__stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:1.5rem;
}
.today-weather-stat{
  padding:14px 14px 16px;
  border-radius:20px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.48);
}
.today-weather-card--rain .today-weather-stat,
.today-weather-card--storm .today-weather-stat{
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
}
.today-weather-stat small{
  display:block;
  margin-bottom:6px;
  color:#667085;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.today-weather-stat strong{
  font-size:1.08rem;
}
.today-weather-card__comment{
  margin:1.35rem 0 0;
  font-size:1rem;
  line-height:1.72;
}
.today-weather-card__footer{
  margin-top:1.2rem;
  color:#667085;
  font-size:.82rem;
  font-weight:700;
}
.today-spotlight{
  padding-top:24px;
}
.today-mood-grid,
.today-curation-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.today-mood-card,
.today-curation-card,
.today-guide-card{
  position:relative;
  overflow:hidden;
  min-height:100%;
}
.today-mood-card::before,
.today-curation-card::before,
.today-guide-card::before{
  content:"";
  position:absolute;
  inset:auto -12% -28% auto;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(24,183,232,.08), transparent 70%);
  pointer-events:none;
}
.today-curation-card--accent::before{
  background:radial-gradient(circle, rgba(255,26,26,.08), transparent 72%);
}
.today-mood-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.today-mood-card__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:14px;
  background:rgba(24,183,232,.1);
  color:#0b6f92;
  flex:0 0 42px;
}
.today-mood-card__list,
.today-curation-card .stack-list{
  margin-top:18px;
}
.today-guide-card p{
  max-width:42rem;
}
@media (max-width: 1120px){
  .today-top-strip__grid,
  .today-hero__grid,
  .today-curation-grid,
  .today-dual-layout,
  .today-featured-grid,
  .today-editorial-grid{
    grid-template-columns:1fr;
  }
  .today-mood-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .today-featured-grid__item.is-primary,
  .today-editorial-grid__item.is-tall,
  .today-free-grid__item.is-wide{
    grid-column:auto;
    grid-row:auto;
  }
  .today-home-hero__stage{
    padding-bottom:56px;
  }
  .today-compact-grid{
    grid-template-columns:1fr;
  }
}
@media (min-width: 981px){
  .news-grid--full .news-card--featured:first-child{grid-column:span 2}
  .news-grid--full .news-card--featured:first-child .news-card__link{display:grid;grid-template-columns:minmax(340px, 1.1fr) minmax(0, 1fr)}
  .news-grid--full .news-card--featured:first-child .news-card__image-wrap{aspect-ratio:auto;height:100%;min-height:100%}
  .news-grid--full .news-card--featured:first-child .news-card__image{height:100%}
}
@media (max-width: 760px){
  .today-home-hero{
    min-height:76vh;
  }
  .today-home-hero__stage{
    padding:108px 0 40px;
    align-items:flex-end;
  }
  .today-home-hero__content{
    width:min(100%, 94vw);
  }
  .today-top-strip{
    padding-top:20px;
  }
  .today-home-hero__actions .button{
    width:100%;
  }
  .today-featured-grid,
  .today-editorial-grid,
  .today-stack-grid,
  .today-free-grid,
  .today-top-strip__grid,
  .today-compact-grid,
  .today-mood-grid,
  .today-curation-grid{
    grid-template-columns:1fr;
  }
  .today-hero{
    padding-top:4.35rem;
  }
  .today-page::before{
    inset:-8vh -20vw auto;
    height:52vh;
  }
  .today-hero__grid,
  .today-mood-grid,
  .today-curation-grid{
    grid-template-columns:1fr;
  }
  .today-weather-card{
    padding:22px;
    border-radius:28px;
  }
  .today-weather-card__main{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .today-weather-card__stats{
    grid-template-columns:1fr;
  }
  .today-hero__actions .button{
    width:100%;
  }
  .today-hero__badge{
    width:100%;
    justify-content:flex-start;
  }
  .today-hero__badge--nearby{
    display:inline-flex;
  }
  .today-home-hero__badges{
    flex-direction:column;
    align-items:stretch;
  }
  .content-hero__actions .button{width:100%}
}

.festival-live-page::before{
  display:none;
}
.festival-live-hero{
  min-height:calc(100svh - 88px);
}
.festival-live-hero .hero-overlay{
  background:
    linear-gradient(180deg, rgba(7,12,26,.30) 0%, rgba(7,12,26,.22) 40%, rgba(7,12,26,.48) 100%),
    linear-gradient(90deg, rgba(7,12,26,.24) 0%, rgba(7,12,26,.12) 42%, rgba(7,12,26,.28) 100%);
}
.festival-live-hero__stage{
  align-items:center;
  justify-content:center;
  padding:120px 0 92px;
}
.festival-live-hero__content{
  width:min(100%, 920px);
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.festival-live-hero__title{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.festival-live-hero__main-title{
  margin:14px auto 0;
  max-width:940px;
  color:#fff;
  text-wrap:balance;
}
.festival-live-hero__main-title span{
  display:block;
}
.festival-live-hero .today-home-hero__lead{
  margin-left:auto;
  margin-right:auto;
}
.festival-live-hero .today-home-hero__badges,
.festival-live-hero .today-home-hero__actions{
  justify-content:center;
}
.festival-live-hero .today-hero__badge{
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.festival-live-hero .today-hero__badge:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.9);
  box-shadow:0 20px 42px rgba(15,23,42,.12);
}
.festival-time-switcher{
  position:absolute;
  left:50%;
  bottom:22px;
  z-index:3;
  display:flex;
  gap:6px;
  width:max-content;
  max-width:calc(100% - 32px);
  padding:6px;
  border-radius:999px;
  background:rgba(7,12,26,.58);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(18px);
  transform:translateX(-50%);
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
}
.festival-time-switcher::-webkit-scrollbar{
  display:none;
}
.festival-time-switcher a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 13px;
  border-radius:999px;
  color:rgba(255,255,255,.82);
  font-size:.86rem;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.festival-time-switcher a.is-active{
  background:#fff;
  color:#111827;
}
.festival-daily-brief-section{
  padding-top:30px;
  padding-bottom:46px;
}
.festival-daily-brief-grid{
  display:grid;
  grid-template-columns:minmax(0,1.24fr) minmax(300px,.76fr);
  gap:22px;
  align-items:stretch;
}
.festival-daily-brief-grid > .festival-weather-panel:only-child{
  grid-column:1 / -1;
}
.festival-weather-panel{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:12px;
  padding:18px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:24px;
  background:#111827;
  box-shadow:0 24px 70px rgba(15,23,42,.18);
  backdrop-filter:blur(18px);
  color:#fff;
}
.festival-weather-panel__intro{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.festival-weather-panel__intro .section-title{
  margin:0;
  color:#fff;
  font-size:clamp(1.45rem, 2vw, 2rem);
}
.festival-weather-panel__intro p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:.9rem;
  line-height:1.48;
}
.festival-weather-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-content:center;
}
.festival-weather-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-height:66px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
.festival-weather-card--rain,
.festival-weather-card--storm{
  background:#163047;
  color:#fff;
}
.festival-weather-card--storm{
  background:#352858;
}
.festival-weather-card__icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:15px;
  color:#79d8ff;
  background:rgba(255,255,255,.10);
}
.festival-weather-card--rain .festival-weather-card__icon,
.festival-weather-card--storm .festival-weather-card__icon{
  color:#fff;
  background:rgba(255,255,255,.14);
}
.festival-weather-card__svg{
  width:24px;
  height:24px;
}
.festival-weather-card strong,
.festival-weather-card span{
  display:block;
}
.festival-weather-card strong{
  font-size:.96rem;
}
.festival-weather-card span{
  margin-top:2px;
  color:rgba(255,255,255,.66);
  font-size:.9rem;
  line-height:1.35;
}
.festival-weather-card--rain span,
.festival-weather-card--storm span{
  color:rgba(255,255,255,.76);
}
.festival-weather-card__temp{
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(1.55rem, 2.4vw, 2.2rem);
  line-height:.9;
  color:#fff;
  white-space:nowrap;
}
.festival-weather-card--rain .festival-weather-card__temp,
.festival-weather-card--storm .festival-weather-card__temp{
  color:#fff;
}
.festival-live-section__head{
  align-items:flex-end;
  margin-bottom:20px;
}
.festival-live-section{
  padding-top:46px;
  padding-bottom:46px;
}
.festival-live-section[id]{
  scroll-margin-top:112px;
}
.festival-live-text-box{
  width:100%;
  max-width:none;
  margin:-4px 0 22px;
  padding:24px 28px;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.72);
  background:rgba(255,255,255,.76);
  box-shadow:0 20px 56px rgba(15,23,42,.07);
  backdrop-filter:blur(18px);
}
.festival-live-text-box p{
  margin:0;
  color:#344054;
  font-size:1.02rem;
  line-height:1.76;
}
.festival-live-text-box p + p{
  margin-top:12px;
}
.festival-live-small-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}
.festival-live-small-grid .programme-card-media{
  aspect-ratio:4 / 3;
}
.festival-live-small-grid .programme-card-body{
  padding:18px;
}
.festival-live-small-grid .programme-card-title{
  font-size:1.16rem;
  line-height:1.04;
}
.festival-live-small-grid .programme-card-meta{
  font-size:.88rem;
}
.festival-live-empty{
  padding:22px 24px;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(255,255,255,.74);
}
.festival-live-empty p{
  margin:0;
  color:#667085;
}
.festival-live-empty--weather{
  display:flex;
  align-items:center;
}
.festival-hadrian-card{
  display:grid;
  grid-template-columns:minmax(170px, 240px) minmax(0,1fr);
  gap:28px;
  align-items:stretch;
  min-height:100%;
  padding:24px;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.74);
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.08);
  color:inherit;
  text-decoration:none;
}
.festival-hadrian-card__preview{
  display:grid;
  place-items:center;
  overflow:hidden;
  aspect-ratio:3 / 4;
  align-self:center;
  border-radius:22px;
  background:#eef4f7;
  border:1px solid rgba(15,23,42,.08);
}
.festival-hadrian-card__preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.festival-hadrian-card__fallback-icon{
  width:54px;
  height:54px;
  color:#0b6f92;
}
.festival-hadrian-card__body{
  display:grid;
  gap:14px;
  align-content:center;
  min-width:0;
  max-width:680px;
}
.festival-hadrian-card__body strong{
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(2rem, 3.2vw, 3.2rem);
  line-height:.92;
  letter-spacing:var(--font-display-spacing-medium);
  color:#111827;
  overflow-wrap:anywhere;
}
.festival-hadrian-card__body > span:not(.eyebrow):not(.text-link){
  color:#475467;
  line-height:1.72;
}
.festival-night-note{
  padding:30px 34px;
  border-radius:32px;
  background:#111827;
  color:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.14);
}
.festival-night-note h2{
  margin:10px 0 12px;
  font-family:'FarbeGrotesk', 'Roboto', system-ui, sans-serif;
  font-size:clamp(2rem, 4vw, 3.6rem);
  line-height:.95;
  letter-spacing:var(--font-display-spacing-medium);
}
.festival-night-note p{
  max-width:900px;
  margin:0;
  color:rgba(255,255,255,.76);
  line-height:1.72;
}
@media (max-width: 1220px){
  .festival-live-small-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width: 980px){
  .festival-daily-brief-grid,
  .festival-hadrian-card{
    grid-template-columns:1fr;
  }
  .festival-live-small-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 760px){
  .festival-live-hero{
    min-height:calc(100svh - 72px);
  }
  .festival-live-hero__stage{
    padding:96px 0 48px;
  }
  .festival-live-hero__content{
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .festival-live-hero .today-home-hero__badges,
  .festival-live-hero .today-home-hero__actions{
    justify-content:center;
  }
  .festival-weather-panel{
    padding:20px;
    border-radius:26px;
  }
  .festival-daily-brief-section,
  .festival-live-section{
    padding-top:34px;
    padding-bottom:34px;
  }
  .festival-live-section__head{
    align-items:flex-start;
    text-align:left;
  }
  .festival-live-section__head > div{
    width:100%;
  }
  .festival-weather-grid{
    grid-template-columns:1fr;
  }
  .festival-live-small-grid{
    grid-template-columns:1fr;
  }
  .festival-weather-card{
    grid-template-columns:auto minmax(0,1fr);
  }
  .festival-weather-card__temp{
    grid-column:2;
    font-size:2rem;
  }
  .festival-hadrian-card{
    padding:18px;
    border-radius:26px;
  }
}


.news-list-section{padding-top:1.2rem}
.section-head--news-list{align-items:flex-end;gap:20px 24px;margin-bottom:28px}
.news-list-intro{max-width:780px;margin:10px 0 0;color:#475467;line-height:1.75}
.news-list-meta{display:flex;align-items:center;justify-content:flex-end}
.soft-badge--news-count{background:rgba(15,23,42,.05);border:1px solid rgba(15,23,42,.08);color:#344054;font-weight:700}
.news-cards-grid--listing{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.news-card--featured-hero{grid-column:span 3}
.news-card--featured-hero .news-card__link{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(0,1fr)}
.news-card__image-wrap--featured-listing{aspect-ratio:auto;height:100%;min-height:100%}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:32px;padding-top:8px}
.pagination__pages{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.pagination__page,.pagination__link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:999px;text-decoration:none;color:#0f172a;background:rgba(255,255,255,.82);border:1px solid rgba(15,23,42,.08);box-shadow:0 10px 24px rgba(15,23,42,.06);font-weight:700;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
.pagination__page{min-width:44px;padding:0 14px}
.pagination__page:hover,.pagination__link:hover{transform:translateY(-1px);box-shadow:0 16px 30px rgba(15,23,42,.1);border-color:rgba(24,183,232,.18)}
.pagination__page.is-active{background:linear-gradient(135deg, rgba(24,183,232,.16), rgba(255,255,255,.96));border-color:rgba(24,183,232,.24);color:var(--blue-dark)}
.pagination__link.is-disabled{pointer-events:none;opacity:.45;box-shadow:none}
@media (max-width: 980px){
  .news-cards-grid--listing{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-card--featured-hero{grid-column:span 2}
  .news-card--featured-hero .news-card__link{display:flex}
  .section-head--news-list{align-items:flex-start}
}
@media (max-width: 760px){
  .news-cards-grid--listing{grid-template-columns:1fr}
  .news-card--featured-hero{grid-column:auto}
  .pagination{justify-content:center}
  .pagination__link{width:100%}
}


.scroll-top-widget{position:fixed;right:18px;bottom:var(--scroll-top-offset,22px);z-index:65;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .22s ease,bottom .22s ease;opacity:0;transform:translateY(16px) scale(.94);pointer-events:none}
.scroll-top-widget.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.scroll-top-widget__button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;border:none;border-radius:999px;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);box-shadow:0 18px 40px rgba(15,23,42,.18);cursor:pointer;color:#0f172a;overflow:hidden;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),background .22s ease}
.scroll-top-widget__button:hover{transform:translateY(-2px)}
.scroll-top-widget__button:focus-visible{outline:2px solid rgba(255,26,26,.45);outline-offset:3px}
.scroll-top-widget__progress{position:absolute;inset:7px;width:60px;height:60px;transform:rotate(-90deg)}
.scroll-top-widget__track,.scroll-top-widget__bar{fill:none;stroke-width:4}
.scroll-top-widget__track{stroke:rgba(15,23,42,.10)}
.scroll-top-widget__bar{stroke:var(--red);stroke-linecap:round;transition:stroke-dashoffset .12s linear}
.scroll-top-widget__arrow{position:relative;z-index:1;font-size:1.55rem;font-weight:800;line-height:1;transform:translateY(-1px)}
@media (max-width:760px){.scroll-top-widget{right:12px}.scroll-top-widget__button{width:66px;height:66px}.scroll-top-widget__progress{inset:6px;width:54px;height:54px}.scroll-top-widget__arrow{font-size:1.4rem}}
@media print{.scroll-top-widget{display:none !important}}

@page{
  size:auto;
  margin:14mm 12mm;
}

@media print{
  html,
  body{
    background:#fff !important;
    color:#111 !important;
    font-size:11pt;
    line-height:1.45;
  }

  *,
  *::before,
  *::after{
    box-shadow:none !important;
    text-shadow:none !important;
    animation:none !important;
    transition:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
  }

  .site-header,
  .site-footer,
  .mobile-menu,
  .hero-actions,
  .content-hero__actions,
  .header-search-wrap,
  .menu-toggle,
  .lang-switch,
  .favorite-toggle,
  .lightbox,
  .detail-gallery,
  .detail-map-wrap,
  .video-embed-wrap,
  .module-gallery-grid,
  .module-photo-gallery-grid,
  .cookie-consent,
  .cookie-modal,
  .share-modal,
  .scroll-top-widget,
  .chatbot-widget,
  .today-status-bar,
  iframe{
    display:none !important;
  }

  body.menu-open,
  body.share-modal-open,
  body.cookie-modal-open{
    overflow:visible !important;
  }

  .site-shell,
  .content-shell,
  .container,
  .narrow,
  .narrow-list{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .content-shell{
    padding:0 !important;
  }

  .content-hero{
    padding:0 0 12pt !important;
    overflow:visible !important;
    background:none !important;
    border-bottom:1px solid #d9d9d9;
    margin-bottom:12pt;
  }

  .content-hero--image::before,
  .hero-overlay,
  .hero-media{
    display:none !important;
  }

  .content-hero__inner,
  .content-hero__inner--article,
  .content-hero__inner--page{
    max-width:none !important;
    padding:0 !important;
  }

  .content-hero__title{
    font-size:27pt !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    margin:0 !important;
  }

  .content-hero__perex,
  .wysiwyg--festival{
    max-width:none !important;
    font-size:11pt !important;
    line-height:1.55 !important;
    color:#111 !important;
  }

  .brand-display-small,
  .section-title,
  .section-title--small,
  .wysiwyg--festival h2,
  .wysiwyg--festival h3,
  .wysiwyg--festival h4{
    color:#111 !important;
    line-height:1.05 !important;
    break-after:avoid-page;
    page-break-after:avoid;
  }

  .brand-display-small{
    font-size:17pt !important;
  }

  .section-title,
  .section-title--small{
    font-size:18pt !important;
    margin-top:0 !important;
  }

  .eyebrow,
  .meta-row__date,
  .muted,
  .detail-list dt{
    color:#555 !important;
  }

  .meta-row,
  .venue-meta-grid{
    gap:6pt !important;
    margin-bottom:10pt !important;
  }

  .detail-grid,
  .detail-grid--single,
  .page-layout{
    display:block !important;
  }

  .detail-side{
    margin-bottom:12pt !important;
  }

  .detail-info-card,
  .programme-day-tabs-shell,
  .page-tabs-shell{
    position:static !important;
    top:auto !important;
  }

  .glass-card,
  .content-card,
  .page-module,
  .my-program-card,
  .module-person-card,
  .module-offer-card,
  .module-file-item,
  .contact-mail-card,
  .contact-organiser-card,
  .module-partner-card__logo,
  .programme-card,
  .news-card,
  .search-section,
  .venue-list-item{
    background:#fff !important;
    border:1px solid #d9d9d9 !important;
    border-radius:12pt !important;
  }

  .content-card--rich,
  .content-card--article,
  .detail-info-card,
  .page-module,
  .venue-list-item__body,
  .my-program-card__body{
    padding:12pt !important;
  }

  .detail-block,
  .page-module,
  .programme-day-group,
  .venue-list-item,
  .module-offer-card,
  .module-file-item,
  .contact-mail-card,
  .contact-organiser-card,
  .detail-info-card{
    break-inside:avoid;
    page-break-inside:avoid;
  }

  .detail-list{
    gap:8pt !important;
    margin-top:10pt !important;
  }

  .detail-list div{
    padding-top:8pt !important;
  }

  .cards-grid,
  .programme-cards-grid,
  .news-cards-grid,
  .news-grid--full,
  .news-cards-grid--listing,
  .module-people-grid,
  .module-offer-grid,
  .contact-mail-grid,
  .contact-organiser-grid,
  .module-partner-grid,
  .venues-list-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:10pt !important;
  }

  .programme-card,
  .news-card,
  .module-offer-card,
  .venue-list-item{
    transform:none !important;
  }

  .venue-list-item,
  .my-program-card{
    grid-template-columns:1fr !important;
  }

  .venue-list-item__media,
  .my-program-card__media{
    min-height:140px !important;
  }
  .venue-cards-grid .venue-list-item__media{
    min-height:0 !important;
  }

  .programme-card-media img,
  .news-card__image,
  .venue-list-item__media img,
  .my-program-card__media img,
  .module-offer-card__media img{
    aspect-ratio:auto !important;
    max-height:180px !important;
    object-fit:cover !important;
  }

  .button,
  [data-favorite-toggle],
  [data-clear-favorites],
  [data-print-my-program]{
    display:none !important;
  }
}


.module-photo-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1.25rem}.module-photo-gallery-card{position:relative;display:block;border:0;padding:0;background:rgba(255,255,255,.7);border-radius:22px;overflow:hidden;cursor:pointer;box-shadow:0 14px 30px rgba(15,23,42,.08);transition:transform .18s ease,box-shadow .18s ease}.module-photo-gallery-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(15,23,42,.12)}.module-photo-gallery-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.page-module__actions{margin-top:1.1rem;display:flex;gap:.75rem;flex-wrap:wrap}

.ios-install-prompt[hidden]{display:none!important}
.ios-install-prompt{
  position:fixed;
  left:50%;
  bottom:max(12px, env(safe-area-inset-bottom, 0px) + 8px);
  transform:translate(-50%,16px);
  width:min(calc(100vw - 52px),332px);
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:.75rem;
  align-items:center;
  padding:.85rem .9rem .9rem;
  border-radius:22px;
  background:rgba(250,250,252,.78);
  box-shadow:0 12px 30px rgba(15,23,42,.12);
  border:1px solid rgba(255,255,255,.84);
  backdrop-filter:blur(30px) saturate(1.4);
  -webkit-backdrop-filter:blur(30px) saturate(1.4);
  z-index:95;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
  overflow:hidden;
}
.ios-install-prompt::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0)),
    radial-gradient(circle at top right, rgba(255,255,255,.42), transparent 30%);
  pointer-events:none;
}
.ios-install-prompt.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.ios-install-prompt__media{
  position:relative;
  z-index:1;
}
.ios-install-prompt__media img{
  display:block;
  width:52px;
  height:52px;
  border-radius:14px;
  box-shadow:0 6px 16px rgba(15,23,42,.1);
  border:1px solid rgba(15,23,42,.05);
  background:#fff;
}
.ios-install-prompt__content{
  min-width:0;
  position:relative;
  z-index:1;
}
.ios-install-prompt__content strong{
  display:block;
  margin-bottom:.18rem;
  font-size:.98rem;
  line-height:1.2;
  color:#111827;
  letter-spacing:0;
  font-weight:600;
}
.ios-install-prompt__content p{
  margin:0;
  color:rgba(17,24,39,.7);
  font-size:.86rem;
  line-height:1.38;
}
.ios-install-prompt__content small{
  display:block;
  margin-top:.18rem;
  color:rgba(17,24,39,.52);
  font-size:.78rem;
  line-height:1.3;
}
.ios-install-prompt__steps{
  display:flex;
  gap:.45rem;
  flex-wrap:wrap;
  margin-top:.45rem;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:#007aff;
}
.ios-install-prompt__actions{
  display:flex;
  align-items:center;
  position:relative;
  z-index:1;
  grid-column:1/-1;
  justify-content:flex-start;
  margin-top:.1rem;
}
.ios-install-prompt__close{
  position:absolute;
  top:8px;
  right:8px;
  width:28px;
  height:28px;
  border:0;
  border-radius:999px;
  background:rgba(120,120,128,.12);
  color:#6b7280;
  cursor:pointer;
  font-size:1rem;
  line-height:1;
  z-index:1;
}
.ios-install-prompt .button{
  box-shadow:none;
  border-radius:999px;
  min-height:38px;
  padding:.55rem .95rem;
  font-size:.88rem;
  font-weight:600;
}
.ios-install-prompt .button-primary{
  background:rgba(255,255,255,.92);
  color:#111827;
  border-color:rgba(60,60,67,.12);
}
.ios-install-prompt .button-primary:hover{
  background:#ffffff;
  border-color:rgba(60,60,67,.16);
}
.my-tickets-shell .container{
  display:grid;
  gap:14px;
}
.my-tickets-upload{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  border-radius:24px;
  padding:30px 32px;
  border:1px dashed transparent;
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
.my-tickets-upload[hidden]{
  display:none;
}
.my-tickets-upload.is-drag-over{
  border-color:rgba(15,157,210,.55);
  background:rgba(15,157,210,.06);
  transform:translateY(-1px);
}
.my-tickets-upload .brand-display-small,
.my-tickets-card .brand-display-small{
  letter-spacing:0;
  line-height:1.08;
}
.my-tickets-upload__copy p{
  margin:.45rem 0 0;
  color:rgba(17,24,39,.68);
  max-width:52ch;
}
.my-tickets-upload__form{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
}
.my-tickets-file{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:.58rem 1rem;
  border:1px solid rgba(17,24,39,.15);
  border-radius:999px;
  background:rgba(255,255,255,.74);
  color:#111827;
  font-weight:700;
  cursor:pointer;
}
.my-tickets-file input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.my-tickets-file__icon{
  display:inline-flex;
  width:20px;
  height:20px;
}
.my-tickets-file__text{
  max-width:min(44vw,280px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.my-tickets-status{
  grid-column:1/-1;
  margin:0;
}
.my-tickets-status[data-tone="error"]{
  color:#a43030;
}
.my-tickets-status[data-tone="success"]{
  color:#216a44;
}
.my-tickets-list{
  display:grid;
  gap:16px;
}
.my-tickets-preview-grid{
  display:grid;
  grid-template-columns:minmax(280px,.86fr) minmax(0,1fr);
  gap:22px;
  margin-bottom:24px;
}
.my-tickets-preview-grid[hidden]{
  display:none;
}
.my-tickets-preview-card,
.my-tickets-privacy-card{
  padding:24px;
}
.my-tickets-preview-card{
  display:grid;
  gap:18px;
  align-content:start;
  background:
    radial-gradient(circle at 85% 12%,rgba(24,183,232,.18),transparent 28%),
    linear-gradient(145deg,rgba(255,255,255,.92),rgba(241,247,251,.82));
}
.my-tickets-preview-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.my-tickets-preview-card__logo{
  width:min(158px,46vw);
  height:auto;
  display:block;
}
.my-tickets-preview-card__event{
  display:grid;
  gap:8px;
}
.my-tickets-preview-card__event .brand-display-small{
  margin:0;
  max-width:11ch;
}
.my-tickets-preview-card__event p,
.my-tickets-preview-card > p{
  margin:0;
  line-height:1.55;
}
.my-tickets-preview-card__fields{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.my-tickets-preview-card__fields div{
  min-width:0;
  padding:10px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(15,23,42,.08);
}
.my-tickets-preview-card__fields span{
  display:block;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#667085;
}
.my-tickets-preview-card__fields strong{
  display:block;
  margin-top:4px;
  font-size:1rem;
  line-height:1.1;
  color:var(--ink);
}
.my-tickets-preview-card__qr{
  width:100%;
  aspect-ratio:1;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  padding:12px;
  border-radius:8px;
  background:#fff;
  border:0;
  box-shadow:none;
}
.my-tickets-preview-card__qr span{
  border-radius:6px;
  background:rgba(15,23,42,.92);
}
.my-tickets-preview-card__qr span:nth-child(2),
.my-tickets-preview-card__qr span:nth-child(5),
.my-tickets-preview-card__qr span:nth-child(9),
.my-tickets-preview-card__qr span:nth-child(12),
.my-tickets-preview-card__qr span:nth-child(14){
  background:rgba(24,183,232,.9);
}
.my-tickets-preview-card__qr span:nth-child(3),
.my-tickets-preview-card__qr span:nth-child(8),
.my-tickets-preview-card__qr span:nth-child(13){
  background:transparent;
}
.my-tickets-privacy-card{
  display:grid;
  align-content:start;
  gap:16px;
}
.my-tickets-privacy-card .brand-display-small{
  margin:0;
  max-width:13ch;
}
.my-tickets-privacy-list{
  display:grid;
  gap:12px;
}
.my-tickets-privacy-list div{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(15,23,42,.07);
}
.my-tickets-privacy-list .ui-icon{
  color:var(--blue-dark);
  margin-top:2px;
}
.my-tickets-privacy-list p{
  margin:0;
  color:#344054;
  line-height:1.55;
}
.my-tickets-card{
  display:grid;
  gap:0;
  position:relative;
  overflow:hidden;
  border-radius:22px;
  padding:0;
  background:
    linear-gradient(90deg, var(--blue) 0 8px, transparent 8px),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 18px 48px rgba(15,23,42,.10);
}
.my-tickets-card__head::before,
.my-tickets-card__head::after{
  content:"";
  position:absolute;
  bottom:0;
  z-index:2;
  width:26px;
  height:26px;
  border-radius:999px;
  background:#eef3f8;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);
}
.my-tickets-card__head::before{
  left:8px;
  transform:translate(-50%,50%);
}
.my-tickets-card__head::after{
  right:0;
  transform:translate(50%,50%);
}
.my-tickets-card__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  position:relative;
  padding:24px 28px 22px 34px;
  border-bottom:1px dashed rgba(15,23,42,.16);
}
.my-tickets-card__main{
  min-width:0;
}
.my-tickets-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:.45rem;
  color:rgba(17,24,39,.56);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.my-tickets-card__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:0;
}
.my-tickets-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
  min-width:216px;
}
.my-tickets-card__actions .button{
  min-height:42px;
  padding:.58rem 1rem;
}
.my-tickets-card__qr{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.my-tickets-card__qr .ui-icon{
  width:18px;
  height:18px;
}
.my-tickets-card__compact-action{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  border-radius:999px;
}
.my-tickets-card__compact-action > span:not(.favorite-toggle__icon),
.my-tickets-card__compact-action [data-favorite-label]{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.my-tickets-card__compact-action .ui-icon,
.my-tickets-card__compact-action .favorite-toggle__icon{
  width:18px;
  height:18px;
}
.my-tickets-card__programme-toggle.is-active,
.my-tickets-card__programme-toggle[aria-pressed="true"]{
  color:#fff;
}
.my-tickets-card__tickets{
  display:grid;
  gap:10px;
  padding:16px 28px 22px 34px;
}
.my-tickets-ticket{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  position:relative;
  padding:12px 14px 12px 18px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:rgba(255,255,255,.74);
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.my-tickets-ticket::before{
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  left:0;
  border-left:1px dashed rgba(15,23,42,.22);
  transform:translateX(42px);
}
.my-tickets-ticket::after{
  content:"";
  position:absolute;
  top:50%;
  left:42px;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#f7f9fb;
  border:1px solid rgba(15,23,42,.08);
  transform:translate(-50%,-50%);
}
.my-tickets-ticket + .my-tickets-ticket{
  border-top:1px solid rgba(15,23,42,.08);
}
.my-tickets-ticket__body{
  position:relative;
  z-index:1;
  min-width:0;
  padding-left:42px;
}
.my-tickets-ticket__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:7px;
  color:rgba(17,24,39,.56);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.my-tickets-ticket__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  position:relative;
  z-index:1;
}
.my-tickets-ticket__actions .button{
  min-height:36px;
  padding:.45rem .72rem;
  font-size:.86rem;
}
.my-tickets-ticket__icon-action{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  min-height:38px;
  padding:0;
  border-radius:999px;
  color:#475569;
  background:rgba(255,255,255,.78);
}
.my-tickets-ticket__icon-action .ui-icon{
  width:18px;
  height:18px;
}
.my-tickets-ticket__icon-action:hover{
  color:#06122f;
  background:#fff;
}
.my-tickets-card__delete{
  color:#9b2f35;
  border-color:rgba(155,47,53,.22);
}
.my-tickets-card__delete:hover{
  background:rgba(155,47,53,.08);
  border-color:rgba(155,47,53,.32);
}
.my-tickets-qr-modal .share-modal__dialog{
  width:min(92vw,390px);
  padding:0;
  border-radius:24px;
  overflow:visible;
  background:transparent;
  color:#111827;
  border:0;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
}
.my-tickets-qr-modal .share-modal__close{
  top:14px;
  right:14px;
  z-index:4;
  width:34px;
  height:34px;
  background:rgba(255,255,255,.92);
  color:#111827;
  border-color:rgba(15,23,42,.1);
  box-shadow:0 8px 20px rgba(15,23,42,.12);
}
.my-tickets-wallet-card{
  --ticket-card-padding-left:29px;
  --ticket-card-padding-right:22px;
  display:grid;
  gap:14px;
  position:relative;
  overflow:hidden;
  padding:20px var(--ticket-card-padding-right) 22px var(--ticket-card-padding-left);
  border:1px solid rgba(15,23,42,.08);
  border-radius:24px;
  background:
    linear-gradient(90deg, var(--blue) 0 7px, transparent 7px),
    #fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96);
}
.my-tickets-wallet-card--preview{
  width:100%;
  padding-top:18px;
  box-shadow:0 18px 42px rgba(15,23,42,.12), inset 0 1px 0 rgba(255,255,255,.96);
}
.my-tickets-wallet-card--preview .my-tickets-wallet-card__top{
  padding-right:0;
}
.my-tickets-wallet-card--preview .share-modal__title{
  color:#e5262f;
  line-height:1.02;
  margin:0;
}
.my-tickets-wallet-card--preview .my-tickets-wallet-fields{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.my-tickets-wallet-card--preview .my-tickets-qr-frame{
  width:min(66vw,214px);
}
.my-tickets-wallet-card--preview .my-tickets-qr-meta{
  justify-content:flex-start;
}
.my-tickets-wallet-card__top{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  padding-right:44px;
}
.my-tickets-wallet-card__logo{
  display:block;
  width:min(178px,56vw);
  height:auto;
}
.my-tickets-wallet-card__top-meta{
  display:grid;
  gap:8px;
  justify-items:end;
}
.my-tickets-wallet-card__date{
  color:#e5262f;
  font-size:.96rem;
  line-height:1.25;
  text-align:right;
  max-width:116px;
}
.my-tickets-wallet-card__event{
  position:relative;
  padding-top:18px;
}
.my-tickets-wallet-card__event::before{
  content:"";
  position:absolute;
  top:0;
  left:calc(var(--ticket-card-padding-left) * -1);
  right:calc(var(--ticket-card-padding-right) * -1);
  border-top:1px dashed rgba(15,23,42,.18);
}
.my-tickets-wallet-card__event::after{
  content:"";
  position:absolute;
  top:0;
  left:calc(var(--ticket-card-padding-left) * -1);
  right:calc(var(--ticket-card-padding-right) * -1);
  pointer-events:none;
  background:
    radial-gradient(circle at left center, rgba(225,231,238,.98) 0 11px, transparent 12px),
    radial-gradient(circle at right center, rgba(225,231,238,.98) 0 11px, transparent 12px);
  height:24px;
  transform:translateY(-50%);
}
.my-tickets-wallet-card__label{
  margin-bottom:5px;
  color:#111827;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.my-tickets-qr-modal .share-modal__title{
  color:#e5262f;
  line-height:1.02;
  margin:0;
}
.my-tickets-wallet-card__venue{
  margin:.42rem 0 0;
  color:#111827;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.my-tickets-wallet-fields{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.my-tickets-qr-modal .my-tickets-wallet-fields{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.my-tickets-qr-modal .my-tickets-wallet-field[data-wallet-field="section"]{
  order:1;
}
.my-tickets-qr-modal .my-tickets-wallet-field[data-wallet-field="type"]{
  order:2;
}
.my-tickets-qr-modal .my-tickets-wallet-field[data-wallet-field="row"]{
  order:3;
}
.my-tickets-qr-modal .my-tickets-wallet-field[data-wallet-field="seat"]{
  order:4;
}
.my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="section-row-seat"] .my-tickets-wallet-field[data-wallet-field="section"],
.my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="section"] .my-tickets-wallet-field[data-wallet-field="section"],
.my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="type"] .my-tickets-wallet-field[data-wallet-field="type"]{
  grid-column:1 / -1;
}
.my-tickets-wallet-field[hidden]{
  display:none;
}
.my-tickets-wallet-field span{
  display:block;
  margin-bottom:4px;
  color:#111827;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.1;
  text-transform:uppercase;
}
.my-tickets-wallet-field strong{
  display:block;
  color:#e5262f;
  font-size:1.18rem;
  line-height:1.05;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}
.my-tickets-qr-frame{
  display:grid;
  place-items:center;
  margin:0 auto;
  padding:8px;
  width:min(68vw,228px);
  aspect-ratio:1;
  border-radius:8px;
  background:#fff;
  border:0;
  box-shadow:none;
}
.my-tickets-qr-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.my-tickets-qr-counter{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  max-width:128px;
}
.my-tickets-qr-counter[hidden]{
  display:none;
}
.my-tickets-qr-switcher__item{
  width:30px;
  height:30px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.1);
  background:#fff;
  color:#475569;
  font-weight:800;
  font-size:.84rem;
  cursor:pointer;
}
.my-tickets-qr-switcher__item:hover,
.my-tickets-qr-switcher__item:focus-visible{
  border-color:rgba(24,183,232,.5);
  color:#0f172a;
}
.my-tickets-qr-switcher__item.is-active{
  background:#06122f;
  border-color:#06122f;
  color:#fff;
}
.my-tickets-qr-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:0;
  color:#475569;
  text-align:center;
}
.my-tickets-qr-meta span{
  display:inline-flex;
  padding:.34rem .58rem;
  border-radius:999px;
  background:rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.08);
  color:#475569;
  font-size:.78rem;
  line-height:1.2;
}
.my-tickets-qr-nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 28px 14px;
  margin:-1px 0 0;
  border-top:1px solid rgba(15,23,42,.07);
  border-radius:0 0 24px 24px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.my-tickets-qr-nav[hidden]{
  display:none;
}
.my-tickets-qr-nav .button{
  width:100%;
  min-height:40px;
  padding:.55rem .9rem;
  border-radius:999px;
  font-size:.84rem;
  font-weight:900;
}
.my-tickets-qr-nav .button:not(:disabled){
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  box-shadow:0 10px 22px rgba(24,183,232,.22);
}
.my-tickets-qr-nav .button:disabled{
  opacity:.62;
  cursor:not-allowed;
  transform:none;
  background:rgba(255,255,255,.62);
  border-color:rgba(15,23,42,.07);
  color:rgba(71,85,105,.55);
  box-shadow:none;
}
@media (max-width: 760px){
  .my-tickets-upload,
  .my-tickets-preview-grid,
  .my-tickets-card,
  .my-tickets-card__head,
  .my-tickets-ticket{
    grid-template-columns:1fr;
  }
  .my-tickets-upload,
  .my-tickets-preview-card,
  .my-tickets-privacy-card,
  .my-tickets-card{
    border-radius:18px;
  }
  .my-tickets-preview-grid{gap:12px}
  .my-tickets-preview-card,
  .my-tickets-privacy-card{padding:18px}
  .my-tickets-preview-card__event .brand-display-small,
  .my-tickets-privacy-card .brand-display-small{
    max-width:none;
  }
  .my-tickets-preview-card__fields{
    grid-template-columns:1fr;
  }
  .my-tickets-upload{padding:14px}
  .my-tickets-card{padding:0}
  .my-tickets-card__head{
    padding:18px 16px 16px 22px;
  }
  .my-tickets-shell .container{
    gap:8px;
  }
  .my-tickets-card{
    gap:8px;
  }
  .my-tickets-upload{
    gap:12px;
  }
  .my-tickets-upload__copy .eyebrow,
  .my-tickets-upload__copy p{
    display:none;
  }
  .my-tickets-upload .brand-display-small{
    font-size:1.22rem;
    line-height:1.05;
  }
  .my-tickets-card .brand-display-small{
    font-size:clamp(1.2rem, 5.8vw, 1.55rem);
    line-height:1.04;
  }
  .my-tickets-card__meta{
    margin-bottom:.24rem;
    font-size:.66rem;
    letter-spacing:.07em;
  }
  .my-tickets-card .card-meta-row{
    gap:7px;
    font-size:.82rem;
    line-height:1.18;
  }
  .my-tickets-card__main > .muted{
    margin:.38rem 0 0;
    font-size:.86rem;
    line-height:1.2;
  }
  .my-tickets-card__actions .button{
    min-height:42px;
    padding:.55rem .8rem;
  }
  .my-tickets-card__actions{
    gap:8px;
  }
  .my-tickets-card__tickets{
    gap:8px;
    padding:12px 12px 16px 18px;
  }
  .my-tickets-ticket{
    gap:9px;
    padding:10px 10px 10px 12px;
  }
  .my-tickets-ticket::before{transform:translateX(32px)}
  .my-tickets-ticket::after{left:32px}
  .my-tickets-ticket__body{padding-left:32px}
  .my-tickets-ticket__meta{
    margin-bottom:5px;
    font-size:.64rem;
    letter-spacing:.05em;
  }
  .my-tickets-card__chips{
    gap:5px;
  }
  .my-tickets-card__chips .soft-badge{
    font-size:.76rem;
    padding:.3rem .5rem;
    line-height:1.15;
  }
  .my-tickets-upload__form,
  .my-tickets-card__actions,
  .my-tickets-ticket__actions{
    justify-content:stretch;
    min-width:0;
  }
  .my-tickets-card__actions{
    display:flex;
    justify-content:flex-start;
  }
  .my-tickets-upload__form .button,
  .my-tickets-card__qr{
    width:100%;
  }
  .my-tickets-card__qr{
    order:1;
    justify-content:center;
  }
  .my-tickets-card__programme-detail,
  .my-tickets-card__programme-toggle{
    order:2;
  }
  .my-tickets-card__compact-action{
    flex:0 0 auto;
    width:42px;
    height:42px;
    min-height:42px;
    padding:0;
  }
  .my-tickets-upload__form{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .my-tickets-file{
    width:100%;
    justify-content:center;
    min-height:40px;
    padding:.5rem .8rem;
  }
  .my-tickets-ticket__actions{
    display:flex;
    justify-content:flex-end;
  }
  .my-tickets-ticket__actions .button{
    min-height:32px;
    padding:.34rem .48rem;
    font-size:.76rem;
  }
  .my-tickets-ticket__actions .my-tickets-ticket__icon-action{
    width:36px;
    height:36px;
    min-height:36px;
    padding:0;
  }
  .my-tickets-wallet-card{
    --ticket-card-padding-left:25px;
    --ticket-card-padding-right:18px;
    padding:18px var(--ticket-card-padding-right) 20px var(--ticket-card-padding-left);
  }
  .my-tickets-wallet-card__top{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    padding-right:42px;
  }
  .my-tickets-wallet-card--preview .my-tickets-wallet-card__top{
    padding-right:0;
  }
  .my-tickets-wallet-card__top-meta{
    gap:6px;
  }
  .my-tickets-wallet-card__date{
    text-align:right;
    max-width:104px;
    font-size:.9rem;
  }
  .my-tickets-qr-counter{
    max-width:104px;
    gap:6px;
  }
  .my-tickets-qr-switcher__item{
    width:28px;
    height:28px;
  }
  .my-tickets-qr-nav{
    gap:8px;
    padding:9px 22px 13px;
  }
  .my-tickets-qr-nav .button{
    min-height:38px;
    padding:.5rem .72rem;
    font-size:.8rem;
  }
  .my-tickets-wallet-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="section-row-seat"] .my-tickets-wallet-field[data-wallet-field="section"],
  .my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="section"] .my-tickets-wallet-field[data-wallet-field="section"],
  .my-tickets-qr-modal .my-tickets-wallet-fields[data-wallet-layout="type"] .my-tickets-wallet-field[data-wallet-field="type"]{
    grid-column:span 2;
  }
  .my-tickets-card__qr{
    display:inline-flex;
  }
}
@media (max-width: 720px){
  .ios-install-prompt{
    width:min(calc(100vw - 68px),304px);
    padding:.82rem .85rem .88rem;
  }
  .ios-install-prompt__media img{
    width:48px;
    height:48px;
    border-radius:13px;
  }
}
@media (max-width: 520px){
  .ios-install-prompt{
    left:50%;
    right:auto;
    bottom:max(10px, env(safe-area-inset-bottom, 0px) + 4px);
    width:min(calc(100vw - 82px),286px);
    transform:translate(-50%,16px);
  }
  .ios-install-prompt.is-visible{
    transform:translate(-50%,0);
  }
  .ios-install-prompt__content p{
    font-size:.84rem;
  }
}

.hadrian-hero{background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(245,249,252,.74))}
.hadrian-archive__intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:28px}
.hadrian-archive__stats{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.hadrian-archive__stats span{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid rgba(15,23,42,.08);font-weight:800;color:#0f172a}
.hadrian-cover-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.hadrian-cover-card{display:flex;flex-direction:column;min-width:0;background:rgba(255,255,255,.86);border:1px solid rgba(15,23,42,.08);border-radius:8px;box-shadow:0 18px 48px rgba(15,23,42,.07);overflow:hidden}
.hadrian-cover-card__media{display:flex;align-items:center;justify-content:center;aspect-ratio:210/297;padding:16px;background:linear-gradient(135deg,rgba(15,23,42,.05),rgba(24,183,232,.08));text-decoration:none;color:#0f172a}
.hadrian-cover-card__media img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 24px rgba(15,23,42,.2))}
.hadrian-cover-card__media span{font-family:var(--font-display);font-size:2rem;line-height:1}
.hadrian-cover-card__body{display:flex;flex:1;flex-direction:column;gap:10px;padding:18px}
.hadrian-cover-card__body h3{margin:0;font-family:var(--font-display);font-size:1.45rem;line-height:1.02;color:#0f172a}
.hadrian-cover-card__body p{margin:0;color:#667085;font-weight:700}
.hadrian-cover-card__actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:auto;padding-top:8px}
.hadrian-cover-card__actions .button{min-height:42px;padding:.65rem .9rem}
.hadrian-issue-hero__layout{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);gap:42px;align-items:center}
.hadrian-issue-hero__cover{display:flex;align-items:center;justify-content:center;aspect-ratio:210/297;padding:16px;border-radius:8px;background:rgba(255,255,255,.74);border:1px solid rgba(15,23,42,.08);box-shadow:0 22px 60px rgba(15,23,42,.12)}
.hadrian-issue-hero__cover img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(15,23,42,.2))}
.hadrian-issue-hero__cover span{font-family:var(--font-display);font-size:2.4rem;line-height:1;color:#0f172a}
.hadrian-issue-hero__copy{padding-left:0;padding-right:0}
.hadrian-issue-grid{display:grid;gap:20px}
.hadrian-issue{background:rgba(255,255,255,.84);border:1px solid rgba(15,23,42,.08);border-radius:8px;box-shadow:0 18px 48px rgba(15,23,42,.07);overflow:hidden}
.hadrian-issue__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:22px 24px;border-bottom:1px solid rgba(15,23,42,.07);background:linear-gradient(135deg,rgba(24,183,232,.08),rgba(255,255,255,.92))}
.hadrian-issue__head h3{margin:10px 0 4px;font-family:var(--font-display);font-size:clamp(1.45rem,2vw,2rem);line-height:1.05;color:#0f172a}
.hadrian-issue__head p{margin:0;color:#667085;font-weight:700}
.hadrian-article-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(15,23,42,.06)}
.hadrian-article-list--issue{grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(15,23,42,.06);border-radius:8px;overflow:hidden}
.hadrian-article-card{background:rgba(255,255,255,.94)}
.hadrian-article-card--lead{grid-column:span 2}
.hadrian-article-card a{display:flex;flex-direction:column;gap:9px;min-height:100%;padding:20px;text-decoration:none;color:#0f172a}
.hadrian-article-card a:hover strong{color:var(--blue-dark)}
.hadrian-article-card__meta{font-size:.78rem;text-transform:uppercase;letter-spacing:0;font-weight:900;color:#667085}
.hadrian-article-card strong{font-family:var(--font-display);font-size:1.15rem;line-height:1.12;transition:color .18s ease}
.hadrian-article-card span:last-child{color:#475467;line-height:1.55;font-size:.94rem}
.hadrian-detail-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,320px);gap:24px;align-items:start}
.hadrian-detail-card{min-width:0}
.hadrian-detail-aside{position:sticky;top:110px}
.hadrian-pdf-card{padding:22px;border-radius:8px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.86);box-shadow:0 16px 42px rgba(15,23,42,.07)}
.hadrian-pdf-card__cover{display:block;width:100%;max-height:260px;object-fit:contain;margin:0 0 18px;filter:drop-shadow(0 12px 18px rgba(15,23,42,.18))}
.hadrian-pdf-card h2{margin:8px 0 10px;font-family:var(--font-display);font-size:1.5rem;line-height:1.05;color:#0f172a}
.hadrian-pdf-card p{margin:0 0 18px;color:#475467;line-height:1.6}
.hadrian-pdf-card .button{width:100%;justify-content:center;margin-top:10px}
@media (max-width:980px){
  .hadrian-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hadrian-archive__intro,.hadrian-detail-layout,.hadrian-issue-hero__layout{grid-template-columns:1fr}
  .hadrian-archive__stats{justify-content:flex-start}
  .hadrian-detail-aside{position:static}
  .hadrian-article-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hadrian-issue-hero__cover{max-width:320px}
}
@media (max-width:640px){
  .hadrian-cover-grid{grid-template-columns:1fr}
  .hadrian-cover-card__actions{grid-template-columns:1fr}
  .hadrian-cover-card__actions .button{width:100%;justify-content:center}
  .hadrian-issue__head{grid-template-columns:1fr}
  .hadrian-issue__head .button{width:100%;justify-content:center}
  .hadrian-article-list{grid-template-columns:1fr}
  .hadrian-article-card--lead{grid-column:auto}
}
