/* Theme tokens */
:root {
  --black: #111111;
  --white: #ffffff;
  --shell-bg: #ffffff;
  --surface-soft: #f7f3ee;
  --red: #d91f2b;
  --red-dark: #a30f18;
  --red-soft: #f7d7db;
  --footer: #f7f2eb;
  --shadow: 5px 5px 0 rgba(17, 17, 17, .12);
  --button-shadow: 3px 3px 0 rgba(17, 17, 17, .92);
  --panel-hover-shadow: 2px 2px 0 rgba(17, 17, 17, .08);
  --red-button-bg: linear-gradient(180deg, #f2464c 0%, var(--red) 62%, var(--red-dark) 100%);
  --header-surface-bg: #000000;
  --header-surface-shadow: none;
  --media-stage-bg: #000000;
  --overlay-backdrop: rgba(17, 17, 17, .54);
  --focus-ring-color: rgba(217, 31, 43, .48);
  --focus-ring-soft: rgba(217, 31, 43, .14);
  --border-strong: 2px solid var(--black);
  --border-soft: 2px solid rgba(17, 17, 17, .14);
  --radius-xl: 20px;
  --radius-pill: 999px;
  --button-min-height: 50px;
  --button-padding-inline: 18px;
  --control-radius-md: 16px;
  --button-radius: var(--control-radius-md);
  --button-border-width: 2px;
  --button-font-size: 14px;
  --button-letter-spacing: .07em;
  --font-body: Arial, Helvetica, sans-serif;
  --font-display: "Arial Black", Impact, Arial, Helvetica, sans-serif;
  --ui-label-font-size: 13px;
  --ui-label-letter-spacing: .08em;
  --ui-kicker-font-size: 11px;
  --ui-kicker-letter-spacing: .12em;
  --ink-soft: rgba(17, 17, 17, .56);
  --ink-faint: rgba(17, 17, 17, .54);
  --ink-muted: rgba(17, 17, 17, .78);
  --ink-strong-muted: rgba(17, 17, 17, .82);
  --ui-kicker-color: var(--ink-soft);
  --ui-micro-font-size: 11px;
  --ui-micro-letter-spacing: .08em;
  --ui-body-sm-font-size: 15px;
  --ui-body-sm-color: var(--ink-strong-muted);
  --nav-link-font-size: 14px;
  --nav-link-letter-spacing: .08em;
  --content-max: 1120px;
  --home-frame-max: 960px;
  --frame-gutter: 32px;
  --side-width: 220px;
  --gap: 20px;
  --section-gap: 24px;
  --homepage-hero-card-min-height: 420px;
  --agenda-show-flyer-min-height-sm: 250px;
  --modal-dialog-width: min(50vw, 760px);
  --modal-dialog-height: min(50vh, 760px);
  --mobile-panel-sheet-width: min(50vw, 320px);
  --mobile-panel-sheet-max-width-offset: 28px;
  --mobile-panel-sheet-padding: 72px 18px 22px;
  --mobile-panel-close-size: 42px;
  --mobile-panel-close-font-size: 26px;
  --home-gap: 14px;
  --interactive-lift: translate(-1px, -1px);
  --surface-card-radius: 14px;
  --surface-card-padding: 12px;
  --surface-radius-lg: 20px;
  --surface-radius-md: 18px;
  --header-inner-min-height: 78px;
  --header-inner-gap: 20px;
  --header-logo-size: 42px;
  --header-brand-gap: clamp(12px, 1.2vw, 20px);
  --header-wordmark-height: 36px;
  --header-wordmark-height-mobile: 24px;
  --header-rule-height: 8px;
  --header-rule-shadow: 0 10px 18px rgba(0, 0, 0, .22), 0 18px 28px rgba(0, 0, 0, .08);
  --header-menu-trigger-size: 76px;
  --header-menu-trigger-width: 84px;
  --header-cta-min-width: 218px;
  --header-cta-gold-bg: linear-gradient(180deg, #fff2a6 0%, #ffd951 18%, #ffbe1a 52%, #d39000 100%);
  --header-cta-gold-border: #7f4b00;
  --header-cta-gold-shadow: 0 5px 0 rgba(88, 49, 0, .95), 0 9px 16px rgba(0, 0, 0, .18);
  --header-desktop-breathing-space: clamp(28px, 3vw, 44px);
  --header-brand-red-glow: 0 0 10px rgba(217, 31, 43, .18);
  --header-nav-gap: 16px;
  --header-nav-link-min-height: 42px;
  --header-cta-min-height: 46px;
  --mobile-topbar-width: min(calc(100% - 20px), 900px);
  --mobile-topbar-columns: 4;
  --mobile-topbar-gap: 8px;
  --mobile-topbar-item-min-height: 62px;
  --mobile-topbar-item-padding: 8px 6px;
  --mobile-topbar-icon-size: 20px;
  --mobile-topbar-label-size: 12px;
  --mobile-topbar-label-letter-spacing: .06em;
  --page-card-padding: 34px 36px;
  --page-card-title-size: clamp(30px, 3vw, 44px);
  --modal-close-size: 48px;
  --modal-close-font-size: 34px;
  --close-control-border: var(--button-border-width) solid var(--black);
  --home-panel-border-width: 2px;
  --home-panel-border: var(--home-panel-border-width) solid var(--black);
  --home-panel-shadow: 3px 3px 0 rgba(17, 17, 17, .1);
  --home-panel-min-height: 0;
  --home-panel-padding: 12px;
  --agenda-page-margin-top: clamp(88px, 8vw, 124px);
  --agenda-list-gap: 22px;
  --agenda-show-columns: 268px minmax(0, 1fr);
  --agenda-show-gap: 22px;
  --agenda-show-padding: 22px;
  --agenda-show-accent-width: 7px;
  --agenda-show-flyer-min-height: 340px;
  --agenda-show-content-display: grid;
  --agenda-show-content-columns: minmax(0, 1fr) 220px;
  --agenda-show-content-column-gap: 24px;
  --agenda-show-content-row-gap: 8px;
  --agenda-show-content-flex-direction: row;
  --agenda-show-content-height: 100%;
  --agenda-show-content-padding-top: 2px;
  --agenda-show-content-gap: 0;
  --agenda-show-date-direction: column;
  --agenda-show-date-wrap: nowrap;
  --agenda-show-date-align: flex-start;
  --agenda-show-date-gap: 3px;
  --agenda-show-weekday-size: clamp(16px, 1.08vw, 19px);
  --agenda-show-daymonth-size: clamp(24px, 2vw, 34px);
  --agenda-show-city-size: clamp(38px, 4vw, 60px);
  --agenda-show-description-display: block;
  --agenda-show-description-margin-top: 10px;
  --agenda-show-description-size: clamp(17px, 1.3vw, 20px);
  --agenda-show-action-grid-column: 2;
  --agenda-show-action-grid-row: 4;
  --agenda-show-action-justify-self: end;
  --agenda-show-action-max-width: 210px;
  --agenda-show-action-padding-top: 0;
  --agenda-show-ticket-min-height: 62px;
  --agenda-show-ticket-padding: 14px 18px;
  --agenda-show-ticket-font-size: clamp(15px, 1.2vw, 19px);
  --footer-link-min-height: 46px;
  --footer-link-font-size: 13px;
  --modal-backdrop: rgba(17, 17, 17, .62);
  --modal-dialog-shadow: 0 24px 60px rgba(17, 17, 17, .26);
  --footer-top-wash: linear-gradient(180deg, rgba(217, 31, 43, .05), rgba(217, 31, 43, 0));
}

* { box-sizing: border-box; }
html {
  min-height: 100%;
  background: #f1eee9;
}
body {
  margin: 0;
  color: var(--black);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  background:
    radial-gradient(circle at top right, rgba(217, 31, 43, .08), transparent 24%),
    radial-gradient(circle at bottom left, rgba(17, 17, 17, .03), transparent 22%),
    linear-gradient(180deg, #faf8f4 0%, #f1eee9 100%);
}

a {
  color: inherit;
  text-decoration: none;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
img { max-width: 100%; display: block; }
button, input, textarea, select { font: inherit; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid var(--focus-ring-color);
  outline-offset: 3px;
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-shell { min-height: 100vh; }
.site-width { width: min(calc(100% - var(--frame-gutter)), var(--content-max)); margin: 0 auto; }
.site-width.home-front,
body.home .main-header__inner { width: min(calc(100% - var(--frame-gutter)), var(--home-frame-max)); }
.desktop-only { display: block; }
.mobile-only { display: none; }


@media (max-width: 1024px) {
  :root {
    --frame-gutter: 16px;
  }

  .desktop-only { display: none; }
  .mobile-only { display: block; }

  .site-width { width: min(calc(100% - var(--frame-gutter)), 900px); }
}


/* Shared button system */
.hvh-red-button,
.agenda-gold-button,
.nav-blue-button,
.ticket-button,
.agenda-backtop,
.side-rail__link,
.mobile-panel__link,
.footer-top-link,
.home-panel__action,
.home-promo__ghost,
.home-promo__newsletter-link {
  --button-bg: var(--white);
  --button-color: var(--black);
  --button-hover-bg: var(--button-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: var(--button-min-height);
  padding: 0 var(--button-padding-inline);
  border-radius: var(--button-radius);
  border: var(--button-border-width) solid var(--black);
  box-shadow: var(--button-shadow);
  background: var(--button-bg);
  color: var(--button-color);
  text-decoration: none;
  font-size: var(--button-font-size);
  font-weight: 900;
  letter-spacing: var(--button-letter-spacing);
  line-height: 1;
  text-transform: uppercase;
  transition: transform .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.hvh-red-button,
.ticket-button,
.agenda-backtop,
.mobile-panel__link {
  --button-bg: var(--red-button-bg);
  --button-color: var(--white);
}

.agenda-gold-button,
.nav-blue-button,
.side-rail__link,
.home-panel__action,
.home-promo__ghost,
.home-promo__newsletter-link,
.footer-top-link {
  --button-hover-bg: var(--red-soft);
}


:is(.hvh-red-button, .ticket-button, .agenda-backtop, .agenda-gold-button, .nav-blue-button, .side-rail__link, .mobile-panel__link, .footer-top-link, .home-panel__action, .home-promo__ghost, .home-promo__newsletter-link):is(:hover, :focus-visible) {
  transform: var(--interactive-lift);
  background: var(--button-hover-bg);
}

:is(.hvh-red-button, .ticket-button, .agenda-backtop, .mobile-panel__link, .side-rail__link, .nav-blue-button, .agenda-gold-button, .footer-top-link, .home-panel__action, .home-promo__ghost, .home-promo__newsletter-link) span {
  text-shadow: none;
}

.mobile-panel__close,
.hvh-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: var(--radius-pill);
  background: var(--white);
  border: var(--close-control-border);
  color: var(--black);
  line-height: 1;
  box-shadow: var(--button-shadow);
  cursor: pointer;
}

.agenda-page {
  margin-top: var(--agenda-page-margin-top);
}
